peachsim 0.1.570 → 0.1.571
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/README.md +2 -2
- package/cli/bridge-flow-runner.ts +15 -7
- package/cli/cloud-dispatch.ts +1 -0
- package/cli/cloud-test-result-files.ts +97 -0
- package/cli/commands/maestro.ts +123 -31
- package/cli/commands/test.ts +161 -3
- package/cli/maestro-report.ts +3 -1
- package/cli/outbound-endpoints.ts +2 -0
- package/cli/run-registry.ts +2 -1
- package/detox/jest-preset.cjs +2 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.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/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- 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 +116 -0
- package/dist-lib/cloud-test-args.mjs +86 -0
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/detox/jest-preset.cjs +2 -2
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +16 -7
- 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 +16 -26
- 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 +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/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/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +119 -106
- package/dist-lib/swift-compile.cjs +372 -0
- package/dist-lib/swift-compile.mjs +339 -0
- package/dist-lib/swift-package.cjs +78 -0
- package/dist-lib/swift-package.mjs +52 -0
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite.cjs +456 -138
- package/package.json +22 -1
- package/skills/rnx-test/SKILL.md +3 -3
- package/src/cloud-test-args.ts +100 -0
- package/src/rolldown-plugin-swift.ts +8 -7
- package/src/swift-compile.ts +359 -0
- package/src/swift-package.ts +69 -0
- package/src/swift-submit.ts +3 -2
- package/src/vite-plugin-swift.ts +103 -107
|
@@ -325,6 +325,8 @@ export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> =
|
|
|
325
325
|
{ category: 'contrast_user_action', count: 1 },
|
|
326
326
|
'packages/peach-engine/src/auth/shared-session.ts :: fetch :: `${CONTRAST_ORIGIN}/api/auth/me`':
|
|
327
327
|
{ category: 'contrast_user_action', count: 1 },
|
|
328
|
+
'packages/peach-engine/src/auth/shared-session.ts :: fetch :: `${CONTRAST_ORIGIN}/api/preview/pair-token`':
|
|
329
|
+
{ category: 'contrast_user_action', count: 1 },
|
|
328
330
|
'packages/peach-engine/src/auth/shared-session.ts :: fetch :: `${CONTRAST_ORIGIN}/api/auth/sign-out`':
|
|
329
331
|
{ category: 'contrast_user_action', count: 1 },
|
|
330
332
|
"packages/peach-engine/src/billing/client.ts :: fetch :: apiUrl('/api/sootsim/billing/checkout')":
|
package/cli/run-registry.ts
CHANGED
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
// registration policy: a run registers when it produced a hosted share
|
|
7
7
|
// (--preview) or when it runs in CI (github-token / actions env) — local
|
|
8
8
|
// iteration without --preview stays local. registration failures warn and
|
|
9
|
-
//
|
|
9
|
+
// return null; test commands treat a missing required receipt as a nonzero
|
|
10
|
+
// result.
|
|
10
11
|
|
|
11
12
|
import { execSync } from 'child_process'
|
|
12
13
|
import { authHeaderValue, resolveCliAuth, type CliAuth } from './auth'
|
package/detox/jest-preset.cjs
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
const path = require('path')
|
|
8
8
|
|
|
9
9
|
// resolve the published driver entry so the mapping works from any cwd.
|
|
10
|
-
// `require.resolve('
|
|
11
|
-
//
|
|
10
|
+
// `require.resolve('peachsim/detox')` honours the subpath export in the
|
|
11
|
+
// peachsim package.json.
|
|
12
12
|
const DRIVER_ENTRY = require.resolve('peachsim/detox')
|
|
13
13
|
const PACKAGE_ROOT = path.dirname(require.resolve('peachsim/package.json'))
|
|
14
14
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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.571 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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.571 | (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.571 | (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.571 | (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/beta.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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/beta.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/*! rnx v0.1.571 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
|
+
"use strict";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
|
|
22
|
+
// src/cloud-test-args.ts
|
|
23
|
+
var cloud_test_args_exports = {};
|
|
24
|
+
__export(cloud_test_args_exports, {
|
|
25
|
+
CLOUD_TEST_ARGS_MAX_BYTES: () => CLOUD_TEST_ARGS_MAX_BYTES,
|
|
26
|
+
CLOUD_TEST_ARGS_MAX_COUNT: () => CLOUD_TEST_ARGS_MAX_COUNT,
|
|
27
|
+
CLOUD_TEST_ARG_MAX_LENGTH: () => CLOUD_TEST_ARG_MAX_LENGTH,
|
|
28
|
+
CLOUD_TEST_VALUE_FLAGS: () => CLOUD_TEST_VALUE_FLAGS,
|
|
29
|
+
isCloudTestValueFlag: () => isCloudTestValueFlag,
|
|
30
|
+
parseCloudTestArgs: () => parseCloudTestArgs
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(cloud_test_args_exports);
|
|
33
|
+
var CLOUD_TEST_ARGS_MAX_COUNT = 32;
|
|
34
|
+
var CLOUD_TEST_ARG_MAX_LENGTH = 1e3;
|
|
35
|
+
var CLOUD_TEST_ARGS_MAX_BYTES = 16 * 1024;
|
|
36
|
+
var CLOUD_TEST_VALUE_FLAGS = [
|
|
37
|
+
"-t",
|
|
38
|
+
"--testNamePattern",
|
|
39
|
+
"--testPathPattern",
|
|
40
|
+
"--include-tags",
|
|
41
|
+
"--exclude-tags",
|
|
42
|
+
"--grep"
|
|
43
|
+
];
|
|
44
|
+
var CLOUD_TEST_VALUE_FLAG_SET = new Set(CLOUD_TEST_VALUE_FLAGS);
|
|
45
|
+
function isCloudTestValueFlag(name) {
|
|
46
|
+
return CLOUD_TEST_VALUE_FLAG_SET.has(name);
|
|
47
|
+
}
|
|
48
|
+
function parseCloudTestArgs(value) {
|
|
49
|
+
if (value === void 0 || value === null) return { ok: true, args: [] };
|
|
50
|
+
if (!Array.isArray(value)) {
|
|
51
|
+
return { ok: false, message: "testArgs must be an array of strings" };
|
|
52
|
+
}
|
|
53
|
+
if (value.length > CLOUD_TEST_ARGS_MAX_COUNT) {
|
|
54
|
+
return {
|
|
55
|
+
ok: false,
|
|
56
|
+
message: `testArgs may contain at most ${CLOUD_TEST_ARGS_MAX_COUNT} entries`
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const encoder = new TextEncoder();
|
|
60
|
+
let bytes = 0;
|
|
61
|
+
const entries = [];
|
|
62
|
+
for (const entry of value) {
|
|
63
|
+
if (typeof entry !== "string" || entry.length === 0) {
|
|
64
|
+
return { ok: false, message: "testArgs entries must be non-empty strings" };
|
|
65
|
+
}
|
|
66
|
+
if (entry.length > CLOUD_TEST_ARG_MAX_LENGTH || entry.includes("\0")) {
|
|
67
|
+
return { ok: false, message: `testArgs entry is too long or carries a NUL byte: ${entry.slice(0, 60)}` };
|
|
68
|
+
}
|
|
69
|
+
bytes += encoder.encode(entry).length;
|
|
70
|
+
if (bytes > CLOUD_TEST_ARGS_MAX_BYTES) {
|
|
71
|
+
return {
|
|
72
|
+
ok: false,
|
|
73
|
+
message: `testArgs may contain at most ${CLOUD_TEST_ARGS_MAX_BYTES} bytes`
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
entries.push(entry);
|
|
77
|
+
}
|
|
78
|
+
const args = [];
|
|
79
|
+
for (let i = 0; i < entries.length; i++) {
|
|
80
|
+
const entry = entries[i];
|
|
81
|
+
if (!entry.startsWith("-")) {
|
|
82
|
+
return {
|
|
83
|
+
ok: false,
|
|
84
|
+
message: `testArgs carries a positional argument (selection flags only): ${entry.slice(0, 60)}`
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const eq = entry.indexOf("=");
|
|
88
|
+
const head = eq > 0 ? entry.slice(0, eq) : entry;
|
|
89
|
+
if (!isCloudTestValueFlag(head)) {
|
|
90
|
+
return { ok: false, message: `testArgs carries an unknown flag: ${head.slice(0, 60)}` };
|
|
91
|
+
}
|
|
92
|
+
if (eq > 0) {
|
|
93
|
+
if (!entry.slice(eq + 1)) {
|
|
94
|
+
return { ok: false, message: `${head} expects a value` };
|
|
95
|
+
}
|
|
96
|
+
args.push(entry);
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const val = entries[i + 1];
|
|
100
|
+
if (val === void 0 || val.startsWith("-")) {
|
|
101
|
+
return { ok: false, message: `${head} expects a value` };
|
|
102
|
+
}
|
|
103
|
+
args.push(entry, val);
|
|
104
|
+
i += 1;
|
|
105
|
+
}
|
|
106
|
+
return { ok: true, args };
|
|
107
|
+
}
|
|
108
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
109
|
+
0 && (module.exports = {
|
|
110
|
+
CLOUD_TEST_ARGS_MAX_BYTES,
|
|
111
|
+
CLOUD_TEST_ARGS_MAX_COUNT,
|
|
112
|
+
CLOUD_TEST_ARG_MAX_LENGTH,
|
|
113
|
+
CLOUD_TEST_VALUE_FLAGS,
|
|
114
|
+
isCloudTestValueFlag,
|
|
115
|
+
parseCloudTestArgs
|
|
116
|
+
});
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/*! rnx v0.1.571 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
+
|
|
3
|
+
// src/cloud-test-args.ts
|
|
4
|
+
var CLOUD_TEST_ARGS_MAX_COUNT = 32;
|
|
5
|
+
var CLOUD_TEST_ARG_MAX_LENGTH = 1e3;
|
|
6
|
+
var CLOUD_TEST_ARGS_MAX_BYTES = 16 * 1024;
|
|
7
|
+
var CLOUD_TEST_VALUE_FLAGS = [
|
|
8
|
+
"-t",
|
|
9
|
+
"--testNamePattern",
|
|
10
|
+
"--testPathPattern",
|
|
11
|
+
"--include-tags",
|
|
12
|
+
"--exclude-tags",
|
|
13
|
+
"--grep"
|
|
14
|
+
];
|
|
15
|
+
var CLOUD_TEST_VALUE_FLAG_SET = new Set(CLOUD_TEST_VALUE_FLAGS);
|
|
16
|
+
function isCloudTestValueFlag(name) {
|
|
17
|
+
return CLOUD_TEST_VALUE_FLAG_SET.has(name);
|
|
18
|
+
}
|
|
19
|
+
function parseCloudTestArgs(value) {
|
|
20
|
+
if (value === void 0 || value === null) return { ok: true, args: [] };
|
|
21
|
+
if (!Array.isArray(value)) {
|
|
22
|
+
return { ok: false, message: "testArgs must be an array of strings" };
|
|
23
|
+
}
|
|
24
|
+
if (value.length > CLOUD_TEST_ARGS_MAX_COUNT) {
|
|
25
|
+
return {
|
|
26
|
+
ok: false,
|
|
27
|
+
message: `testArgs may contain at most ${CLOUD_TEST_ARGS_MAX_COUNT} entries`
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const encoder = new TextEncoder();
|
|
31
|
+
let bytes = 0;
|
|
32
|
+
const entries = [];
|
|
33
|
+
for (const entry of value) {
|
|
34
|
+
if (typeof entry !== "string" || entry.length === 0) {
|
|
35
|
+
return { ok: false, message: "testArgs entries must be non-empty strings" };
|
|
36
|
+
}
|
|
37
|
+
if (entry.length > CLOUD_TEST_ARG_MAX_LENGTH || entry.includes("\0")) {
|
|
38
|
+
return { ok: false, message: `testArgs entry is too long or carries a NUL byte: ${entry.slice(0, 60)}` };
|
|
39
|
+
}
|
|
40
|
+
bytes += encoder.encode(entry).length;
|
|
41
|
+
if (bytes > CLOUD_TEST_ARGS_MAX_BYTES) {
|
|
42
|
+
return {
|
|
43
|
+
ok: false,
|
|
44
|
+
message: `testArgs may contain at most ${CLOUD_TEST_ARGS_MAX_BYTES} bytes`
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
entries.push(entry);
|
|
48
|
+
}
|
|
49
|
+
const args = [];
|
|
50
|
+
for (let i = 0; i < entries.length; i++) {
|
|
51
|
+
const entry = entries[i];
|
|
52
|
+
if (!entry.startsWith("-")) {
|
|
53
|
+
return {
|
|
54
|
+
ok: false,
|
|
55
|
+
message: `testArgs carries a positional argument (selection flags only): ${entry.slice(0, 60)}`
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const eq = entry.indexOf("=");
|
|
59
|
+
const head = eq > 0 ? entry.slice(0, eq) : entry;
|
|
60
|
+
if (!isCloudTestValueFlag(head)) {
|
|
61
|
+
return { ok: false, message: `testArgs carries an unknown flag: ${head.slice(0, 60)}` };
|
|
62
|
+
}
|
|
63
|
+
if (eq > 0) {
|
|
64
|
+
if (!entry.slice(eq + 1)) {
|
|
65
|
+
return { ok: false, message: `${head} expects a value` };
|
|
66
|
+
}
|
|
67
|
+
args.push(entry);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const val = entries[i + 1];
|
|
71
|
+
if (val === void 0 || val.startsWith("-")) {
|
|
72
|
+
return { ok: false, message: `${head} expects a value` };
|
|
73
|
+
}
|
|
74
|
+
args.push(entry, val);
|
|
75
|
+
i += 1;
|
|
76
|
+
}
|
|
77
|
+
return { ok: true, args };
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
CLOUD_TEST_ARGS_MAX_BYTES,
|
|
81
|
+
CLOUD_TEST_ARGS_MAX_COUNT,
|
|
82
|
+
CLOUD_TEST_ARG_MAX_LENGTH,
|
|
83
|
+
CLOUD_TEST_VALUE_FLAGS,
|
|
84
|
+
isCloudTestValueFlag,
|
|
85
|
+
parseCloudTestArgs
|
|
86
|
+
};
|
package/dist-lib/cloud.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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/cloud.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
const path = require('path')
|
|
8
8
|
|
|
9
9
|
// resolve the published driver entry so the mapping works from any cwd.
|
|
10
|
-
// `require.resolve('
|
|
11
|
-
//
|
|
10
|
+
// `require.resolve('peachsim/detox')` honours the subpath export in the
|
|
11
|
+
// peachsim package.json.
|
|
12
12
|
const DRIVER_ENTRY = require.resolve('peachsim/detox')
|
|
13
13
|
const PACKAGE_ROOT = path.dirname(require.resolve('peachsim/package.json'))
|
|
14
14
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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.571 | (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;
|
|
@@ -842,11 +842,19 @@ function resolveDevicePosture(model, posture) {
|
|
|
842
842
|
const supported = devices[model].supportedPostures;
|
|
843
843
|
return posture && supported?.includes(posture) ? posture : supported?.[0] ?? "closed";
|
|
844
844
|
}
|
|
845
|
-
function
|
|
845
|
+
function deviceDefaultOrientation(model, posture) {
|
|
846
|
+
if (model === "iphone-duo" && resolveDevicePosture(model, posture) === "open") {
|
|
847
|
+
return "landscape";
|
|
848
|
+
}
|
|
849
|
+
return "portrait";
|
|
850
|
+
}
|
|
851
|
+
function getDevice(model, posture, orientation) {
|
|
846
852
|
const device = devices[model];
|
|
847
853
|
if (!device.supportedPostures) return device;
|
|
848
854
|
const resolvedPosture = resolveDevicePosture(model, posture);
|
|
849
855
|
if (resolvedPosture === "closed") return device;
|
|
856
|
+
const resolvedOrientation = orientation ?? deviceDefaultOrientation(model, resolvedPosture);
|
|
857
|
+
const isRotatedPortrait = resolvedOrientation === "portrait";
|
|
850
858
|
return {
|
|
851
859
|
...device,
|
|
852
860
|
// inner display size from apple's ios 27 ui kit. corners and insets are
|
|
@@ -854,8 +862,8 @@ function getDevice(model, posture) {
|
|
|
854
862
|
// fits a 53pt circle within 0.4px, the silhouette sits 20.67pt outside the
|
|
855
863
|
// display on every edge as 16.33pt of black glass plus a 4.33pt rail, and
|
|
856
864
|
// the body itself curves at 75pt. the barrel is hidden when open.
|
|
857
|
-
width: 951,
|
|
858
|
-
height: 669,
|
|
865
|
+
width: isRotatedPortrait ? 669 : 951,
|
|
866
|
+
height: isRotatedPortrait ? 951 : 669,
|
|
859
867
|
statusBarHeight: 44,
|
|
860
868
|
cornerRadius: cornerRadii(53),
|
|
861
869
|
continuousCornerRadius: cornerRadii(53),
|
|
@@ -869,8 +877,9 @@ function getDevice(model, posture) {
|
|
|
869
877
|
// the closed outer display, so it takes the same 84pt inset: a ~50pt
|
|
870
878
|
// control at a ~23pt inset needs 73pt, and anything narrower would shift
|
|
871
879
|
// controls horizontally on unfold, defeating the continuous experience
|
|
872
|
-
// Apple states as the reason for the design.
|
|
873
|
-
|
|
880
|
+
// Apple states as the reason for the design. native bottom inset is 34;
|
|
881
|
+
// rotated portrait is top 82 / bottom 34 / right 0.
|
|
882
|
+
safeAreaInsets: isRotatedPortrait ? { top: 82, bottom: 34, left: 0, right: 0 } : { top: 0, bottom: 34, left: 0, right: 84 }
|
|
874
883
|
};
|
|
875
884
|
}
|
|
876
885
|
function listDeviceModels() {
|
|
@@ -1338,7 +1347,7 @@ var init_devices = __esm({
|
|
|
1338
1347
|
},
|
|
1339
1348
|
dynamicIsland: null,
|
|
1340
1349
|
// 84pt trailing Vertical Bar on the outer display (Apple iOS 27 UI kit).
|
|
1341
|
-
safeAreaInsets: { top: 0, bottom:
|
|
1350
|
+
safeAreaInsets: { top: 0, bottom: 34, left: 0, right: 84 },
|
|
1342
1351
|
iosVersion: "27.1",
|
|
1343
1352
|
keyboardHeight: 0,
|
|
1344
1353
|
physicalPPI: 460,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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.571 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/host/fetch-proxy-overrides.ts
|
|
4
4
|
var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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.571 | (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/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -3973,10 +3973,10 @@ function resolveRuntimeRootForHostname(hostname) {
|
|
|
3973
3973
|
const version = runtimeVersionFromHostname(hostname);
|
|
3974
3974
|
return version ? resolveInstalledRuntimeRoot(version) : null;
|
|
3975
3975
|
}
|
|
3976
|
-
function resolveRuntimeRootForRequestHost(
|
|
3977
|
-
if (!
|
|
3976
|
+
function resolveRuntimeRootForRequestHost(host2) {
|
|
3977
|
+
if (!host2) return resolveActiveRuntimeRoot();
|
|
3978
3978
|
try {
|
|
3979
|
-
return resolveRuntimeRootForHostname(new URL(`http://${
|
|
3979
|
+
return resolveRuntimeRootForHostname(new URL(`http://${host2}`).hostname);
|
|
3980
3980
|
} catch {
|
|
3981
3981
|
return null;
|
|
3982
3982
|
}
|
|
@@ -4016,25 +4016,15 @@ function serveRuntimeFile(req, res, fullPath) {
|
|
|
4016
4016
|
import_fs3.default.createReadStream(fullPath).pipe(res);
|
|
4017
4017
|
}
|
|
4018
4018
|
|
|
4019
|
-
// src/
|
|
4019
|
+
// src/swift-compile.ts
|
|
4020
4020
|
var import_node_child_process2 = require("node:child_process");
|
|
4021
|
-
var import_node_os2 = __toESM(require("node:os"), 1);
|
|
4022
|
-
var import_node_path6 = __toESM(require("node:path"), 1);
|
|
4023
4021
|
var import_node_util = require("node:util");
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
var
|
|
4027
|
-
|
|
4028
|
-
wasmSdkChecksum: "9fa4016ee632c7e9e906608ec3b55cf13dfc4dff44e47574c5af58064dc33fd9"
|
|
4029
|
-
};
|
|
4022
|
+
var run = (0, import_node_util.promisify)(import_node_child_process2.execFile);
|
|
4023
|
+
var ROOT_LOCKS = Symbol.for("peachsim.swiftCompile.rootLocks");
|
|
4024
|
+
var host = globalThis;
|
|
4025
|
+
var rootLocks = host[ROOT_LOCKS] ??= /* @__PURE__ */ new Map();
|
|
4030
4026
|
|
|
4031
4027
|
// src/vite-plugin-swift.ts
|
|
4032
|
-
var run = (0, import_node_util.promisify)(import_node_child_process2.execFile);
|
|
4033
|
-
var TOOLCHAIN_BIN = import_node_path6.default.join(
|
|
4034
|
-
import_node_os2.default.homedir(),
|
|
4035
|
-
`Library/Developer/Toolchains/${toolchain_default.release}.xctoolchain/usr/bin`
|
|
4036
|
-
);
|
|
4037
|
-
var WASM_SDK = `${toolchain_default.release}_wasm`;
|
|
4038
4028
|
var BUNDLE_MAX_FILE_BYTES = 2 * 1024 * 1024;
|
|
4039
4029
|
var BUNDLE_MAX_TOTAL_BYTES = 8 * 1024 * 1024;
|
|
4040
4030
|
|
|
@@ -4373,13 +4363,13 @@ function resolveMetroPort(server) {
|
|
|
4373
4363
|
var metro_plugin_default = withRNX;
|
|
4374
4364
|
|
|
4375
4365
|
// src/jump-to-source-babel.ts
|
|
4376
|
-
function normalizeSourcePath(
|
|
4377
|
-
const queryStart =
|
|
4378
|
-
const clean = queryStart >= 0 ?
|
|
4366
|
+
function normalizeSourcePath(path8) {
|
|
4367
|
+
const queryStart = path8.indexOf("?");
|
|
4368
|
+
const clean = queryStart >= 0 ? path8.slice(0, queryStart) : path8;
|
|
4379
4369
|
return clean.replace(/\\/g, "/");
|
|
4380
4370
|
}
|
|
4381
|
-
function matchesPath(
|
|
4382
|
-
return typeof matcher === "string" ?
|
|
4371
|
+
function matchesPath(path8, matcher) {
|
|
4372
|
+
return typeof matcher === "string" ? path8.includes(matcher) : matcher.test(path8);
|
|
4383
4373
|
}
|
|
4384
4374
|
function shouldStampFile(filename, options) {
|
|
4385
4375
|
const normalized = normalizeSourcePath(filename);
|
|
@@ -4412,11 +4402,11 @@ function sootsimJumpToSourceBabelPlugin(api, options = {}) {
|
|
|
4412
4402
|
return {
|
|
4413
4403
|
name: "sootsim-jump-to-source",
|
|
4414
4404
|
visitor: {
|
|
4415
|
-
JSXOpeningElement(
|
|
4405
|
+
JSXOpeningElement(path8, state) {
|
|
4416
4406
|
if (options.enabled === false) return;
|
|
4417
4407
|
const filename = state.file?.opts?.filename;
|
|
4418
4408
|
if (!filename || !shouldStampFile(filename, options)) return;
|
|
4419
|
-
const node =
|
|
4409
|
+
const node = path8.node;
|
|
4420
4410
|
const tagName = getJSXName(node.name);
|
|
4421
4411
|
if (!tagName || tagName === "Fragment" || tagName.endsWith(".Fragment")) return;
|
|
4422
4412
|
if (hasAttribute(node, attrName)) return;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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;
|
package/dist-lib/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.571 | (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/menu.mjs
CHANGED