peachsim 0.1.578 → 0.1.579
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/LICENSE +1 -1
- package/README.md +11 -9
- package/cli/app-catalog.ts +77 -0
- package/cli/app-fonts.ts +4 -20
- package/cli/app-splash.ts +2 -18
- package/cli/bridge-flow-runner.ts +505 -139
- package/cli/cloud-client.ts +1 -4
- package/cli/cloud-session.ts +1 -4
- package/cli/cloud-test-result-files.ts +3 -0
- package/cli/cloud-test-tunnel.ts +2 -5
- package/cli/command-registry.ts +2 -0
- package/cli/commands/agent.ts +149 -23
- package/cli/commands/assert.ts +1 -4
- package/cli/commands/box/peach-command.ts +62 -0
- package/cli/commands/box/plane-share.ts +0 -70
- package/cli/commands/box/rnx-command.ts +1 -60
- package/cli/commands/box/search-command.ts +14 -0
- package/cli/commands/box.ts +2 -2
- package/cli/commands/control.ts +121 -27
- package/cli/commands/cpu-profile.ts +23 -10
- package/cli/commands/daemon.ts +1 -9
- package/cli/commands/detox.ts +26 -18
- package/cli/commands/device.ts +129 -1
- package/cli/commands/film.ts +25 -16
- package/cli/commands/flow.ts +9 -2
- package/cli/commands/inspect/actions.ts +75 -1
- package/cli/commands/inspect/core.ts +81 -2
- package/cli/commands/inspect/describe.ts +2 -6
- package/cli/commands/inspect/env.ts +1 -1
- package/cli/commands/inspect/settling.ts +20 -3
- package/cli/commands/inspect/shared.ts +1 -4
- package/cli/commands/inspect/sleep.ts +1 -1
- package/cli/commands/inspect.ts +16 -49
- package/cli/commands/install-desktop.ts +8 -6
- package/cli/commands/login.ts +3 -5
- package/cli/commands/maestro-generate.ts +1 -4
- package/cli/commands/maestro.ts +38 -21
- package/cli/commands/no-bridge-hint.ts +0 -14
- package/cli/commands/permissions.ts +2 -2
- package/cli/commands/platform.ts +13 -6
- package/cli/commands/screenshot.ts +6 -1
- package/cli/commands/skills.ts +1 -1
- package/cli/commands/test.ts +6 -2
- package/cli/commands/three-mode.ts +162 -19
- package/cli/commands/upload.ts +3 -18
- package/cli/current-sim.ts +0 -1
- package/cli/desktop-companion.ts +40 -8
- package/cli/drivers/playwright-provisioning.ts +1 -4
- package/cli/flow-export.ts +1 -8
- package/cli/flow-session.ts +0 -4
- package/cli/hints.ts +1 -16
- package/cli/inspect-notice-state.ts +0 -4
- package/cli/main.ts +2 -4
- package/cli/outbound-endpoints.ts +1 -24
- package/cli/parse-args.ts +1 -2
- package/cli/rnx-in-process.ts +3 -1
- package/cli/run-rnx-core.ts +4 -2
- package/cli/run-rnx.ts +18 -10
- package/cli/send-to-box.ts +1 -4
- package/cli/telemetry.ts +1 -1
- package/cli/ws-bridge.ts +1 -5
- package/detox/gestures.ts +20 -6
- package/detox/index.ts +379 -123
- package/detox/navigation-lifecycle.ts +22 -13
- package/dist-lib/agent-daemon-client.cjs +21 -15
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +3 -17
- package/dist-lib/agent-sessions.cjs +5 -4
- package/dist-lib/attached-projects.cjs +1 -77
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +11 -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 +7 -5
- package/dist-lib/bridge-contract-input.mjs +7 -5
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +30 -7
- package/dist-lib/capture-contract.mjs +30 -7
- package/dist-lib/cli-constants.cjs +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 +17 -11
- package/dist-lib/cloud.mjs +17 -11
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +321 -122
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +427 -212
- package/dist-lib/host/fetch-proxy-handler.cjs +5 -28
- 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 +315 -58
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/menu.cjs +67 -31
- package/dist-lib/menu.mjs +64 -28
- package/dist-lib/metro-fingerprint-registry.cjs +8 -4
- package/dist-lib/metro-fingerprint-registry.mjs +6 -4
- package/dist-lib/metro-production-bundle.cjs +2 -2
- package/dist-lib/metro-production-bundle.mjs +2 -2
- package/dist-lib/metro.cjs +8 -4
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +7 -4
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +3 -13
- package/dist-lib/scripts/dev-server-scanner.cjs +5 -17
- package/dist-lib/sdk.cjs +129 -10
- package/dist-lib/sdk.mjs +127 -10
- package/dist-lib/skills.cjs +1635 -1121
- package/dist-lib/swift-compile.cjs +277 -70
- package/dist-lib/swift-compile.mjs +275 -70
- package/dist-lib/swift-package.cjs +17 -5
- package/dist-lib/swift-package.mjs +15 -4
- package/dist-lib/swift-submit.cjs +32 -8
- package/dist-lib/swift-submit.mjs +29 -7
- package/dist-lib/swift.cjs +30912 -577
- package/dist-lib/vite-kotlin.cjs +356 -0
- package/dist-lib/vite-swift.cjs +1743 -0
- package/dist-lib/vite.cjs +208 -1039
- package/kotlin/README.md +18 -0
- package/kotlin/Sources/androidx/annotation/Keep.kt +4 -0
- package/kotlin/Sources/dev/onejs/one/OneNativeSourceDispatch.kt +7 -0
- package/kotlin/Sources/dev/onejs/one/source/OneModule.kt +4 -0
- package/kotlin/Sources/org/json/JSON.kt +244 -0
- package/kotlin/toolchain.json +19 -0
- package/package.json +14 -2
- package/scripts/dev-server-scanner.ts +0 -18
- package/scripts/optional-demo-registry.ts +0 -17
- package/skills/contrast/SKILL.md +2 -2
- package/skills/peach-setup/SKILL.md +16 -0
- package/src/agent-daemon-client.ts +36 -22
- package/src/agent-identity.ts +0 -15
- package/src/agent-prompt.ts +12 -0
- package/src/attached-projects.ts +0 -72
- package/src/backend-origin.ts +10 -0
- package/src/bridge-contract-input.ts +2 -5
- package/src/bridge-contract.ts +2 -0
- package/src/capture-contract.ts +53 -11
- package/src/cloud.ts +4 -9
- package/src/dev-server-open.ts +0 -99
- package/src/home-paths.ts +2 -3
- package/src/host/agent-host.ts +82 -36
- package/src/host/bridge-host.ts +5 -11
- package/src/host/fetch-proxy-handler.ts +19 -43
- package/src/is-record.ts +4 -0
- package/src/menu.ts +82 -37
- package/src/metro-fingerprint-registry.ts +1 -4
- package/src/metro-production-bundle.ts +1 -1
- package/src/plist.ts +1 -4
- package/src/public-brand.ts +5 -3
- package/src/render-mode.ts +0 -12
- package/src/runtime-assets.ts +9 -2
- package/src/screenshots/compose.ts +7 -1
- package/src/screenshots/frame-compose.ts +21 -10
- package/src/screenshots/schema.ts +1 -4
- package/src/sim-client.ts +2 -4
- package/src/skills/builtin/maestro-test.ts +1 -4
- package/src/sleep.ts +4 -0
- package/src/swift-compile.ts +209 -47
- package/src/swift-icu.ts +140 -0
- package/src/swift-package.ts +26 -2
- package/src/swift-submit.ts +84 -4
- package/src/swift.ts +2 -0
- package/src/vite-plugin-kotlin.ts +376 -0
- package/src/vite-plugin-one.ts +224 -36
- package/src/vite-plugin-swift.ts +382 -96
- package/src/vite-plugin.ts +121 -134
- package/src/vite.d.ts +10 -0
- package/cli/resolve-assets.ts +0 -63
- package/src/rolldown-plugin-swift.ts +0 -244
- package/src/team-machine-prompt.ts +0 -73
package/dist-lib/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -25,8 +25,8 @@ __export(menu_exports, {
|
|
|
25
25
|
SOOTSIM_AMBIENT_GLOW_LABELS: () => SOOTSIM_AMBIENT_GLOW_LABELS,
|
|
26
26
|
SOOTSIM_AMBIENT_GLOW_LEVELS: () => SOOTSIM_AMBIENT_GLOW_LEVELS,
|
|
27
27
|
SOOTSIM_ENGINE_EVENT_NAME: () => SOOTSIM_ENGINE_EVENT_NAME,
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
SOOTSIM_RENDER_RESOLUTION_LABELS: () => SOOTSIM_RENDER_RESOLUTION_LABELS,
|
|
29
|
+
SOOTSIM_RENDER_RESOLUTION_LEVELS: () => SOOTSIM_RENDER_RESOLUTION_LEVELS,
|
|
30
30
|
SOOTSIM_SHELL_COMMAND_NAME: () => SOOTSIM_SHELL_COMMAND_NAME,
|
|
31
31
|
buildSootSimDeviceChoiceDefs: () => buildSootSimDeviceChoiceDefs,
|
|
32
32
|
buildSootSimMenuDefs: () => buildSootSimMenuDefs,
|
|
@@ -36,20 +36,21 @@ __export(menu_exports, {
|
|
|
36
36
|
getShortcutDocSections: () => getShortcutDocSections,
|
|
37
37
|
getShortcutDocSectionsFromDefs: () => getShortcutDocSectionsFromDefs,
|
|
38
38
|
isSootSimAmbientGlowLevel: () => isSootSimAmbientGlowLevel,
|
|
39
|
-
|
|
39
|
+
isSootSimRenderResolution: () => isSootSimRenderResolution,
|
|
40
40
|
matchesAccelerator: () => matchesAccelerator
|
|
41
41
|
});
|
|
42
42
|
module.exports = __toCommonJS(menu_exports);
|
|
43
43
|
|
|
44
44
|
// src/public-brand.ts
|
|
45
45
|
var name = "Peach";
|
|
46
|
-
var
|
|
46
|
+
var peachPublicBrand = Object.freeze({
|
|
47
47
|
name,
|
|
48
48
|
packageName: "peachsim",
|
|
49
49
|
commandName: "peach",
|
|
50
|
-
domain: "
|
|
51
|
-
origin: "https://
|
|
50
|
+
domain: "peachsim.com",
|
|
51
|
+
origin: "https://peachsim.com"
|
|
52
52
|
});
|
|
53
|
+
var rnxPublicBrand = peachPublicBrand;
|
|
53
54
|
|
|
54
55
|
// src/menu.ts
|
|
55
56
|
var SOOTSIM_ENGINE_EVENT_NAME = "sootsim:engine-event";
|
|
@@ -63,13 +64,14 @@ var SOOTSIM_AMBIENT_GLOW_LABELS = {
|
|
|
63
64
|
soft: "Soft",
|
|
64
65
|
full: "Full"
|
|
65
66
|
};
|
|
66
|
-
var
|
|
67
|
-
function
|
|
68
|
-
return value === "
|
|
67
|
+
var SOOTSIM_RENDER_RESOLUTION_LEVELS = ["high", "medium", "low"];
|
|
68
|
+
function isSootSimRenderResolution(value) {
|
|
69
|
+
return value === "high" || value === "medium" || value === "low";
|
|
69
70
|
}
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
var SOOTSIM_RENDER_RESOLUTION_LABELS = {
|
|
72
|
+
high: "High",
|
|
73
|
+
medium: "Medium",
|
|
74
|
+
low: "Low"
|
|
73
75
|
};
|
|
74
76
|
function buildSootSimMenuDefs(state, deviceChoices) {
|
|
75
77
|
return [
|
|
@@ -245,6 +247,38 @@ function deviceMenu(state, deviceChoices) {
|
|
|
245
247
|
},
|
|
246
248
|
{ type: "separator" },
|
|
247
249
|
{ label: "Trigger Screenshot", action: "screenshot" },
|
|
250
|
+
// pose controls for the current device: open/close on foldables,
|
|
251
|
+
// rotate left/right wherever a turn changes geometry, the way ios
|
|
252
|
+
// simulator holds them (rotate left is cmd+left, rotate right
|
|
253
|
+
// cmd+right). truthiness, not !== null: a partial state must hide
|
|
254
|
+
// these, never show duo items for the wrong device.
|
|
255
|
+
...state.devicePosture || state.canRotate ? [
|
|
256
|
+
{ type: "separator" },
|
|
257
|
+
...state.devicePosture ? [
|
|
258
|
+
{
|
|
259
|
+
label: state.devicePosture === "open" ? "Close iPhone Duo" : "Open iPhone Duo",
|
|
260
|
+
action: "toggle-duo-posture"
|
|
261
|
+
}
|
|
262
|
+
] : [],
|
|
263
|
+
...state.canRotate ? [
|
|
264
|
+
{
|
|
265
|
+
label: "Rotate Left",
|
|
266
|
+
accelerator: "CmdOrCtrl+Left",
|
|
267
|
+
action: "rotate-left",
|
|
268
|
+
browserAccelerator: true,
|
|
269
|
+
shortcutLabel: "rotate left",
|
|
270
|
+
showInShortcutDocs: true
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
label: "Rotate Right",
|
|
274
|
+
accelerator: "CmdOrCtrl+Right",
|
|
275
|
+
action: "rotate-right",
|
|
276
|
+
browserAccelerator: true,
|
|
277
|
+
shortcutLabel: "rotate right",
|
|
278
|
+
showInShortcutDocs: true
|
|
279
|
+
}
|
|
280
|
+
] : []
|
|
281
|
+
] : [],
|
|
248
282
|
{ type: "separator" },
|
|
249
283
|
...buildSootSimDeviceChoiceDefs(state.currentDevice, deviceChoices, {
|
|
250
284
|
action: "switch-device"
|
|
@@ -309,6 +343,11 @@ function debugMenu(state) {
|
|
|
309
343
|
checked: state.alwaysShowLiveWebViews,
|
|
310
344
|
action: "toggle-live-webviews"
|
|
311
345
|
},
|
|
346
|
+
{
|
|
347
|
+
label: "Share This Tab for WebViews",
|
|
348
|
+
action: "capture-webviews",
|
|
349
|
+
hiddenIn: "electron"
|
|
350
|
+
},
|
|
312
351
|
{
|
|
313
352
|
label: "Send to Box Carries Sign-In",
|
|
314
353
|
type: "checkbox",
|
|
@@ -404,21 +443,18 @@ function windowMenu(state) {
|
|
|
404
443
|
actionPayload: level
|
|
405
444
|
}))
|
|
406
445
|
},
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
{
|
|
412
|
-
label:
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
}))
|
|
420
|
-
}
|
|
421
|
-
] : [],
|
|
446
|
+
{
|
|
447
|
+
// every host: the level only changes backing-store sizes, so the
|
|
448
|
+
// device-shaped electron window shows it the same as the browser.
|
|
449
|
+
label: "Render Resolution",
|
|
450
|
+
items: SOOTSIM_RENDER_RESOLUTION_LEVELS.map((level) => ({
|
|
451
|
+
label: SOOTSIM_RENDER_RESOLUTION_LABELS[level],
|
|
452
|
+
type: "radio",
|
|
453
|
+
checked: state.renderResolution === level,
|
|
454
|
+
action: "set-render-resolution",
|
|
455
|
+
actionPayload: level
|
|
456
|
+
}))
|
|
457
|
+
},
|
|
422
458
|
{
|
|
423
459
|
label: "Wireframe",
|
|
424
460
|
type: "checkbox",
|
|
@@ -630,8 +666,8 @@ function matchesAccelerator(event, accelerator) {
|
|
|
630
666
|
SOOTSIM_AMBIENT_GLOW_LABELS,
|
|
631
667
|
SOOTSIM_AMBIENT_GLOW_LEVELS,
|
|
632
668
|
SOOTSIM_ENGINE_EVENT_NAME,
|
|
633
|
-
|
|
634
|
-
|
|
669
|
+
SOOTSIM_RENDER_RESOLUTION_LABELS,
|
|
670
|
+
SOOTSIM_RENDER_RESOLUTION_LEVELS,
|
|
635
671
|
SOOTSIM_SHELL_COMMAND_NAME,
|
|
636
672
|
buildSootSimDeviceChoiceDefs,
|
|
637
673
|
buildSootSimMenuDefs,
|
|
@@ -641,6 +677,6 @@ function matchesAccelerator(event, accelerator) {
|
|
|
641
677
|
getShortcutDocSections,
|
|
642
678
|
getShortcutDocSectionsFromDefs,
|
|
643
679
|
isSootSimAmbientGlowLevel,
|
|
644
|
-
|
|
680
|
+
isSootSimRenderResolution,
|
|
645
681
|
matchesAccelerator
|
|
646
682
|
});
|
package/dist-lib/menu.mjs
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/public-brand.ts
|
|
4
4
|
var name = "Peach";
|
|
5
|
-
var
|
|
5
|
+
var peachPublicBrand = Object.freeze({
|
|
6
6
|
name,
|
|
7
7
|
packageName: "peachsim",
|
|
8
8
|
commandName: "peach",
|
|
9
|
-
domain: "
|
|
10
|
-
origin: "https://
|
|
9
|
+
domain: "peachsim.com",
|
|
10
|
+
origin: "https://peachsim.com"
|
|
11
11
|
});
|
|
12
|
+
var rnxPublicBrand = peachPublicBrand;
|
|
12
13
|
|
|
13
14
|
// src/menu.ts
|
|
14
15
|
var SOOTSIM_ENGINE_EVENT_NAME = "sootsim:engine-event";
|
|
@@ -22,13 +23,14 @@ var SOOTSIM_AMBIENT_GLOW_LABELS = {
|
|
|
22
23
|
soft: "Soft",
|
|
23
24
|
full: "Full"
|
|
24
25
|
};
|
|
25
|
-
var
|
|
26
|
-
function
|
|
27
|
-
return value === "
|
|
26
|
+
var SOOTSIM_RENDER_RESOLUTION_LEVELS = ["high", "medium", "low"];
|
|
27
|
+
function isSootSimRenderResolution(value) {
|
|
28
|
+
return value === "high" || value === "medium" || value === "low";
|
|
28
29
|
}
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
var SOOTSIM_RENDER_RESOLUTION_LABELS = {
|
|
31
|
+
high: "High",
|
|
32
|
+
medium: "Medium",
|
|
33
|
+
low: "Low"
|
|
32
34
|
};
|
|
33
35
|
function buildSootSimMenuDefs(state, deviceChoices) {
|
|
34
36
|
return [
|
|
@@ -204,6 +206,38 @@ function deviceMenu(state, deviceChoices) {
|
|
|
204
206
|
},
|
|
205
207
|
{ type: "separator" },
|
|
206
208
|
{ label: "Trigger Screenshot", action: "screenshot" },
|
|
209
|
+
// pose controls for the current device: open/close on foldables,
|
|
210
|
+
// rotate left/right wherever a turn changes geometry, the way ios
|
|
211
|
+
// simulator holds them (rotate left is cmd+left, rotate right
|
|
212
|
+
// cmd+right). truthiness, not !== null: a partial state must hide
|
|
213
|
+
// these, never show duo items for the wrong device.
|
|
214
|
+
...state.devicePosture || state.canRotate ? [
|
|
215
|
+
{ type: "separator" },
|
|
216
|
+
...state.devicePosture ? [
|
|
217
|
+
{
|
|
218
|
+
label: state.devicePosture === "open" ? "Close iPhone Duo" : "Open iPhone Duo",
|
|
219
|
+
action: "toggle-duo-posture"
|
|
220
|
+
}
|
|
221
|
+
] : [],
|
|
222
|
+
...state.canRotate ? [
|
|
223
|
+
{
|
|
224
|
+
label: "Rotate Left",
|
|
225
|
+
accelerator: "CmdOrCtrl+Left",
|
|
226
|
+
action: "rotate-left",
|
|
227
|
+
browserAccelerator: true,
|
|
228
|
+
shortcutLabel: "rotate left",
|
|
229
|
+
showInShortcutDocs: true
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
label: "Rotate Right",
|
|
233
|
+
accelerator: "CmdOrCtrl+Right",
|
|
234
|
+
action: "rotate-right",
|
|
235
|
+
browserAccelerator: true,
|
|
236
|
+
shortcutLabel: "rotate right",
|
|
237
|
+
showInShortcutDocs: true
|
|
238
|
+
}
|
|
239
|
+
] : []
|
|
240
|
+
] : [],
|
|
207
241
|
{ type: "separator" },
|
|
208
242
|
...buildSootSimDeviceChoiceDefs(state.currentDevice, deviceChoices, {
|
|
209
243
|
action: "switch-device"
|
|
@@ -268,6 +302,11 @@ function debugMenu(state) {
|
|
|
268
302
|
checked: state.alwaysShowLiveWebViews,
|
|
269
303
|
action: "toggle-live-webviews"
|
|
270
304
|
},
|
|
305
|
+
{
|
|
306
|
+
label: "Share This Tab for WebViews",
|
|
307
|
+
action: "capture-webviews",
|
|
308
|
+
hiddenIn: "electron"
|
|
309
|
+
},
|
|
271
310
|
{
|
|
272
311
|
label: "Send to Box Carries Sign-In",
|
|
273
312
|
type: "checkbox",
|
|
@@ -363,21 +402,18 @@ function windowMenu(state) {
|
|
|
363
402
|
actionPayload: level
|
|
364
403
|
}))
|
|
365
404
|
},
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
{
|
|
371
|
-
label:
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
}))
|
|
379
|
-
}
|
|
380
|
-
] : [],
|
|
405
|
+
{
|
|
406
|
+
// every host: the level only changes backing-store sizes, so the
|
|
407
|
+
// device-shaped electron window shows it the same as the browser.
|
|
408
|
+
label: "Render Resolution",
|
|
409
|
+
items: SOOTSIM_RENDER_RESOLUTION_LEVELS.map((level) => ({
|
|
410
|
+
label: SOOTSIM_RENDER_RESOLUTION_LABELS[level],
|
|
411
|
+
type: "radio",
|
|
412
|
+
checked: state.renderResolution === level,
|
|
413
|
+
action: "set-render-resolution",
|
|
414
|
+
actionPayload: level
|
|
415
|
+
}))
|
|
416
|
+
},
|
|
381
417
|
{
|
|
382
418
|
label: "Wireframe",
|
|
383
419
|
type: "checkbox",
|
|
@@ -588,8 +624,8 @@ export {
|
|
|
588
624
|
SOOTSIM_AMBIENT_GLOW_LABELS,
|
|
589
625
|
SOOTSIM_AMBIENT_GLOW_LEVELS,
|
|
590
626
|
SOOTSIM_ENGINE_EVENT_NAME,
|
|
591
|
-
|
|
592
|
-
|
|
627
|
+
SOOTSIM_RENDER_RESOLUTION_LABELS,
|
|
628
|
+
SOOTSIM_RENDER_RESOLUTION_LEVELS,
|
|
593
629
|
SOOTSIM_SHELL_COMMAND_NAME,
|
|
594
630
|
buildSootSimDeviceChoiceDefs,
|
|
595
631
|
buildSootSimMenuDefs,
|
|
@@ -599,6 +635,6 @@ export {
|
|
|
599
635
|
getShortcutDocSections,
|
|
600
636
|
getShortcutDocSectionsFromDefs,
|
|
601
637
|
isSootSimAmbientGlowLevel,
|
|
602
|
-
|
|
638
|
+
isSootSimRenderResolution,
|
|
603
639
|
matchesAccelerator
|
|
604
640
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -30,13 +30,17 @@ __export(metro_fingerprint_registry_exports, {
|
|
|
30
30
|
parseRNXMetroFingerprintRegistry: () => parseRNXMetroFingerprintRegistry
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(metro_fingerprint_registry_exports);
|
|
33
|
+
|
|
34
|
+
// src/is-record.ts
|
|
35
|
+
function isRecord(value) {
|
|
36
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// src/metro-fingerprint-registry.ts
|
|
33
40
|
var RNX_METRO_FINGERPRINT_SCHEMA_VERSION = 2;
|
|
34
41
|
var RNX_METRO_FINGERPRINT_POINTER_PATH = "/compile/metro-fingerprints.json";
|
|
35
42
|
var RNX_METRO_FINGERPRINT_MAX_POINTER_BYTES = 16 * 1024;
|
|
36
43
|
var RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES = 8 * 1024 * 1024;
|
|
37
|
-
function isRecord(value) {
|
|
38
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
39
|
-
}
|
|
40
44
|
function isSha256(value) {
|
|
41
45
|
return typeof value === "string" && /^[a-f0-9]{64}$/.test(value);
|
|
42
46
|
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
|
|
3
|
+
// src/is-record.ts
|
|
4
|
+
function isRecord(value) {
|
|
5
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6
|
+
}
|
|
2
7
|
|
|
3
8
|
// src/metro-fingerprint-registry.ts
|
|
4
9
|
var RNX_METRO_FINGERPRINT_SCHEMA_VERSION = 2;
|
|
5
10
|
var RNX_METRO_FINGERPRINT_POINTER_PATH = "/compile/metro-fingerprints.json";
|
|
6
11
|
var RNX_METRO_FINGERPRINT_MAX_POINTER_BYTES = 16 * 1024;
|
|
7
12
|
var RNX_METRO_FINGERPRINT_MAX_PAYLOAD_BYTES = 8 * 1024 * 1024;
|
|
8
|
-
function isRecord(value) {
|
|
9
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10
|
-
}
|
|
11
13
|
function isSha256(value) {
|
|
12
14
|
return typeof value === "string" && /^[a-f0-9]{64}$/.test(value);
|
|
13
15
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -54,7 +54,7 @@ function toRNXDevelopmentBundleUrl(bundleUrl) {
|
|
|
54
54
|
}
|
|
55
55
|
var RNXSIM_METRO_SOURCE_MAP_COMMENT = "//# sourceMappingURL=";
|
|
56
56
|
function detachRNXMetroSourceMapUrl(bundleText) {
|
|
57
|
-
const trimmedEnd = bundleText.
|
|
57
|
+
const trimmedEnd = bundleText.trimEnd();
|
|
58
58
|
const commentStart = trimmedEnd.lastIndexOf(`
|
|
59
59
|
${RNXSIM_METRO_SOURCE_MAP_COMMENT}`);
|
|
60
60
|
if (commentStart < 0) return { source: bundleText, sourceMappingUrl: null };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/metro-production-bundle.ts
|
|
4
4
|
var RNXSIM_METRO_MODULE_PATHS_PREFIX = "globalThis.__sootsimModulePaths=";
|
|
@@ -21,7 +21,7 @@ function toRNXDevelopmentBundleUrl(bundleUrl) {
|
|
|
21
21
|
}
|
|
22
22
|
var RNXSIM_METRO_SOURCE_MAP_COMMENT = "//# sourceMappingURL=";
|
|
23
23
|
function detachRNXMetroSourceMapUrl(bundleText) {
|
|
24
|
-
const trimmedEnd = bundleText.
|
|
24
|
+
const trimmedEnd = bundleText.trimEnd();
|
|
25
25
|
const commentStart = trimmedEnd.lastIndexOf(`
|
|
26
26
|
${RNXSIM_METRO_SOURCE_MAP_COMMENT}`);
|
|
27
27
|
if (commentStart < 0) return { source: bundleText, sourceMappingUrl: null };
|
package/dist-lib/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -508,7 +508,7 @@ function toRNXDevelopmentBundleUrl(bundleUrl) {
|
|
|
508
508
|
}
|
|
509
509
|
var RNXSIM_METRO_SOURCE_MAP_COMMENT = "//# sourceMappingURL=";
|
|
510
510
|
function detachRNXMetroSourceMapUrl(bundleText) {
|
|
511
|
-
const trimmedEnd = bundleText.
|
|
511
|
+
const trimmedEnd = bundleText.trimEnd();
|
|
512
512
|
const commentStart = trimmedEnd.lastIndexOf(`
|
|
513
513
|
${RNXSIM_METRO_SOURCE_MAP_COMMENT}`);
|
|
514
514
|
if (commentStart < 0) return { source: bundleText, sourceMappingUrl: null };
|
|
@@ -626,7 +626,10 @@ var ROOT_RUNTIME_PATHS = [
|
|
|
626
626
|
"/spike/",
|
|
627
627
|
"/test-wallpaper.jpg",
|
|
628
628
|
"/preview-sw.js",
|
|
629
|
-
"/sootsim.svg"
|
|
629
|
+
"/sootsim.svg",
|
|
630
|
+
"/bedrock-sqlite.wasm",
|
|
631
|
+
"/bedrock-sqlite.js",
|
|
632
|
+
"/sootsim/"
|
|
630
633
|
];
|
|
631
634
|
function resolveActiveRuntimeRoot() {
|
|
632
635
|
const devRoot = resolveDevCheckoutRuntimeRoot();
|
|
@@ -683,7 +686,8 @@ function resolveRuntimeFilePath(runtimeRoot, pathname) {
|
|
|
683
686
|
for (const segment of pathname.split("/")) {
|
|
684
687
|
if (segment === "..") return null;
|
|
685
688
|
}
|
|
686
|
-
const
|
|
689
|
+
const normalized = pathname.startsWith("/sootsim/") ? pathname.slice("/sootsim".length) : pathname;
|
|
690
|
+
const fullPath = import_path.default.resolve(runtimeRoot, normalized.replace(/^\/+/, ""));
|
|
687
691
|
const rootWithSep = runtimeRoot.endsWith(import_path.default.sep) ? runtimeRoot : runtimeRoot + import_path.default.sep;
|
|
688
692
|
if (!fullPath.startsWith(rootWithSep) && fullPath !== runtimeRoot) return null;
|
|
689
693
|
if (!import_fs.default.existsSync(fullPath) || !import_fs.default.statSync(fullPath).isFile()) return null;
|
package/dist-lib/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -22,18 +22,21 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
22
22
|
// src/public-brand.ts
|
|
23
23
|
var public_brand_exports = {};
|
|
24
24
|
__export(public_brand_exports, {
|
|
25
|
+
peachPublicBrand: () => peachPublicBrand,
|
|
25
26
|
rnxPublicBrand: () => rnxPublicBrand
|
|
26
27
|
});
|
|
27
28
|
module.exports = __toCommonJS(public_brand_exports);
|
|
28
29
|
var name = "Peach";
|
|
29
|
-
var
|
|
30
|
+
var peachPublicBrand = Object.freeze({
|
|
30
31
|
name,
|
|
31
32
|
packageName: "peachsim",
|
|
32
33
|
commandName: "peach",
|
|
33
|
-
domain: "
|
|
34
|
-
origin: "https://
|
|
34
|
+
domain: "peachsim.com",
|
|
35
|
+
origin: "https://peachsim.com"
|
|
35
36
|
});
|
|
37
|
+
var rnxPublicBrand = peachPublicBrand;
|
|
36
38
|
// Annotate the CommonJS export names for ESM import in node:
|
|
37
39
|
0 && (module.exports = {
|
|
40
|
+
peachPublicBrand,
|
|
38
41
|
rnxPublicBrand
|
|
39
42
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/render-mode.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -22,16 +22,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
22
22
|
// src/render-mode.ts
|
|
23
23
|
var render_mode_exports = {};
|
|
24
24
|
__export(render_mode_exports, {
|
|
25
|
-
getRenderMode: () => getRenderMode,
|
|
26
25
|
hasRenderWorkerBootstrap: () => hasRenderWorkerBootstrap,
|
|
27
26
|
isRenderMainMode: () => isRenderMainMode,
|
|
28
|
-
isRenderWorkerMode: () => isRenderWorkerMode
|
|
29
|
-
shouldEnableRenderWorker: () => shouldEnableRenderWorker
|
|
27
|
+
isRenderWorkerMode: () => isRenderWorkerMode
|
|
30
28
|
});
|
|
31
29
|
module.exports = __toCommonJS(render_mode_exports);
|
|
32
|
-
function getRenderMode(_searchParams) {
|
|
33
|
-
return "worker";
|
|
34
|
-
}
|
|
35
30
|
function isRenderWorkerMode(_searchParams) {
|
|
36
31
|
return true;
|
|
37
32
|
}
|
|
@@ -41,14 +36,9 @@ function isRenderMainMode(_searchParams) {
|
|
|
41
36
|
function hasRenderWorkerBootstrap(workerModuleBaseUrl) {
|
|
42
37
|
return typeof workerModuleBaseUrl === "string" && workerModuleBaseUrl.length > 0;
|
|
43
38
|
}
|
|
44
|
-
function shouldEnableRenderWorker(_searchParams, workerModuleBaseUrl) {
|
|
45
|
-
return hasRenderWorkerBootstrap(workerModuleBaseUrl);
|
|
46
|
-
}
|
|
47
39
|
// Annotate the CommonJS export names for ESM import in node:
|
|
48
40
|
0 && (module.exports = {
|
|
49
|
-
getRenderMode,
|
|
50
41
|
hasRenderWorkerBootstrap,
|
|
51
42
|
isRenderMainMode,
|
|
52
|
-
isRenderWorkerMode
|
|
53
|
-
shouldEnableRenderWorker
|
|
43
|
+
isRenderWorkerMode
|
|
54
44
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.579 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -33,9 +33,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
33
33
|
var dev_server_scanner_exports = {};
|
|
34
34
|
__export(dev_server_scanner_exports, {
|
|
35
35
|
DevServerScanUnavailableError: () => DevServerScanUnavailableError,
|
|
36
|
-
__applyManifestForTests: () => __applyManifestForTests,
|
|
37
36
|
__attachAppSettingsBundleForTests: () => __attachAppSettingsBundleForTests,
|
|
38
|
-
__isSootSimSelfServerForTests: () => __isSootSimSelfServerForTests,
|
|
39
37
|
__resetScannerCache: () => __resetScannerCache,
|
|
40
38
|
__shouldReuseScannerCacheEntry: () => __shouldReuseScannerCacheEntry,
|
|
41
39
|
discoverListeningPorts: () => discoverListeningPorts,
|
|
@@ -139,9 +137,13 @@ var import_node_path = require("node:path");
|
|
|
139
137
|
|
|
140
138
|
// src/plist.ts
|
|
141
139
|
var import_plist = __toESM(require("@expo/plist"), 1);
|
|
140
|
+
|
|
141
|
+
// src/is-record.ts
|
|
142
142
|
function isRecord(value) {
|
|
143
143
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
144
144
|
}
|
|
145
|
+
|
|
146
|
+
// src/plist.ts
|
|
145
147
|
function resolvePlistParser(value) {
|
|
146
148
|
if (!isRecord(value)) return null;
|
|
147
149
|
const direct = value.parse;
|
|
@@ -896,17 +898,6 @@ function applyManifest(result, manifestRes, buildIconProxyUrl) {
|
|
|
896
898
|
}
|
|
897
899
|
return result;
|
|
898
900
|
}
|
|
899
|
-
function __applyManifestForTests(result, manifestBody, buildIconProxyUrl) {
|
|
900
|
-
return applyManifest(
|
|
901
|
-
result,
|
|
902
|
-
{
|
|
903
|
-
statusCode: 200,
|
|
904
|
-
body: manifestBody,
|
|
905
|
-
hostname: new URL(result.bundleUrl).hostname
|
|
906
|
-
},
|
|
907
|
-
buildIconProxyUrl
|
|
908
|
-
);
|
|
909
|
-
}
|
|
910
901
|
var ENRICH_TIMEOUT_MS = 2e4;
|
|
911
902
|
var enrichmentCache = /* @__PURE__ */ new Map();
|
|
912
903
|
var enrichmentInFlight = /* @__PURE__ */ new Set();
|
|
@@ -1103,7 +1094,6 @@ function isSootSimSelfServer(server) {
|
|
|
1103
1094
|
if (bundleId?.startsWith("dev.peachsim.")) return true;
|
|
1104
1095
|
return false;
|
|
1105
1096
|
}
|
|
1106
|
-
var __isSootSimSelfServerForTests = isSootSimSelfServer;
|
|
1107
1097
|
var portCache = /* @__PURE__ */ new Map();
|
|
1108
1098
|
var portCacheInvalidatedAt = /* @__PURE__ */ new Map();
|
|
1109
1099
|
function invalidatePortCache(port) {
|
|
@@ -1233,9 +1223,7 @@ async function scanDevServers(opts = {}) {
|
|
|
1233
1223
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1234
1224
|
0 && (module.exports = {
|
|
1235
1225
|
DevServerScanUnavailableError,
|
|
1236
|
-
__applyManifestForTests,
|
|
1237
1226
|
__attachAppSettingsBundleForTests,
|
|
1238
|
-
__isSootSimSelfServerForTests,
|
|
1239
1227
|
__resetScannerCache,
|
|
1240
1228
|
__shouldReuseScannerCacheEntry,
|
|
1241
1229
|
discoverListeningPorts,
|