peachsim 0.1.2222 → 0.1.2223
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/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 +29 -13
- 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 +27 -11
- 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 +29 -13
- 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 +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 +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 +29 -13
- package/dist-lib/swift-compile.cjs +24 -8
- package/dist-lib/swift-compile.mjs +24 -8
- 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 +25 -9
- 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-compat/src/stubs/native-seams/react-native-cookies.d.ts +2 -1
- package/dist-types/packages/peach-globals/src/browser-object-url.d.ts +10 -0
- package/package.json +1 -1
- package/runtime-companion.json +1 -1
- package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UISegmentedControl.h +1 -1
- package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UITabBar.h +1 -1
- package/src/conformance-pixel-comparison.ts +16 -3
- package/src/swift-compile.ts +4 -4
- package/src/swift-root-lock.ts +27 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2223 | (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;
|
|
@@ -11166,6 +11166,7 @@ var import_node_fs22 = require("node:fs");
|
|
|
11166
11166
|
var import_node_os10 = require("node:os");
|
|
11167
11167
|
var import_node_path23 = __toESM(require("node:path"), 1);
|
|
11168
11168
|
var POLL_MS = 250;
|
|
11169
|
+
var INSPECT_ATTEMPTS = 5;
|
|
11169
11170
|
var START_TOLERANCE_MS = 2e3;
|
|
11170
11171
|
function errorCode(error) {
|
|
11171
11172
|
return error instanceof Error && "code" in error && typeof error.code === "string" ? error.code : void 0;
|
|
@@ -11179,6 +11180,17 @@ function processTable(pid) {
|
|
|
11179
11180
|
);
|
|
11180
11181
|
}
|
|
11181
11182
|
}
|
|
11183
|
+
async function processTableWithRetry(pid, signal) {
|
|
11184
|
+
for (let attempt = 1; ; attempt++) {
|
|
11185
|
+
try {
|
|
11186
|
+
return processTable(pid);
|
|
11187
|
+
} catch (error) {
|
|
11188
|
+
if (attempt >= INSPECT_ATTEMPTS) throw error;
|
|
11189
|
+
await pause(POLL_MS * attempt, signal);
|
|
11190
|
+
signal?.throwIfAborted();
|
|
11191
|
+
}
|
|
11192
|
+
}
|
|
11193
|
+
}
|
|
11182
11194
|
function sameProcess(row, identity) {
|
|
11183
11195
|
return row.pid === identity.pid && Math.abs(row.start - identity.start) <= START_TOLERANCE_MS;
|
|
11184
11196
|
}
|
|
@@ -11248,7 +11260,11 @@ async function withSwiftRootLock(root, work, signal, wait = true) {
|
|
|
11248
11260
|
);
|
|
11249
11261
|
(0, import_node_fs22.mkdirSync)(directory, { recursive: true });
|
|
11250
11262
|
const token = (0, import_node_crypto12.randomUUID)();
|
|
11251
|
-
const
|
|
11263
|
+
const ownRow = (await processTableWithRetry(process.pid, signal)).find(
|
|
11264
|
+
(candidate) => candidate.pid === process.pid && !candidate.zombie
|
|
11265
|
+
);
|
|
11266
|
+
if (!ownRow) throw new Error(`swift root lock cannot find process ${process.pid}`);
|
|
11267
|
+
const owner = JSON.stringify({ pid: process.pid, start: ownRow.start });
|
|
11252
11268
|
const pending = import_node_path23.default.join(directory, `pending.${token}`);
|
|
11253
11269
|
let held = 0;
|
|
11254
11270
|
for (; ; ) {
|
|
@@ -11257,15 +11273,15 @@ async function withSwiftRootLock(root, work, signal, wait = true) {
|
|
|
11257
11273
|
const current = newest > 0 ? readGeneration(directory, newest) : null;
|
|
11258
11274
|
if (newest > 0 && !current) continue;
|
|
11259
11275
|
if (current && !current.released) {
|
|
11260
|
-
const
|
|
11261
|
-
if (
|
|
11276
|
+
const holder = await processTableWithRetry(current.holder.pid, signal);
|
|
11277
|
+
if (holder.some((row) => !row.zombie && sameProcess(row, current.holder))) {
|
|
11262
11278
|
if (!wait) return void 0;
|
|
11263
11279
|
await pause(POLL_MS, signal);
|
|
11264
11280
|
continue;
|
|
11265
11281
|
}
|
|
11266
11282
|
const children2 = readChildren(directory, newest);
|
|
11267
11283
|
if (children2.length) {
|
|
11268
|
-
const table =
|
|
11284
|
+
const table = await processTableWithRetry(void 0, signal);
|
|
11269
11285
|
if (children2.some((child) => groupAlive(table, child))) {
|
|
11270
11286
|
if (!wait) return void 0;
|
|
11271
11287
|
await pause(POLL_MS, signal);
|
|
@@ -12623,7 +12639,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
|
|
|
12623
12639
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
12624
12640
|
var MULTI_MANIFEST_VERSION = 68;
|
|
12625
12641
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
12626
|
-
var compilerSourceDigest = true ? "
|
|
12642
|
+
var compilerSourceDigest = true ? "ae9e08389e6ab1901846342a7b347d7c10f8074172cf5d4d6505f7e955879ad4" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
12627
12643
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
12628
12644
|
const hash = (0, import_node_crypto13.createHash)("sha256");
|
|
12629
12645
|
hash.update(`swift-compile
|
|
@@ -15334,8 +15350,8 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
15334
15350
|
const moduleName = swiftTargetModuleName(name2);
|
|
15335
15351
|
const originalMap = originalMaps.get(moduleName);
|
|
15336
15352
|
const stagedMap = sourceModuleMaps.get(moduleName);
|
|
15337
|
-
const originalPath = originalMap ? import_node_path27.default.join(layout2.root, originalMap) :
|
|
15338
|
-
const originalContents = originalMap
|
|
15353
|
+
const originalPath = stagedMap?.path ?? (originalMap ? import_node_path27.default.join(layout2.root, originalMap) : void 0);
|
|
15354
|
+
const originalContents = stagedMap?.contents ?? (originalMap && input.files[originalMap]);
|
|
15339
15355
|
const originalTokens = originalContents ? moduleMapTokens(originalContents) : [];
|
|
15340
15356
|
if (originalPath && originalTokens.some(
|
|
15341
15357
|
(token, index) => token === "module" && (originalTokens[index + 1] === "Swift" || originalTokens[index + 1] === `${moduleName}.Swift`)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2223 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/swift-compile.ts
|
|
4
4
|
import {
|
|
@@ -11145,6 +11145,7 @@ import {
|
|
|
11145
11145
|
import { homedir as homedir2 } from "node:os";
|
|
11146
11146
|
import path23 from "node:path";
|
|
11147
11147
|
var POLL_MS = 250;
|
|
11148
|
+
var INSPECT_ATTEMPTS = 5;
|
|
11148
11149
|
var START_TOLERANCE_MS = 2e3;
|
|
11149
11150
|
function errorCode(error) {
|
|
11150
11151
|
return error instanceof Error && "code" in error && typeof error.code === "string" ? error.code : void 0;
|
|
@@ -11158,6 +11159,17 @@ function processTable(pid) {
|
|
|
11158
11159
|
);
|
|
11159
11160
|
}
|
|
11160
11161
|
}
|
|
11162
|
+
async function processTableWithRetry(pid, signal) {
|
|
11163
|
+
for (let attempt = 1; ; attempt++) {
|
|
11164
|
+
try {
|
|
11165
|
+
return processTable(pid);
|
|
11166
|
+
} catch (error) {
|
|
11167
|
+
if (attempt >= INSPECT_ATTEMPTS) throw error;
|
|
11168
|
+
await pause(POLL_MS * attempt, signal);
|
|
11169
|
+
signal?.throwIfAborted();
|
|
11170
|
+
}
|
|
11171
|
+
}
|
|
11172
|
+
}
|
|
11161
11173
|
function sameProcess(row, identity) {
|
|
11162
11174
|
return row.pid === identity.pid && Math.abs(row.start - identity.start) <= START_TOLERANCE_MS;
|
|
11163
11175
|
}
|
|
@@ -11227,7 +11239,11 @@ async function withSwiftRootLock(root, work, signal, wait = true) {
|
|
|
11227
11239
|
);
|
|
11228
11240
|
mkdirSync4(directory, { recursive: true });
|
|
11229
11241
|
const token = randomUUID4();
|
|
11230
|
-
const
|
|
11242
|
+
const ownRow = (await processTableWithRetry(process.pid, signal)).find(
|
|
11243
|
+
(candidate) => candidate.pid === process.pid && !candidate.zombie
|
|
11244
|
+
);
|
|
11245
|
+
if (!ownRow) throw new Error(`swift root lock cannot find process ${process.pid}`);
|
|
11246
|
+
const owner = JSON.stringify({ pid: process.pid, start: ownRow.start });
|
|
11231
11247
|
const pending = path23.join(directory, `pending.${token}`);
|
|
11232
11248
|
let held = 0;
|
|
11233
11249
|
for (; ; ) {
|
|
@@ -11236,15 +11252,15 @@ async function withSwiftRootLock(root, work, signal, wait = true) {
|
|
|
11236
11252
|
const current = newest > 0 ? readGeneration(directory, newest) : null;
|
|
11237
11253
|
if (newest > 0 && !current) continue;
|
|
11238
11254
|
if (current && !current.released) {
|
|
11239
|
-
const
|
|
11240
|
-
if (
|
|
11255
|
+
const holder = await processTableWithRetry(current.holder.pid, signal);
|
|
11256
|
+
if (holder.some((row) => !row.zombie && sameProcess(row, current.holder))) {
|
|
11241
11257
|
if (!wait) return void 0;
|
|
11242
11258
|
await pause(POLL_MS, signal);
|
|
11243
11259
|
continue;
|
|
11244
11260
|
}
|
|
11245
11261
|
const children2 = readChildren(directory, newest);
|
|
11246
11262
|
if (children2.length) {
|
|
11247
|
-
const table =
|
|
11263
|
+
const table = await processTableWithRetry(void 0, signal);
|
|
11248
11264
|
if (children2.some((child) => groupAlive(table, child))) {
|
|
11249
11265
|
if (!wait) return void 0;
|
|
11250
11266
|
await pause(POLL_MS, signal);
|
|
@@ -12602,7 +12618,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
|
|
|
12602
12618
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
12603
12619
|
var MULTI_MANIFEST_VERSION = 68;
|
|
12604
12620
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
12605
|
-
var compilerSourceDigest = true ? "
|
|
12621
|
+
var compilerSourceDigest = true ? "ae9e08389e6ab1901846342a7b347d7c10f8074172cf5d4d6505f7e955879ad4" : swiftCompilerSourceDigest(import.meta.dirname);
|
|
12606
12622
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
12607
12623
|
const hash = createHash13("sha256");
|
|
12608
12624
|
hash.update(`swift-compile
|
|
@@ -15313,8 +15329,8 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
15313
15329
|
const moduleName = swiftTargetModuleName(name2);
|
|
15314
15330
|
const originalMap = originalMaps.get(moduleName);
|
|
15315
15331
|
const stagedMap = sourceModuleMaps.get(moduleName);
|
|
15316
|
-
const originalPath = originalMap ? path27.join(layout2.root, originalMap) :
|
|
15317
|
-
const originalContents = originalMap
|
|
15332
|
+
const originalPath = stagedMap?.path ?? (originalMap ? path27.join(layout2.root, originalMap) : void 0);
|
|
15333
|
+
const originalContents = stagedMap?.contents ?? (originalMap && input.files[originalMap]);
|
|
15318
15334
|
const originalTokens = originalContents ? moduleMapTokens(originalContents) : [];
|
|
15319
15335
|
if (originalPath && originalTokens.some(
|
|
15320
15336
|
(token, index) => token === "module" && (originalTokens[index + 1] === "Swift" || originalTokens[index + 1] === `${moduleName}.Swift`)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2223 | (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.2223 | (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.2223 | (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.2223 | (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;
|
package/dist-lib/vite-swift.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2223 | (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;
|
|
@@ -16181,6 +16181,7 @@ var import_node_fs24 = require("node:fs");
|
|
|
16181
16181
|
var import_node_os10 = require("node:os");
|
|
16182
16182
|
var import_node_path23 = __toESM(require("node:path"), 1);
|
|
16183
16183
|
var POLL_MS = 250;
|
|
16184
|
+
var INSPECT_ATTEMPTS = 5;
|
|
16184
16185
|
var START_TOLERANCE_MS = 2e3;
|
|
16185
16186
|
function errorCode(error) {
|
|
16186
16187
|
return error instanceof Error && "code" in error && typeof error.code === "string" ? error.code : void 0;
|
|
@@ -16194,6 +16195,17 @@ function processTable(pid) {
|
|
|
16194
16195
|
);
|
|
16195
16196
|
}
|
|
16196
16197
|
}
|
|
16198
|
+
async function processTableWithRetry(pid, signal) {
|
|
16199
|
+
for (let attempt = 1; ; attempt++) {
|
|
16200
|
+
try {
|
|
16201
|
+
return processTable(pid);
|
|
16202
|
+
} catch (error) {
|
|
16203
|
+
if (attempt >= INSPECT_ATTEMPTS) throw error;
|
|
16204
|
+
await pause(POLL_MS * attempt, signal);
|
|
16205
|
+
signal?.throwIfAborted();
|
|
16206
|
+
}
|
|
16207
|
+
}
|
|
16208
|
+
}
|
|
16197
16209
|
function sameProcess(row, identity2) {
|
|
16198
16210
|
return row.pid === identity2.pid && Math.abs(row.start - identity2.start) <= START_TOLERANCE_MS;
|
|
16199
16211
|
}
|
|
@@ -16263,7 +16275,11 @@ async function withSwiftRootLock(root, work, signal, wait = true) {
|
|
|
16263
16275
|
);
|
|
16264
16276
|
(0, import_node_fs24.mkdirSync)(directory, { recursive: true });
|
|
16265
16277
|
const token = (0, import_node_crypto12.randomUUID)();
|
|
16266
|
-
const
|
|
16278
|
+
const ownRow = (await processTableWithRetry(process.pid, signal)).find(
|
|
16279
|
+
(candidate) => candidate.pid === process.pid && !candidate.zombie
|
|
16280
|
+
);
|
|
16281
|
+
if (!ownRow) throw new Error(`swift root lock cannot find process ${process.pid}`);
|
|
16282
|
+
const owner = JSON.stringify({ pid: process.pid, start: ownRow.start });
|
|
16267
16283
|
const pending = import_node_path23.default.join(directory, `pending.${token}`);
|
|
16268
16284
|
let held = 0;
|
|
16269
16285
|
for (; ; ) {
|
|
@@ -16272,15 +16288,15 @@ async function withSwiftRootLock(root, work, signal, wait = true) {
|
|
|
16272
16288
|
const current = newest > 0 ? readGeneration(directory, newest) : null;
|
|
16273
16289
|
if (newest > 0 && !current) continue;
|
|
16274
16290
|
if (current && !current.released) {
|
|
16275
|
-
const
|
|
16276
|
-
if (
|
|
16291
|
+
const holder = await processTableWithRetry(current.holder.pid, signal);
|
|
16292
|
+
if (holder.some((row) => !row.zombie && sameProcess(row, current.holder))) {
|
|
16277
16293
|
if (!wait) return void 0;
|
|
16278
16294
|
await pause(POLL_MS, signal);
|
|
16279
16295
|
continue;
|
|
16280
16296
|
}
|
|
16281
16297
|
const children2 = readChildren(directory, newest);
|
|
16282
16298
|
if (children2.length) {
|
|
16283
|
-
const table =
|
|
16299
|
+
const table = await processTableWithRetry(void 0, signal);
|
|
16284
16300
|
if (children2.some((child) => groupAlive(table, child))) {
|
|
16285
16301
|
if (!wait) return void 0;
|
|
16286
16302
|
await pause(POLL_MS, signal);
|
|
@@ -17477,7 +17493,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
|
|
|
17477
17493
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
17478
17494
|
var MULTI_MANIFEST_VERSION = 68;
|
|
17479
17495
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
17480
|
-
var compilerSourceDigest = true ? "
|
|
17496
|
+
var compilerSourceDigest = true ? "ae9e08389e6ab1901846342a7b347d7c10f8074172cf5d4d6505f7e955879ad4" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
17481
17497
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
17482
17498
|
const hash = (0, import_node_crypto13.createHash)("sha256");
|
|
17483
17499
|
hash.update(`swift-compile
|
|
@@ -20095,8 +20111,8 @@ ${swiftProjectFilesProblems(input.projectFiles).join("\n")}`
|
|
|
20095
20111
|
const moduleName = swiftTargetModuleName(name3);
|
|
20096
20112
|
const originalMap = originalMaps.get(moduleName);
|
|
20097
20113
|
const stagedMap = sourceModuleMaps.get(moduleName);
|
|
20098
|
-
const originalPath = originalMap ? import_node_path27.default.join(layout2.root, originalMap) :
|
|
20099
|
-
const originalContents = originalMap
|
|
20114
|
+
const originalPath = stagedMap?.path ?? (originalMap ? import_node_path27.default.join(layout2.root, originalMap) : void 0);
|
|
20115
|
+
const originalContents = stagedMap?.contents ?? (originalMap && input.files[originalMap]);
|
|
20100
20116
|
const originalTokens = originalContents ? moduleMapTokens(originalContents) : [];
|
|
20101
20117
|
if (originalPath && originalTokens.some(
|
|
20102
20118
|
(token, index) => token === "module" && (originalTokens[index + 1] === "Swift" || originalTokens[index + 1] === `${moduleName}.Swift`)
|
|
@@ -30937,7 +30953,7 @@ function sourceClosureDigest(srcDir, entrypoints) {
|
|
|
30937
30953
|
return hash.digest("hex");
|
|
30938
30954
|
}
|
|
30939
30955
|
var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
|
|
30940
|
-
var STANDIN_SOURCE_DIGEST = true ? "
|
|
30956
|
+
var STANDIN_SOURCE_DIGEST = true ? "967c1c2a3b66ac640e0162783ed9e21b09ff285f8e1f7d4327b70416699e14c8" : standinSourceDigest();
|
|
30941
30957
|
|
|
30942
30958
|
// src/swift-standins.ts
|
|
30943
30959
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2223 | (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;
|
|
@@ -1072,7 +1072,7 @@ var init_src = __esm({
|
|
|
1072
1072
|
var runtime_companion_default;
|
|
1073
1073
|
var init_runtime_companion = __esm({
|
|
1074
1074
|
"runtime-companion.json"() {
|
|
1075
|
-
runtime_companion_default = { abi: 1, sha256: "
|
|
1075
|
+
runtime_companion_default = { abi: 1, sha256: "ec96dcaf1a90c0295f3ea5be7ec176c04c0714e27eda99ca6b2ba0a2e3394fd0", file: "node/cli-ec96dcaf1a90c0295f3ea5be7ec176c04c0714e27eda99ca6b2ba0a2e3394fd0.cjs" };
|
|
1076
1076
|
}
|
|
1077
1077
|
});
|
|
1078
1078
|
|
|
@@ -3228,7 +3228,7 @@ function readIosSdkTree(root) {
|
|
|
3228
3228
|
|
|
3229
3229
|
// src/swift-standin-digest.ts
|
|
3230
3230
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
3231
|
-
var STANDIN_SOURCE_DIGEST = true ? "
|
|
3231
|
+
var STANDIN_SOURCE_DIGEST = true ? "967c1c2a3b66ac640e0162783ed9e21b09ff285f8e1f7d4327b70416699e14c8" : standinSourceDigest();
|
|
3232
3232
|
|
|
3233
3233
|
// src/expo-native-workspace.ts
|
|
3234
3234
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
@@ -6742,7 +6742,7 @@ var FOUNDATION_IMPLICIT_MODULES = [
|
|
|
6742
6742
|
var FOUNDATION_IMPLICIT_FLAGS = FOUNDATION_IMPLICIT_MODULES.map(
|
|
6743
6743
|
(module2) => `, "-Xfrontend", "-import-module", "-Xfrontend", "${module2}"`
|
|
6744
6744
|
).join("");
|
|
6745
|
-
var compilerSourceDigest = true ? "
|
|
6745
|
+
var compilerSourceDigest = true ? "ae9e08389e6ab1901846342a7b347d7c10f8074172cf5d4d6505f7e955879ad4" : swiftCompilerSourceDigest2(__sootsim_import_meta_dirname);
|
|
6746
6746
|
var CORE_FOUNDATION_HANDLE_IMPORTS = [
|
|
6747
6747
|
"CFAllocator",
|
|
6748
6748
|
"CFArray",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2223 | (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,3 +1,4 @@
|
|
|
1
|
+
import { BrowserURL } from '../../../../peach-globals/src/browser-object-url.d.ts';
|
|
1
2
|
import type { NativeEvaluationLease } from '../../../../peach-engine/src/guest/native-evaluation-lease.d.ts';
|
|
2
3
|
export type NativeCookie = {
|
|
3
4
|
name: string;
|
|
@@ -39,7 +40,7 @@ export declare const cookieStores: {
|
|
|
39
40
|
readonly native: NativeCookieJar;
|
|
40
41
|
readonly webKit: NativeCookieJar;
|
|
41
42
|
};
|
|
42
|
-
export declare function createCookieOperations(): {
|
|
43
|
+
export declare function createCookieOperations(URLConstructor: typeof BrowserURL): {
|
|
43
44
|
storeResponseCookies: (store: CookieStore, url: string, headers: readonly string[]) => void;
|
|
44
45
|
restore: (cookies: unknown) => CookieStore;
|
|
45
46
|
cookiesMatching: (store: CookieStore, parsed: URL) => StoredCookie[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const BrowserURL: {
|
|
2
|
+
new (url: string | URL, base?: string | URL): URL;
|
|
3
|
+
prototype: URL;
|
|
4
|
+
canParse(url: string | URL, base?: string | URL): boolean;
|
|
5
|
+
createObjectURL(obj: Blob | MediaSource): string;
|
|
6
|
+
parse(url: string | URL, base?: string | URL): URL | null;
|
|
7
|
+
revokeObjectURL(url: string): void;
|
|
8
|
+
};
|
|
9
|
+
export declare const createBrowserObjectURL: (obj: Blob | MediaSource) => string;
|
|
10
|
+
export declare const revokeBrowserObjectURL: (url: string) => void;
|
package/package.json
CHANGED
package/runtime-companion.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":1,"sha256":"
|
|
1
|
+
{"abi":1,"sha256":"ec96dcaf1a90c0295f3ea5be7ec176c04c0714e27eda99ca6b2ba0a2e3394fd0","file":"node/cli-ec96dcaf1a90c0295f3ea5be7ec176c04c0714e27eda99ca6b2ba0a2e3394fd0.cjs"}
|
|
@@ -40,7 +40,7 @@ typedef NS_ENUM(NSInteger, UISegmentedControlSegment) {
|
|
|
40
40
|
@class UIImage, UIColor;
|
|
41
41
|
|
|
42
42
|
UIKIT_EXTERN API_AVAILABLE(ios(2.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
|
|
43
|
-
@interface UISegmentedControl : UIControl <NSCoding>
|
|
43
|
+
PEACH_SWIFT_CLASS(UIKitCore) @interface UISegmentedControl : UIControl <NSCoding>
|
|
44
44
|
|
|
45
45
|
- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;
|
|
46
46
|
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
|
|
@@ -22,7 +22,7 @@ NS_HEADER_AUDIT_BEGIN(nullability, sendability)
|
|
|
22
22
|
@protocol UITabBarDelegate;
|
|
23
23
|
|
|
24
24
|
UIKIT_EXTERN API_AVAILABLE(ios(2.0)) API_UNAVAILABLE(watchos) NS_SWIFT_UI_ACTOR
|
|
25
|
-
@interface UITabBar : UIView
|
|
25
|
+
PEACH_SWIFT_CLASS(UIKitCore) @interface UITabBar : UIView
|
|
26
26
|
|
|
27
27
|
@property(nullable, nonatomic, weak) id<UITabBarDelegate> delegate; // weak reference. default is nil
|
|
28
28
|
@property(nullable, nonatomic, copy) NSArray<UITabBarItem *> *items; // get/set visible UITabBarItems. default is nil. changes not animated. shown in order
|
|
@@ -132,11 +132,24 @@ export function compareConformancePixels(options: {
|
|
|
132
132
|
}
|
|
133
133
|
if (identical) {
|
|
134
134
|
options.diff?.fill(0)
|
|
135
|
+
const columns = Math.ceil(options.width)
|
|
136
|
+
const excludedColumns =
|
|
137
|
+
region.cornerRadius > 0
|
|
138
|
+
? Math.min(
|
|
139
|
+
columns,
|
|
140
|
+
Math.ceil(region.cornerRadius) +
|
|
141
|
+
columns -
|
|
142
|
+
Math.max(0, Math.ceil(options.width - region.cornerRadius)),
|
|
143
|
+
)
|
|
144
|
+
: 0
|
|
135
145
|
let totalPixels = 0
|
|
136
146
|
for (let y = region.yStart; y < region.yEnd; y++) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
147
|
+
const globalY = region.globalYStart + y
|
|
148
|
+
totalPixels +=
|
|
149
|
+
globalY < region.cornerRadius ||
|
|
150
|
+
globalY >= region.fullHeight - region.cornerRadius
|
|
151
|
+
? columns - excludedColumns
|
|
152
|
+
: columns
|
|
140
153
|
}
|
|
141
154
|
return { differingPixels: 0, totalPixels }
|
|
142
155
|
}
|
package/src/swift-compile.ts
CHANGED
|
@@ -5337,10 +5337,10 @@ export function writeSwiftProject(
|
|
|
5337
5337
|
const moduleName = swiftTargetModuleName(name)
|
|
5338
5338
|
const originalMap = originalMaps.get(moduleName)
|
|
5339
5339
|
const stagedMap = sourceModuleMaps.get(moduleName)
|
|
5340
|
-
const originalPath =
|
|
5341
|
-
? path.join(layout.root, originalMap)
|
|
5342
|
-
|
|
5343
|
-
|
|
5340
|
+
const originalPath =
|
|
5341
|
+
stagedMap?.path ?? (originalMap ? path.join(layout.root, originalMap) : undefined)
|
|
5342
|
+
const originalContents =
|
|
5343
|
+
stagedMap?.contents ?? (originalMap && input.files[originalMap])
|
|
5344
5344
|
const originalTokens = originalContents ? moduleMapTokens(originalContents) : []
|
|
5345
5345
|
if (
|
|
5346
5346
|
originalPath &&
|
package/src/swift-root-lock.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { readProcessTable, type ProcessRow } from './process-table.ts'
|
|
|
20
20
|
import type { Readable, Writable } from 'node:stream'
|
|
21
21
|
|
|
22
22
|
const POLL_MS = 250
|
|
23
|
+
const INSPECT_ATTEMPTS = 5
|
|
23
24
|
// ps derives a start time from the boot time, which drifts by a second or two
|
|
24
25
|
// on linux; a reused pid starts later than this.
|
|
25
26
|
const START_TOLERANCE_MS = 2_000
|
|
@@ -53,6 +54,24 @@ function processTable(pid?: number): ProcessRow[] {
|
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
|
|
57
|
+
// a loaded host can stall ps past its deadline once without the table being
|
|
58
|
+
// broken, and the lock only ever waits on that answer, so lock acquisition
|
|
59
|
+
// asks again before giving up.
|
|
60
|
+
async function processTableWithRetry(
|
|
61
|
+
pid: number | undefined,
|
|
62
|
+
signal: AbortSignal | undefined,
|
|
63
|
+
): Promise<ProcessRow[]> {
|
|
64
|
+
for (let attempt = 1; ; attempt++) {
|
|
65
|
+
try {
|
|
66
|
+
return processTable(pid)
|
|
67
|
+
} catch (error) {
|
|
68
|
+
if (attempt >= INSPECT_ATTEMPTS) throw error
|
|
69
|
+
await pause(POLL_MS * attempt, signal)
|
|
70
|
+
signal?.throwIfAborted()
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
56
75
|
function sameProcess(row: ProcessRow, identity: Identity): boolean {
|
|
57
76
|
return (
|
|
58
77
|
row.pid === identity.pid && Math.abs(row.start - identity.start) <= START_TOLERANCE_MS
|
|
@@ -204,7 +223,11 @@ export async function withSwiftRootLock<T>(
|
|
|
204
223
|
)
|
|
205
224
|
mkdirSync(directory, { recursive: true })
|
|
206
225
|
const token = randomUUID()
|
|
207
|
-
const
|
|
226
|
+
const ownRow = (await processTableWithRetry(process.pid, signal)).find(
|
|
227
|
+
(candidate) => candidate.pid === process.pid && !candidate.zombie,
|
|
228
|
+
)
|
|
229
|
+
if (!ownRow) throw new Error(`swift root lock cannot find process ${process.pid}`)
|
|
230
|
+
const owner = JSON.stringify({ pid: process.pid, start: ownRow.start })
|
|
208
231
|
const pending = path.join(directory, `pending.${token}`)
|
|
209
232
|
let held = 0
|
|
210
233
|
for (;;) {
|
|
@@ -213,15 +236,15 @@ export async function withSwiftRootLock<T>(
|
|
|
213
236
|
const current = newest > 0 ? readGeneration(directory, newest) : null
|
|
214
237
|
if (newest > 0 && !current) continue
|
|
215
238
|
if (current && !current.released) {
|
|
216
|
-
const
|
|
217
|
-
if (
|
|
239
|
+
const holder = await processTableWithRetry(current.holder.pid, signal)
|
|
240
|
+
if (holder.some((row) => !row.zombie && sameProcess(row, current.holder))) {
|
|
218
241
|
if (!wait) return undefined
|
|
219
242
|
await pause(POLL_MS, signal)
|
|
220
243
|
continue
|
|
221
244
|
}
|
|
222
245
|
const children = readChildren(directory, newest)
|
|
223
246
|
if (children.length) {
|
|
224
|
-
const table =
|
|
247
|
+
const table = await processTableWithRetry(undefined, signal)
|
|
225
248
|
if (children.some((child) => groupAlive(table, child))) {
|
|
226
249
|
if (!wait) return undefined
|
|
227
250
|
await pause(POLL_MS, signal)
|