peachsim 0.1.1399 → 0.1.1401
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/app-fonts.ts +12 -5
- package/cli/commands/inspect.ts +2 -2
- package/cli/commands/screenshot.ts +11 -8
- package/cli/outbound-endpoints.ts +4 -0
- package/cli/screenshot-output.ts +17 -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 +1 -1
- 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 +3 -1
- package/dist-lib/expo-swift-bundle.cjs +1 -1
- 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 +1 -1
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist-lib/native-app-identity-project.cjs +1 -1
- package/dist-lib/native-app-identity-project.mjs +1 -1
- 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/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/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +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 +8 -3
- package/dist-lib/swift-compile.cjs +1 -1
- package/dist-lib/swift-compile.mjs +1 -1
- 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 +1 -1
- package/dist-lib/vite.cjs +1 -1
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/kotlin/fixtures/import-resources/ImportResources.native.tsx +18 -0
- package/kotlin/fixtures/import-resources/README.md +26 -0
- package/kotlin/fixtures/import-resources/Resources.d.kt.ts +6 -0
- package/kotlin/fixtures/import-resources/Resources.kt +72 -0
- package/kotlin/fixtures/import-resources/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-resources/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-resources/package.json +23 -0
- package/kotlin/fixtures/import-resources/tsconfig.json +20 -0
- package/kotlin/fixtures/import-resources/vite.config.ts +20 -0
- package/package.json +1 -1
- package/src/dev-bundle-resolution.ts +1 -1
package/cli/app-fonts.ts
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
} from 'peach-engine/engine/config-plugin-fonts'
|
|
11
11
|
import { resolveListeningPid, resolveProcessCwd } from '../scripts/dev-server-scanner'
|
|
12
12
|
import { loopbackOriginOf } from '../src/backend-origin'
|
|
13
|
+
import { MANIFEST_PROBE_TIMEOUT_MS } from '../src/dev-bundle-resolution'
|
|
13
14
|
import { parsePlistSource } from '../src/plist.ts'
|
|
14
15
|
import { resolveAppProject } from './app-project'
|
|
15
16
|
|
|
@@ -296,14 +297,16 @@ export function readNativeLinkedAppFontsWire(opts: {
|
|
|
296
297
|
// a bare react-native packager serves no such manifest, so the same resolver
|
|
297
298
|
// asks the OS for the listening process's cwd. that is still the development
|
|
298
299
|
// server's project identity; the invoking CLI's cwd is never consulted.
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
300
|
+
//
|
|
301
|
+
// it waits on the same budget as the manifest resolution that found this dev
|
|
302
|
+
// server. a cold Expo Metro answers /status in 2-4s while it builds a bundle,
|
|
303
|
+
// and dropping the project there opens the app without its fonts, splash or
|
|
304
|
+
// Firebase config. a server that stays silent past the budget fails the open.
|
|
305
|
+
export async function resolveMetroProjectRoot(bundleUrl: string): Promise<string | null> {
|
|
303
306
|
const origin = loopbackOriginOf(bundleUrl)
|
|
304
307
|
if (!origin) return null
|
|
305
308
|
const controller = new AbortController()
|
|
306
|
-
const timer = setTimeout(() => controller.abort(),
|
|
309
|
+
const timer = setTimeout(() => controller.abort(), MANIFEST_PROBE_TIMEOUT_MS)
|
|
307
310
|
let servedManifest = false
|
|
308
311
|
let metroRunning = false
|
|
309
312
|
try {
|
|
@@ -324,6 +327,10 @@ export async function resolveMetroProjectRoot(
|
|
|
324
327
|
if (typeof root === 'string' && root.length > 0) return root
|
|
325
328
|
}
|
|
326
329
|
} catch {
|
|
330
|
+
if (controller.signal.aborted)
|
|
331
|
+
throw new Error(
|
|
332
|
+
`Metro project root request timed out after ${MANIFEST_PROBE_TIMEOUT_MS / 1000}s: ${origin}. Wait for the dev server to finish starting or pass --project-root.`,
|
|
333
|
+
)
|
|
327
334
|
} finally {
|
|
328
335
|
clearTimeout(timer)
|
|
329
336
|
}
|
package/cli/commands/inspect.ts
CHANGED
|
@@ -21,6 +21,7 @@ import { levenshtein } from '../levenshtein'
|
|
|
21
21
|
import { TOP_LEVEL_RUNTIME_COMMANDS } from '../parse-args'
|
|
22
22
|
import { rethrowIfExit, peachExit } from '../run-rnx'
|
|
23
23
|
import { collectRuntimeDiagnostics } from '../runtime-diagnostics'
|
|
24
|
+
import { writeScreenshotOutput } from '../screenshot-output'
|
|
24
25
|
import { trackCliError } from '../telemetry'
|
|
25
26
|
import {
|
|
26
27
|
type BridgeTransportOption,
|
|
@@ -1874,8 +1875,7 @@ export async function runInspect(args: string[], opts: InspectOptions) {
|
|
|
1874
1875
|
if (rect) {
|
|
1875
1876
|
console.log(` area: x=${rect.x} y=${rect.y} w=${rect.w} h=${rect.h}`)
|
|
1876
1877
|
}
|
|
1877
|
-
|
|
1878
|
-
fs.writeFileSync(outputPath, Buffer.from(base64, 'base64'))
|
|
1878
|
+
await writeScreenshotOutput(outputPath, Buffer.from(base64, 'base64'))
|
|
1879
1879
|
console.log(` saved: ${outputPath}`)
|
|
1880
1880
|
break
|
|
1881
1881
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// chromium when nothing is running, so CI / one-shot capture still works
|
|
7
7
|
// without a daemon.
|
|
8
8
|
|
|
9
|
-
import { mkdirSync
|
|
9
|
+
import { mkdirSync } from 'fs'
|
|
10
10
|
import { dirname, resolve } from 'path'
|
|
11
11
|
import { devices, type DeviceModel } from 'peach-engine/settings/devices'
|
|
12
12
|
import { launchReapedChrome } from '../../../../scripts/lib/reap-browser'
|
|
@@ -15,6 +15,7 @@ import { composeFramedScreenshot } from '../../src/screenshots/frame-compose'
|
|
|
15
15
|
import { buildResolveRectEval, type SampleRect } from '../browser-evals'
|
|
16
16
|
import { createCloudBridgeForParsed } from '../cloud-client'
|
|
17
17
|
import { peachExit } from '../run-rnx'
|
|
18
|
+
import { writeScreenshotOutput } from '../screenshot-output'
|
|
18
19
|
import {
|
|
19
20
|
callInBridge,
|
|
20
21
|
checkSimHealth,
|
|
@@ -116,11 +117,10 @@ examples:
|
|
|
116
117
|
throw new Error('remote simulator screenshot returned invalid image data')
|
|
117
118
|
}
|
|
118
119
|
const outputPath = resolve(process.cwd(), outputArg || '/tmp/peach-inspect.png')
|
|
119
|
-
mkdirSync(dirname(outputPath), { recursive: true })
|
|
120
120
|
const png = Buffer.from(dataUrl.slice(pngPrefix.length), 'base64')
|
|
121
121
|
if (png.length === 0)
|
|
122
122
|
throw new Error('remote simulator screenshot returned no image data')
|
|
123
|
-
|
|
123
|
+
await writeScreenshotOutput(outputPath, png)
|
|
124
124
|
console.log(` saved: ${outputPath}`)
|
|
125
125
|
} catch (error) {
|
|
126
126
|
console.error(
|
|
@@ -314,7 +314,6 @@ async function captureViaBridge(
|
|
|
314
314
|
if (layers) console.log(` layers: ${layers}`)
|
|
315
315
|
|
|
316
316
|
const outputPath = resolve(process.cwd(), outputArg || '/tmp/peach-inspect.png')
|
|
317
|
-
mkdirSync(dirname(outputPath), { recursive: true })
|
|
318
317
|
const rawBuffer = Buffer.from(base64, 'base64')
|
|
319
318
|
if (withFrame) {
|
|
320
319
|
const model = await readCurrentDeviceModel(bridge)
|
|
@@ -322,10 +321,10 @@ async function captureViaBridge(
|
|
|
322
321
|
throw new Error('could not read current device model from the target sim')
|
|
323
322
|
}
|
|
324
323
|
const framed = await composeFramedScreenshot(rawBuffer, model)
|
|
325
|
-
|
|
324
|
+
await writeScreenshotOutput(outputPath, framed)
|
|
326
325
|
console.log(` frame: ${model}`)
|
|
327
326
|
} else {
|
|
328
|
-
|
|
327
|
+
await writeScreenshotOutput(outputPath, rawBuffer)
|
|
329
328
|
}
|
|
330
329
|
console.log(` saved: ${outputPath}`)
|
|
331
330
|
} finally {
|
|
@@ -485,8 +484,12 @@ async function runPlaywrightScreenshot(args: string[], opts: ScreenshotOptions)
|
|
|
485
484
|
await page.waitForTimeout(2000)
|
|
486
485
|
|
|
487
486
|
const outputPath = resolve(process.cwd(), output)
|
|
488
|
-
|
|
489
|
-
|
|
487
|
+
if (outputPath === '/dev/stdout') {
|
|
488
|
+
await writeScreenshotOutput(outputPath, await page.screenshot({ type: 'png' }))
|
|
489
|
+
} else {
|
|
490
|
+
mkdirSync(dirname(outputPath), { recursive: true })
|
|
491
|
+
await page.screenshot({ path: outputPath })
|
|
492
|
+
}
|
|
490
493
|
console.log(` saved: ${outputPath}`)
|
|
491
494
|
await page.close()
|
|
492
495
|
} catch (err: any) {
|
|
@@ -558,6 +558,10 @@ export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> =
|
|
|
558
558
|
},
|
|
559
559
|
'packages/peach-engine/src/render-worker/app-in-worker.tsx :: fetch :: new URL(file, listUrl)':
|
|
560
560
|
{ category: 'same_origin_runtime', count: 1 },
|
|
561
|
+
'packages/peach-engine/src/render-worker/rive-animation-clock.ts :: fetch :: wasmUrl': {
|
|
562
|
+
category: 'same_origin_runtime',
|
|
563
|
+
count: 1,
|
|
564
|
+
},
|
|
561
565
|
// the rive runtime's system fallback font, the engine's own SF Pro asset.
|
|
562
566
|
'packages/peach-engine/src/render-worker/rive-host.ts :: fetch :: url': {
|
|
563
567
|
category: 'same_origin_runtime',
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { mkdirSync, writeFileSync } from 'node:fs'
|
|
2
|
+
import { dirname } from 'node:path'
|
|
3
|
+
|
|
4
|
+
export async function writeScreenshotOutput(outputPath: string, image: Uint8Array) {
|
|
5
|
+
if (outputPath === '/dev/stdout') {
|
|
6
|
+
// linux cannot reopen a subprocess socket through /dev/stdout.
|
|
7
|
+
await new Promise<void>((resolve, reject) => {
|
|
8
|
+
process.stdout.write(image, (error) => {
|
|
9
|
+
if (error) reject(error)
|
|
10
|
+
else resolve()
|
|
11
|
+
})
|
|
12
|
+
})
|
|
13
|
+
return
|
|
14
|
+
}
|
|
15
|
+
mkdirSync(dirname(outputPath), { recursive: true })
|
|
16
|
+
writeFileSync(outputPath, image)
|
|
17
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.1401 | (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.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -23,6 +23,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
23
23
|
var dev_bundle_resolution_exports = {};
|
|
24
24
|
__export(dev_bundle_resolution_exports, {
|
|
25
25
|
DEFAULT_TEST_DRIVE_PORT: () => DEFAULT_TEST_DRIVE_PORT,
|
|
26
|
+
MANIFEST_PROBE_TIMEOUT_MS: () => MANIFEST_PROBE_TIMEOUT_MS,
|
|
26
27
|
inferManifestFramework: () => inferManifestFramework,
|
|
27
28
|
probePortBundle: () => probePortBundle,
|
|
28
29
|
resolveConnectionInput: () => resolveConnectionInput
|
|
@@ -293,6 +294,7 @@ async function resolveConnectionInput(input) {
|
|
|
293
294
|
// Annotate the CommonJS export names for ESM import in node:
|
|
294
295
|
0 && (module.exports = {
|
|
295
296
|
DEFAULT_TEST_DRIVE_PORT,
|
|
297
|
+
MANIFEST_PROBE_TIMEOUT_MS,
|
|
296
298
|
inferManifestFramework,
|
|
297
299
|
probePortBundle,
|
|
298
300
|
resolveConnectionInput
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/kotlin-host.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/menu.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/plist.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/plist.mjs
CHANGED
package/dist-lib/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/sdk.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (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/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -52418,11 +52418,11 @@ function discoverNativeLinkedAppFontPaths(opts) {
|
|
|
52418
52418
|
}
|
|
52419
52419
|
return [...new Set(fontPaths)];
|
|
52420
52420
|
}
|
|
52421
|
-
async function resolveMetroProjectRoot(bundleUrl
|
|
52421
|
+
async function resolveMetroProjectRoot(bundleUrl) {
|
|
52422
52422
|
const origin = loopbackOriginOf(bundleUrl);
|
|
52423
52423
|
if (!origin) return null;
|
|
52424
52424
|
const controller = new AbortController();
|
|
52425
|
-
const timer = setTimeout(() => controller.abort(),
|
|
52425
|
+
const timer = setTimeout(() => controller.abort(), MANIFEST_PROBE_TIMEOUT_MS);
|
|
52426
52426
|
let servedManifest = false;
|
|
52427
52427
|
let metroRunning = false;
|
|
52428
52428
|
try {
|
|
@@ -52441,6 +52441,10 @@ async function resolveMetroProjectRoot(bundleUrl, opts) {
|
|
|
52441
52441
|
if (typeof root === "string" && root.length > 0) return root;
|
|
52442
52442
|
}
|
|
52443
52443
|
} catch {
|
|
52444
|
+
if (controller.signal.aborted)
|
|
52445
|
+
throw new Error(
|
|
52446
|
+
`Metro project root request timed out after ${MANIFEST_PROBE_TIMEOUT_MS / 1e3}s: ${origin}. Wait for the dev server to finish starting or pass --project-root.`
|
|
52447
|
+
);
|
|
52444
52448
|
} finally {
|
|
52445
52449
|
clearTimeout(timer);
|
|
52446
52450
|
}
|
|
@@ -52463,6 +52467,7 @@ var init_app_fonts = __esm({
|
|
|
52463
52467
|
import_config_plugin_fonts = require("peach-engine/engine/config-plugin-fonts");
|
|
52464
52468
|
init_dev_server_scanner();
|
|
52465
52469
|
init_backend_origin();
|
|
52470
|
+
init_dev_bundle_resolution();
|
|
52466
52471
|
init_plist();
|
|
52467
52472
|
init_app_project();
|
|
52468
52473
|
require2 = (0, import_node_module4.createRequire)(__sootsim_import_meta_url);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } 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.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1401 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useState } from 'react'
|
|
2
|
+
import { Text, View, type ViewStyle } from 'react-native'
|
|
3
|
+
import { Resources } from './Resources.kt'
|
|
4
|
+
|
|
5
|
+
export default function Index() {
|
|
6
|
+
const [step, setStep] = useState(0)
|
|
7
|
+
const resourceProps = {
|
|
8
|
+
title: `Resources step ${step}`,
|
|
9
|
+
onStep: setStep,
|
|
10
|
+
style: { width: '100%', height: 600 } satisfies ViewStyle,
|
|
11
|
+
}
|
|
12
|
+
return (
|
|
13
|
+
<View style={{ flex: 1, backgroundColor: '#fff' }}>
|
|
14
|
+
<Resources {...resourceProps} />
|
|
15
|
+
<Text testID="resources-react-step">React step: {step}</Text>
|
|
16
|
+
</View>
|
|
17
|
+
)
|
|
18
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Imported Compose vector resources
|
|
2
|
+
|
|
3
|
+
RAN: six real input states pass One Android, Peach Android and a signed-in
|
|
4
|
+
Contrast project import: initial, toggled, large, tinted, disabled and reset.
|
|
5
|
+
Five static material icon themes remain visible. The current vector changes
|
|
6
|
+
FavoriteBorder to Favorite, grows from 24dp to 64dp, changes its exact tint and
|
|
7
|
+
resets. Compose and React counts agree; disabled input leaves count three.
|
|
8
|
+
Each host checks changed pixels, static icon identity, disabled identity and
|
|
9
|
+
reset identity. Five intentionally wrong receipts are rejected.
|
|
10
|
+
|
|
11
|
+
Evidence: [https://r2.sootsim.com/kotlin-evidence/import-resources/b782beba46c47baf6810f55d814eecaecd76d52927e8b5ad21520b2086761c71/proof.json](https://r2.sootsim.com/kotlin-evidence/import-resources/b782beba46c47baf6810f55d814eecaecd76d52927e8b5ad21520b2086761c71/proof.json).
|
|
12
|
+
|
|
13
|
+
The receipt binds the Kotlin and React sources, compiled artifacts, installed
|
|
14
|
+
APK, lossless WebP captures and semantic trees. Contrast uses the accepted
|
|
15
|
+
Peach runtime and loads one preview document with no browser or network errors.
|
|
16
|
+
|
|
17
|
+
One version: `2.0.0-0.canary.1791785147152`, release source
|
|
18
|
+
`06994b00402fcf95a9c9e8a895a9551baddbe800`. This canary provides generic icon
|
|
19
|
+
dependency discovery and conditional generated helpers. Its whole-family
|
|
20
|
+
adoption on main and public compile-catalog delivery remain separate work.
|
|
21
|
+
Re-prebuild with that adopting version before running the native fixture.
|
|
22
|
+
|
|
23
|
+
This grades material-icons-core vector selection, size, density and tint.
|
|
24
|
+
Fonts, app drawable packaging, bitmaps, strings, locale changes and cross-host
|
|
25
|
+
or full-frame pixel fidelity remain ungraded. Native density is 2.625; browser
|
|
26
|
+
captures use density 3. Build Android through the remote Linux builder.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
package dev.contrast.kotlinresources
|
|
2
|
+
|
|
3
|
+
import androidx.compose.foundation.layout.Arrangement
|
|
4
|
+
import androidx.compose.foundation.layout.Column
|
|
5
|
+
import androidx.compose.foundation.layout.Row
|
|
6
|
+
import androidx.compose.foundation.layout.padding
|
|
7
|
+
import androidx.compose.foundation.layout.size
|
|
8
|
+
import androidx.compose.material.icons.Icons
|
|
9
|
+
import androidx.compose.material.icons.filled.Add
|
|
10
|
+
import androidx.compose.material.icons.filled.Favorite
|
|
11
|
+
import androidx.compose.material.icons.filled.FavoriteBorder
|
|
12
|
+
import androidx.compose.material.icons.outlined.Settings
|
|
13
|
+
import androidx.compose.material.icons.rounded.Home
|
|
14
|
+
import androidx.compose.material.icons.sharp.Delete
|
|
15
|
+
import androidx.compose.material.icons.twotone.Star
|
|
16
|
+
import androidx.compose.material3.Button
|
|
17
|
+
import androidx.compose.material3.Icon
|
|
18
|
+
import androidx.compose.material3.MaterialTheme
|
|
19
|
+
import androidx.compose.material3.Text
|
|
20
|
+
import androidx.compose.material3.lightColorScheme
|
|
21
|
+
import androidx.compose.runtime.Composable
|
|
22
|
+
import androidx.compose.runtime.getValue
|
|
23
|
+
import androidx.compose.runtime.mutableIntStateOf
|
|
24
|
+
import androidx.compose.runtime.mutableStateOf
|
|
25
|
+
import androidx.compose.runtime.remember
|
|
26
|
+
import androidx.compose.runtime.setValue
|
|
27
|
+
import androidx.compose.ui.Modifier
|
|
28
|
+
import androidx.compose.ui.graphics.Color
|
|
29
|
+
import androidx.compose.ui.graphics.toArgb
|
|
30
|
+
import androidx.compose.ui.layout.onGloballyPositioned
|
|
31
|
+
import androidx.compose.ui.platform.testTag
|
|
32
|
+
import androidx.compose.ui.unit.dp
|
|
33
|
+
|
|
34
|
+
@Composable
|
|
35
|
+
fun Resources(title: String, onStep: ((Int) -> Unit)? = null) {
|
|
36
|
+
var count by remember { mutableIntStateOf(0) }
|
|
37
|
+
var selected by remember { mutableStateOf(false) }
|
|
38
|
+
var large by remember { mutableStateOf(false) }
|
|
39
|
+
var accent by remember { mutableStateOf(false) }
|
|
40
|
+
var width by remember { mutableIntStateOf(0) }
|
|
41
|
+
var height by remember { mutableIntStateOf(0) }
|
|
42
|
+
val size = if (large) 64 else 24
|
|
43
|
+
val tint = if (accent) Color(0xFFE91E63) else Color(0xFF6750A4)
|
|
44
|
+
MaterialTheme(colorScheme = lightColorScheme()) {
|
|
45
|
+
Column(Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) {
|
|
46
|
+
Text(title, Modifier.testTag("resources-title"))
|
|
47
|
+
Text("Count: $count", Modifier.testTag("resources-count"))
|
|
48
|
+
Text("selected=${if (selected) 1 else 0};size=$size;tint=${tint.toArgb()};pixels=$width,$height", Modifier.testTag("resources-state"))
|
|
49
|
+
Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
|
|
50
|
+
Icon(Icons.Filled.Add, "Add resource", Modifier.testTag("resources-add"))
|
|
51
|
+
Icon(Icons.Outlined.Settings, "Settings resource", Modifier.testTag("resources-settings"))
|
|
52
|
+
Icon(Icons.Rounded.Home, "Home resource", Modifier.testTag("resources-home"))
|
|
53
|
+
Icon(Icons.Sharp.Delete, "Delete resource", Modifier.testTag("resources-delete"))
|
|
54
|
+
Icon(Icons.TwoTone.Star, "Star resource", Modifier.testTag("resources-star"))
|
|
55
|
+
}
|
|
56
|
+
Icon(
|
|
57
|
+
if (selected) Icons.Filled.Favorite else Icons.Filled.FavoriteBorder,
|
|
58
|
+
"Current resource",
|
|
59
|
+
Modifier.size(size.dp).testTag("resources-current").onGloballyPositioned {
|
|
60
|
+
width = it.size.width
|
|
61
|
+
height = it.size.height
|
|
62
|
+
},
|
|
63
|
+
tint = tint,
|
|
64
|
+
)
|
|
65
|
+
Button(onClick = { selected = !selected; count += 1; onStep?.invoke(count) }, modifier = Modifier.testTag("resources-toggle")) { Text("Toggle resource") }
|
|
66
|
+
Button(onClick = { large = !large; count += 1; onStep?.invoke(count) }, modifier = Modifier.testTag("resources-resize")) { Text("Resize resource") }
|
|
67
|
+
Button(onClick = { accent = !accent; count += 1; onStep?.invoke(count) }, modifier = Modifier.testTag("resources-tint")) { Text("Tint resource") }
|
|
68
|
+
Button(onClick = { count += 1000; onStep?.invoke(count) }, enabled = false, modifier = Modifier.testTag("resources-disabled")) { Text("Disabled resource") }
|
|
69
|
+
Button(onClick = { selected = false; large = false; accent = false; count += 1; onStep?.invoke(count) }, modifier = Modifier.testTag("resources-reset")) { Text("Reset resources") }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '../ImportResources.native'
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "peach-kotlin-import-resources-fixture",
|
|
3
|
+
"private": true,
|
|
4
|
+
"type": "module",
|
|
5
|
+
"targets": [
|
|
6
|
+
"native"
|
|
7
|
+
],
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"@react-navigation/core": "catalog:",
|
|
10
|
+
"@react-navigation/native": "catalog:",
|
|
11
|
+
"one": "catalog:",
|
|
12
|
+
"react": "catalog:",
|
|
13
|
+
"react-native": "catalog:",
|
|
14
|
+
"react-native-reanimated": "catalog:",
|
|
15
|
+
"react-native-screens": "catalog:",
|
|
16
|
+
"react-native-worklets": "catalog:"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@react-native-community/template": "catalog:",
|
|
20
|
+
"peachsim": "workspace:*",
|
|
21
|
+
"vite": "catalog:"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"paths": {
|
|
4
|
+
"~/*": ["./*"]
|
|
5
|
+
},
|
|
6
|
+
"strict": true,
|
|
7
|
+
"allowArbitraryExtensions": true,
|
|
8
|
+
"rootDir": ".",
|
|
9
|
+
"module": "Preserve",
|
|
10
|
+
// allows react-native style imports without path extensions, for compat with platform-specific files
|
|
11
|
+
"moduleResolution": "Bundler",
|
|
12
|
+
"preserveSymlinks": true,
|
|
13
|
+
"skipLibCheck": true,
|
|
14
|
+
"jsx": "react-jsx",
|
|
15
|
+
"noImplicitAny": false,
|
|
16
|
+
"types": ["node", "react", "vite/client"],
|
|
17
|
+
"lib": ["dom", "esnext"]
|
|
18
|
+
},
|
|
19
|
+
"exclude": ["node_modules", "**/test", "**/dist", "**/types", "**/__tests__"]
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { one } from 'one/vite'
|
|
2
|
+
import { peachPlugin } from 'peachsim/vite'
|
|
3
|
+
export default {
|
|
4
|
+
root: import.meta.dirname,
|
|
5
|
+
plugins: [
|
|
6
|
+
one({
|
|
7
|
+
web: { defaultRenderMode: 'spa' },
|
|
8
|
+
native: {
|
|
9
|
+
bundler: 'vite',
|
|
10
|
+
app: {
|
|
11
|
+
name: 'KotlinResources',
|
|
12
|
+
scheme: 'kotlinresources',
|
|
13
|
+
android: { applicationId: 'dev.contrast.kotlinresources' },
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
}),
|
|
17
|
+
peachPlugin(),
|
|
18
|
+
],
|
|
19
|
+
server: { host: '0.0.0.0' },
|
|
20
|
+
}
|
package/package.json
CHANGED
|
@@ -157,7 +157,7 @@ type ManifestProbe =
|
|
|
157
157
|
// keep the same request alive through cold config and fingerprint evaluation.
|
|
158
158
|
// discarding it after a short probe and starting another can never resolve a
|
|
159
159
|
// manifest whose response consistently takes longer than that probe.
|
|
160
|
-
const MANIFEST_PROBE_TIMEOUT_MS = 30_000
|
|
160
|
+
export const MANIFEST_PROBE_TIMEOUT_MS = 30_000
|
|
161
161
|
|
|
162
162
|
async function probeExpoManifest(
|
|
163
163
|
normalizedBaseUrl: string,
|