peachsim 0.1.2218 → 0.1.2220
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/flow.ts +4 -0
- package/cli/maestro-compare.ts +37 -26
- package/cli/outbound-endpoints.ts +2 -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 +92 -22
- 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 +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +89 -19
- 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 +90 -20
- package/dist-lib/host/fetch-proxy-handler.cjs +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +90 -20
- package/dist-lib/swift-compile.cjs +14 -7
- package/dist-lib/swift-compile.mjs +14 -7
- 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 +87 -17
- package/dist-lib/vite.cjs +3 -3
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/kotlin/sdk.tar.gz +0 -0
- package/package.json +1 -1
- package/src/swift-guest-runtime-plan.ts +13 -5
- package/src/swift-host.ts +84 -2
- package/src/swift-packages.ts +19 -10
- package/src/swift-standins.ts +1 -1
package/cli/commands/flow.ts
CHANGED
|
@@ -62,6 +62,7 @@ const FLOW_BOOLEAN_FLAGS = [
|
|
|
62
62
|
'--preview',
|
|
63
63
|
'--preview-open',
|
|
64
64
|
'--headless',
|
|
65
|
+
'--chromium',
|
|
65
66
|
'--headed',
|
|
66
67
|
'--proof',
|
|
67
68
|
'--load-env',
|
|
@@ -289,6 +290,8 @@ options:
|
|
|
289
290
|
browser sims default to isolated playwright
|
|
290
291
|
--headless pass headless=true to the launch driver (useful
|
|
291
292
|
with --driver playwright)
|
|
293
|
+
--chromium with --headless, render in plain Chromium instead of
|
|
294
|
+
the native host
|
|
292
295
|
--headed force a fresh, VISIBLE window for this run (implies
|
|
293
296
|
--new; overrides --headless). use when you want to
|
|
294
297
|
watch the flow run live even if the current sim is
|
|
@@ -632,6 +635,7 @@ flow extension:
|
|
|
632
635
|
if (args.includes('--headless') && !headed) {
|
|
633
636
|
openArgs.push('--headless')
|
|
634
637
|
}
|
|
638
|
+
if (args.includes('--chromium')) openArgs.push('--chromium')
|
|
635
639
|
if (proofMode) openArgs.push('--proof')
|
|
636
640
|
if (args.includes('--load-env')) openArgs.push('--load-env')
|
|
637
641
|
// a resolved default is not an explicit pin: passing it as `port` would
|
package/cli/maestro-compare.ts
CHANGED
|
@@ -494,35 +494,46 @@ function resample(src: PNG, width: number, height: number): PNG {
|
|
|
494
494
|
function drawDownscaled(
|
|
495
495
|
dst: PNG,
|
|
496
496
|
src: PNG,
|
|
497
|
-
factor:
|
|
497
|
+
factor: 1 | 2,
|
|
498
498
|
left: number,
|
|
499
499
|
keepRed: boolean,
|
|
500
500
|
) {
|
|
501
|
-
|
|
502
|
-
|
|
501
|
+
if (factor === 1) {
|
|
502
|
+
for (let y = 0; y < src.height; y++) {
|
|
503
|
+
const start = (y * dst.width + left) * 4
|
|
504
|
+
src.data.copy(dst.data, start, y * src.width * 4, (y + 1) * src.width * 4)
|
|
505
|
+
for (let i = start + 3; i < start + src.width * 4; i += 4) dst.data[i] = 255
|
|
506
|
+
}
|
|
507
|
+
return
|
|
508
|
+
}
|
|
509
|
+
const w = Math.floor(src.width / 2)
|
|
510
|
+
const h = Math.floor(src.height / 2)
|
|
511
|
+
const stride = src.width * 4
|
|
503
512
|
for (let y = 0; y < h; y++) {
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
dst.data[o
|
|
513
|
+
let i = y * stride * 2
|
|
514
|
+
let o = (y * dst.width + left) * 4
|
|
515
|
+
for (let x = 0; x < w; x++, i += 8, o += 4) {
|
|
516
|
+
const r0 = src.data[i]!
|
|
517
|
+
const g0 = src.data[i + 1]!
|
|
518
|
+
const b0 = src.data[i + 2]!
|
|
519
|
+
const r1 = src.data[i + 4]!
|
|
520
|
+
const g1 = src.data[i + 5]!
|
|
521
|
+
const b1 = src.data[i + 6]!
|
|
522
|
+
const r2 = src.data[i + stride]!
|
|
523
|
+
const g2 = src.data[i + stride + 1]!
|
|
524
|
+
const b2 = src.data[i + stride + 2]!
|
|
525
|
+
const r3 = src.data[i + stride + 4]!
|
|
526
|
+
const g3 = src.data[i + stride + 5]!
|
|
527
|
+
const b3 = src.data[i + stride + 6]!
|
|
528
|
+
const red =
|
|
529
|
+
keepRed &&
|
|
530
|
+
((r0 === 255 && g0 === 0 && b0 === 0) ||
|
|
531
|
+
(r1 === 255 && g1 === 0 && b1 === 0) ||
|
|
532
|
+
(r2 === 255 && g2 === 0 && b2 === 0) ||
|
|
533
|
+
(r3 === 255 && g3 === 0 && b3 === 0))
|
|
534
|
+
dst.data[o] = red ? 255 : Math.round((r0 + r1 + r2 + r3) / 4)
|
|
535
|
+
dst.data[o + 1] = red ? 0 : Math.round((g0 + g1 + g2 + g3) / 4)
|
|
536
|
+
dst.data[o + 2] = red ? 0 : Math.round((b0 + b1 + b2 + b3) / 4)
|
|
526
537
|
dst.data[o + 3] = 255
|
|
527
538
|
}
|
|
528
539
|
}
|
|
@@ -562,7 +573,7 @@ export function compareScreens(
|
|
|
562
573
|
}
|
|
563
574
|
}
|
|
564
575
|
const diffImage = new PNG({ width, height })
|
|
565
|
-
const marks =
|
|
576
|
+
const marks = diffImage.data
|
|
566
577
|
// same scorer and settings as conformance proof. only the pass bar is the
|
|
567
578
|
// cli's own (--threshold, default 0.5% against proof's 1%), and the masked
|
|
568
579
|
// top band is excluded from scoring through the comparison region.
|
|
@@ -892,7 +892,7 @@ export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> =
|
|
|
892
892
|
category: 'cli_delivery',
|
|
893
893
|
count: 1,
|
|
894
894
|
},
|
|
895
|
-
'packages/peachsim/scripts/publish-cli-binaries.ts :: fetch :: `${url}?sha256=${digest}`':
|
|
895
|
+
'packages/peachsim/scripts/publish-cli-binaries.ts :: fetch-alias :: `${url}?sha256=${digest}`':
|
|
896
896
|
{
|
|
897
897
|
category: 'cli_release_publish',
|
|
898
898
|
count: 1,
|
|
@@ -1151,7 +1151,7 @@ function networkNames(
|
|
|
1151
1151
|
exportedFetchAliasCache: Map<string, Set<string>>,
|
|
1152
1152
|
): NetworkNames {
|
|
1153
1153
|
const names: NetworkNames = {
|
|
1154
|
-
fetch: new Set(['fetch']),
|
|
1154
|
+
fetch: new Set(['fetch', 'fetchWithRetries']),
|
|
1155
1155
|
httpClient: new Set(['http', 'https']),
|
|
1156
1156
|
netClient: new Set(['net']),
|
|
1157
1157
|
socket: new Set(),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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.2220 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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/beta.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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/beta.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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.2220 | (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.2220 | (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.2220 | (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;
|
|
@@ -23065,6 +23065,9 @@ var init_swift_runtime_products = __esm({
|
|
|
23065
23065
|
});
|
|
23066
23066
|
|
|
23067
23067
|
// src/swift-guest-runtime-plan.ts
|
|
23068
|
+
function canonicalArchivePath(file) {
|
|
23069
|
+
return import_node_path29.default.join((0, import_node_fs30.realpathSync)(import_node_path29.default.dirname(file)), import_node_path29.default.basename(file));
|
|
23070
|
+
}
|
|
23068
23071
|
function sdkArtifactBytes(root, artifact) {
|
|
23069
23072
|
const file = import_node_path29.default.resolve(root, artifact.path);
|
|
23070
23073
|
const linked = (0, import_node_fs30.readFileSync)(file);
|
|
@@ -23170,7 +23173,7 @@ function guestRuntimeInputIdentities(options) {
|
|
|
23170
23173
|
];
|
|
23171
23174
|
add(file, JSON.stringify(identity2));
|
|
23172
23175
|
if (artifact.kind !== "archive") continue;
|
|
23173
|
-
for (const origin of origins.get(file) ?? [])
|
|
23176
|
+
for (const origin of origins.get(canonicalArchivePath(file)) ?? [])
|
|
23174
23177
|
add(
|
|
23175
23178
|
import_node_path29.default.resolve(origin.original),
|
|
23176
23179
|
JSON.stringify([...identity2, origin.member, origin.ordinal])
|
|
@@ -23243,7 +23246,8 @@ function guestRuntimeProductsForInputs(options) {
|
|
|
23243
23246
|
for (const { product, root } of options.products) {
|
|
23244
23247
|
byId.set(product.id, product);
|
|
23245
23248
|
for (const artifact of product.artifacts) {
|
|
23246
|
-
const
|
|
23249
|
+
const absolute = import_node_path29.default.resolve(root, artifact.path);
|
|
23250
|
+
const file = artifact.kind === "archive" ? canonicalArchivePath(absolute) : absolute;
|
|
23247
23251
|
const owners = byFile.get(file) ?? [];
|
|
23248
23252
|
owners.push({ id: product.id, artifact });
|
|
23249
23253
|
byFile.set(file, owners);
|
|
@@ -23275,7 +23279,9 @@ function guestRuntimeProductsForInputs(options) {
|
|
|
23275
23279
|
const file = original.get(import_node_path29.default.resolve(selection.artifact)) ?? import_node_path29.default.resolve(selection.artifact);
|
|
23276
23280
|
const origin = origins.get(file);
|
|
23277
23281
|
const archive = origin ? import_node_path29.default.resolve(origin.archive) : file;
|
|
23278
|
-
const records = byFile.get(
|
|
23282
|
+
const records = byFile.get(
|
|
23283
|
+
origin || selection.member !== null ? canonicalArchivePath(archive) : archive
|
|
23284
|
+
);
|
|
23279
23285
|
if (frameworkObjects.has(file)) {
|
|
23280
23286
|
if (frameworkId === null || !byId.has(frameworkId))
|
|
23281
23287
|
throw new Error(`framework runtime product has no producer record ${file}`);
|
|
@@ -23387,8 +23393,9 @@ function guestSdkProductLinkArtifacts(products, sdk, inputs, linkedArchives, rew
|
|
|
23387
23393
|
for (const { product, root } of products) {
|
|
23388
23394
|
for (const artifact of product.artifacts) {
|
|
23389
23395
|
const file = import_node_path29.default.resolve(root, artifact.path);
|
|
23390
|
-
const
|
|
23391
|
-
|
|
23396
|
+
const archive = artifact.kind === "archive" ? canonicalArchivePath(file) : null;
|
|
23397
|
+
const objects = archive !== null ? origins.filter(
|
|
23398
|
+
(origin) => import_node_path29.default.resolve(origin.archive) === archive && (!selectedObjects || selectedObjects.has(
|
|
23392
23399
|
import_node_path29.default.resolve(rewritten.get(origin.original) ?? origin.original)
|
|
23393
23400
|
))
|
|
23394
23401
|
) : [];
|
|
@@ -31036,7 +31043,7 @@ int EXUpdatesApplyBSDiffPatch(const char * _Nonnull oldFilePath,
|
|
|
31036
31043
|
REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
31037
31044
|
MULTI_MANIFEST_VERSION = 68;
|
|
31038
31045
|
SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
31039
|
-
compilerSourceDigest = true ? "
|
|
31046
|
+
compilerSourceDigest = true ? "0a0bc1c871aee83ea273120655f55a43ddccde646478a452b4c73d2daefd58c3" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
31040
31047
|
nativeCxxCompilerFlags = ["-fno-cxx-modules"];
|
|
31041
31048
|
cFlagArray = (flags) => JSON.stringify(withoutGlogModuleMap(flags));
|
|
31042
31049
|
cxxFlagArray = (flags) => JSON.stringify([...nativeCxxCompilerFlags, ...withoutGlogModuleMap(flags)]);
|
|
@@ -42468,17 +42475,17 @@ function remoteSwiftCheckouts(root) {
|
|
|
42468
42475
|
import_node_fs69.default.mkdirSync(cacheDir(), { recursive: true });
|
|
42469
42476
|
return import_node_path69.default.join(import_node_fs69.default.realpathSync(cacheDir()), "swift-packages", key2, "checkouts");
|
|
42470
42477
|
}
|
|
42471
|
-
function unlowerableSources(files2, target) {
|
|
42478
|
+
function unlowerableSources(files2, target, portable) {
|
|
42472
42479
|
if (target.declaresWasiNativeSettings) return [];
|
|
42473
42480
|
return [
|
|
42474
|
-
...files2.filter((file) => UNSUPPORTED_NATIVE.test(file)),
|
|
42481
|
+
...portable.has(target.name) ? [] : files2.filter((file) => UNSUPPORTED_NATIVE.test(file)),
|
|
42475
42482
|
...files2.filter(isSwiftNativeTranslationUnit).filter((file) => swiftCTakesReturnAddress(import_node_fs69.default.readFileSync(file, "utf8")))
|
|
42476
42483
|
];
|
|
42477
42484
|
}
|
|
42478
|
-
function unloweredSources(files2, target) {
|
|
42485
|
+
function unloweredSources(files2, target, portable) {
|
|
42479
42486
|
if (target.type !== "regular") return null;
|
|
42480
42487
|
if (!files2.some(isSwiftNativeTranslationUnit)) return null;
|
|
42481
|
-
const unlowered = unlowerableSources(files2, target);
|
|
42488
|
+
const unlowered = unlowerableSources(files2, target, portable);
|
|
42482
42489
|
if (unlowered.length === 0) return null;
|
|
42483
42490
|
const headers = import_node_path69.default.resolve(target.dir, target.publicHeadersPath);
|
|
42484
42491
|
if (!files2.some((file) => file.startsWith(`${headers}${import_node_path69.default.sep}`) && file.endsWith(".h")))
|
|
@@ -42682,6 +42689,7 @@ async function resolveSwiftPackagesAsync(options) {
|
|
|
42682
42689
|
function resolveSwiftPackages(options) {
|
|
42683
42690
|
const { rootDir, resolved, products, localDirs } = options;
|
|
42684
42691
|
const providedTargets = new Set(options.provided ?? []);
|
|
42692
|
+
const portableAssembly = options.portableAssembly ?? /* @__PURE__ */ new Set();
|
|
42685
42693
|
const providedProducts = new Set(options.provided ?? []);
|
|
42686
42694
|
const result = {
|
|
42687
42695
|
sourceLinks: { targets: [], owners: [] },
|
|
@@ -42779,7 +42787,7 @@ function resolveSwiftPackages(options) {
|
|
|
42779
42787
|
if (target.type === "macro") return preservePackage(pkg, [name3], "host");
|
|
42780
42788
|
const files2 = target.type === "regular" || target.type === "system" ? swiftTargetFiles(pkg.manifest, target) : [];
|
|
42781
42789
|
const gap = options.binaryGaps?.get(name3);
|
|
42782
|
-
const unlowerable = unlowerableSources(files2, target);
|
|
42790
|
+
const unlowerable = unlowerableSources(files2, target, portableAssembly);
|
|
42783
42791
|
const placeholder = placeholderPackage(pkg);
|
|
42784
42792
|
const ownReason = target.type === "binary" ? `${name3} ${BINARY}${gap ? `; ${gap}` : ""}` : placeholder && gap ? `${name3} stands in as a placeholder (${placeholder}), and ${gap}` : target.type !== "regular" && target.type !== "system" ? `${name3} is a ${target.type} target` : unlowerable.length > 0 ? `${name3} has native sources with no wasm32 lowering: ${unlowerable.map((file) => import_node_path69.default.relative(pkg.manifest.dir, file)).join(", ")}${gap ? `; ${gap}` : ""}` : null;
|
|
42785
42793
|
const reasons = target.dependencies.map((dependency) => {
|
|
@@ -42860,7 +42868,7 @@ function resolveSwiftPackages(options) {
|
|
|
42860
42868
|
(file) => file.endsWith(".swift") && import_node_fs69.default.readFileSync(file, "utf8").trim() === ""
|
|
42861
42869
|
))
|
|
42862
42870
|
return false;
|
|
42863
|
-
if (unloweredSources(files2, target)) return false;
|
|
42871
|
+
if (unloweredSources(files2, target, portableAssembly)) return false;
|
|
42864
42872
|
claimed.add(key2);
|
|
42865
42873
|
providedTargets.delete(name3);
|
|
42866
42874
|
for (const dependency of target.dependencies) {
|
|
@@ -42908,7 +42916,7 @@ function resolveSwiftPackages(options) {
|
|
|
42908
42916
|
if (target.type === "executable") continue;
|
|
42909
42917
|
const files2 = target.type === "regular" || target.type === "system" ? swiftTargetFiles(pkg.manifest, target) : [];
|
|
42910
42918
|
const objc = target.type === "regular" && files2.some((file) => /\.(m|mm)$/.test(file));
|
|
42911
|
-
const unlowered = unloweredSources(files2, target);
|
|
42919
|
+
const unlowered = unloweredSources(files2, target, portableAssembly);
|
|
42912
42920
|
const gap = placeholderPackage(pkg);
|
|
42913
42921
|
const sources = files2.filter((file) => file.endsWith(".swift"));
|
|
42914
42922
|
const release = (setting) => setting.configuration !== "debug";
|
|
@@ -43241,7 +43249,7 @@ var init_swift_standin_digest = __esm({
|
|
|
43241
43249
|
STANDIN_DIGEST_ENTRYPOINTS = ["swift-standins.ts", "swift-objc-compile.ts"];
|
|
43242
43250
|
SPECIFIER = /from\s*['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
43243
43251
|
standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
|
|
43244
|
-
STANDIN_SOURCE_DIGEST = true ? "
|
|
43252
|
+
STANDIN_SOURCE_DIGEST = true ? "c0f609da62368c513c186d23bc8aa8e450d27efae5b8c2e7cdf50d34fa734ff0" : standinSourceDigest();
|
|
43245
43253
|
}
|
|
43246
43254
|
});
|
|
43247
43255
|
|
|
@@ -45152,7 +45160,7 @@ function graphStandin(module2, graphs, values, wasm, binary2, toolchain, work, r
|
|
|
45152
45160
|
}
|
|
45153
45161
|
if (omit.size + plain.size + unobjc.size + trapped.size + unconformed.size + forced.size + nonfailable.size === before)
|
|
45154
45162
|
throw new Error(
|
|
45155
|
-
`its generated source does not typecheck: ${elsewhere.slice(0, 3).join("; ") || check2.stderr.trim().slice(0, 400)}`
|
|
45163
|
+
`its generated source does not typecheck: ${(elsewhere.length > 0 ? elsewhere : [...check2.stderr.matchAll(/^\S+?:\d+:\d+: error: .*$/gm)].map((line) => line[0].replace(/^[^:]*\//, ""))).slice(0, 3).join("; ") || check2.stderr.trim().slice(0, 400)}`
|
|
45156
45164
|
);
|
|
45157
45165
|
}
|
|
45158
45166
|
}
|
|
@@ -48328,6 +48336,59 @@ function openXcodeProject(xcodeproj, target, moduleRoot, configuration, interfac
|
|
|
48328
48336
|
});
|
|
48329
48337
|
return root;
|
|
48330
48338
|
}
|
|
48339
|
+
async function wasmPortableAssembly(binaries, toolchainBin, moduleRoot) {
|
|
48340
|
+
const assembly = binaries.filter(
|
|
48341
|
+
(binary2) => binary2.unloweredSources?.length && binary2.unloweredSources.every((file) => /\.(s|S)$/.test(file)) && binary2.publicHeaders !== void 0
|
|
48342
|
+
);
|
|
48343
|
+
if (assembly.length === 0) return /* @__PURE__ */ new Set();
|
|
48344
|
+
const sdk = swiftSdkPaths(moduleRoot, toolchainBin);
|
|
48345
|
+
const clang = import_node_path79.default.join(toolchainBin, "clang");
|
|
48346
|
+
const empty = (binary2, file) => {
|
|
48347
|
+
const source = import_node_path79.default.join(binary2.dir, file);
|
|
48348
|
+
const key2 = (0, import_node_crypto40.createHash)("sha256").update(
|
|
48349
|
+
JSON.stringify([
|
|
48350
|
+
clang,
|
|
48351
|
+
sdk.sysroot,
|
|
48352
|
+
sdk.cFlags,
|
|
48353
|
+
binary2.dir,
|
|
48354
|
+
binary2.publicHeaders
|
|
48355
|
+
])
|
|
48356
|
+
).update(import_node_fs80.default.readFileSync(source)).digest("hex");
|
|
48357
|
+
const known = emptyWasmAssembly.get(key2);
|
|
48358
|
+
if (known) return known;
|
|
48359
|
+
const result = new Promise(
|
|
48360
|
+
(resolve4) => (0, import_node_child_process42.execFile)(
|
|
48361
|
+
clang,
|
|
48362
|
+
[
|
|
48363
|
+
"-target",
|
|
48364
|
+
"wasm32-unknown-wasip1",
|
|
48365
|
+
"--sysroot",
|
|
48366
|
+
sdk.sysroot,
|
|
48367
|
+
...sdk.cFlags,
|
|
48368
|
+
"-I",
|
|
48369
|
+
import_node_path79.default.join(binary2.dir, binary2.publicHeaders),
|
|
48370
|
+
"-I",
|
|
48371
|
+
import_node_path79.default.dirname(source),
|
|
48372
|
+
"-E",
|
|
48373
|
+
"-P",
|
|
48374
|
+
"-x",
|
|
48375
|
+
"assembler-with-cpp",
|
|
48376
|
+
source
|
|
48377
|
+
],
|
|
48378
|
+
{ maxBuffer: 64 * 1024 * 1024 },
|
|
48379
|
+
(error, stdout) => resolve4(!error && stdout.trim() === "")
|
|
48380
|
+
)
|
|
48381
|
+
);
|
|
48382
|
+
emptyWasmAssembly.set(key2, result);
|
|
48383
|
+
return result;
|
|
48384
|
+
};
|
|
48385
|
+
const portable = await Promise.all(
|
|
48386
|
+
assembly.map(
|
|
48387
|
+
async (binary2) => (await Promise.all(binary2.unloweredSources.map((file) => empty(binary2, file)))).every(Boolean) ? [binary2.target] : []
|
|
48388
|
+
)
|
|
48389
|
+
);
|
|
48390
|
+
return new Set(portable.flat());
|
|
48391
|
+
}
|
|
48331
48392
|
async function swiftPackages(entry, app) {
|
|
48332
48393
|
const stamp = (file) => import_node_fs80.default.existsSync(file) ? (0, import_node_crypto40.createHash)("sha256").update(import_node_fs80.default.readFileSync(file)).digest("hex") : null;
|
|
48333
48394
|
const owners = [...app.frameworks, app].map((target) => ({
|
|
@@ -48392,7 +48453,14 @@ async function swiftPackages(entry, app) {
|
|
|
48392
48453
|
entry.moduleRoot,
|
|
48393
48454
|
import_node_path79.default.join(resolved.toolchainBin, "clang++")
|
|
48394
48455
|
);
|
|
48395
|
-
const
|
|
48456
|
+
const portableAssembly = await wasmPortableAssembly(
|
|
48457
|
+
reached,
|
|
48458
|
+
resolved.toolchainBin,
|
|
48459
|
+
entry.moduleRoot
|
|
48460
|
+
);
|
|
48461
|
+
const cxxArtifacts = reached.filter(
|
|
48462
|
+
(binary2) => standinArtifact(binary2) && !portableAssembly.has(binary2.target)
|
|
48463
|
+
);
|
|
48396
48464
|
const generation = standinGenerationInputs(cxxArtifacts, toolchain, entry.behavior);
|
|
48397
48465
|
if (cached2.standinKey !== generation) {
|
|
48398
48466
|
const replaced = new Set(
|
|
@@ -48419,6 +48487,7 @@ async function swiftPackages(entry, app) {
|
|
|
48419
48487
|
[...replaced].filter((target) => !built2.gaps.has(target))
|
|
48420
48488
|
),
|
|
48421
48489
|
binaryGaps: built2.gaps,
|
|
48490
|
+
portableAssembly,
|
|
48422
48491
|
owners
|
|
48423
48492
|
});
|
|
48424
48493
|
for (const target of new Set(built2.standins.map((standin) => standin.target)))
|
|
@@ -50202,7 +50271,7 @@ function scopedArtifact(project2, entry, moduleRoot, signal) {
|
|
|
50202
50271
|
project2.building = { stamp, promise: fresh, signal };
|
|
50203
50272
|
return fresh;
|
|
50204
50273
|
}
|
|
50205
|
-
var import_node_async_hooks, import_node_child_process42, import_node_crypto40, import_node_fs80, import_node_os17, import_node_path79, RESOURCE_PATH, ICU_PATH, SKIP_ROOT_DIRS, NATIVE_DESCRIPTOR, NATIVE_GLUE, SwiftMissingModulesError, sharedProjects, projectScope, projects, sharedSourceEntries, sourceEntries, sharedXcodeProjects, xcodeProjects, preparedScriptInputs, XCODE_APP_DIR, XCODE_FRAMEWORKS_DIR, XCODE_PACKAGES_DIR, layoutScope, HOSTED_LIMITS, LOCAL_LIMITS, inputLimits, RESOURCE_CONTENT_TYPES, API_GAP_PATTERNS, IOS_SDK_FRAMEWORKS;
|
|
50274
|
+
var import_node_async_hooks, import_node_child_process42, import_node_crypto40, import_node_fs80, import_node_os17, import_node_path79, RESOURCE_PATH, ICU_PATH, SKIP_ROOT_DIRS, NATIVE_DESCRIPTOR, NATIVE_GLUE, SwiftMissingModulesError, sharedProjects, projectScope, projects, sharedSourceEntries, sourceEntries, sharedXcodeProjects, xcodeProjects, preparedScriptInputs, emptyWasmAssembly, XCODE_APP_DIR, XCODE_FRAMEWORKS_DIR, XCODE_PACKAGES_DIR, layoutScope, HOSTED_LIMITS, LOCAL_LIMITS, inputLimits, RESOURCE_CONTENT_TYPES, API_GAP_PATTERNS, IOS_SDK_FRAMEWORKS;
|
|
50206
50275
|
var init_swift_host = __esm({
|
|
50207
50276
|
"src/swift-host.ts"() {
|
|
50208
50277
|
"use strict";
|
|
@@ -50255,6 +50324,7 @@ var init_swift_host = __esm({
|
|
|
50255
50324
|
sharedXcodeProjects = /* @__PURE__ */ new Map();
|
|
50256
50325
|
xcodeProjects = () => projectScope.getStore()?.xcodeProjects ?? sharedXcodeProjects;
|
|
50257
50326
|
preparedScriptInputs = /* @__PURE__ */ new Set();
|
|
50327
|
+
emptyWasmAssembly = /* @__PURE__ */ new Map();
|
|
50258
50328
|
XCODE_APP_DIR = "__app__";
|
|
50259
50329
|
XCODE_FRAMEWORKS_DIR = "__frameworks__";
|
|
50260
50330
|
XCODE_PACKAGES_DIR = SWIFT_REMOTE_PACKAGES_DIR;
|
|
@@ -55677,7 +55747,7 @@ var init_nitro_superset = __esm({
|
|
|
55677
55747
|
init_nitroContract();
|
|
55678
55748
|
init_swift_standin_digest();
|
|
55679
55749
|
NITRO_SUPERSET_ENTRY_NAME = "superset";
|
|
55680
|
-
NITRO_COMPILER_DIGEST = true ? "
|
|
55750
|
+
NITRO_COMPILER_DIGEST = true ? "a16afc2e6e3c68812b9d48ad1c7be8c9d89cfebcf46e269779f2890053244d70" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
|
|
55681
55751
|
nitroSupersetLock = parseLock(nitro_superset_lock_default);
|
|
55682
55752
|
nitroSupersetKey = (inputs) => nativeEntryKey({ ...inputs, compiler: NITRO_COMPILER_DIGEST });
|
|
55683
55753
|
published = /* @__PURE__ */ new Map();
|
|
@@ -56902,7 +56972,7 @@ var init_expo_native_compiler_digest = __esm({
|
|
|
56902
56972
|
|
|
56903
56973
|
// src/expo-native-prebuilt.ts
|
|
56904
56974
|
function expoNativeCompilerDigestValue() {
|
|
56905
|
-
return true ? "
|
|
56975
|
+
return true ? "8e765b5dfd0ec93d9027f9d10365ed11f7d85a195d0a888dd1fb76b99195ff2e" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
|
|
56906
56976
|
}
|
|
56907
56977
|
function readSources(value) {
|
|
56908
56978
|
const sources = isRecord(value) ? value.sources : null;
|
|
@@ -68383,7 +68453,7 @@ ${await response.text()}`
|
|
|
68383
68453
|
return { platforms: snapshots };
|
|
68384
68454
|
}
|
|
68385
68455
|
async function snapshotOneProductionBundle(projectRoot, entryFile, env = {}, { runtimeExecutable = process.execPath, platforms: platforms2 = ["ios", "android"] } = {}) {
|
|
68386
|
-
const { execFile:
|
|
68456
|
+
const { execFile: execFile21 } = await import("node:child_process");
|
|
68387
68457
|
const { mkdtemp, readFile: readFile3, rm: rm2 } = await import("node:fs/promises");
|
|
68388
68458
|
const { tmpdir: tmpdir3 } = await import("node:os");
|
|
68389
68459
|
const { promisify: promisify20 } = await import("node:util");
|
|
@@ -68392,7 +68462,7 @@ async function snapshotOneProductionBundle(projectRoot, entryFile, env = {}, { r
|
|
|
68392
68462
|
for (const platform2 of platforms2) {
|
|
68393
68463
|
const out = await mkdtemp((0, import_node_path111.join)(tmpdir3(), "peach-production-bundle-"));
|
|
68394
68464
|
try {
|
|
68395
|
-
await promisify20(
|
|
68465
|
+
await promisify20(execFile21)(
|
|
68396
68466
|
runtimeExecutable,
|
|
68397
68467
|
[
|
|
68398
68468
|
(0, import_node_path111.join)(projectRoot, "node_modules/.bin/react-native"),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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.2220 | (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.2220 | (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/cloud.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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/cloud.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
package/dist-lib/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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/config.mjs
CHANGED
package/dist-lib/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2220 | (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;
|