peachsim 0.1.2179 → 0.1.2182
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/package.ts +7 -2
- package/cli/commands/shell-url.ts +28 -22
- 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 +225 -85
- 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 +2 -2
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +140 -48
- 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 +201 -82
- package/dist-lib/host/fetch-proxy-handler.cjs +4 -4
- 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 +4 -4
- 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 +11 -3
- 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 +4 -4
- package/dist-lib/native-app-identity-project.cjs +2 -2
- package/dist-lib/native-app-identity-project.mjs +2 -2
- package/dist-lib/native-app-identity.cjs +1 -1
- package/dist-lib/native-app-identity.mjs +1 -1
- 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 +24 -24
- package/dist-lib/public-origins-lib.json +53 -53
- 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 +239 -176
- package/dist-lib/swift-compile.cjs +85 -16
- package/dist-lib/swift-compile.mjs +85 -16
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +2 -2
- package/dist-lib/swift-submit.mjs +2 -2
- package/dist-lib/swift-toolchain.cjs +1 -1
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +87 -18
- package/dist-lib/vite.cjs +4 -4
- 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/ios/frame-art.d.ts +41 -0
- package/dist-types/packages/peach-engine/src/ios/frame-paint.d.ts +43 -0
- package/dist-types/packages/peach-engine/src/ios/frame-svg.d.ts +4 -0
- package/dist-types/packages/peach-engine/src/render-worker/map-command-channel.d.ts +14 -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/UIKit.framework/Headers/UIScrollView.h +8 -25
- package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UIKitTypes.h +26 -0
- package/src/expo-native-workspace.ts +17 -20
- package/src/expo-swift-bundle.ts +6 -1
- package/src/expo-swift-host.ts +35 -6
- package/src/expo-widgets-bundle.ts +12 -8
- package/src/expoSwiftContract.ts +3 -0
- package/src/kotlin-host.ts +10 -2
- package/src/native-bundles.ts +30 -10
- package/src/one-sdk/source.ts +10 -4
- package/src/one-sdk-bundle.ts +57 -24
- package/src/screenshots/frame-compose.ts +14 -109
- package/src/swift-compile.ts +105 -13
- package/src/swift-submit.ts +2 -1
- package/src/wasm-optimize.ts +13 -4
package/dist-lib/vite-swift.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2182 | (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;
|
|
@@ -14977,6 +14977,13 @@ var BINARYEN_RELEASES = /* @__PURE__ */ new Map([
|
|
|
14977
14977
|
]
|
|
14978
14978
|
]);
|
|
14979
14979
|
async function runWasmOpt(file, output2, skipPasses, binary) {
|
|
14980
|
+
const admittedCores = windowAdmission()?.cores ?? Number(process.env.TM_EXEC_CPU_CORES);
|
|
14981
|
+
const requestedCores = Number(process.env.BINARYEN_CORES);
|
|
14982
|
+
const environment = { ...process.env, WASM_OPT_PATH: binary };
|
|
14983
|
+
if (Number.isInteger(admittedCores) && admittedCores > 0)
|
|
14984
|
+
environment.BINARYEN_CORES = String(
|
|
14985
|
+
Number.isInteger(requestedCores) && requestedCores > 0 ? Math.min(admittedCores, requestedCores) : admittedCores
|
|
14986
|
+
);
|
|
14980
14987
|
const result = await (0, import_wasm_opt.wasmOpt)(
|
|
14981
14988
|
[
|
|
14982
14989
|
"-Oz",
|
|
@@ -14986,7 +14993,7 @@ async function runWasmOpt(file, output2, skipPasses, binary) {
|
|
|
14986
14993
|
"-o",
|
|
14987
14994
|
output2
|
|
14988
14995
|
],
|
|
14989
|
-
{ env:
|
|
14996
|
+
{ env: environment }
|
|
14990
14997
|
);
|
|
14991
14998
|
if (result.status !== 0)
|
|
14992
14999
|
throw new Error(`wasm-opt exited ${result.status}: ${result.stderr}`);
|
|
@@ -17039,7 +17046,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
|
|
|
17039
17046
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
17040
17047
|
var MULTI_MANIFEST_VERSION = 68;
|
|
17041
17048
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
17042
|
-
var compilerSourceDigest = true ? "
|
|
17049
|
+
var compilerSourceDigest = true ? "73960368f0b83cf042511655d857d5f64204fa539e2c984423a12c08657b068e" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
17043
17050
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
17044
17051
|
const hash = (0, import_node_crypto13.createHash)("sha256");
|
|
17045
17052
|
hash.update(`swift-compile
|
|
@@ -17165,6 +17172,20 @@ function emitSwiftPackageManifest(args) {
|
|
|
17165
17172
|
const prebuilt = args.prebuilt;
|
|
17166
17173
|
const linkedObjects = Boolean(distribution || prebuilt);
|
|
17167
17174
|
const cxxFlagsFor = (flags) => args.deferDarwinOverlay ? withoutWasmOverlayIsystem(flags) : flags;
|
|
17175
|
+
const packageModules = new Set(
|
|
17176
|
+
targets.filter(({ name: name3 }) => !args.sourceSwiftTargets?.has(name3)).map(({ name: name3 }) => swiftTargetModuleName(name3))
|
|
17177
|
+
);
|
|
17178
|
+
const mapsPackageModule = (flag) => {
|
|
17179
|
+
if (!flag.startsWith("-fmodule-map-file=")) return false;
|
|
17180
|
+
const file = flag.slice("-fmodule-map-file=".length).replaceAll(SWIFT_NATIVE_INPUT_ROOT, args.root);
|
|
17181
|
+
if (!file.includes("/Pods/Headers/")) return false;
|
|
17182
|
+
const map = args.files.get(file) ?? ((0, import_node_fs27.existsSync)(file) ? (0, import_node_fs27.readFileSync)(file) : void 0);
|
|
17183
|
+
const name3 = map === void 0 ? void 0 : moduleMapName(map.toString());
|
|
17184
|
+
return name3 !== void 0 && packageModules.has(name3);
|
|
17185
|
+
};
|
|
17186
|
+
const withoutPackageModuleMaps = (flags) => flags.filter((flag) => !mapsPackageModule(flag));
|
|
17187
|
+
const targetCFlags = (flags) => cFlagArray(withoutPackageModuleMaps(flags));
|
|
17188
|
+
const targetCxxFlags = (flags) => cxxFlagArray(withoutPackageModuleMaps(flags));
|
|
17168
17189
|
const reachedFrameworks = /* @__PURE__ */ new Set();
|
|
17169
17190
|
const reach = (name3) => {
|
|
17170
17191
|
if (reachedFrameworks.has(name3) || targets.some((target) => swiftTargetModuleName(target.name) === name3))
|
|
@@ -17244,7 +17265,9 @@ function emitSwiftPackageManifest(args) {
|
|
|
17244
17265
|
const macroSettings = (values) => (values ?? []).map((value) => ` ${clangMacroSetting(value)},`).join("");
|
|
17245
17266
|
const flagArray = (literal2) => `peachCompilerArguments(${JSON.stringify(literal2.replace(/,\s*]$/, "]"))})`;
|
|
17246
17267
|
const swiftFlagArray = (literal2) => {
|
|
17247
|
-
const flags = JSON.parse(literal2.replace(/,\s*]$/, "]"))
|
|
17268
|
+
const flags = JSON.parse(literal2.replace(/,\s*]$/, "]")).filter(
|
|
17269
|
+
(flag, index, all) => !mapsPackageModule(flag) && !(flag === "-Xcc" && mapsPackageModule(all[index + 1] ?? ""))
|
|
17270
|
+
);
|
|
17248
17271
|
const content = flags.map((flag) => JSON.stringify(flag)).join("\n") + "\n";
|
|
17249
17272
|
const digest = (0, import_node_crypto13.createHash)("sha256").update(content).digest("hex");
|
|
17250
17273
|
const file = import_node_path27.default.join(args.root, ".peach-swift-arguments", `${digest}.rsp`);
|
|
@@ -17404,18 +17427,18 @@ function emitSwiftPackageManifest(args) {
|
|
|
17404
17427
|
"c"
|
|
17405
17428
|
).map((entry) => ` ${entry},`).join(
|
|
17406
17429
|
""
|
|
17407
|
-
)} .unsafeFlags(${flagArray(
|
|
17430
|
+
)} .unsafeFlags(${flagArray(targetCFlags([...nativeFlags, ...native.clang.flags]))})]`,
|
|
17408
17431
|
...nativeCxx ? [
|
|
17409
17432
|
`cxxSettings: [${cxxDefines}${clangSettingEntries(
|
|
17410
17433
|
frameworkSearchFlags(target, "cxx"),
|
|
17411
17434
|
"cxx"
|
|
17412
17435
|
).map((entry) => ` ${entry},`).join(
|
|
17413
17436
|
""
|
|
17414
|
-
)} .unsafeFlags(${flagArray(
|
|
17437
|
+
)} .unsafeFlags(${flagArray(targetCxxFlags([...cxxFlagsFor(nativeFlags), ...native.clang.cxxFlags]))})]`
|
|
17415
17438
|
] : []
|
|
17416
17439
|
].join(", ") : [
|
|
17417
|
-
`cSettings: [${cDefines}${declaredClangSettings(target, "c")} .unsafeFlags(${flagArray(
|
|
17418
|
-
`cxxSettings: [${cxxDefines}${declaredClangSettings(target, "cxx")} .unsafeFlags(${flagArray(
|
|
17440
|
+
`cSettings: [${cDefines}${declaredClangSettings(target, "c")} .unsafeFlags(${flagArray(targetCFlags([...nativeFlags, ...native?.flags ?? []]))})]`,
|
|
17441
|
+
`cxxSettings: [${cxxDefines}${declaredClangSettings(target, "cxx")} .unsafeFlags(${flagArray(targetCxxFlags([...cxxFlagsFor(nativeFlags), ...native?.cxxFlags ?? []]))})]`
|
|
17419
17442
|
].join(", ");
|
|
17420
17443
|
const exclusions = native?.clang ? [] : [
|
|
17421
17444
|
...native ? native.exclude ?? native.lateSources : [],
|
|
@@ -17484,9 +17507,9 @@ function emitSwiftPackageManifest(args) {
|
|
|
17484
17507
|
` path: ${JSON.stringify(group.path)},`,
|
|
17485
17508
|
` sources: ${JSON.stringify(group.sources)},`,
|
|
17486
17509
|
` publicHeadersPath: ${JSON.stringify(native.groups ? "include" : "PeachSwiftImplementation")},`,
|
|
17487
|
-
` cSettings: [${macroSettings(owner?.cDefines)}${declaredClangSettings(owner, "c")} .unsafeFlags(${flagArray(
|
|
17510
|
+
` cSettings: [${macroSettings(owner?.cDefines)}${declaredClangSettings(owner, "c")} .unsafeFlags(${flagArray(targetCFlags([...nativeFlags, "-I", native.includeDirectory, ...args.headerDirectory ? ["-I", args.headerDirectory] : [], ...group.flags]))})],`,
|
|
17488
17511
|
...group.sources.some((source) => /\.(?:cc|cpp|cxx|mm)$/.test(source)) ? [
|
|
17489
|
-
` cxxSettings: [${macroSettings(owner?.cxxDefines)}${declaredClangSettings(owner, "cxx")} .unsafeFlags(${flagArray(
|
|
17512
|
+
` cxxSettings: [${macroSettings(owner?.cxxDefines)}${declaredClangSettings(owner, "cxx")} .unsafeFlags(${flagArray(targetCxxFlags([...cxxFlagsFor(nativeFlags), "-I", native.includeDirectory, ...group.cxxFlags]))})]),`
|
|
17490
17513
|
] : [" ),"]
|
|
17491
17514
|
]) : [];
|
|
17492
17515
|
}),
|
|
@@ -18990,7 +19013,10 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
18990
19013
|
const target = bySourcePath.find(
|
|
18991
19014
|
(candidate) => candidate.path === "." || file.startsWith(`${candidate.path}/`)
|
|
18992
19015
|
);
|
|
18993
|
-
|
|
19016
|
+
const excluded = target?.exclude?.some(
|
|
19017
|
+
(name3) => file === import_node_path27.default.posix.join(target.path, name3)
|
|
19018
|
+
);
|
|
19019
|
+
if (target && !excluded) swiftTargets.add(target.name);
|
|
18994
19020
|
}
|
|
18995
19021
|
const importedModules = /* @__PURE__ */ new Set();
|
|
18996
19022
|
const swiftImportedModules = /* @__PURE__ */ new Set();
|
|
@@ -20036,6 +20062,9 @@ module ${moduleName}.Swift {
|
|
|
20036
20062
|
frameworkLink,
|
|
20037
20063
|
[
|
|
20038
20064
|
...prebuilt.objects.map(quote),
|
|
20065
|
+
"-Wl,--start-lib",
|
|
20066
|
+
...prebuilt.lazyObjects.map(quote),
|
|
20067
|
+
"-Wl,--end-lib",
|
|
20039
20068
|
...darwinRecordsRegion(prebuilt.providers.map(quote))
|
|
20040
20069
|
].join("\n") + "\n"
|
|
20041
20070
|
);
|
|
@@ -20321,7 +20350,7 @@ function readCompiledArtifact(directory, hash) {
|
|
|
20321
20350
|
return null;
|
|
20322
20351
|
const bytes = (0, import_node_fs27.readFileSync)(import_node_path27.default.join(directory, "app.wasm"));
|
|
20323
20352
|
const gzip2 = (0, import_node_fs27.readFileSync)(import_node_path27.default.join(directory, "icu.gz"));
|
|
20324
|
-
if ((0, import_node_crypto13.createHash)("sha256").update(bytes).digest("hex") !== receipt.wasm || (0, import_node_crypto13.createHash)("sha256").update(gzip2).digest("hex") !== receipt.icu || bytes.length
|
|
20353
|
+
if ((0, import_node_crypto13.createHash)("sha256").update(bytes).digest("hex") !== receipt.wasm || (0, import_node_crypto13.createHash)("sha256").update(gzip2).digest("hex") !== receipt.icu || bytes.length <= 8 || bytes.readUInt32LE(0) !== 1836278016 || bytes.readUInt32LE(4) !== 1)
|
|
20325
20354
|
return null;
|
|
20326
20355
|
return { hash, bytes, icu: { sha256: receipt.icu, gzip: gzip2 } };
|
|
20327
20356
|
} catch (error) {
|
|
@@ -20442,7 +20471,13 @@ function linkedFrameworkTargets(moduleRoot, input) {
|
|
|
20442
20471
|
);
|
|
20443
20472
|
const targets = compileTargets(input);
|
|
20444
20473
|
const planning = targets.length > 0 ? targets : [{ name: "App", path: "." }];
|
|
20445
|
-
const siblings = swiftTargetDependencies(
|
|
20474
|
+
const siblings = swiftTargetDependencies(
|
|
20475
|
+
input.files,
|
|
20476
|
+
planning.map(
|
|
20477
|
+
(target) => input.libraries?.[target.name] ? { ...target, exclude: [] } : target
|
|
20478
|
+
),
|
|
20479
|
+
libraries.keys()
|
|
20480
|
+
);
|
|
20446
20481
|
const reached = /* @__PURE__ */ new Set();
|
|
20447
20482
|
const reach = (name3) => {
|
|
20448
20483
|
if (name3 === "SwiftUI") return;
|
|
@@ -20744,9 +20779,31 @@ async function buildFrameworkProducts(scratch2, args) {
|
|
|
20744
20779
|
}
|
|
20745
20780
|
const providers = (0, import_node_fs27.readdirSync)(providerDir).filter((file) => file.endsWith(".o")).sort().map((file) => import_node_path27.default.join(providerDir, file));
|
|
20746
20781
|
for (const provider of providers) linked.owners.set(provider, "DarwinRecords");
|
|
20782
|
+
const archive = import_node_path27.default.join(scratch2, "lib");
|
|
20783
|
+
(0, import_node_fs27.rmSync)(archive, { recursive: true, force: true });
|
|
20784
|
+
(0, import_node_fs27.mkdirSync)(archive);
|
|
20785
|
+
const archived = /* @__PURE__ */ new Map();
|
|
20786
|
+
for (const object4 of objects) {
|
|
20787
|
+
const target = linked.owners.get(object4);
|
|
20788
|
+
const dir = import_node_path27.default.join(release, `${target}.build`);
|
|
20789
|
+
if (!target || target === "Darwin" || !object4.startsWith(dir + import_node_path27.default.sep)) continue;
|
|
20790
|
+
const name3 = `${target}-${import_node_path27.default.relative(dir, object4).replaceAll(import_node_path27.default.sep, "-").replace(/\.swift\.o$/, ".o")}`;
|
|
20791
|
+
(0, import_node_fs27.symlinkSync)(object4, import_node_path27.default.join(archive, name3));
|
|
20792
|
+
archived.set(object4, `lib/${name3}`);
|
|
20793
|
+
}
|
|
20794
|
+
const roots = swiftObjcRootObjects(`${scratch2}
|
|
20795
|
+
${args.frameworkKey}`, scratch2, [
|
|
20796
|
+
...archived.values()
|
|
20797
|
+
]);
|
|
20798
|
+
const linkedObjects = objects.map((object4) => {
|
|
20799
|
+
const name3 = archived.get(object4);
|
|
20800
|
+
return name3 ? { path: import_node_path27.default.join(scratch2, name3), lazy: !roots.has(name3) } : { path: object4, lazy: false };
|
|
20801
|
+
});
|
|
20747
20802
|
return {
|
|
20803
|
+
root: scratch2,
|
|
20748
20804
|
modules: import_node_path27.default.join(release, "Modules"),
|
|
20749
|
-
objects,
|
|
20805
|
+
objects: linkedObjects.filter((object4) => !object4.lazy).map((object4) => object4.path),
|
|
20806
|
+
lazyObjects: linkedObjects.filter((object4) => object4.lazy).map((object4) => object4.path),
|
|
20750
20807
|
owners: linked.owners,
|
|
20751
20808
|
providers,
|
|
20752
20809
|
link,
|
|
@@ -20900,6 +20957,10 @@ ${args.frameworkKey}
|
|
|
20900
20957
|
for (const object4 of args.prebuilt.objects)
|
|
20901
20958
|
hash.update(`object
|
|
20902
20959
|
${object4}
|
|
20960
|
+
${statOf(object4)}`);
|
|
20961
|
+
for (const object4 of args.prebuilt.lazyObjects)
|
|
20962
|
+
hash.update(`lazy-object
|
|
20963
|
+
${object4}
|
|
20903
20964
|
${statOf(object4)}`);
|
|
20904
20965
|
for (const object4 of args.prebuilt.providers)
|
|
20905
20966
|
hash.update(`provider
|
|
@@ -21316,7 +21377,7 @@ function compileSwiftProjectOnce(input, options) {
|
|
|
21316
21377
|
pruneSwiftWasmLink(
|
|
21317
21378
|
root,
|
|
21318
21379
|
options.toolchainBin,
|
|
21319
|
-
frameworkRoot,
|
|
21380
|
+
prebuilt?.root ?? frameworkRoot,
|
|
21320
21381
|
input.staticClangTargets,
|
|
21321
21382
|
options.project,
|
|
21322
21383
|
void 0,
|
|
@@ -21340,11 +21401,19 @@ function compileSwiftProjectOnce(input, options) {
|
|
|
21340
21401
|
optimized
|
|
21341
21402
|
});
|
|
21342
21403
|
else if (input.optimize) await optimizeWasm(output2, optimized);
|
|
21404
|
+
const executable = input.optimize ? optimized : output2;
|
|
21405
|
+
await runCompiler(
|
|
21406
|
+
import_node_path27.default.join(options.toolchainBin, "llvm-objcopy"),
|
|
21407
|
+
["--remove-section=.swift1_autolink_entries", executable],
|
|
21408
|
+
buildOptions
|
|
21409
|
+
);
|
|
21343
21410
|
const artifact = {
|
|
21344
21411
|
hash,
|
|
21345
|
-
bytes: (0, import_node_fs27.readFileSync)(
|
|
21412
|
+
bytes: (0, import_node_fs27.readFileSync)(executable),
|
|
21346
21413
|
icu: await icu
|
|
21347
21414
|
};
|
|
21415
|
+
if (artifact.bytes.length <= 8)
|
|
21416
|
+
throw new Error("swift-compile: deferred linker produced no executable");
|
|
21348
21417
|
if (!options.project) saveCompiledArtifact(root, artifact);
|
|
21349
21418
|
saveSharedArtifact(sharedRoot, artifact);
|
|
21350
21419
|
report("compiled artifact verified");
|
|
@@ -29529,7 +29598,7 @@ var MAX_SWIFT_COMPILE_METAL_TOTAL_BYTES = 8 * 1024 * 1024;
|
|
|
29529
29598
|
var MAX_SWIFT_COMPILE_IMAGES = 256;
|
|
29530
29599
|
var MAX_SWIFT_COMPILE_IMAGE_BYTES = 4 * 1024 * 1024;
|
|
29531
29600
|
var MAX_SWIFT_COMPILE_IMAGE_TOTAL_BYTES = 16 * 1024 * 1024;
|
|
29532
|
-
var SWIFT_HOST_ABI =
|
|
29601
|
+
var SWIFT_HOST_ABI = 70;
|
|
29533
29602
|
var POLL_INTERVAL_MS = 1500;
|
|
29534
29603
|
function swiftNativeEntry(native, file) {
|
|
29535
29604
|
return {
|
|
@@ -30380,7 +30449,7 @@ function sourceClosureDigest(srcDir, entrypoints) {
|
|
|
30380
30449
|
return hash.digest("hex");
|
|
30381
30450
|
}
|
|
30382
30451
|
var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
|
|
30383
|
-
var STANDIN_SOURCE_DIGEST = true ? "
|
|
30452
|
+
var STANDIN_SOURCE_DIGEST = true ? "cc396d180b261e922288f645807b4a704fa92410ffc902bfbaac72b81af6413a" : standinSourceDigest();
|
|
30384
30453
|
|
|
30385
30454
|
// src/swift-standins.ts
|
|
30386
30455
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2182 | (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;
|
|
@@ -1416,7 +1416,7 @@ function isValidRuntimeVersion(value) {
|
|
|
1416
1416
|
}
|
|
1417
1417
|
|
|
1418
1418
|
// runtime-companion.json
|
|
1419
|
-
var runtime_companion_default = { abi: 1, sha256: "
|
|
1419
|
+
var runtime_companion_default = { abi: 1, sha256: "d1826a4d4d05c87a157d5b160177de9cd6f1fd10a3d142804a92a0d57ff3060f", file: "node/cli-d1826a4d4d05c87a157d5b160177de9cd6f1fd10a3d142804a92a0d57ff3060f.cjs" };
|
|
1420
1420
|
|
|
1421
1421
|
// src/answeredNativePackages.ts
|
|
1422
1422
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
@@ -1909,7 +1909,7 @@ function readIosSdkTree(root) {
|
|
|
1909
1909
|
|
|
1910
1910
|
// src/swift-standin-digest.ts
|
|
1911
1911
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
1912
|
-
var STANDIN_SOURCE_DIGEST = true ? "
|
|
1912
|
+
var STANDIN_SOURCE_DIGEST = true ? "cc396d180b261e922288f645807b4a704fa92410ffc902bfbaac72b81af6413a" : standinSourceDigest();
|
|
1913
1913
|
|
|
1914
1914
|
// src/expo-native-workspace.ts
|
|
1915
1915
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
@@ -5388,7 +5388,7 @@ var FOUNDATION_IMPLICIT_MODULES = [
|
|
|
5388
5388
|
var FOUNDATION_IMPLICIT_FLAGS = FOUNDATION_IMPLICIT_MODULES.map(
|
|
5389
5389
|
(module2) => `, "-Xfrontend", "-import-module", "-Xfrontend", "${module2}"`
|
|
5390
5390
|
).join("");
|
|
5391
|
-
var compilerSourceDigest = true ? "
|
|
5391
|
+
var compilerSourceDigest = true ? "73960368f0b83cf042511655d857d5f64204fa539e2c984423a12c08657b068e" : swiftCompilerSourceDigest2(__sootsim_import_meta_dirname);
|
|
5392
5392
|
var CORE_FOUNDATION_HANDLE_IMPORTS = [
|
|
5393
5393
|
"CFAllocator",
|
|
5394
5394
|
"CFArray",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2182 | (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;
|
|
@@ -14,6 +14,7 @@ export * as guest_import_meta from './guest-import-meta.d.ts';
|
|
|
14
14
|
export * as guest_module_overrides from './guest-module-overrides.d.ts';
|
|
15
15
|
export * as ios_chrome_metrics from './ios/chrome-metrics.d.ts';
|
|
16
16
|
export * as ios_duo_housing from './ios/duo-housing.d.ts';
|
|
17
|
+
export * as ios_frame_svg from './ios/frame-svg.d.ts';
|
|
17
18
|
export * as metro_fingerprint from './metro-fingerprint.d.ts';
|
|
18
19
|
export * as metro_fingerprint_registry_client from './metro-fingerprint-registry-client.d.ts';
|
|
19
20
|
export * as peach_warm_manifest from './peach-warm-manifest.d.ts';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface EdgeShadow {
|
|
2
|
+
inset: boolean;
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
spread: number;
|
|
6
|
+
color: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const METALLIC_RING: EdgeShadow[];
|
|
9
|
+
export declare const ANDROID_METALLIC_RING: EdgeShadow[];
|
|
10
|
+
export type SideButtonSide = 'left' | 'right' | 'top' | 'bottom';
|
|
11
|
+
export declare const SIDE_BUTTON_COLOR = "#212121";
|
|
12
|
+
export declare const SIDE_BUTTON_RADIUS = 1.5;
|
|
13
|
+
export declare const SIDE_BUTTON_HOVER_GROWTH = 2.5;
|
|
14
|
+
export declare const SIDE_BUTTON_HOVER_MS = 150;
|
|
15
|
+
export declare const SIDE_BUTTON_HIT_PAD_OUTWARD = 12;
|
|
16
|
+
export declare const SIDE_BUTTON_HIT_PAD_ALONG = 8;
|
|
17
|
+
export declare const SIDE_BUTTON_SHADOW_SPILL = 3;
|
|
18
|
+
export declare function sideButtonShadows(side: SideButtonSide): EdgeShadow[];
|
|
19
|
+
export interface GradientStop {
|
|
20
|
+
color: [number, number, number, number];
|
|
21
|
+
at: number;
|
|
22
|
+
}
|
|
23
|
+
export declare const LEGACY_BODY_GRADIENT: GradientStop[];
|
|
24
|
+
export declare const LEGACY_HOME_BUTTON_CENTER: {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
};
|
|
28
|
+
export declare const LEGACY_HOME_BUTTON_GRADIENT: GradientStop[];
|
|
29
|
+
export declare const LEGACY_HOME_BUTTON_SHADOWS: EdgeShadow[];
|
|
30
|
+
export declare const LEGACY_HOME_GLYPH_SIZE = 16;
|
|
31
|
+
export declare const LEGACY_HOME_GLYPH_RADIUS = 4;
|
|
32
|
+
export declare const LEGACY_HOME_GLYPH_SHADOWS: EdgeShadow[];
|
|
33
|
+
export declare function legacyHomeButtonOrigin({ screenWidth, screenHeight, landscape, chinRight, }: {
|
|
34
|
+
screenWidth: number;
|
|
35
|
+
screenHeight: number;
|
|
36
|
+
landscape: boolean;
|
|
37
|
+
chinRight: boolean;
|
|
38
|
+
}): {
|
|
39
|
+
top: number;
|
|
40
|
+
left: number;
|
|
41
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type EdgeShadow, type SideButtonSide } from './frame-art.d.ts';
|
|
2
|
+
import type { CornerRadii } from '../../../../../src/device-catalog.ts';
|
|
3
|
+
export type FramePaintContext = Pick<CanvasRenderingContext2D, 'save' | 'restore' | 'beginPath' | 'closePath' | 'moveTo' | 'lineTo' | 'arcTo' | 'arc' | 'rect' | 'roundRect' | 'translate' | 'scale' | 'clearRect' | 'createLinearGradient' | 'createRadialGradient'> & {
|
|
4
|
+
fillStyle: CanvasRenderingContext2D['fillStyle'];
|
|
5
|
+
fill(rule?: CanvasFillRule): void;
|
|
6
|
+
clip(): void;
|
|
7
|
+
};
|
|
8
|
+
export interface FramePaintButton {
|
|
9
|
+
side: SideButtonSide;
|
|
10
|
+
top: number;
|
|
11
|
+
height: number;
|
|
12
|
+
width: number;
|
|
13
|
+
hover: number;
|
|
14
|
+
}
|
|
15
|
+
export interface FramePaintSpec {
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
radii: CornerRadii;
|
|
19
|
+
body: 'solid' | 'legacy' | null;
|
|
20
|
+
bodyColor?: string;
|
|
21
|
+
ring: EdgeShadow[] | null;
|
|
22
|
+
outline?: {
|
|
23
|
+
width: number;
|
|
24
|
+
color: string;
|
|
25
|
+
} | null;
|
|
26
|
+
buttons: FramePaintButton[];
|
|
27
|
+
buttonInk?: string;
|
|
28
|
+
home: {
|
|
29
|
+
top: number;
|
|
30
|
+
left: number;
|
|
31
|
+
} | null;
|
|
32
|
+
grid?: {
|
|
33
|
+
scale: number;
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export declare function framePaintMargin(spec: Pick<FramePaintSpec, 'outline'> & {
|
|
39
|
+
buttons: {
|
|
40
|
+
width: number;
|
|
41
|
+
}[];
|
|
42
|
+
}): number;
|
|
43
|
+
export declare function paintDeviceFrame(ctx: FramePaintContext, spec: FramePaintSpec): void;
|
|
@@ -9,16 +9,22 @@ export type MapStyle = string | {
|
|
|
9
9
|
sources: Record<string, unknown>;
|
|
10
10
|
layers: Array<Record<string, unknown>>;
|
|
11
11
|
};
|
|
12
|
+
export type MapScaleLocale = {
|
|
13
|
+
languageTag: string;
|
|
14
|
+
measurementSystem: 'metric' | 'us' | 'uk';
|
|
15
|
+
};
|
|
12
16
|
export type MapMountOptions = {
|
|
13
17
|
style?: MapStyle;
|
|
14
18
|
nativeAppearance?: 'light' | 'dark';
|
|
15
19
|
apple?: NativeSurfaceIdentity & {
|
|
16
20
|
token: string;
|
|
17
21
|
evaluationId: string;
|
|
22
|
+
locale: MapScaleLocale;
|
|
18
23
|
};
|
|
19
24
|
mapType?: 'satellite' | 'hybrid';
|
|
20
25
|
controls?: {
|
|
21
26
|
kind: 'compass' | 'scale' | 'userLocation';
|
|
27
|
+
top?: number;
|
|
22
28
|
}[];
|
|
23
29
|
projection?: MapProjection;
|
|
24
30
|
center?: LngLat;
|
|
@@ -149,6 +155,14 @@ export type MapCommand = {
|
|
|
149
155
|
kind: 'markers';
|
|
150
156
|
mapId: string;
|
|
151
157
|
markers: MapMarker[];
|
|
158
|
+
} | {
|
|
159
|
+
kind: 'locale';
|
|
160
|
+
mapId: string;
|
|
161
|
+
locale: MapScaleLocale;
|
|
162
|
+
} | {
|
|
163
|
+
kind: 'controls';
|
|
164
|
+
mapId: string;
|
|
165
|
+
controls: NonNullable<MapMountOptions['controls']>;
|
|
152
166
|
} | {
|
|
153
167
|
kind: 'overlays';
|
|
154
168
|
mapId: string;
|
package/kotlin/sdk.tar.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
package/runtime-companion.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":1,"sha256":"
|
|
1
|
+
{"abi":1,"sha256":"d1826a4d4d05c87a157d5b160177de9cd6f1fd10a3d142804a92a0d57ff3060f","file":"node/cli-d1826a4d4d05c87a157d5b160177de9cd6f1fd10a3d142804a92a0d57ff3060f.cjs"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// Copyright (c) 2007-2018 Apple Inc. All rights reserved.
|
|
7
7
|
//
|
|
8
8
|
|
|
9
|
+
#import <UIKitTypes/UIKitTypes.h>
|
|
9
10
|
#import <Foundation/Foundation.h>
|
|
10
11
|
#import <CoreGraphics/CoreGraphics.h>
|
|
11
12
|
#import <UIKit/UIView.h>
|
|
@@ -15,31 +16,13 @@
|
|
|
15
16
|
|
|
16
17
|
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
UIScrollViewKeyboardDismissModeNone,
|
|
26
|
-
UIScrollViewKeyboardDismissModeOnDrag, // dismisses the keyboard when a drag begins
|
|
27
|
-
UIScrollViewKeyboardDismissModeInteractive, // the keyboard follows the dragging touch off screen, and may be pulled upward again to cancel the dismiss
|
|
28
|
-
UIScrollViewKeyboardDismissModeOnDragWithAccessory, // dismisses both keyboard and accessory in the style of UIScrollViewKeyboardDismissModeOnDrag
|
|
29
|
-
UIScrollViewKeyboardDismissModeInteractiveWithAccessory // dismisses both keyboard and accessory in the style of UIScrollViewKeyboardDismissModeInteractive
|
|
30
|
-
} API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(visionos, watchos);
|
|
31
|
-
|
|
32
|
-
typedef NS_ENUM(NSInteger, UIScrollViewIndexDisplayMode) {
|
|
33
|
-
UIScrollViewIndexDisplayModeAutomatic, // the index will show or hide automatically as needed
|
|
34
|
-
UIScrollViewIndexDisplayModeAlwaysHidden, // the index will never be displayed
|
|
35
|
-
} API_AVAILABLE(tvos(10.2)) API_UNAVAILABLE(watchos);
|
|
36
|
-
|
|
37
|
-
typedef NS_ENUM(NSInteger, UIScrollViewContentInsetAdjustmentBehavior) {
|
|
38
|
-
UIScrollViewContentInsetAdjustmentAutomatic, // Similar to .scrollableAxes, but for backward compatibility will also adjust the top & bottom contentInset when the scroll view is owned by a view controller with automaticallyAdjustsScrollViewInsets = YES inside a navigation controller, regardless of whether the scroll view is scrollable
|
|
39
|
-
UIScrollViewContentInsetAdjustmentScrollableAxes, // Edges for scrollable axes are adjusted (i.e., contentSize.width/height > frame.size.width/height or alwaysBounceHorizontal/Vertical = YES)
|
|
40
|
-
UIScrollViewContentInsetAdjustmentNever, // contentInset is not adjusted
|
|
41
|
-
UIScrollViewContentInsetAdjustmentAlways, // contentInset is always adjusted by the scroll view's safeAreaInsets
|
|
42
|
-
} API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
43
26
|
|
|
44
27
|
typedef CGFloat UIScrollViewDecelerationRate NS_TYPED_ENUM API_UNAVAILABLE(watchos);
|
|
45
28
|
|
|
@@ -2363,6 +2363,32 @@ typedef NS_ENUM(NSInteger, UIImageRenderingMode) {
|
|
|
2363
2363
|
UIImageRenderingModeAlwaysOriginal, // Always draw the original image, without treating it as a template
|
|
2364
2364
|
UIImageRenderingModeAlwaysTemplate, // Always draw the image as a template image, ignoring its color information
|
|
2365
2365
|
} API_AVAILABLE(ios(7.0), watchos(2.0));
|
|
2366
|
+
|
|
2367
|
+
typedef NS_ENUM(NSInteger, UIScrollViewIndicatorStyle) {
|
|
2368
|
+
UIScrollViewIndicatorStyleDefault, // Automatically switches appearance based on the user interface style
|
|
2369
|
+
UIScrollViewIndicatorStyleBlack, // Dark indicator, for use on light backgrounds
|
|
2370
|
+
UIScrollViewIndicatorStyleWhite // Light indicator, for use on dark backgrounds
|
|
2371
|
+
} API_UNAVAILABLE(watchos);
|
|
2372
|
+
|
|
2373
|
+
typedef NS_ENUM(NSInteger, UIScrollViewKeyboardDismissMode) {
|
|
2374
|
+
UIScrollViewKeyboardDismissModeNone,
|
|
2375
|
+
UIScrollViewKeyboardDismissModeOnDrag, // dismisses the keyboard when a drag begins
|
|
2376
|
+
UIScrollViewKeyboardDismissModeInteractive, // the keyboard follows the dragging touch off screen, and may be pulled upward again to cancel the dismiss
|
|
2377
|
+
UIScrollViewKeyboardDismissModeOnDragWithAccessory, // dismisses both keyboard and accessory in the style of UIScrollViewKeyboardDismissModeOnDrag
|
|
2378
|
+
UIScrollViewKeyboardDismissModeInteractiveWithAccessory // dismisses both keyboard and accessory in the style of UIScrollViewKeyboardDismissModeInteractive
|
|
2379
|
+
} API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(visionos, watchos);
|
|
2380
|
+
|
|
2381
|
+
typedef NS_ENUM(NSInteger, UIScrollViewIndexDisplayMode) {
|
|
2382
|
+
UIScrollViewIndexDisplayModeAutomatic, // the index will show or hide automatically as needed
|
|
2383
|
+
UIScrollViewIndexDisplayModeAlwaysHidden, // the index will never be displayed
|
|
2384
|
+
} API_AVAILABLE(tvos(10.2)) API_UNAVAILABLE(watchos);
|
|
2385
|
+
|
|
2386
|
+
typedef NS_ENUM(NSInteger, UIScrollViewContentInsetAdjustmentBehavior) {
|
|
2387
|
+
UIScrollViewContentInsetAdjustmentAutomatic, // Similar to .scrollableAxes, but for backward compatibility will also adjust the top & bottom contentInset when the scroll view is owned by a view controller with automaticallyAdjustsScrollViewInsets = YES inside a navigation controller, regardless of whether the scroll view is scrollable
|
|
2388
|
+
UIScrollViewContentInsetAdjustmentScrollableAxes, // Edges for scrollable axes are adjusted (i.e., contentSize.width/height > frame.size.width/height or alwaysBounceHorizontal/Vertical = YES)
|
|
2389
|
+
UIScrollViewContentInsetAdjustmentNever, // contentInset is not adjusted
|
|
2390
|
+
UIScrollViewContentInsetAdjustmentAlways, // contentInset is always adjusted by the scroll view's safeAreaInsets
|
|
2391
|
+
} API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos);
|
|
2366
2392
|
PEACH_SWIFT_CLASS(UIKitCore) @interface UIColor : NSObject <NSSecureCoding, NSCopying>
|
|
2367
2393
|
@end
|
|
2368
2394
|
|
|
@@ -877,6 +877,7 @@ async function prepareWorkspace(
|
|
|
877
877
|
// a pinned bun installs into its own prefix: npm exec keeps one cached copy per spec, so a copy
|
|
878
878
|
// installed without its postinstall (hosts that set ignore-scripts) would stay broken
|
|
879
879
|
const bunPrefix = path.join(cacheDir(), 'package-managers', manager)
|
|
880
|
+
const bunExecutable = path.join(bunPrefix, 'node_modules/.bin/bun')
|
|
880
881
|
const install =
|
|
881
882
|
manager === 'pnpm' || manager.startsWith('pnpm@')
|
|
882
883
|
? [
|
|
@@ -893,11 +894,7 @@ async function prepareWorkspace(
|
|
|
893
894
|
: manager === 'bun' || manager.startsWith('bun@')
|
|
894
895
|
? manager === 'bun'
|
|
895
896
|
? ['bun', 'install', '--frozen-lockfile']
|
|
896
|
-
: [
|
|
897
|
-
path.join(bunPrefix, 'node_modules/.bin/bun'),
|
|
898
|
-
'install',
|
|
899
|
-
'--frozen-lockfile',
|
|
900
|
-
]
|
|
897
|
+
: [bunExecutable, 'install', '--frozen-lockfile']
|
|
901
898
|
: // npm ci would delete the cloned tree before installing it again
|
|
902
899
|
['npm', 'install', '--no-audit', '--no-fund']
|
|
903
900
|
// dependencies such as react-native-skia fetch their native binaries in a lifecycle
|
|
@@ -907,22 +904,22 @@ async function prepareWorkspace(
|
|
|
907
904
|
const command = [...prefix, ...args]
|
|
908
905
|
await run(command[0]!, command.slice(1), cwd, env)
|
|
909
906
|
}
|
|
907
|
+
if (manager.startsWith('bun@') && (!projectReady || !fs.existsSync(bunExecutable)))
|
|
908
|
+
await execute(
|
|
909
|
+
[
|
|
910
|
+
'npm',
|
|
911
|
+
'install',
|
|
912
|
+
'--prefix',
|
|
913
|
+
bunPrefix,
|
|
914
|
+
// the bun package ships a placeholder binary its postinstall replaces
|
|
915
|
+
'--ignore-scripts=false',
|
|
916
|
+
'--no-audit',
|
|
917
|
+
'--no-fund',
|
|
918
|
+
manager,
|
|
919
|
+
],
|
|
920
|
+
work,
|
|
921
|
+
)
|
|
910
922
|
if (!projectReady) {
|
|
911
|
-
if (manager.startsWith('bun@'))
|
|
912
|
-
await execute(
|
|
913
|
-
[
|
|
914
|
-
'npm',
|
|
915
|
-
'install',
|
|
916
|
-
'--prefix',
|
|
917
|
-
bunPrefix,
|
|
918
|
-
// the bun package ships a placeholder binary its postinstall replaces
|
|
919
|
-
'--ignore-scripts=false',
|
|
920
|
-
'--no-audit',
|
|
921
|
-
'--no-fund',
|
|
922
|
-
manager,
|
|
923
|
-
],
|
|
924
|
-
work,
|
|
925
|
-
)
|
|
926
923
|
// npm install keeps the cloned tree but can otherwise rewrite a stale lockfile.
|
|
927
924
|
if (install[0] === 'npm' && fs.existsSync(path.join(work, 'package-lock.json'))) {
|
|
928
925
|
await execute(
|
package/src/expo-swift-bundle.ts
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
// its immutable native assets beside the javascript bundle.
|
|
3
3
|
import { compileExpoSwiftModules } from './expo-swift-host'
|
|
4
4
|
import { swiftIcuBundleAsset } from './swift-icu'
|
|
5
|
-
import type {
|
|
5
|
+
import type {
|
|
6
|
+
ExpoSwiftCompilationResult,
|
|
7
|
+
ExpoSwiftPreparationOptions,
|
|
8
|
+
} from './expoSwiftContract'
|
|
6
9
|
|
|
7
10
|
export interface ExpoSwiftBundle {
|
|
8
11
|
metadata: ExpoSwiftCompilationResult
|
|
@@ -11,6 +14,7 @@ export interface ExpoSwiftBundle {
|
|
|
11
14
|
|
|
12
15
|
export async function buildExpoSwiftBundle(
|
|
13
16
|
appRoot: string,
|
|
17
|
+
oneSDK?: ExpoSwiftPreparationOptions['oneSDK'],
|
|
14
18
|
): Promise<ExpoSwiftBundle | null> {
|
|
15
19
|
const assets: ExpoSwiftBundle['assets'] = []
|
|
16
20
|
const metadata = await compileExpoSwiftModules(
|
|
@@ -25,6 +29,7 @@ export async function buildExpoSwiftBundle(
|
|
|
25
29
|
})
|
|
26
30
|
if ('gzip' in artifact.icu) assets.push(await swiftIcuBundleAsset(artifact.icu))
|
|
27
31
|
},
|
|
32
|
+
{ oneSDK },
|
|
28
33
|
)
|
|
29
34
|
if (!metadata) return null
|
|
30
35
|
|