peachsim 0.1.1625 → 0.1.1635
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 +10 -1
- package/cli/app-config.ts +4 -1
- package/cli/app-fonts.ts +37 -17
- package/cli/app-stubs.ts +224 -9
- package/cli/bridge-flow-runner.ts +64 -43
- package/cli/command-registry.ts +1 -0
- package/cli/commands/control.ts +283 -49
- package/cli/commands/doctor.ts +17 -184
- package/cli/commands/flow.ts +79 -11
- package/cli/commands/inspect/core.ts +10 -5
- package/cli/commands/inspect/settling.ts +14 -2
- package/cli/commands/inspect/wait-ready.ts +12 -0
- package/cli/commands/inspect.ts +26 -3
- package/cli/commands/install-desktop.ts +1 -0
- package/cli/commands/maestro-compare.ts +97 -38
- package/cli/commands/maestro.ts +9 -1
- package/cli/commands/record.ts +21 -1
- package/cli/commands/screenshot.ts +23 -1
- package/cli/commands/serve.ts +7 -2
- package/cli/commands/setup.ts +19 -42
- package/cli/commands/swift.ts +5 -0
- package/cli/commands/upload.ts +46 -7
- package/cli/desktop-companion.ts +102 -17
- package/cli/drivers/desktop.ts +14 -1
- package/cli/drivers/playwright-sim-host.ts +38 -3
- package/cli/drivers/playwright.ts +9 -8
- package/cli/drivers/types.ts +5 -0
- package/cli/maestro-accessibility.ts +1 -1
- package/cli/maestro-compare.ts +84 -12
- package/cli/main.ts +2 -1
- package/cli/outbound-endpoints.ts +13 -1
- package/cli/pause-aware-timeout.ts +102 -0
- package/cli/scene-video.ts +89 -0
- package/cli/ws-bridge.ts +23 -14
- package/detox/attempt-events.cjs +4 -0
- package/detox/index.ts +167 -142
- package/detox/motion-change.cjs +57 -21
- package/detox/motion-change.d.cts +7 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +13 -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 +14 -8
- package/dist-lib/bridge-contract.mjs +13 -7
- package/dist-lib/bundle-channel.cjs +9536 -7604
- 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 +6 -3
- package/dist-lib/config.mjs +6 -3
- package/dist-lib/detox/index.cjs +895 -664
- package/dist-lib/dev-bundle-resolution.cjs +14 -2
- package/dist-lib/expo-swift-bundle.cjs +7818 -5916
- package/dist-lib/expo-swift-metadata.cjs +3 -1
- package/dist-lib/expo-swift-metadata.mjs +3 -1
- package/dist-lib/home-paths.cjs +32 -3
- package/dist-lib/host/bridge-host.cjs +8340 -6392
- 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 +812 -339
- 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 +391 -28
- package/dist-lib/native-app-identity-project.cjs +55 -2
- package/dist-lib/native-app-identity-project.mjs +55 -2
- package/dist-lib/native-app-identity.cjs +53 -1
- package/dist-lib/native-app-identity.mjs +52 -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 +5 -1
- package/dist-lib/react-native-host-modules.mjs +5 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +15 -3
- package/dist-lib/sdk.cjs +27 -11
- package/dist-lib/sdk.mjs +27 -10
- package/dist-lib/skills.cjs +12276 -8947
- package/dist-lib/swift-compile.cjs +924 -118
- package/dist-lib/swift-compile.mjs +966 -152
- package/dist-lib/swift-package.cjs +12 -3
- package/dist-lib/swift-package.mjs +12 -3
- package/dist-lib/swift-submit.cjs +7 -1
- package/dist-lib/swift-submit.mjs +5 -1
- package/dist-lib/swift-toolchain.cjs +133 -18
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +1955 -498
- package/dist-lib/vite.cjs +3 -1
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/kotlin/AppSources/dev/peach/app/PeachDrawable.kt +21 -14
- package/kotlin/Sources/androidx/annotation/DrawableRes.kt +14 -0
- package/package.json +1 -1
- package/scripts/dev-server-scanner.ts +2 -1
- package/skills/peach-perf/SKILL.md +11 -5
- package/skills/peach-setup/SKILL.md +16 -19
- package/src/bridge-constants.ts +11 -0
- package/src/bridge-contract.ts +22 -34
- package/src/config.ts +15 -0
- package/src/desktop-host-delivery.ts +5 -1
- package/src/dev-bundle-resolution.ts +2 -1
- package/src/expo-manifest-body.ts +13 -0
- package/src/expo-swift-host.ts +191 -47
- package/src/expo-swift-ready.ts +78 -0
- package/src/expoSwiftContract.ts +13 -0
- package/src/home-paths.ts +48 -2
- package/src/host/bridge-host.ts +5 -2
- package/src/native-app-identity-project.ts +26 -2
- package/src/native-app-identity.ts +90 -0
- package/src/native-firebase-config.ts +209 -13
- package/src/process-group.ts +25 -2
- package/src/react-native-bridge-modules.ts +416 -0
- package/src/react-native-host-modules.ts +4 -0
- package/src/swift-binary-modules.ts +2 -2
- package/src/swift-compile.ts +835 -84
- package/src/swift-compiler-digest.ts +14 -0
- package/src/swift-distribution.lock.json +14 -12
- package/src/swift-host.ts +91 -29
- package/src/swift-icu.ts +14 -6
- package/src/swift-objc-sdk.ts +133 -10
- package/src/swift-objc-standin.ts +25 -3
- package/src/swift-package-manifest.ts +21 -6
- package/src/swift-package.ts +15 -1
- package/src/swift-packages.ts +119 -60
- package/src/swift-standin-emit.ts +57 -9
- package/src/swift-standins.ts +168 -20
- package/src/swift-submit.ts +10 -0
- package/src/swift-toolchain.ts +149 -23
- package/src/vite-plugin.ts +12 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1635 | (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.1635 | (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.1635 | (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.1635 | (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.1635 | (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.1635 | (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.1635 | (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;
|
|
@@ -28,6 +28,7 @@ __export(bridge_constants_exports, {
|
|
|
28
28
|
SOOTSIM_BRIDGE_SIM_CLOSE_CODE: () => SOOTSIM_BRIDGE_SIM_CLOSE_CODE,
|
|
29
29
|
SOOTSIM_BRIDGE_SIM_CLOSE_REASON: () => SOOTSIM_BRIDGE_SIM_CLOSE_REASON,
|
|
30
30
|
SOOTSIM_SHELL_DEV_HTTP_BASE_PORT: () => SOOTSIM_SHELL_DEV_HTTP_BASE_PORT,
|
|
31
|
+
assertPeachPortEnvironment: () => assertPeachPortEnvironment,
|
|
31
32
|
isSootsimBridgeHealth: () => isSootsimBridgeHealth,
|
|
32
33
|
resolveSootsimBridgePort: () => resolveSootsimBridgePort,
|
|
33
34
|
resolveSootsimBridgePortForHttpPort: () => resolveSootsimBridgePortForHttpPort,
|
|
@@ -47,6 +48,16 @@ var SIMULATOR_DOCUMENT_PATH = new RegExp(
|
|
|
47
48
|
// src/bridge-constants.ts
|
|
48
49
|
var DEFAULT_SOOTSIM_BRIDGE_PORT = 7668;
|
|
49
50
|
var DEFAULT_SOOTSIM_BRIDGE_URL = `http://localhost:${DEFAULT_SOOTSIM_BRIDGE_PORT}/`;
|
|
51
|
+
function assertPeachPortEnvironment(env) {
|
|
52
|
+
for (const [removed, replacement] of [
|
|
53
|
+
["SOOTSIM_SHELL_PORT", "PEACH_SHELL_PORT"],
|
|
54
|
+
["SOOTSIM_BRIDGE_PORT", "PEACH_BRIDGE_PORT"]
|
|
55
|
+
]) {
|
|
56
|
+
if (env[removed] !== void 0) {
|
|
57
|
+
throw new Error(`${removed} has been removed; unset it and use ${replacement}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
50
61
|
function parsePort(value) {
|
|
51
62
|
if (typeof value === "number") {
|
|
52
63
|
return Number.isInteger(value) && value > 0 ? value : null;
|
|
@@ -166,6 +177,7 @@ var AUTOMATION_SIM_IDLE_REAP_TTL_MS = 5 * 6e4;
|
|
|
166
177
|
SOOTSIM_BRIDGE_SIM_CLOSE_CODE,
|
|
167
178
|
SOOTSIM_BRIDGE_SIM_CLOSE_REASON,
|
|
168
179
|
SOOTSIM_SHELL_DEV_HTTP_BASE_PORT,
|
|
180
|
+
assertPeachPortEnvironment,
|
|
169
181
|
isSootsimBridgeHealth,
|
|
170
182
|
resolveSootsimBridgePort,
|
|
171
183
|
resolveSootsimBridgePortForHttpPort,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1635 | (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.1635 | (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;
|
|
@@ -30,8 +30,8 @@ __export(bridge_contract_exports, {
|
|
|
30
30
|
SIM_LONG_PRESS_DEFAULT_MS: () => SIM_LONG_PRESS_DEFAULT_MS,
|
|
31
31
|
SIM_LONG_PRESS_MAX_MS: () => SIM_LONG_PRESS_MAX_MS,
|
|
32
32
|
performStepRefusal: () => performStepRefusal,
|
|
33
|
+
readyProbeContentBasis: () => readyProbeContentBasis,
|
|
33
34
|
readyProbeHasContent: () => readyProbeHasContent,
|
|
34
|
-
readyProbeHasTargetContent: () => readyProbeHasTargetContent,
|
|
35
35
|
readyProbeIsReady: () => readyProbeIsReady,
|
|
36
36
|
refusedPerformStepReason: () => refusedPerformStepReason
|
|
37
37
|
});
|
|
@@ -107,14 +107,20 @@ var SEMANTIC_READY_CONTENT_NODE_FLOOR = 100;
|
|
|
107
107
|
var SEMANTIC_READY_NODE_STABLE_MS = 750;
|
|
108
108
|
var SEMANTIC_READY_POLL_MS = 150;
|
|
109
109
|
var HEADLESS_TENANT_FETCH_HUNG_MARKER = "headless tenant fetch hung";
|
|
110
|
-
function
|
|
111
|
-
|
|
110
|
+
function readyProbeContentBasis(probe) {
|
|
111
|
+
if (probe.paintedAppContent === true) return "paintedAppContent";
|
|
112
|
+
if ((probe.browserSurfaceCount ?? 0) > 0) return "browserSurface";
|
|
113
|
+
if (probe.liveFrameActive) return "liveFrame";
|
|
114
|
+
if (probe.targets > 0) return "targets";
|
|
115
|
+
if (probe.flag === true && probe.nodes >= SEMANTIC_READY_CONTENT_NODE_FLOOR)
|
|
116
|
+
return "nodeFloor";
|
|
117
|
+
return "";
|
|
112
118
|
}
|
|
113
|
-
function
|
|
114
|
-
return probe
|
|
119
|
+
function readyProbeHasContent(probe) {
|
|
120
|
+
return readyProbeContentBasis({ ...probe, flag: true }) !== "";
|
|
115
121
|
}
|
|
116
122
|
function readyProbeIsReady(probe) {
|
|
117
|
-
return (probe
|
|
123
|
+
return readyProbeContentBasis(probe) !== "" && probe.externalReady !== false && !probe.externalError && !probe.loadingText;
|
|
118
124
|
}
|
|
119
125
|
// Annotate the CommonJS export names for ESM import in node:
|
|
120
126
|
0 && (module.exports = {
|
|
@@ -126,8 +132,8 @@ function readyProbeIsReady(probe) {
|
|
|
126
132
|
SIM_LONG_PRESS_DEFAULT_MS,
|
|
127
133
|
SIM_LONG_PRESS_MAX_MS,
|
|
128
134
|
performStepRefusal,
|
|
135
|
+
readyProbeContentBasis,
|
|
129
136
|
readyProbeHasContent,
|
|
130
|
-
readyProbeHasTargetContent,
|
|
131
137
|
readyProbeIsReady,
|
|
132
138
|
refusedPerformStepReason
|
|
133
139
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1635 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/bridge-contract.ts
|
|
4
4
|
var REFUSED_PERFORM_STEP_TYPES = [
|
|
@@ -72,14 +72,20 @@ var SEMANTIC_READY_CONTENT_NODE_FLOOR = 100;
|
|
|
72
72
|
var SEMANTIC_READY_NODE_STABLE_MS = 750;
|
|
73
73
|
var SEMANTIC_READY_POLL_MS = 150;
|
|
74
74
|
var HEADLESS_TENANT_FETCH_HUNG_MARKER = "headless tenant fetch hung";
|
|
75
|
-
function
|
|
76
|
-
|
|
75
|
+
function readyProbeContentBasis(probe) {
|
|
76
|
+
if (probe.paintedAppContent === true) return "paintedAppContent";
|
|
77
|
+
if ((probe.browserSurfaceCount ?? 0) > 0) return "browserSurface";
|
|
78
|
+
if (probe.liveFrameActive) return "liveFrame";
|
|
79
|
+
if (probe.targets > 0) return "targets";
|
|
80
|
+
if (probe.flag === true && probe.nodes >= SEMANTIC_READY_CONTENT_NODE_FLOOR)
|
|
81
|
+
return "nodeFloor";
|
|
82
|
+
return "";
|
|
77
83
|
}
|
|
78
|
-
function
|
|
79
|
-
return probe
|
|
84
|
+
function readyProbeHasContent(probe) {
|
|
85
|
+
return readyProbeContentBasis({ ...probe, flag: true }) !== "";
|
|
80
86
|
}
|
|
81
87
|
function readyProbeIsReady(probe) {
|
|
82
|
-
return (probe
|
|
88
|
+
return readyProbeContentBasis(probe) !== "" && probe.externalReady !== false && !probe.externalError && !probe.loadingText;
|
|
83
89
|
}
|
|
84
90
|
export {
|
|
85
91
|
HEADLESS_TENANT_FETCH_HUNG_MARKER,
|
|
@@ -90,8 +96,8 @@ export {
|
|
|
90
96
|
SIM_LONG_PRESS_DEFAULT_MS,
|
|
91
97
|
SIM_LONG_PRESS_MAX_MS,
|
|
92
98
|
performStepRefusal,
|
|
99
|
+
readyProbeContentBasis,
|
|
93
100
|
readyProbeHasContent,
|
|
94
|
-
readyProbeHasTargetContent,
|
|
95
101
|
readyProbeIsReady,
|
|
96
102
|
refusedPerformStepReason
|
|
97
103
|
};
|