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
|
|
|
3
3
|
// src/swift-compile.ts
|
|
4
4
|
import {
|
|
@@ -10209,7 +10209,8 @@ var FEATURES = [
|
|
|
10209
10209
|
"reference-types",
|
|
10210
10210
|
"sign-ext"
|
|
10211
10211
|
];
|
|
10212
|
-
var
|
|
10212
|
+
var KEEP_WASM_NAMES = process.env.PEACH_SWIFT_NAMES === "1";
|
|
10213
|
+
var WASM_OPTIMIZE_IDENTITY = `wasm-opt ${BINARYEN_VERSION} -Oz ${FEATURES.join(",")}${KEEP_WASM_NAMES ? " -g" : ""}`;
|
|
10213
10214
|
var PINNED_BINARYEN_VERSION = "132";
|
|
10214
10215
|
var BINARYEN_RELEASES = /* @__PURE__ */ new Map([
|
|
10215
10216
|
[
|
|
@@ -10245,6 +10246,7 @@ async function runWasmOpt(file, output, skipPasses, binary) {
|
|
|
10245
10246
|
const result = await wasmOpt(
|
|
10246
10247
|
[
|
|
10247
10248
|
"-Oz",
|
|
10249
|
+
...KEEP_WASM_NAMES ? ["-g"] : [],
|
|
10248
10250
|
...skipPasses.flatMap((pass) => ["--skip-pass", pass]),
|
|
10249
10251
|
...FEATURES.map((feature) => `--enable-${feature}`),
|
|
10250
10252
|
file,
|
|
@@ -11022,7 +11024,7 @@ function swiftSubmoduleImports(sources) {
|
|
|
11022
11024
|
}
|
|
11023
11025
|
return imports;
|
|
11024
11026
|
}
|
|
11025
|
-
function swiftObjCModuleMap(module, headers, submodules = /* @__PURE__ */ new Set()) {
|
|
11027
|
+
function swiftObjCModuleMap(module, headers, submodules = /* @__PURE__ */ new Set(), swiftHeader) {
|
|
11026
11028
|
const header = (file) => `header ${JSON.stringify(file)}`;
|
|
11027
11029
|
const stem = (file) => file.slice(file.lastIndexOf("/") + 1).replace(/\.[^.]*$/, "");
|
|
11028
11030
|
return [
|
|
@@ -11030,6 +11032,7 @@ function swiftObjCModuleMap(module, headers, submodules = /* @__PURE__ */ new Se
|
|
|
11030
11032
|
...headers.map(
|
|
11031
11033
|
(file) => submodules.has(stem(file)) ? ` module ${stem(file)} { ${header(file)} export * }` : ` ${header(file)}`
|
|
11032
11034
|
),
|
|
11035
|
+
...swiftHeader ? [" module Swift {", ` ${header(swiftHeader)}`, " requires objc", " }"] : [],
|
|
11033
11036
|
" export *",
|
|
11034
11037
|
"}",
|
|
11035
11038
|
""
|
|
@@ -11746,7 +11749,10 @@ function swiftModuleInterface(moduleRoot, name2, interfaceRoot) {
|
|
|
11746
11749
|
if (declared.size === 0) return null;
|
|
11747
11750
|
return { declared, header: clangInterfaceHeader(readFileSync16(built, "utf8")) };
|
|
11748
11751
|
}
|
|
11749
|
-
var clangInterfaceHeader = (header) => header.replace(/^@import (?:UIKitCore|UIKitText);$/gm, "@import UIKit;").replace(
|
|
11752
|
+
var clangInterfaceHeader = (header) => header.replace(/^@import (?:UIKitCore|UIKitText);$/gm, "@import UIKit;").replace(
|
|
11753
|
+
/^@import (?:CoreFoundation|FoundationNetworking);$/gm,
|
|
11754
|
+
"@import Foundation;"
|
|
11755
|
+
).replace(/\b_TtC10Foundation\d+(NS\w+)\b/g, "$1").replace(/\b__attribute__\(\(objc_subclassing_restricted\)\)\s*/g, "");
|
|
11750
11756
|
var swiftInterfaceDeclarations = (header) => /* @__PURE__ */ new Set([
|
|
11751
11757
|
...[
|
|
11752
11758
|
...header.matchAll(
|
|
@@ -12043,7 +12049,8 @@ var OPTIONAL_FRAMEWORK_DEPENDENCIES = {
|
|
|
12043
12049
|
PeachCFNetwork: [],
|
|
12044
12050
|
JavaScriptCore: ["PeachJavaScriptCore"],
|
|
12045
12051
|
PeachJavaScriptCore: [],
|
|
12046
|
-
GameplayKit
|
|
12052
|
+
// GameplayKit names SpriteKit and SceneKit nodes, as on iOS
|
|
12053
|
+
GameplayKit: ["SpriteKit", "SceneKit", "PeachBox2D", "simd", "GLKit"],
|
|
12047
12054
|
simd: [],
|
|
12048
12055
|
ModelIO: ["simd"],
|
|
12049
12056
|
GLKit: ["ModelIO"],
|
|
@@ -12554,10 +12561,21 @@ function swiftTargetDependencies(files, targets, frameworks = OPTIONAL_FRAMEWORK
|
|
|
12554
12561
|
return siblings;
|
|
12555
12562
|
}
|
|
12556
12563
|
var ONE_PRODUCT = '.product(name: "One", package: "sootsim-swift")';
|
|
12557
|
-
var
|
|
12558
|
-
var
|
|
12559
|
-
|
|
12560
|
-
)
|
|
12564
|
+
var GAME_FAMILY = ["SpriteKit", "SceneKit"];
|
|
12565
|
+
var gameProducts = (files) => {
|
|
12566
|
+
const imported = new Set(
|
|
12567
|
+
Object.entries(files).flatMap(
|
|
12568
|
+
([file, contents]) => file.endsWith(".swift") ? swiftImportNames(contents) : []
|
|
12569
|
+
)
|
|
12570
|
+
);
|
|
12571
|
+
if (imported.has("SceneKit")) return [...GAME_FAMILY];
|
|
12572
|
+
return imported.has("SpriteKit") ? ["SpriteKit"] : [];
|
|
12573
|
+
};
|
|
12574
|
+
var gameProduct = (name2) => `.product(name: "${name2}", package: "sootsim-swift")`;
|
|
12575
|
+
var GAME_REACH = {
|
|
12576
|
+
SpriteKit: ["SpriteKit", "PeachBox2D", "simd", "GLKit"],
|
|
12577
|
+
SceneKit: ["SceneKit"]
|
|
12578
|
+
};
|
|
12561
12579
|
var FOUNDATION_IMPLICIT_MODULES = [
|
|
12562
12580
|
"PeachObjC",
|
|
12563
12581
|
"Dispatch",
|
|
@@ -12584,7 +12602,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
|
|
|
12584
12602
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
12585
12603
|
var MULTI_MANIFEST_VERSION = 68;
|
|
12586
12604
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
12587
|
-
var compilerSourceDigest = true ? "
|
|
12605
|
+
var compilerSourceDigest = true ? "eba60b7a2e9485f928a6ec2e544e10d84b2b33430be66b9e069c9797a927af86" : swiftCompilerSourceDigest(import.meta.dirname);
|
|
12588
12606
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
12589
12607
|
const hash = createHash13("sha256");
|
|
12590
12608
|
hash.update(`swift-compile
|
|
@@ -12592,6 +12610,7 @@ ${release}
|
|
|
12592
12610
|
`);
|
|
12593
12611
|
hash.update(compilerSourceDigest);
|
|
12594
12612
|
if (input.oneModule) hash.update("one-module\n");
|
|
12613
|
+
if (KEEP_WASM_NAMES) hash.update("names\n");
|
|
12595
12614
|
hash.update(swiftModuleDigest(moduleRoot));
|
|
12596
12615
|
if (input.optimize) hash.update(`optimize
|
|
12597
12616
|
${WASM_OPTIMIZE_IDENTITY}
|
|
@@ -12706,7 +12725,14 @@ function toolsetOrdersLibcxxBeforeDarwinOverlay(options) {
|
|
|
12706
12725
|
return libcxx >= 0 && overlay > libcxx;
|
|
12707
12726
|
}
|
|
12708
12727
|
function emitSwiftPackageManifest(args) {
|
|
12709
|
-
const {
|
|
12728
|
+
const {
|
|
12729
|
+
targets,
|
|
12730
|
+
siblings,
|
|
12731
|
+
moduleRoot,
|
|
12732
|
+
oneModule,
|
|
12733
|
+
gameProducts: gameProducts2 = [],
|
|
12734
|
+
distribution
|
|
12735
|
+
} = args;
|
|
12710
12736
|
const prebuilt = args.prebuilt;
|
|
12711
12737
|
const linkedObjects = Boolean(distribution || prebuilt);
|
|
12712
12738
|
const cxxFlagsFor = (flags) => args.deferDarwinOverlay ? withoutWasmOverlayIsystem(flags) : flags;
|
|
@@ -12735,9 +12761,8 @@ function emitSwiftPackageManifest(args) {
|
|
|
12735
12761
|
for (const name2 of [...siblings.values()].flat())
|
|
12736
12762
|
if (OPTIONAL_FRAMEWORKS.has(name2) && !targets.some((target) => target.name === name2))
|
|
12737
12763
|
reach(name2);
|
|
12738
|
-
|
|
12739
|
-
for (const name2 of [
|
|
12740
|
-
}
|
|
12764
|
+
for (const product of gameProducts2)
|
|
12765
|
+
for (const name2 of GAME_REACH[product] ?? []) reach(name2);
|
|
12741
12766
|
let distributionLinkPath;
|
|
12742
12767
|
const distributionLink = args.distributionLink;
|
|
12743
12768
|
if (distribution && distributionLink) {
|
|
@@ -12760,7 +12785,7 @@ function emitSwiftPackageManifest(args) {
|
|
|
12760
12785
|
(object3) => !isProvider(object3) && !replacedObjects.has(object3)
|
|
12761
12786
|
);
|
|
12762
12787
|
const objects = available.filter(
|
|
12763
|
-
(object3) => !targets.some((target) => object3.startsWith(`lib/${target.name}-`)) && [...OPTIONAL_FRAMEWORKS,
|
|
12788
|
+
(object3) => !targets.some((target) => object3.startsWith(`lib/${target.name}-`)) && [...OPTIONAL_FRAMEWORKS, ...GAME_FAMILY, "PeachBox2D"].every(
|
|
12764
12789
|
(name2) => !object3.startsWith(`lib/${name2}-`) || reachedFrameworks.has(name2)
|
|
12765
12790
|
)
|
|
12766
12791
|
);
|
|
@@ -12877,6 +12902,10 @@ function emitSwiftPackageManifest(args) {
|
|
|
12877
12902
|
includeImportContext(dependency);
|
|
12878
12903
|
const importedNativeFlags = [
|
|
12879
12904
|
...args.nativeImportFlags?.get(target.name) ?? [],
|
|
12905
|
+
...[...importContext].flatMap((name2) => {
|
|
12906
|
+
const map = name2 === target.name ? void 0 : args.nativeSwiftHeaderMaps?.get(name2);
|
|
12907
|
+
return map ? ["-fmodule-map-file=" + map] : [];
|
|
12908
|
+
}),
|
|
12880
12909
|
...[...importContext].flatMap((name2) => args.native?.get(name2)?.importFlags ?? []),
|
|
12881
12910
|
...[...importContext].flatMap((name2) => {
|
|
12882
12911
|
const flags = targets.find((target2) => target2.name === name2)?.swiftFlags ?? [];
|
|
@@ -12919,7 +12948,7 @@ function emitSwiftPackageManifest(args) {
|
|
|
12919
12948
|
...linkedObjects || clang && !target.executable ? [] : [
|
|
12920
12949
|
'.product(name: "SwiftUI", package: "sootsim-swift")',
|
|
12921
12950
|
...oneModule ? [ONE_PRODUCT] : [],
|
|
12922
|
-
...
|
|
12951
|
+
...gameProducts2.map(gameProduct)
|
|
12923
12952
|
],
|
|
12924
12953
|
...(siblings.get(target.name) ?? []).flatMap(
|
|
12925
12954
|
(dependency) => clang && // textual native headers can include one another without imposing
|
|
@@ -12951,7 +12980,7 @@ function emitSwiftPackageManifest(args) {
|
|
|
12951
12980
|
.unsafeFlags(${flagArray(`[
|
|
12952
12981
|
${REACTOR_FLAG}${executableLinkFlags(args.root)} "-Xlinker", "--export-if-defined=__main_argc_argv"${library},
|
|
12953
12982
|
]`)}),
|
|
12954
|
-
.unsafeFlags(["-Xlinker", "--strip-all"], .when(configuration: .release)),
|
|
12983
|
+
${KEEP_WASM_NAMES ? "" : '.unsafeFlags(["-Xlinker", "--strip-all"], .when(configuration: .release)),'}
|
|
12955
12984
|
]` : librarySettings.length > 0 ? `,
|
|
12956
12985
|
linkerSettings: [${librarySettings.join(", ")}]` : "";
|
|
12957
12986
|
const cDefines = macroSettings(target.cDefines);
|
|
@@ -13556,8 +13585,6 @@ var FOUNDATION_OVERLAY_GLOBALS = /* @__PURE__ */ new Set([
|
|
|
13556
13585
|
"NSURLProtectionSpaceHTTPS",
|
|
13557
13586
|
"NSURLProtectionSpaceHTTPSProxy",
|
|
13558
13587
|
"NSURLProtectionSpaceSOCKSProxy",
|
|
13559
|
-
"NSURLSessionDownloadTaskResumeData",
|
|
13560
|
-
"NSURLSessionTransferSizeUnknown",
|
|
13561
13588
|
"NSURLSessionUploadTaskResumeData",
|
|
13562
13589
|
"NSUTF16BigEndianStringEncoding",
|
|
13563
13590
|
"NSUTF16LittleEndianStringEncoding",
|
|
@@ -14741,6 +14768,7 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
14741
14768
|
)
|
|
14742
14769
|
);
|
|
14743
14770
|
const importModuleMaps = /* @__PURE__ */ new Map();
|
|
14771
|
+
const sourceModuleMaps = /* @__PURE__ */ new Map();
|
|
14744
14772
|
const generatedModuleMaps = [];
|
|
14745
14773
|
for (const target of targets) {
|
|
14746
14774
|
const prefix = target.path === "." ? "" : `${target.path}/`;
|
|
@@ -14975,6 +15003,10 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
14975
15003
|
stageTargetFile(target.name, path27.join(layout2.root, modulemap), moduleContents, {
|
|
14976
15004
|
allowExisting: true
|
|
14977
15005
|
});
|
|
15006
|
+
sourceModuleMaps.set(swiftTargetModuleName(target.name), {
|
|
15007
|
+
path: path27.join(layout2.root, modulemap),
|
|
15008
|
+
contents: moduleContents.toString()
|
|
15009
|
+
});
|
|
14978
15010
|
if (modulemap.endsWith("/Modules/module.modulemap")) {
|
|
14979
15011
|
const framework = path27.posix.dirname(path27.posix.dirname(modulemap));
|
|
14980
15012
|
for (const [, header] of moduleContents.toString().matchAll(/\bheader\s+"([^"]+)"/g))
|
|
@@ -15249,6 +15281,7 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
15249
15281
|
if (native.size > 0) mkdirSync6(headerDirectory, { recursive: true });
|
|
15250
15282
|
const headerAliasFlags = Object.keys(input.headerAliases ?? {}).length > 0 ? ["-ivfsoverlay", headerSearch.files[0]] : [];
|
|
15251
15283
|
const nativeHeaderFlags = [...headerAliasFlags];
|
|
15284
|
+
const nativeSwiftHeaderMaps = /* @__PURE__ */ new Map();
|
|
15252
15285
|
const originalMaps = /* @__PURE__ */ new Map();
|
|
15253
15286
|
for (const target of input.nativeTargets ?? []) {
|
|
15254
15287
|
for (const flag of [...target.flags, ...target.cxxFlags]) {
|
|
@@ -15279,30 +15312,33 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
15279
15312
|
);
|
|
15280
15313
|
const moduleName = swiftTargetModuleName(name2);
|
|
15281
15314
|
const originalMap = originalMaps.get(moduleName);
|
|
15282
|
-
const
|
|
15283
|
-
|
|
15315
|
+
const stagedMap = sourceModuleMaps.get(moduleName);
|
|
15316
|
+
const originalPath = originalMap ? path27.join(layout2.root, originalMap) : stagedMap?.path;
|
|
15317
|
+
const originalContents = originalMap ? input.files[originalMap] : stagedMap?.contents;
|
|
15318
|
+
const originalTokens = originalContents ? moduleMapTokens(originalContents) : [];
|
|
15319
|
+
if (originalPath && originalTokens.some(
|
|
15284
15320
|
(token, index) => token === "module" && (originalTokens[index + 1] === "Swift" || originalTokens[index + 1] === `${moduleName}.Swift`)
|
|
15285
15321
|
)) {
|
|
15286
|
-
nativeHeaderFlags.push("-fmodule-map-file=" +
|
|
15322
|
+
nativeHeaderFlags.push("-fmodule-map-file=" + originalPath);
|
|
15323
|
+
nativeSwiftHeaderMaps.set(name2, originalPath);
|
|
15287
15324
|
continue;
|
|
15288
15325
|
}
|
|
15289
15326
|
files.set(
|
|
15290
15327
|
modulemap,
|
|
15291
|
-
|
|
15328
|
+
originalPath ? `extern module ${moduleName} ${JSON.stringify(originalPath)}
|
|
15292
15329
|
module ${moduleName}.Swift {
|
|
15293
15330
|
header ${JSON.stringify(path27.join(headerDirectory, name2 + "-Swift.h"))}
|
|
15294
15331
|
requires objc
|
|
15295
15332
|
}
|
|
15296
15333
|
` : swiftObjCModuleMap(
|
|
15297
15334
|
moduleName,
|
|
15298
|
-
[
|
|
15299
|
-
|
|
15300
|
-
|
|
15301
|
-
],
|
|
15302
|
-
submoduleImports.get(moduleName)
|
|
15335
|
+
(input.nativeTargets?.find((target) => target.name === name2)?.publicHeaders ?? []).map((header) => path27.join(layout2.root, header)),
|
|
15336
|
+
submoduleImports.get(moduleName),
|
|
15337
|
+
path27.join(headerDirectory, name2 + "-Swift.h")
|
|
15303
15338
|
)
|
|
15304
15339
|
);
|
|
15305
15340
|
nativeHeaderFlags.push("-fmodule-map-file=" + modulemap);
|
|
15341
|
+
nativeSwiftHeaderMaps.set(name2, modulemap);
|
|
15306
15342
|
}
|
|
15307
15343
|
const modulePlan = createHash13("sha256").update(
|
|
15308
15344
|
swiftModuleInputFiles(moduleRoot).join("\n")
|
|
@@ -15553,14 +15589,17 @@ module ${moduleName}.Swift {
|
|
|
15553
15589
|
manifest = manifest.replace(product, `${product}
|
|
15554
15590
|
${ONE_PRODUCT},`).replace(flags, `${flags}${ONE_IMPLICIT_FLAGS}`);
|
|
15555
15591
|
}
|
|
15556
|
-
|
|
15592
|
+
const games = gameProducts(input.files);
|
|
15593
|
+
if (games.length > 0) {
|
|
15557
15594
|
const anchor = '.product(name: "CoreLocation", package: "sootsim-swift"),';
|
|
15558
15595
|
if (!manifest.includes(anchor))
|
|
15559
15596
|
throw new Error(
|
|
15560
|
-
"scripts/contrast-app-Package.swift lost the line the
|
|
15597
|
+
"scripts/contrast-app-Package.swift lost the line the game products link at"
|
|
15561
15598
|
);
|
|
15562
|
-
manifest = manifest.replace(
|
|
15563
|
-
|
|
15599
|
+
manifest = manifest.replace(
|
|
15600
|
+
anchor,
|
|
15601
|
+
[anchor, ...games.map((name2) => `${gameProduct(name2)},`)].join("\n ")
|
|
15602
|
+
);
|
|
15564
15603
|
}
|
|
15565
15604
|
files.set(path27.join(layout2.root, "Package.swift"), manifest + moduleFiles);
|
|
15566
15605
|
} else {
|
|
@@ -15659,6 +15698,7 @@ module ${moduleName}.Swift {
|
|
|
15659
15698
|
nativeFlags,
|
|
15660
15699
|
nativeImportFlags,
|
|
15661
15700
|
nativeHeaderFlags,
|
|
15701
|
+
nativeSwiftHeaderMaps,
|
|
15662
15702
|
nativeHeaderDeclarations,
|
|
15663
15703
|
objcImplementationModules: new Set(
|
|
15664
15704
|
targets.filter(
|
|
@@ -15674,7 +15714,7 @@ module ${moduleName}.Swift {
|
|
|
15674
15714
|
siblings: moduleSiblings,
|
|
15675
15715
|
moduleRoot,
|
|
15676
15716
|
oneModule: input.oneModule,
|
|
15677
|
-
|
|
15717
|
+
gameProducts: gameProducts(input.files),
|
|
15678
15718
|
distribution: distribution ?? void 0,
|
|
15679
15719
|
moduleExcludes,
|
|
15680
15720
|
deferDarwinOverlay: native.size > 0 && toolsetOrdersLibcxxBeforeDarwinOverlay(
|
|
@@ -15816,30 +15856,30 @@ module ${moduleName}.Swift {
|
|
|
15816
15856
|
)
|
|
15817
15857
|
])
|
|
15818
15858
|
);
|
|
15859
|
+
const producerSet = /* @__PURE__ */ new Set([...Object.keys(nativeHeaderDeclarations), ...producers]);
|
|
15860
|
+
const orderedProducers = [];
|
|
15819
15861
|
const included = /* @__PURE__ */ new Set();
|
|
15820
15862
|
const include = (name2) => {
|
|
15821
15863
|
if (included.has(name2)) return;
|
|
15822
15864
|
included.add(name2);
|
|
15823
15865
|
for (const dependency of dependencies.get(name2) ?? []) include(dependency);
|
|
15866
|
+
if (producerSet.has(name2)) orderedProducers.push(name2);
|
|
15824
15867
|
};
|
|
15825
|
-
for (const producer of
|
|
15868
|
+
for (const producer of producerSet)
|
|
15826
15869
|
for (const dependency of dependencies.get(producer) ?? []) include(dependency);
|
|
15870
|
+
const needsHeaderStages = [...producerSet].some((name2) => included.has(name2));
|
|
15871
|
+
for (const producer of producerSet) include(producer);
|
|
15827
15872
|
return {
|
|
15828
15873
|
nativeBuildTargets: [...native].flatMap(([name2, plan]) => [
|
|
15829
15874
|
...!plan.mixed && plan.sources.length > 0 ? [name2] : [],
|
|
15830
15875
|
...plan.groups?.map((group) => group.name) ?? (plan.late ? [plan.late.name] : [])
|
|
15831
15876
|
]),
|
|
15832
|
-
headerProducers:
|
|
15833
|
-
.../* @__PURE__ */ new Set([
|
|
15834
|
-
...Object.keys(nativeHeaderDeclarations),
|
|
15835
|
-
...producers.filter((name2) => !included.has(name2))
|
|
15836
|
-
])
|
|
15837
|
-
],
|
|
15877
|
+
headerProducers: orderedProducers,
|
|
15838
15878
|
emittedHeaderProducers: [
|
|
15839
15879
|
.../* @__PURE__ */ new Set([...Object.keys(nativeHeaderDeclarations), ...producers])
|
|
15840
15880
|
],
|
|
15841
15881
|
nativeHeaderDeclarations,
|
|
15842
|
-
headerProductTarget,
|
|
15882
|
+
headerProductTarget: needsHeaderStages ? void 0 : headerProductTarget,
|
|
15843
15883
|
targetFailures,
|
|
15844
15884
|
generatedOwners,
|
|
15845
15885
|
targetToolset
|
|
@@ -16081,14 +16121,9 @@ function linkedFrameworkTargets(moduleRoot, input) {
|
|
|
16081
16121
|
))
|
|
16082
16122
|
reach(match[1]);
|
|
16083
16123
|
}
|
|
16084
|
-
|
|
16085
|
-
|
|
16086
|
-
const wanted = [
|
|
16087
|
-
"PeachApp",
|
|
16088
|
-
...input.oneModule ? ["One"] : [],
|
|
16089
|
-
...importsSpriteKit(input.files) ? ["SpriteKit"] : [],
|
|
16090
|
-
...reached
|
|
16091
|
-
];
|
|
16124
|
+
const games = gameProducts(input.files);
|
|
16125
|
+
for (const product of games) for (const name2 of GAME_REACH[product] ?? []) reach(name2);
|
|
16126
|
+
const wanted = ["PeachApp", ...input.oneModule ? ["One"] : [], ...games, ...reached];
|
|
16092
16127
|
const linked = [...new Set(wanted)].filter((name2) => libraries.has(name2));
|
|
16093
16128
|
if (!linked.includes("PeachApp"))
|
|
16094
16129
|
throw new Error("swift-compile: the framework package declares no PeachApp library");
|
|
@@ -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 __defProp = Object.defineProperty;
|
|
@@ -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 __defProp = Object.defineProperty;
|
|
@@ -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;
|
package/dist-lib/swift.cjs
CHANGED
|
@@ -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 __defProp = Object.defineProperty;
|