peachsim 0.1.2225 → 0.1.2228
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/bridge-flow-runner.ts +56 -3
- package/cli/commands/control.ts +27 -1
- package/cli/commands/flow.ts +26 -0
- package/cli/commands/package.ts +9 -2
- package/cli/drivers/playwright.ts +1 -0
- package/cli/drivers/types.ts +3 -0
- 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 +78 -9
- 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 +76 -7
- 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 +78 -9
- 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 +11 -4
- package/dist-lib/metro-production-bundle.mjs +10 -4
- 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 +54 -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 +153 -23
- package/dist-lib/swift-compile.cjs +68 -4
- package/dist-lib/swift-compile.mjs +67 -4
- 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 +75 -6
- 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/bundle-parse-receipt.d.ts +17 -0
- package/dist-types/packages/peach-engine/src/engine/canvaskit-api.d.ts +2 -1
- package/dist-types/packages/peach-engine/src/engine/font-config.d.ts +2 -2
- package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/engine/native-paragraph.d.ts +4 -0
- package/dist-types/packages/peach-engine/src/engine/node.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/engine/types.d.ts +7 -0
- package/dist-types/packages/peach-engine/src/engine/yoga-layout.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/metro-fingerprint.d.ts +3 -2
- package/dist-types/packages/peach-engine/src/render-worker/compositor-protocol.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +3 -3
- package/dist-types/packages/peach-engine/src/rolldown-bundle-inventory.d.ts +0 -5
- package/dist-types/packages/peach-kit/src/capabilities.d.ts +2 -0
- package/dist-types/packages/peach-kit/src/internal.d.ts +1 -1
- package/dist-types/packages/peach-kit/src/ios-tint.d.ts +2 -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/UIControl.h +0 -26
- package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UIKitTypes.h +27 -0
- package/sdk/ios/usr/include/ObjectiveC.apinotes +380 -7
- package/src/metro-production-bundle.ts +15 -2
- package/src/swift-compile.ts +77 -2
- package/src/swift-standin-emit.ts +1 -0
- package/src/swift-standins.ts +8 -0
|
@@ -840,6 +840,38 @@ const MAESTRO_LOCATION_STATUS: Record<
|
|
|
840
840
|
],
|
|
841
841
|
}
|
|
842
842
|
|
|
843
|
+
export type LaunchPermissionStatuses = ReadonlyMap<
|
|
844
|
+
SystemPermissionKind,
|
|
845
|
+
SystemPermissionStatus
|
|
846
|
+
>
|
|
847
|
+
|
|
848
|
+
// the permissions of a flow whose first step is a launchApp that only launches:
|
|
849
|
+
// no state or keychain reset, arguments, runtime reset or foreground. a sim
|
|
850
|
+
// opened for that flow can deposit them before its app first boots.
|
|
851
|
+
export function firstPlainLaunchPermissions(
|
|
852
|
+
steps: readonly (MaestroStep | string)[],
|
|
853
|
+
): LaunchPermissionStatuses | null {
|
|
854
|
+
const first = steps[0]
|
|
855
|
+
if (first === undefined) return null
|
|
856
|
+
const step = typeof first === 'string' ? normalizeBareStringStep(first) : first
|
|
857
|
+
if (!step.launchApp || JSON.stringify(step.launchApp).includes('${')) return null
|
|
858
|
+
return plainLaunchPermissions(step.launchApp)
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
function plainLaunchPermissions(opts: unknown): LaunchPermissionStatuses | null {
|
|
862
|
+
if (
|
|
863
|
+
isObjectRecord(opts) &&
|
|
864
|
+
(opts.clearState ||
|
|
865
|
+
opts.clearKeychain === true ||
|
|
866
|
+
opts.resetRuntime === true ||
|
|
867
|
+
opts.stopApp === false ||
|
|
868
|
+
Object.prototype.hasOwnProperty.call(opts, 'arguments'))
|
|
869
|
+
) {
|
|
870
|
+
return null
|
|
871
|
+
}
|
|
872
|
+
return maestroLaunchPermissions(isObjectRecord(opts) ? opts.permissions : undefined)
|
|
873
|
+
}
|
|
874
|
+
|
|
843
875
|
function maestroLaunchPermissions(
|
|
844
876
|
permissions: unknown,
|
|
845
877
|
): Map<SystemPermissionKind, SystemPermissionStatus> {
|
|
@@ -1068,6 +1100,10 @@ class CaptureSetupError extends Error {
|
|
|
1068
1100
|
export class SootSimBridgeFlowRunner {
|
|
1069
1101
|
stepDelay = 0
|
|
1070
1102
|
|
|
1103
|
+
// the launch permissions the open that started this sim deposited before
|
|
1104
|
+
// its app booted, while that boot is still the app's only one
|
|
1105
|
+
seededLaunchPermissions: LaunchPermissionStatuses | null = null
|
|
1106
|
+
|
|
1071
1107
|
// maestro-compatible JS context for the whole flow run (shared with
|
|
1072
1108
|
// runFlow sub-flows): `${...}` templates, runScript, evalScript, output,
|
|
1073
1109
|
// maestro.copiedText. one per runner = one per flow file, like upstream.
|
|
@@ -3046,7 +3082,10 @@ export class SootSimBridgeFlowRunner {
|
|
|
3046
3082
|
if (!this.firstLaunchDone && !this.appStopped) await this.waitForTree(120000)
|
|
3047
3083
|
await this.clearKeychain()
|
|
3048
3084
|
}
|
|
3049
|
-
|
|
3085
|
+
const bootedByOpen = this.openBootIsLaunch(opts)
|
|
3086
|
+
if (!bootedByOpen) {
|
|
3087
|
+
await this.setLaunchPermissions(isObjectRecord(opts) ? opts.permissions : undefined)
|
|
3088
|
+
}
|
|
3050
3089
|
|
|
3051
3090
|
if (!this.firstLaunchDone) {
|
|
3052
3091
|
this.firstLaunchDone = true
|
|
@@ -3083,8 +3122,9 @@ export class SootSimBridgeFlowRunner {
|
|
|
3083
3122
|
await this.waitForTree(120000)
|
|
3084
3123
|
await this.waitForTree(30000)
|
|
3085
3124
|
} else {
|
|
3086
|
-
const launched =
|
|
3087
|
-
|
|
3125
|
+
const launched =
|
|
3126
|
+
!bootedByOpen && (await this.launchShellAppFromHomeIfNeeded(opts))
|
|
3127
|
+
if (!launched && !wantsForeground && !bootedByOpen) {
|
|
3088
3128
|
await this.waitForTree(120000)
|
|
3089
3129
|
await this.reloadGuestAppRuntime({
|
|
3090
3130
|
launchArguments: null,
|
|
@@ -3134,6 +3174,19 @@ export class SootSimBridgeFlowRunner {
|
|
|
3134
3174
|
}
|
|
3135
3175
|
}
|
|
3136
3176
|
|
|
3177
|
+
// maestro sets permissions and then launches. a sim opened with this
|
|
3178
|
+
// step's permissions already deposited has done both in its one boot.
|
|
3179
|
+
private openBootIsLaunch(opts: unknown): boolean {
|
|
3180
|
+
const seeded = this.seededLaunchPermissions
|
|
3181
|
+
if (!seeded || this.firstLaunchDone || this.appStopped) return false
|
|
3182
|
+
const wanted = plainLaunchPermissions(opts)
|
|
3183
|
+
return (
|
|
3184
|
+
wanted !== null &&
|
|
3185
|
+
wanted.size === seeded.size &&
|
|
3186
|
+
[...wanted].every(([kind, status]) => seeded.get(kind) === status)
|
|
3187
|
+
)
|
|
3188
|
+
}
|
|
3189
|
+
|
|
3137
3190
|
private async setLaunchPermissions(permissions: unknown) {
|
|
3138
3191
|
const statuses = maestroLaunchPermissions(permissions)
|
|
3139
3192
|
const appId = await this.callTest<string>('permissionGuestAppId')
|
package/cli/commands/control.ts
CHANGED
|
@@ -8,6 +8,7 @@ import path from 'node:path'
|
|
|
8
8
|
import { compareSemver } from '@contrast/runtime-delivery'
|
|
9
9
|
import { WebSocket } from 'ws'
|
|
10
10
|
import { formatLockOwner } from '../../../peach-kit/src/agent-identity'
|
|
11
|
+
import { buildPermissionSeedScript } from '../../detox/launch-permissions'
|
|
11
12
|
import { ANDROID_ROOT_MODULE_QUERY_PARAM } from '../../src/androidRootModuleContract'
|
|
12
13
|
import { isAppDeepLinkTarget, openAppUrl } from '../../src/app-url'
|
|
13
14
|
import { isLoopbackHost } from '../../src/backend-origin'
|
|
@@ -115,6 +116,7 @@ import {
|
|
|
115
116
|
} from './shell-url'
|
|
116
117
|
import { hasInstalledPeachSkills } from './skills'
|
|
117
118
|
import type { DriverId, DriverLaunchResult } from '../drivers/types'
|
|
119
|
+
import type { SystemPermissionBootSeed } from '@peach/globals'
|
|
118
120
|
|
|
119
121
|
interface ControlCommandOptions {
|
|
120
122
|
port?: number
|
|
@@ -123,6 +125,8 @@ interface ControlCommandOptions {
|
|
|
123
125
|
}
|
|
124
126
|
|
|
125
127
|
export interface OpenCommandResources {
|
|
128
|
+
// the launch permissions were deposited ahead of the opened app's boot
|
|
129
|
+
launchPermissionsSeeded?: boolean
|
|
126
130
|
bridge?: ReturnType<typeof spawn>
|
|
127
131
|
bridgeReady?: boolean
|
|
128
132
|
port?: number
|
|
@@ -1383,6 +1387,9 @@ async function dispatchAppLink(
|
|
|
1383
1387
|
}
|
|
1384
1388
|
|
|
1385
1389
|
type OpenCommandOptions = ControlCommandOptions & {
|
|
1390
|
+
// permissions the app this open boots holds from its first read, as a
|
|
1391
|
+
// test runner sets them before it launches the app
|
|
1392
|
+
launchPermissions?: SystemPermissionBootSeed['presets']
|
|
1386
1393
|
resources?: OpenCommandResources
|
|
1387
1394
|
signal?: AbortSignal
|
|
1388
1395
|
ownerPid?: number
|
|
@@ -2270,8 +2277,23 @@ async function openSim(
|
|
|
2270
2277
|
}
|
|
2271
2278
|
const connectWait = resolveDriverConnectWaitOptions()
|
|
2272
2279
|
opts.signal?.throwIfAborted()
|
|
2280
|
+
// the engine applies an ownerless seed to the app its url boots, on ios
|
|
2281
|
+
const seededLaunchPermissions =
|
|
2282
|
+
driverId === 'playwright' &&
|
|
2283
|
+
shellUrlPlatform(builtShellUrl) === 'ios' &&
|
|
2284
|
+
getCliRuntime().render_worker_app_load.isAppBootTargetUrl(builtShellUrl)
|
|
2285
|
+
? opts.launchPermissions
|
|
2286
|
+
: undefined
|
|
2273
2287
|
const result = await driver.launch({
|
|
2274
2288
|
url: openUrl,
|
|
2289
|
+
bootScript:
|
|
2290
|
+
seededLaunchPermissions &&
|
|
2291
|
+
buildPermissionSeedScript({
|
|
2292
|
+
appId: null,
|
|
2293
|
+
platform: 'ios',
|
|
2294
|
+
presets: seededLaunchPermissions,
|
|
2295
|
+
grantInstallPermissions: false,
|
|
2296
|
+
}),
|
|
2275
2297
|
// the shell serves the sim page but its WS bridge may have drifted off
|
|
2276
2298
|
// the shell-port-implied default. inject the bridge this command settled
|
|
2277
2299
|
// on so the page does not reconnect to a stale world. re-deriving it from
|
|
@@ -2300,7 +2322,11 @@ async function openSim(
|
|
|
2300
2322
|
: undefined),
|
|
2301
2323
|
connectTimeoutMs: connectWait.hostTimeoutMs,
|
|
2302
2324
|
})
|
|
2303
|
-
if (opts.resources)
|
|
2325
|
+
if (opts.resources) {
|
|
2326
|
+
opts.resources.driver = { ...result, driverId }
|
|
2327
|
+
opts.resources.launchPermissionsSeeded =
|
|
2328
|
+
seededLaunchPermissions !== undefined && result.launched
|
|
2329
|
+
}
|
|
2304
2330
|
opts.signal?.throwIfAborted()
|
|
2305
2331
|
if (!result.launched) {
|
|
2306
2332
|
console.error(` ${driver.name} driver: ${result.message}`)
|
package/cli/commands/flow.ts
CHANGED
|
@@ -12,7 +12,9 @@ import { devices, type DeviceModel } from '../../src/device-catalog.ts'
|
|
|
12
12
|
import { SOOTSIM_SHELL_COMMAND_NAME } from '../../src/menu'
|
|
13
13
|
import { printBridgeFailureDiagnostics } from '../bridge-diagnostics'
|
|
14
14
|
import {
|
|
15
|
+
firstPlainLaunchPermissions,
|
|
15
16
|
SootSimBridgeFlowRunner,
|
|
17
|
+
type LaunchPermissionStatuses,
|
|
16
18
|
type MaestroStep,
|
|
17
19
|
type SootSimFlowProfileResult,
|
|
18
20
|
type SootSimFlowTraceStep,
|
|
@@ -563,6 +565,11 @@ flow extension:
|
|
|
563
565
|
let closeFlowOwnedSimAfterRun = false
|
|
564
566
|
let openedSimId: string | undefined
|
|
565
567
|
const ownedSimIds = new Set<string>()
|
|
568
|
+
// maestro sets a launchApp's permissions and then launches. a sim this run
|
|
569
|
+
// opens takes them, and the flow's theme, ahead of its app's boot, so that
|
|
570
|
+
// boot is the launch and the step boots nothing again.
|
|
571
|
+
const firstLaunchPermissions = firstPlainLaunchPermissions(steps)
|
|
572
|
+
let seededLaunchPermissions: LaunchPermissionStatuses | null = null
|
|
566
573
|
|
|
567
574
|
// if we weren't told exactly where to go, and there's already a primary
|
|
568
575
|
// open tab, just reuse it. opening a fresh tab that auto-discovers some
|
|
@@ -614,6 +621,12 @@ flow extension:
|
|
|
614
621
|
const openArgs = [openTarget]
|
|
615
622
|
if (pinnedShellBaseUrl) openArgs.push('--base-url', pinnedShellBaseUrl)
|
|
616
623
|
if (targetDevice) openArgs.push('--device', targetDevice)
|
|
624
|
+
if (
|
|
625
|
+
firstLaunchPermissions &&
|
|
626
|
+
(targetTheme === 'light' || targetTheme === 'dark' || targetTheme === 'auto')
|
|
627
|
+
) {
|
|
628
|
+
openArgs.push('--theme', targetTheme)
|
|
629
|
+
}
|
|
617
630
|
const iosTarget = getFlag('--ios-target')
|
|
618
631
|
if (iosTarget) openArgs.push('--ios-target', iosTarget)
|
|
619
632
|
const appFontsDir = getFlag('--app-fonts-dir')
|
|
@@ -647,6 +660,14 @@ flow extension:
|
|
|
647
660
|
...(parsedBridgeArgs.explicitPort ? { port: parsedBridgeArgs.wsPort } : {}),
|
|
648
661
|
timeoutMs: parsedBridgeArgs.commandTimeoutMs,
|
|
649
662
|
resources: openResources,
|
|
663
|
+
...(firstLaunchPermissions
|
|
664
|
+
? {
|
|
665
|
+
launchPermissions: [...firstLaunchPermissions].map(([kind, status]) => ({
|
|
666
|
+
kind,
|
|
667
|
+
mutation: { status },
|
|
668
|
+
})),
|
|
669
|
+
}
|
|
670
|
+
: {}),
|
|
650
671
|
// a prebuilt bundle file carries its own configuration footer; the registry's
|
|
651
672
|
// copy names files by this checkout's paths and would never match it
|
|
652
673
|
runtimeConfig: openTarget.endsWith('.js')
|
|
@@ -654,6 +675,9 @@ flow extension:
|
|
|
654
675
|
: targetAppResolution.runtimeConfig,
|
|
655
676
|
})
|
|
656
677
|
openedSimId = opened?.simId
|
|
678
|
+
if (openResources.launchPermissionsSeeded) {
|
|
679
|
+
seededLaunchPermissions = firstLaunchPermissions
|
|
680
|
+
}
|
|
657
681
|
// the steps must talk to the bridge open actually settled on, not the
|
|
658
682
|
// pre-open default. without this a default 7668 held by an unrelated
|
|
659
683
|
// server keeps the flow on 7668 while open serves from 7669.
|
|
@@ -872,6 +896,8 @@ flow extension:
|
|
|
872
896
|
}
|
|
873
897
|
const deviceChanged = await applySimSettings()
|
|
874
898
|
if (deviceChanged && !startsWithLaunchApp) await driver.waitForTree(120000)
|
|
899
|
+
// a device change reloads the page, which is a second boot without the seed
|
|
900
|
+
if (!deviceChanged) driver.seededLaunchPermissions = seededLaunchPermissions
|
|
875
901
|
// preview replay must reproduce the SAME initial conditions the agent
|
|
876
902
|
// explored from. the explore session runs on a fresh ephemeral profile
|
|
877
903
|
// (cold, logged-out), so its recorded steps assume that cold start —
|
package/cli/commands/package.ts
CHANGED
|
@@ -125,11 +125,18 @@ async function primeCodeCache(app: string, home: string): Promise<void> {
|
|
|
125
125
|
fs.readFileSync(record, 'utf8'),
|
|
126
126
|
)
|
|
127
127
|
const bridgeEnv = { ...env, PEACH_BRIDGE_PORT: String(service.bridgePort) }
|
|
128
|
-
// the cli finds no sim until the host's page reaches the app's service
|
|
128
|
+
// the cli finds no sim until the host's page reaches the app's service. a first screen may
|
|
129
|
+
// animate for as long as it shows (a spinner while it connects), so the launch counts once painted
|
|
129
130
|
for (;;) {
|
|
130
131
|
const ready = spawnSync(
|
|
131
132
|
peach,
|
|
132
|
-
[
|
|
133
|
+
[
|
|
134
|
+
'wait',
|
|
135
|
+
'ready',
|
|
136
|
+
'--painted',
|
|
137
|
+
'--max-ms',
|
|
138
|
+
String(Math.max(1000, deadline - Date.now())),
|
|
139
|
+
],
|
|
133
140
|
{ env: bridgeEnv, encoding: 'utf8' },
|
|
134
141
|
)
|
|
135
142
|
if (ready.status === 0) break
|
|
@@ -272,6 +272,7 @@ async function launch(opts: DriverLaunchOptions): Promise<DriverLaunchResult> {
|
|
|
272
272
|
PEACH_PW_FETCH_PROXY_SPKI: fetchProxySpki,
|
|
273
273
|
SOOTSIM_PW_BRIDGE_PORT: opts.bridgePort ? String(opts.bridgePort) : '',
|
|
274
274
|
SOOTSIM_PW_HEADLESS: headless ? '1' : '0',
|
|
275
|
+
PEACH_PW_BOOT_SCRIPT: opts.bootScript ?? '',
|
|
275
276
|
SOOTSIM_PW_USERDATADIR: resolveUserDataDir(opts),
|
|
276
277
|
SOOTSIM_PW_CDP_PORT: cdpPort ? String(cdpPort) : '',
|
|
277
278
|
PEACH_PW_HOST_COMMAND: hostCommand ? JSON.stringify(hostCommand) : '',
|
package/cli/drivers/types.ts
CHANGED
|
@@ -71,6 +71,9 @@ export interface DriverLaunchOptions {
|
|
|
71
71
|
// boot -> bridge on :7669 while the shell kept :5173): the page's own
|
|
72
72
|
// shell-port heuristic would compute the stale :7668 and never connect.
|
|
73
73
|
bridgePort?: number
|
|
74
|
+
// a script the sim page runs ahead of its own, for state the engine reads
|
|
75
|
+
// before its first boot. only the playwright driver honors it.
|
|
76
|
+
bootScript?: string
|
|
74
77
|
}
|
|
75
78
|
|
|
76
79
|
export interface DriverCompletion {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2228 | (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.2228 | (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.2228 | (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.2228 | (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.2228 | (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.2228 | (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.2228 | (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.2228 | (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.2228 | (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.2228 | (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;
|
|
@@ -17115,7 +17115,7 @@ function emitSwiftStandin(sourceGraphs, options) {
|
|
|
17115
17115
|
"Equatable",
|
|
17116
17116
|
"CustomStringConvertible",
|
|
17117
17117
|
"CustomDebugStringConvertible"
|
|
17118
|
-
].includes(name3)) && !(name3 === nsObjectProtocol && externalRoot(id) === nsObject) && !options.unconformed?.get(path99)?.has(name3)
|
|
17118
|
+
].includes(name3)) && !(name3 === nsObjectProtocol && externalRoot(id) === nsObject) && !options.unconformed?.get(path99)?.has(name3.split(/::|\./).pop()) && !options.unconformed?.get(path99)?.has(name3)
|
|
17119
17119
|
)
|
|
17120
17120
|
].filter((name3, at, all2) => all2.indexOf(name3) === at);
|
|
17121
17121
|
const parentSymbol = superId.has(id) ? byId.get(superId.get(id)) : void 0;
|
|
@@ -27022,6 +27022,20 @@ function swiftModuleInterface(moduleRoot, name3, interfaceRoot) {
|
|
|
27022
27022
|
if (declared.size === 0) return null;
|
|
27023
27023
|
return { declared, header: clangInterfaceHeader((0, import_node_fs42.readFileSync)(built2, "utf8")) };
|
|
27024
27024
|
}
|
|
27025
|
+
function swiftHeaderWithSuperclassImports(header, interfaceFor) {
|
|
27026
|
+
const superclasses = new Set(
|
|
27027
|
+
[...header.matchAll(/@interface\s+\w+\s*:\s*(\w+)/g)].map((match) => match[1])
|
|
27028
|
+
);
|
|
27029
|
+
return header.replace(/^@import (\w+);$/gm, (statement, name3) => {
|
|
27030
|
+
const dependency = interfaceFor(name3);
|
|
27031
|
+
if (!dependency || ![...swiftInterfaceDeclarations(dependency.header)].some(
|
|
27032
|
+
(name4) => superclasses.has(name4)
|
|
27033
|
+
))
|
|
27034
|
+
return statement;
|
|
27035
|
+
return `${statement}
|
|
27036
|
+
#import ${JSON.stringify(dependency.file)}`;
|
|
27037
|
+
});
|
|
27038
|
+
}
|
|
27025
27039
|
function withoutSwiftDeclarations(text6, declared, interfaceImport) {
|
|
27026
27040
|
const out = [];
|
|
27027
27041
|
let skipping;
|
|
@@ -31382,6 +31396,51 @@ function compileSwiftProjectOnce(input, options) {
|
|
|
31382
31396
|
if ((0, import_node_fs42.existsSync)(linked) && (0, import_node_fs42.statSync)(linked).size <= 8)
|
|
31383
31397
|
(0, import_node_fs42.rmSync)(linked, { force: true });
|
|
31384
31398
|
report("compiling and linking Swift modules");
|
|
31399
|
+
const frameworkInterfaces = /* @__PURE__ */ new Map();
|
|
31400
|
+
const frameworkInterface = (name3) => {
|
|
31401
|
+
if (frameworkInterfaces.has(name3)) return frameworkInterfaces.get(name3);
|
|
31402
|
+
const source = distribution ? import_node_path41.default.join(frameworkRoot, "modules", `${name3}-Swift.h`) : import_node_path41.default.join(
|
|
31403
|
+
prebuilt.modules,
|
|
31404
|
+
"..",
|
|
31405
|
+
`${name3}.build/include/${name3}-Swift.h`
|
|
31406
|
+
);
|
|
31407
|
+
if (!(0, import_node_fs42.existsSync)(source)) {
|
|
31408
|
+
frameworkInterfaces.set(name3, null);
|
|
31409
|
+
return null;
|
|
31410
|
+
}
|
|
31411
|
+
const headers = import_node_path41.default.join(
|
|
31412
|
+
swiftSdkPaths(frameworkRoot, options.toolchainBin).darwin,
|
|
31413
|
+
`System/Library/Frameworks/${name3}.framework/Headers`
|
|
31414
|
+
);
|
|
31415
|
+
const declared = /* @__PURE__ */ new Set();
|
|
31416
|
+
if ((0, import_node_fs42.existsSync)(headers)) {
|
|
31417
|
+
for (const file of (0, import_node_fs42.readdirSync)(headers, {
|
|
31418
|
+
recursive: true,
|
|
31419
|
+
encoding: "utf8"
|
|
31420
|
+
}))
|
|
31421
|
+
if (file.endsWith(".h"))
|
|
31422
|
+
for (const name4 of swiftInterfaceDeclarations(
|
|
31423
|
+
(0, import_node_fs42.readFileSync)(import_node_path41.default.join(headers, file), "utf8")
|
|
31424
|
+
))
|
|
31425
|
+
declared.add(name4);
|
|
31426
|
+
}
|
|
31427
|
+
const header = withoutSwiftDeclarations(
|
|
31428
|
+
clangInterfaceHeader((0, import_node_fs42.readFileSync)(source, "utf8")),
|
|
31429
|
+
declared,
|
|
31430
|
+
`#import <${name3}/${name3}.h>`
|
|
31431
|
+
);
|
|
31432
|
+
const value = {
|
|
31433
|
+
file: import_node_path41.default.join(root, ".build/peach-framework-objc", `${name3}-Swift.h`),
|
|
31434
|
+
header
|
|
31435
|
+
};
|
|
31436
|
+
frameworkInterfaces.set(name3, value);
|
|
31437
|
+
writeBuildFile(
|
|
31438
|
+
value.file,
|
|
31439
|
+
((0, import_node_fs42.existsSync)(import_node_path41.default.join(headers, `${name3}.h`)) ? `#import <${name3}/${name3}.h>
|
|
31440
|
+
` : "") + swiftHeaderWithSuperclassImports(header, frameworkInterface)
|
|
31441
|
+
);
|
|
31442
|
+
return value;
|
|
31443
|
+
};
|
|
31385
31444
|
try {
|
|
31386
31445
|
const headerBuilds = preparation.headerProductTarget ? [
|
|
31387
31446
|
...Object.keys(preparation.nativeHeaderDeclarations),
|
|
@@ -31409,7 +31468,10 @@ function compileSwiftProjectOnce(input, options) {
|
|
|
31409
31468
|
writeBuildFile(
|
|
31410
31469
|
emitted,
|
|
31411
31470
|
withoutSwiftDeclarations(
|
|
31412
|
-
|
|
31471
|
+
swiftHeaderWithSuperclassImports(
|
|
31472
|
+
clangInterfaceHeader((0, import_node_fs42.readFileSync)(original, "utf8")),
|
|
31473
|
+
frameworkInterface
|
|
31474
|
+
),
|
|
31413
31475
|
new Set(preparation.nativeHeaderDeclarations[producer]),
|
|
31414
31476
|
`#import <${producer}/${producer}.h>`
|
|
31415
31477
|
)
|
|
@@ -31684,7 +31746,7 @@ var init_swift_compile = __esm({
|
|
|
31684
31746
|
ExpoModulesCore: []
|
|
31685
31747
|
};
|
|
31686
31748
|
OPTIONAL_FRAMEWORKS = new Set(Object.keys(OPTIONAL_FRAMEWORK_DEPENDENCIES));
|
|
31687
|
-
SWIFT_IMPORT = /^\s*(?:@\w+(?:\([^)]*\))?\s+)*import\s+(?:(?:typealias|struct|class|enum|protocol|let|var|func)\s+)?([A-Za-z_][A-Za-z0-9_]*)/;
|
|
31749
|
+
SWIFT_IMPORT = /^\s*(?:@\w+(?:\([^)]*\))?\s+|(?:public|package|internal|fileprivate|private)\s+)*import\s+(?:(?:typealias|struct|class|enum|protocol|let|var|func)\s+)?([A-Za-z_][A-Za-z0-9_]*)/;
|
|
31688
31750
|
kleeneNot = (value) => value === void 0 ? void 0 : !value;
|
|
31689
31751
|
kleeneAnd = (left, right) => left === false || right === false ? false : left === true && right === true ? true : void 0;
|
|
31690
31752
|
kleeneOr = (left, right) => left === true || right === true ? true : left === false && right === false ? false : void 0;
|
|
@@ -31781,7 +31843,7 @@ int EXUpdatesApplyBSDiffPatch(const char * _Nonnull oldFilePath,
|
|
|
31781
31843
|
REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
31782
31844
|
MULTI_MANIFEST_VERSION = 68;
|
|
31783
31845
|
SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
31784
|
-
compilerSourceDigest = true ? "
|
|
31846
|
+
compilerSourceDigest = true ? "280e858b01b1c1393d3765c8d6ff1b3ce4a1a93d7fb7e3dd2d4d3e5f1d5f1ac2" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
31785
31847
|
nativeCxxCompilerFlags = ["-fno-cxx-modules"];
|
|
31786
31848
|
cFlagArray = (flags) => JSON.stringify(withoutGlogModuleMap(flags));
|
|
31787
31849
|
cxxFlagArray = (flags) => JSON.stringify([...nativeCxxCompilerFlags, ...withoutGlogModuleMap(flags)]);
|
|
@@ -43711,7 +43773,7 @@ var init_swift_standin_digest = __esm({
|
|
|
43711
43773
|
STANDIN_DIGEST_ENTRYPOINTS = ["swift-standins.ts", "swift-objc-compile.ts"];
|
|
43712
43774
|
SPECIFIER = /from\s*['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
43713
43775
|
standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
|
|
43714
|
-
STANDIN_SOURCE_DIGEST = true ? "
|
|
43776
|
+
STANDIN_SOURCE_DIGEST = true ? "c157dea0314bab3ba5af4145cc3ba5b8a4d824fa6677166162e49713afe384bb" : standinSourceDigest();
|
|
43715
43777
|
}
|
|
43716
43778
|
});
|
|
43717
43779
|
|
|
@@ -45598,6 +45660,13 @@ function graphStandin(module2, graphs, values, wasm, binary2, toolchain, work, r
|
|
|
45598
45660
|
unconformed.set(owner, /* @__PURE__ */ new Set([...unconformed.get(owner) ?? [], conformance]));
|
|
45599
45661
|
continue;
|
|
45600
45662
|
}
|
|
45663
|
+
const redundant = /^redundant conformance of '\w+' to protocol '(\w+)'$/.exec(
|
|
45664
|
+
match[3]
|
|
45665
|
+
)?.[1];
|
|
45666
|
+
if (owner && redundant) {
|
|
45667
|
+
unconformed.set(owner, /* @__PURE__ */ new Set([...unconformed.get(owner) ?? [], redundant]));
|
|
45668
|
+
continue;
|
|
45669
|
+
}
|
|
45601
45670
|
if (owner && swiftPaths.has(owner))
|
|
45602
45671
|
throw new Error(
|
|
45603
45672
|
`Swift declaration ${module2}.${owner} does not typecheck: ${match[3]}`
|
|
@@ -56263,7 +56332,7 @@ var init_nitro_superset = __esm({
|
|
|
56263
56332
|
init_nitroContract();
|
|
56264
56333
|
init_swift_standin_digest();
|
|
56265
56334
|
NITRO_SUPERSET_ENTRY_NAME = "superset";
|
|
56266
|
-
NITRO_COMPILER_DIGEST = true ? "
|
|
56335
|
+
NITRO_COMPILER_DIGEST = true ? "02840899304cd9c2c7928baa6f7a13405d0142f29940e8d6fdbf2569fb60b262" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
|
|
56267
56336
|
nitroSupersetLock = parseLock(nitro_superset_lock_default);
|
|
56268
56337
|
nitroSupersetKey = (inputs) => nativeEntryKey({ ...inputs, compiler: NITRO_COMPILER_DIGEST });
|
|
56269
56338
|
published = /* @__PURE__ */ new Map();
|
|
@@ -57488,7 +57557,7 @@ var init_expo_native_compiler_digest = __esm({
|
|
|
57488
57557
|
|
|
57489
57558
|
// src/expo-native-prebuilt.ts
|
|
57490
57559
|
function expoNativeCompilerDigestValue() {
|
|
57491
|
-
return true ? "
|
|
57560
|
+
return true ? "52d8ecb0a37f0f7a5504161cecd2a17d59f6cff85fdc5cac0ae8f4353362ad1a" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
|
|
57492
57561
|
}
|
|
57493
57562
|
function readSources(value) {
|
|
57494
57563
|
const sources = isRecord(value) ? value.sources : null;
|
|
@@ -64965,7 +65034,7 @@ var import_node_path5 = require("node:path");
|
|
|
64965
65034
|
init_src();
|
|
64966
65035
|
|
|
64967
65036
|
// runtime-companion.json
|
|
64968
|
-
var runtime_companion_default = { abi: 1, sha256: "
|
|
65037
|
+
var runtime_companion_default = { abi: 1, sha256: "286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa", file: "node/cli-286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa.cjs" };
|
|
64969
65038
|
|
|
64970
65039
|
// src/cli-runtime.ts
|
|
64971
65040
|
init_answeredNativePackages();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2228 | (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.2228 | (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.2228 | (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.2228 | (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.2228 | (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.2228 | (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.2228 | (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;
|
|
@@ -2515,7 +2515,7 @@ function isValidRuntimeVersion(value) {
|
|
|
2515
2515
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
2516
2516
|
|
|
2517
2517
|
// runtime-companion.json
|
|
2518
|
-
var runtime_companion_default = { abi: 1, sha256: "
|
|
2518
|
+
var runtime_companion_default = { abi: 1, sha256: "286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa", file: "node/cli-286145bc3b2ca79a64228c88d8c2e088a592754d61b5855d0388974ee88863fa.cjs" };
|
|
2519
2519
|
|
|
2520
2520
|
// src/answeredNativePackages.ts
|
|
2521
2521
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2228 | (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;
|