peachsim 0.1.2225 → 0.1.2229
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/bridge-flow-runner.ts +56 -3
- package/cli/commands/control.ts +27 -1
- package/cli/commands/device.ts +1 -1
- package/cli/commands/flow.ts +27 -1
- package/cli/commands/package.ts +9 -2
- package/cli/drivers/playwright.ts +1 -0
- package/cli/drivers/types.ts +3 -0
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/bundle-channel.cjs +108 -13
- 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 +5 -2
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +106 -11
- 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 +108 -13
- package/dist-lib/host/fetch-proxy-handler.cjs +5 -5
- 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 +8 -6
- 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 +16 -14
- package/dist-lib/menu.mjs +16 -14
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +11 -4
- package/dist-lib/metro-production-bundle.mjs +10 -4
- package/dist-lib/metro.cjs +8 -6
- package/dist-lib/native-app-identity-project.cjs +6 -4
- package/dist-lib/native-app-identity-project.mjs +6 -4
- package/dist-lib/native-app-identity.cjs +1 -1
- package/dist-lib/native-app-identity.mjs +1 -1
- package/dist-lib/native-firebase-metadata.cjs +1 -1
- package/dist-lib/native-firebase-metadata.mjs +1 -1
- package/dist-lib/pdfium-raster.cjs +1 -1
- package/dist-lib/pdfium-raster.mjs +1 -1
- package/dist-lib/plist.cjs +1 -1
- package/dist-lib/plist.mjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/public-origins-lib-esm.json +25 -24
- package/dist-lib/public-origins-lib.json +56 -53
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/reap-browser.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +183 -27
- package/dist-lib/swift-compile.cjs +68 -4
- package/dist-lib/swift-compile.mjs +67 -4
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift-toolchain.cjs +1 -1
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +105 -10
- package/dist-lib/vite.cjs +5 -5
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/dist-types/packages/peach-engine/src/bundle-parse-receipt.d.ts +17 -0
- package/dist-types/packages/peach-engine/src/engine/canvaskit-api.d.ts +5 -1
- package/dist-types/packages/peach-engine/src/engine/font-config.d.ts +2 -2
- package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +11 -3
- package/dist-types/packages/peach-engine/src/engine/native-paragraph.d.ts +4 -0
- package/dist-types/packages/peach-engine/src/engine/node.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +1 -1
- package/dist-types/packages/peach-engine/src/engine/types.d.ts +9 -1
- package/dist-types/packages/peach-engine/src/engine/yoga-layout.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/metro-fingerprint.d.ts +3 -2
- package/dist-types/packages/peach-engine/src/render-worker/compositor-protocol.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +3 -3
- package/dist-types/packages/peach-engine/src/rolldown-bundle-inventory.d.ts +0 -5
- package/dist-types/packages/peach-kit/src/capabilities.d.ts +2 -0
- package/dist-types/packages/peach-kit/src/internal.d.ts +1 -1
- package/dist-types/packages/peach-kit/src/ios-tint.d.ts +2 -0
- package/kotlin/sdk.tar.gz +0 -0
- package/package.json +1 -1
- package/runtime-companion.json +1 -1
- package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h +0 -26
- package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UIKitTypes.h +27 -0
- package/sdk/ios/usr/include/ObjectiveC.apinotes +380 -7
- package/src/appPackageContract.ts +1 -1
- package/src/menu.ts +17 -99
- package/src/menuContract.ts +102 -0
- package/src/metro-production-bundle.ts +15 -2
- package/src/settingsContract.ts +8 -8
- package/src/swift-compile.ts +77 -2
- package/src/swift-host.ts +27 -2
- package/src/swift-standin-emit.ts +1 -0
- package/src/swift-standins.ts +8 -0
- package/src/xcode-project.ts +8 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/sdk.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2229 | (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.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -39,7 +39,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
39
39
|
var define_SWIFT_COVERAGE_SOURCE_DIGESTS_default;
|
|
40
40
|
var init_define_SWIFT_COVERAGE_SOURCE_DIGESTS = __esm({
|
|
41
41
|
"<define:__SWIFT_COVERAGE_SOURCE_DIGESTS__>"() {
|
|
42
|
-
define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "d98d6294b359528f7733b26db6f80f554782354faa235605f9562be4ad98b8a3", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "bfde06f157f52d3dd76577b3c6059c95c0393180b054ced773624ea89558992b", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "8deef5a824ed49209458a4b398cd8e88df260a0c8f1894d568279f6211866547", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "
|
|
42
|
+
define_SWIFT_COVERAGE_SOURCE_DIGESTS_default = { "swift-coverage/indexdump.ts": "0d82d8eeb96bf377f409ea7e33274c341a710c0e071f6b6e17571a23d8d92412", "swift-coverage/indexing.ts": "633ccf19eec1f382a8847d0ee1dca42a2792a3c60aafd43622ed5152b09b8272", "swift-coverage/types.ts": "bd8fae54ea6c53e110cd8a5d7b57c1d532dd0166e09fdaea63c4f270c3780dd1", "swift-coverage/source.ts": "c151758a9f67631bc61473c375df0dc017da6902a34533b2cf4fc4fd7d19b6ee", "swift-coverage/package.ts": "1f0068be7461fa7c5a7a891faf318f305cbed2e94c19667ba76627f7e5be260b", "swift-coverage/xcode.ts": "65a500b806ce1c3a496de27f2e0ad77287c0f6795c618342c08af647f92af1fa", "swift-coverage/xcode-assets.ts": "d98d6294b359528f7733b26db6f80f554782354faa235605f9562be4ad98b8a3", "swift-coverage/xcode-asset-symbols.ts": "1b2a67733bc9d139b351466270205452a6172140bc25080d72619e2952c44671", "swift-coverage/xcode-bridging.ts": "33184be8c5daf6646aa5a1276a4e15531f1be27b7c26f56550e0fbb1fc678a11", "swift-coverage/xcode-packages.ts": "8e6020d17d24474150a5a50d042aca6261819ef75c79680a287a66f395909915", "swift-coverage/xcode-strings.ts": "f2dd4c7cd8ef77035184b0132909c2fa09fd20ed06b7757c2f1f960bfdde031c", "swift-coverage/reader.ts": "da559b67ecd1161dea70c980b5f98f2c55af3550f0714479100fa5e9e813625c", "swift-coverage/provenance.ts": "eb3b41ae8b58b48f6758f084800f188dfb1edb227e483abdd6b80cde66e849b9", "swift-package-manifest.ts": "bfde06f157f52d3dd76577b3c6059c95c0393180b054ced773624ea89558992b", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "8deef5a824ed49209458a4b398cd8e88df260a0c8f1894d568279f6211866547", "home-paths.ts": "d1606390f0e8e50f0ff72544eadb3d49dfabf08e004c1218f2998c36fb8995dd", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "774c42f06f8d5c1f3f3a09f94379db2046af0016f1fcd6cbe595a9c2da5dcf95", "xcode-target-members.ts": "d49af77a690cff481b38333b5f63f6600123b1bb57f410b0adb298b010d2047b", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
|
|
@@ -44553,7 +44553,7 @@ function emitSwiftStandin(sourceGraphs, options) {
|
|
|
44553
44553
|
"Equatable",
|
|
44554
44554
|
"CustomStringConvertible",
|
|
44555
44555
|
"CustomDebugStringConvertible"
|
|
44556
|
-
].includes(name3)) && !(name3 === nsObjectProtocol && externalRoot(id) === nsObject) && !options.unconformed?.get(path141)?.has(name3)
|
|
44556
|
+
].includes(name3)) && !(name3 === nsObjectProtocol && externalRoot(id) === nsObject) && !options.unconformed?.get(path141)?.has(name3.split(/::|\./).pop()) && !options.unconformed?.get(path141)?.has(name3)
|
|
44557
44557
|
)
|
|
44558
44558
|
].filter((name3, at, all2) => all2.indexOf(name3) === at);
|
|
44559
44559
|
const parentSymbol = superId.has(id) ? byId.get(superId.get(id)) : void 0;
|
|
@@ -54492,6 +54492,20 @@ function swiftModuleInterface(moduleRoot, name3, interfaceRoot) {
|
|
|
54492
54492
|
if (declared.size === 0) return null;
|
|
54493
54493
|
return { declared, header: clangInterfaceHeader((0, import_node_fs54.readFileSync)(built2, "utf8")) };
|
|
54494
54494
|
}
|
|
54495
|
+
function swiftHeaderWithSuperclassImports(header, interfaceFor) {
|
|
54496
|
+
const superclasses = new Set(
|
|
54497
|
+
[...header.matchAll(/@interface\s+\w+\s*:\s*(\w+)/g)].map((match) => match[1])
|
|
54498
|
+
);
|
|
54499
|
+
return header.replace(/^@import (\w+);$/gm, (statement, name3) => {
|
|
54500
|
+
const dependency = interfaceFor(name3);
|
|
54501
|
+
if (!dependency || ![...swiftInterfaceDeclarations(dependency.header)].some(
|
|
54502
|
+
(name4) => superclasses.has(name4)
|
|
54503
|
+
))
|
|
54504
|
+
return statement;
|
|
54505
|
+
return `${statement}
|
|
54506
|
+
#import ${JSON.stringify(dependency.file)}`;
|
|
54507
|
+
});
|
|
54508
|
+
}
|
|
54495
54509
|
function withoutSwiftDeclarations(text6, declared, interfaceImport) {
|
|
54496
54510
|
const out = [];
|
|
54497
54511
|
let skipping;
|
|
@@ -58870,6 +58884,51 @@ function compileSwiftProjectOnce(input, options) {
|
|
|
58870
58884
|
if ((0, import_node_fs54.existsSync)(linked) && (0, import_node_fs54.statSync)(linked).size <= 8)
|
|
58871
58885
|
(0, import_node_fs54.rmSync)(linked, { force: true });
|
|
58872
58886
|
report("compiling and linking Swift modules");
|
|
58887
|
+
const frameworkInterfaces = /* @__PURE__ */ new Map();
|
|
58888
|
+
const frameworkInterface = (name3) => {
|
|
58889
|
+
if (frameworkInterfaces.has(name3)) return frameworkInterfaces.get(name3);
|
|
58890
|
+
const source = distribution ? import_node_path51.default.join(frameworkRoot, "modules", `${name3}-Swift.h`) : import_node_path51.default.join(
|
|
58891
|
+
prebuilt.modules,
|
|
58892
|
+
"..",
|
|
58893
|
+
`${name3}.build/include/${name3}-Swift.h`
|
|
58894
|
+
);
|
|
58895
|
+
if (!(0, import_node_fs54.existsSync)(source)) {
|
|
58896
|
+
frameworkInterfaces.set(name3, null);
|
|
58897
|
+
return null;
|
|
58898
|
+
}
|
|
58899
|
+
const headers = import_node_path51.default.join(
|
|
58900
|
+
swiftSdkPaths(frameworkRoot, options.toolchainBin).darwin,
|
|
58901
|
+
`System/Library/Frameworks/${name3}.framework/Headers`
|
|
58902
|
+
);
|
|
58903
|
+
const declared = /* @__PURE__ */ new Set();
|
|
58904
|
+
if ((0, import_node_fs54.existsSync)(headers)) {
|
|
58905
|
+
for (const file of (0, import_node_fs54.readdirSync)(headers, {
|
|
58906
|
+
recursive: true,
|
|
58907
|
+
encoding: "utf8"
|
|
58908
|
+
}))
|
|
58909
|
+
if (file.endsWith(".h"))
|
|
58910
|
+
for (const name4 of swiftInterfaceDeclarations(
|
|
58911
|
+
(0, import_node_fs54.readFileSync)(import_node_path51.default.join(headers, file), "utf8")
|
|
58912
|
+
))
|
|
58913
|
+
declared.add(name4);
|
|
58914
|
+
}
|
|
58915
|
+
const header = withoutSwiftDeclarations(
|
|
58916
|
+
clangInterfaceHeader((0, import_node_fs54.readFileSync)(source, "utf8")),
|
|
58917
|
+
declared,
|
|
58918
|
+
`#import <${name3}/${name3}.h>`
|
|
58919
|
+
);
|
|
58920
|
+
const value = {
|
|
58921
|
+
file: import_node_path51.default.join(root, ".build/peach-framework-objc", `${name3}-Swift.h`),
|
|
58922
|
+
header
|
|
58923
|
+
};
|
|
58924
|
+
frameworkInterfaces.set(name3, value);
|
|
58925
|
+
writeBuildFile(
|
|
58926
|
+
value.file,
|
|
58927
|
+
((0, import_node_fs54.existsSync)(import_node_path51.default.join(headers, `${name3}.h`)) ? `#import <${name3}/${name3}.h>
|
|
58928
|
+
` : "") + swiftHeaderWithSuperclassImports(header, frameworkInterface)
|
|
58929
|
+
);
|
|
58930
|
+
return value;
|
|
58931
|
+
};
|
|
58873
58932
|
try {
|
|
58874
58933
|
const headerBuilds = preparation.headerProductTarget ? [
|
|
58875
58934
|
...Object.keys(preparation.nativeHeaderDeclarations),
|
|
@@ -58897,7 +58956,10 @@ function compileSwiftProjectOnce(input, options) {
|
|
|
58897
58956
|
writeBuildFile(
|
|
58898
58957
|
emitted,
|
|
58899
58958
|
withoutSwiftDeclarations(
|
|
58900
|
-
|
|
58959
|
+
swiftHeaderWithSuperclassImports(
|
|
58960
|
+
clangInterfaceHeader((0, import_node_fs54.readFileSync)(original, "utf8")),
|
|
58961
|
+
frameworkInterface
|
|
58962
|
+
),
|
|
58901
58963
|
new Set(preparation.nativeHeaderDeclarations[producer]),
|
|
58902
58964
|
`#import <${producer}/${producer}.h>`
|
|
58903
58965
|
)
|
|
@@ -59173,7 +59235,7 @@ var init_swift_compile = __esm({
|
|
|
59173
59235
|
ExpoModulesCore: []
|
|
59174
59236
|
};
|
|
59175
59237
|
OPTIONAL_FRAMEWORKS = new Set(Object.keys(OPTIONAL_FRAMEWORK_DEPENDENCIES));
|
|
59176
|
-
SWIFT_IMPORT = /^\s*(?:@\w+(?:\([^)]*\))?\s+)*import\s+(?:(?:typealias|struct|class|enum|protocol|let|var|func)\s+)?([A-Za-z_][A-Za-z0-9_]*)/;
|
|
59238
|
+
SWIFT_IMPORT = /^\s*(?:@\w+(?:\([^)]*\))?\s+|(?:public|package|internal|fileprivate|private)\s+)*import\s+(?:(?:typealias|struct|class|enum|protocol|let|var|func)\s+)?([A-Za-z_][A-Za-z0-9_]*)/;
|
|
59177
59239
|
kleeneNot = (value) => value === void 0 ? void 0 : !value;
|
|
59178
59240
|
kleeneAnd = (left, right) => left === false || right === false ? false : left === true && right === true ? true : void 0;
|
|
59179
59241
|
kleeneOr = (left, right) => left === true || right === true ? true : left === false && right === false ? false : void 0;
|
|
@@ -59270,7 +59332,7 @@ int EXUpdatesApplyBSDiffPatch(const char * _Nonnull oldFilePath,
|
|
|
59270
59332
|
REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
59271
59333
|
MULTI_MANIFEST_VERSION = 68;
|
|
59272
59334
|
SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
59273
|
-
compilerSourceDigest = true ? "
|
|
59335
|
+
compilerSourceDigest = true ? "280e858b01b1c1393d3765c8d6ff1b3ce4a1a93d7fb7e3dd2d4d3e5f1d5f1ac2" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
59274
59336
|
nativeCxxCompilerFlags = ["-fno-cxx-modules"];
|
|
59275
59337
|
cFlagArray = (flags) => JSON.stringify(withoutGlogModuleMap(flags));
|
|
59276
59338
|
cxxFlagArray = (flags) => JSON.stringify([...nativeCxxCompilerFlags, ...withoutGlogModuleMap(flags)]);
|
|
@@ -63262,7 +63324,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
63262
63324
|
const postBundleScripts = [];
|
|
63263
63325
|
for (const id of [...list(app.target.buildPhases)].reverse()) {
|
|
63264
63326
|
const phase = app.project.object(id);
|
|
63265
|
-
if (phase?.isa !== "PBXShellScriptBuildPhase" || list(phase.
|
|
63327
|
+
if (phase?.isa !== "PBXShellScriptBuildPhase" || list(phase.outputPaths).length || list(phase.outputFileListPaths).length)
|
|
63266
63328
|
break;
|
|
63267
63329
|
postBundleScripts.unshift({
|
|
63268
63330
|
name: str(phase.name) ?? id,
|
|
@@ -63271,6 +63333,8 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
63271
63333
|
str(phase.shellScript) ?? ""
|
|
63272
63334
|
),
|
|
63273
63335
|
directory: app.project.projectDir,
|
|
63336
|
+
inputPaths: list(phase.inputPaths),
|
|
63337
|
+
inputFileListPaths: list(phase.inputFileListPaths),
|
|
63274
63338
|
environment: Object.fromEntries(
|
|
63275
63339
|
[...settingKeys].filter((key2) => /^[A-Za-z_][A-Za-z0-9_]*$/.test(key2)).map((key2) => [key2, settings(key2)])
|
|
63276
63340
|
)
|
|
@@ -65756,7 +65820,7 @@ var init_swift_standin_digest = __esm({
|
|
|
65756
65820
|
STANDIN_DIGEST_ENTRYPOINTS = ["swift-standins.ts", "swift-objc-compile.ts"];
|
|
65757
65821
|
SPECIFIER = /from\s*['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
65758
65822
|
standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
|
|
65759
|
-
STANDIN_SOURCE_DIGEST = true ? "
|
|
65823
|
+
STANDIN_SOURCE_DIGEST = true ? "f8700690d0cd621b5d9417ea570f1f45c7ec1ad54492b23aa9792102938e9e82" : standinSourceDigest();
|
|
65760
65824
|
}
|
|
65761
65825
|
});
|
|
65762
65826
|
|
|
@@ -66217,7 +66281,7 @@ var init_package_tree_digest = __esm({
|
|
|
66217
66281
|
|
|
66218
66282
|
// src/expo-native-prebuilt.ts
|
|
66219
66283
|
function expoNativeCompilerDigestValue() {
|
|
66220
|
-
return true ? "
|
|
66284
|
+
return true ? "aab5589ba02cd96332e686f60153187e7357cc46c8a6ec5369f1400cea6f6da0" : expoNativeCompilerDigest(__sootsim_import_meta_dirname);
|
|
66221
66285
|
}
|
|
66222
66286
|
function readSources(value) {
|
|
66223
66287
|
const sources = isRecord(value) ? value.sources : null;
|
|
@@ -69615,6 +69679,13 @@ function graphStandin(module2, graphs, values, wasm, binary2, toolchain, work, r
|
|
|
69615
69679
|
unconformed.set(owner, /* @__PURE__ */ new Set([...unconformed.get(owner) ?? [], conformance]));
|
|
69616
69680
|
continue;
|
|
69617
69681
|
}
|
|
69682
|
+
const redundant = /^redundant conformance of '\w+' to protocol '(\w+)'$/.exec(
|
|
69683
|
+
match[3]
|
|
69684
|
+
)?.[1];
|
|
69685
|
+
if (owner && redundant) {
|
|
69686
|
+
unconformed.set(owner, /* @__PURE__ */ new Set([...unconformed.get(owner) ?? [], redundant]));
|
|
69687
|
+
continue;
|
|
69688
|
+
}
|
|
69618
69689
|
if (owner && swiftPaths.has(owner))
|
|
69619
69690
|
throw new Error(
|
|
69620
69691
|
`Swift declaration ${module2}.${owner} does not typecheck: ${match[3]}`
|
|
@@ -76675,11 +76746,35 @@ function buildSwiftBundleFiles(packagePath, hosted, inputs, resourceBundles) {
|
|
|
76675
76746
|
CONTENTS_FOLDER_PATH: wrapper,
|
|
76676
76747
|
UNLOCALIZED_RESOURCES_FOLDER_PATH: wrapper,
|
|
76677
76748
|
INFOPLIST_PATH: `${wrapper}/Info.plist`,
|
|
76678
|
-
SCRIPT_INPUT_FILE_COUNT:
|
|
76679
|
-
SCRIPT_INPUT_FILE_LIST_COUNT:
|
|
76749
|
+
SCRIPT_INPUT_FILE_COUNT: String(phase.inputPaths.length),
|
|
76750
|
+
SCRIPT_INPUT_FILE_LIST_COUNT: String(phase.inputFileListPaths.length),
|
|
76680
76751
|
SCRIPT_OUTPUT_FILE_COUNT: "0",
|
|
76681
76752
|
SCRIPT_OUTPUT_FILE_LIST_COUNT: "0"
|
|
76682
76753
|
};
|
|
76754
|
+
const inputPath = (raw2) => {
|
|
76755
|
+
const file = import_node_path83.default.resolve(
|
|
76756
|
+
phase.directory,
|
|
76757
|
+
expand(raw2, (key2) => env[key2] ?? "")
|
|
76758
|
+
);
|
|
76759
|
+
if (!import_node_fs86.default.existsSync(file))
|
|
76760
|
+
throw new Error(
|
|
76761
|
+
`${xcode.app.name}: Run Script "${phase.name}" missing input ${file}`
|
|
76762
|
+
);
|
|
76763
|
+
if (!file.startsWith(`${dir}${import_node_path83.default.sep}`))
|
|
76764
|
+
watched.push(import_node_path83.default.relative(packagePath, file).split(import_node_path83.default.sep).join("/"));
|
|
76765
|
+
return file;
|
|
76766
|
+
};
|
|
76767
|
+
phase.inputPaths.forEach((raw2, index) => {
|
|
76768
|
+
env[`SCRIPT_INPUT_FILE_${index}`] = inputPath(raw2);
|
|
76769
|
+
});
|
|
76770
|
+
phase.inputFileListPaths.forEach((raw2, index) => {
|
|
76771
|
+
const source = inputPath(raw2);
|
|
76772
|
+
const entries = fileListEntries(source, inputPath);
|
|
76773
|
+
const expanded = import_node_path83.default.join(dir, `Input-${index}.xcfilelist`);
|
|
76774
|
+
import_node_fs86.default.writeFileSync(expanded, `${entries.join("\n")}
|
|
76775
|
+
`);
|
|
76776
|
+
env[`SCRIPT_INPUT_FILE_LIST_${index}`] = expanded;
|
|
76777
|
+
});
|
|
76683
76778
|
try {
|
|
76684
76779
|
const [shell, ...args] = phase.command;
|
|
76685
76780
|
(0, import_node_child_process47.execFileSync)(shell, args, {
|
|
@@ -86921,7 +87016,7 @@ var init_nitro_superset = __esm({
|
|
|
86921
87016
|
init_nitroContract();
|
|
86922
87017
|
init_swift_standin_digest();
|
|
86923
87018
|
NITRO_SUPERSET_ENTRY_NAME = "superset";
|
|
86924
|
-
NITRO_COMPILER_DIGEST = true ? "
|
|
87019
|
+
NITRO_COMPILER_DIGEST = true ? "b3ae355413a190ba1006db08b3fa373b79f99034163c936bd1ec2c89b9bce038" : nitroCompilerSourceDigest(__sootsim_import_meta_dirname, STANDIN_SOURCE_DIGEST2);
|
|
86925
87020
|
nitroSupersetLock = parseLock(nitro_superset_lock_default);
|
|
86926
87021
|
nitroSupersetKey = (inputs) => nativeEntryKey({ ...inputs, compiler: NITRO_COMPILER_DIGEST });
|
|
86927
87022
|
published2 = /* @__PURE__ */ new Map();
|
|
@@ -87633,7 +87728,7 @@ var init_one_sdk_bundle = __esm({
|
|
|
87633
87728
|
var runtime_companion_default;
|
|
87634
87729
|
var init_runtime_companion = __esm({
|
|
87635
87730
|
"runtime-companion.json"() {
|
|
87636
|
-
runtime_companion_default = { abi: 1, sha256: "
|
|
87731
|
+
runtime_companion_default = { abi: 1, sha256: "00799b02f54a61aa35db60817d564847a255eef875cbc7225013f1f27991ccde", file: "node/cli-00799b02f54a61aa35db60817d564847a255eef875cbc7225013f1f27991ccde.cjs" };
|
|
87637
87732
|
}
|
|
87638
87733
|
});
|
|
87639
87734
|
|
|
@@ -98380,12 +98475,12 @@ function viewModelInitializer({ name: name3, signature: signature2 }) {
|
|
|
98380
98475
|
)}) }`;
|
|
98381
98476
|
}
|
|
98382
98477
|
}
|
|
98383
|
-
function windowTheme(
|
|
98478
|
+
function windowTheme(window2) {
|
|
98384
98479
|
return [
|
|
98385
98480
|
" android.view.WindowTheme(",
|
|
98386
|
-
` ${
|
|
98387
|
-
` ${
|
|
98388
|
-
` ${
|
|
98481
|
+
` ${window2.edgeToEdgeEnforced}, ${argb(window2.statusBarColor)}, ${argb(window2.navigationBarColor)},`,
|
|
98482
|
+
` ${window2.statusBarContrastEnforced}, ${window2.navigationBarContrastEnforced},`,
|
|
98483
|
+
` ${window2.lightStatusBar}, ${window2.lightNavigationBar},`,
|
|
98389
98484
|
" ),"
|
|
98390
98485
|
];
|
|
98391
98486
|
}
|
|
@@ -107340,6 +107435,27 @@ var init_agent_identity = __esm({
|
|
|
107340
107435
|
}
|
|
107341
107436
|
});
|
|
107342
107437
|
|
|
107438
|
+
// detox/launch-permissions.ts
|
|
107439
|
+
function buildPermissionSeedScript(seed) {
|
|
107440
|
+
const inbox = JSON.stringify(PERMISSION_BOOT_SEED_STORAGE_KEY);
|
|
107441
|
+
const marker = JSON.stringify(PERMISSION_BOOT_SEED_SENT_KEY);
|
|
107442
|
+
const payload = JSON.stringify(seed);
|
|
107443
|
+
return `(function(){var K=${inbox},M=${marker},S=${payload};
|
|
107444
|
+
if(typeof window!=='undefined'&&window!==window.top)return;
|
|
107445
|
+
try{var nav=typeof performance!=='undefined'&&performance.getEntriesByType?performance.getEntriesByType('navigation')[0]:null;if(nav&&nav.type==='reload')return;}catch(_){/* fall through to the marker */}
|
|
107446
|
+
try{if(sessionStorage.getItem(M))return;sessionStorage.setItem(M,'1');}catch(_){/* storage-less contexts seed every navigation */}
|
|
107447
|
+
try{localStorage.setItem(K,JSON.stringify(S));}catch(_){}})();`;
|
|
107448
|
+
}
|
|
107449
|
+
var PERMISSION_BOOT_SEED_STORAGE_KEY, PERMISSION_BOOT_SEED_SENT_KEY;
|
|
107450
|
+
var init_launch_permissions = __esm({
|
|
107451
|
+
"detox/launch-permissions.ts"() {
|
|
107452
|
+
"use strict";
|
|
107453
|
+
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
107454
|
+
PERMISSION_BOOT_SEED_STORAGE_KEY = "peach:permission-boot-seed:v1";
|
|
107455
|
+
PERMISSION_BOOT_SEED_SENT_KEY = "peach:permission-boot-seed:sent:v1";
|
|
107456
|
+
}
|
|
107457
|
+
});
|
|
107458
|
+
|
|
107343
107459
|
// src/app-url.ts
|
|
107344
107460
|
function normalizeAppUrlTarget(target) {
|
|
107345
107461
|
const trimmed = target.trim();
|
|
@@ -109939,6 +110055,7 @@ async function launch(opts) {
|
|
|
109939
110055
|
PEACH_PW_FETCH_PROXY_SPKI: fetchProxySpki,
|
|
109940
110056
|
SOOTSIM_PW_BRIDGE_PORT: opts.bridgePort ? String(opts.bridgePort) : "",
|
|
109941
110057
|
SOOTSIM_PW_HEADLESS: headless ? "1" : "0",
|
|
110058
|
+
PEACH_PW_BOOT_SCRIPT: opts.bootScript ?? "",
|
|
109942
110059
|
SOOTSIM_PW_USERDATADIR: resolveUserDataDir(opts),
|
|
109943
110060
|
SOOTSIM_PW_CDP_PORT: cdpPort ? String(cdpPort) : "",
|
|
109944
110061
|
PEACH_PW_HOST_COMMAND: hostCommand ? JSON.stringify(hostCommand) : "",
|
|
@@ -129538,7 +129655,7 @@ function readWindowTheme(theme, targetSdk, sources) {
|
|
|
129538
129655
|
const optOut = flag("windowOptOutEdgeToEdgeEnforcement");
|
|
129539
129656
|
const edgeToEdgeEnforced = targetSdk > 35 || targetSdk === 35 && !optOut;
|
|
129540
129657
|
const targetQ = targetSdk >= 29;
|
|
129541
|
-
const
|
|
129658
|
+
const window2 = {
|
|
129542
129659
|
edgeToEdgeEnforced,
|
|
129543
129660
|
statusBarContrastEnforced: targetQ && flag("enforceStatusBarContrast"),
|
|
129544
129661
|
navigationBarContrastEnforced: targetQ && flag("enforceNavigationBarContrast", true),
|
|
@@ -129551,7 +129668,7 @@ function readWindowTheme(theme, targetSdk, sources) {
|
|
|
129551
129668
|
const navigationDefault = resourceColor("android", "navigation_bar_default", sources);
|
|
129552
129669
|
const navigationTheme = navigationColor ?? navigationDefault;
|
|
129553
129670
|
const navigationBarColor = navigationTheme === navigationDefault && !edgeToEdgeEnforced ? resourceColor("android", "navigation_bar_compatible", sources) : navigationTheme;
|
|
129554
|
-
if (edgeToEdgeEnforced) return { ...
|
|
129671
|
+
if (edgeToEdgeEnforced) return { ...window2, statusBarColor: 0, navigationBarColor };
|
|
129555
129672
|
if (!flag("windowDrawsSystemBarBackgrounds"))
|
|
129556
129673
|
throw new Error(
|
|
129557
129674
|
`${name3} does not draw system bar backgrounds; Peach draws only theme status bar colors`
|
|
@@ -129559,7 +129676,7 @@ function readWindowTheme(theme, targetSdk, sources) {
|
|
|
129559
129676
|
const color2 = resolveThemeAttribute(name3, "statusBarColor", sources);
|
|
129560
129677
|
if (typeof color2 === "boolean")
|
|
129561
129678
|
throw new Error(`${name3}: statusBarColor is not a color`);
|
|
129562
|
-
return { ...
|
|
129679
|
+
return { ...window2, statusBarColor: color2 ?? 4278190080, navigationBarColor };
|
|
129563
129680
|
}
|
|
129564
129681
|
function enabled(element) {
|
|
129565
129682
|
return element.attributes[`${ANDROID_NS}enabled`] !== "false";
|
|
@@ -132209,8 +132326,15 @@ async function openSim(args, opts) {
|
|
|
132209
132326
|
}
|
|
132210
132327
|
const connectWait = resolveDriverConnectWaitOptions();
|
|
132211
132328
|
opts.signal?.throwIfAborted();
|
|
132329
|
+
const seededLaunchPermissions = driverId === "playwright" && shellUrlPlatform(builtShellUrl) === "ios" && getCliRuntime().render_worker_app_load.isAppBootTargetUrl(builtShellUrl) ? opts.launchPermissions : void 0;
|
|
132212
132330
|
const result = await driver.launch({
|
|
132213
132331
|
url: openUrl2,
|
|
132332
|
+
bootScript: seededLaunchPermissions && buildPermissionSeedScript({
|
|
132333
|
+
appId: null,
|
|
132334
|
+
platform: "ios",
|
|
132335
|
+
presets: seededLaunchPermissions,
|
|
132336
|
+
grantInstallPermissions: false
|
|
132337
|
+
}),
|
|
132214
132338
|
// the shell serves the sim page but its WS bridge may have drifted off
|
|
132215
132339
|
// the shell-port-implied default. inject the bridge this command settled
|
|
132216
132340
|
// on so the page does not reconnect to a stale world. re-deriving it from
|
|
@@ -132235,7 +132359,10 @@ async function openSim(args, opts) {
|
|
|
132235
132359
|
} : void 0),
|
|
132236
132360
|
connectTimeoutMs: connectWait.hostTimeoutMs
|
|
132237
132361
|
});
|
|
132238
|
-
if (opts.resources)
|
|
132362
|
+
if (opts.resources) {
|
|
132363
|
+
opts.resources.driver = { ...result, driverId };
|
|
132364
|
+
opts.resources.launchPermissionsSeeded = seededLaunchPermissions !== void 0 && result.launched;
|
|
132365
|
+
}
|
|
132239
132366
|
opts.signal?.throwIfAborted();
|
|
132240
132367
|
if (!result.launched) {
|
|
132241
132368
|
console.error(` ${driver.name} driver: ${result.message}`);
|
|
@@ -132662,6 +132789,7 @@ var init_control = __esm({
|
|
|
132662
132789
|
init_src();
|
|
132663
132790
|
import_ws7 = require("ws");
|
|
132664
132791
|
init_agent_identity();
|
|
132792
|
+
init_launch_permissions();
|
|
132665
132793
|
init_androidRootModuleContract();
|
|
132666
132794
|
init_app_url();
|
|
132667
132795
|
init_backend_origin();
|
|
@@ -134350,6 +134478,7 @@ var init_recording_access = __esm({
|
|
|
134350
134478
|
var bridge_flow_runner_exports = {};
|
|
134351
134479
|
__export(bridge_flow_runner_exports, {
|
|
134352
134480
|
SootSimBridgeFlowRunner: () => SootSimBridgeFlowRunner,
|
|
134481
|
+
firstPlainLaunchPermissions: () => firstPlainLaunchPermissions,
|
|
134353
134482
|
normalizeFlowScreenshotSpec: () => normalizeFlowScreenshotSpec,
|
|
134354
134483
|
parseFlowSteps: () => parseFlowSteps,
|
|
134355
134484
|
resolveFlowScreenshotPathWithMode: () => resolveFlowScreenshotPathWithMode
|
|
@@ -134600,6 +134729,19 @@ function readBooleanKey(value, key2) {
|
|
|
134600
134729
|
if (!isObjectRecord(value)) return false;
|
|
134601
134730
|
return value[key2] === true;
|
|
134602
134731
|
}
|
|
134732
|
+
function firstPlainLaunchPermissions(steps) {
|
|
134733
|
+
const first = steps[0];
|
|
134734
|
+
if (first === void 0) return null;
|
|
134735
|
+
const step = typeof first === "string" ? normalizeBareStringStep(first) : first;
|
|
134736
|
+
if (!step.launchApp || JSON.stringify(step.launchApp).includes("${")) return null;
|
|
134737
|
+
return plainLaunchPermissions(step.launchApp);
|
|
134738
|
+
}
|
|
134739
|
+
function plainLaunchPermissions(opts) {
|
|
134740
|
+
if (isObjectRecord(opts) && (opts.clearState || opts.clearKeychain === true || opts.resetRuntime === true || opts.stopApp === false || Object.prototype.hasOwnProperty.call(opts, "arguments"))) {
|
|
134741
|
+
return null;
|
|
134742
|
+
}
|
|
134743
|
+
return maestroLaunchPermissions(isObjectRecord(opts) ? opts.permissions : void 0);
|
|
134744
|
+
}
|
|
134603
134745
|
function maestroLaunchPermissions(permissions) {
|
|
134604
134746
|
const entries = isObjectRecord(permissions) ? Object.entries(permissions) : [["all", "allow"]];
|
|
134605
134747
|
const statuses = /* @__PURE__ */ new Map();
|
|
@@ -134896,6 +135038,9 @@ var init_bridge_flow_runner = __esm({
|
|
|
134896
135038
|
this.opts = opts;
|
|
134897
135039
|
}
|
|
134898
135040
|
stepDelay = 0;
|
|
135041
|
+
// the launch permissions the open that started this sim deposited before
|
|
135042
|
+
// its app booted, while that boot is still the app's only one
|
|
135043
|
+
seededLaunchPermissions = null;
|
|
134899
135044
|
// maestro-compatible JS context for the whole flow run (shared with
|
|
134900
135045
|
// runFlow sub-flows): `${...}` templates, runScript, evalScript, output,
|
|
134901
135046
|
// maestro.copiedText. one per runner = one per flow file, like upstream.
|
|
@@ -134947,11 +135092,11 @@ var init_bridge_flow_runner = __esm({
|
|
|
134947
135092
|
const snapshot = await this.callTest(
|
|
134948
135093
|
"getSurfaceMetricsSnapshot"
|
|
134949
135094
|
);
|
|
134950
|
-
const
|
|
134951
|
-
if (!
|
|
135095
|
+
const window2 = snapshot?.window;
|
|
135096
|
+
if (!window2 || typeof window2 !== "object" || !("width" in window2) || !("height" in window2) || typeof window2.width !== "number" || typeof window2.height !== "number" || !Number.isFinite(window2.width) || !Number.isFinite(window2.height) || window2.width <= 0 || window2.height <= 0) {
|
|
134952
135097
|
throw new Error("live screen dimensions are unavailable");
|
|
134953
135098
|
}
|
|
134954
|
-
return { x: 0, y: 0, width:
|
|
135099
|
+
return { x: 0, y: 0, width: window2.width, height: window2.height };
|
|
134955
135100
|
}
|
|
134956
135101
|
// ordered input batch executed inside the page in one round-trip; the
|
|
134957
135102
|
// engine emits agent-cursor actions for every step natively.
|
|
@@ -136377,7 +136522,10 @@ var init_bridge_flow_runner = __esm({
|
|
|
136377
136522
|
if (!this.firstLaunchDone && !this.appStopped) await this.waitForTree(12e4);
|
|
136378
136523
|
await this.clearKeychain();
|
|
136379
136524
|
}
|
|
136380
|
-
|
|
136525
|
+
const bootedByOpen = this.openBootIsLaunch(opts);
|
|
136526
|
+
if (!bootedByOpen) {
|
|
136527
|
+
await this.setLaunchPermissions(isObjectRecord(opts) ? opts.permissions : void 0);
|
|
136528
|
+
}
|
|
136381
136529
|
if (!this.firstLaunchDone) {
|
|
136382
136530
|
this.firstLaunchDone = true;
|
|
136383
136531
|
if (wantsClear) {
|
|
@@ -136411,8 +136559,8 @@ var init_bridge_flow_runner = __esm({
|
|
|
136411
136559
|
await this.waitForTree(12e4);
|
|
136412
136560
|
await this.waitForTree(3e4);
|
|
136413
136561
|
} else {
|
|
136414
|
-
const launched = await this.launchShellAppFromHomeIfNeeded(opts);
|
|
136415
|
-
if (!launched && !wantsForeground) {
|
|
136562
|
+
const launched = !bootedByOpen && await this.launchShellAppFromHomeIfNeeded(opts);
|
|
136563
|
+
if (!launched && !wantsForeground && !bootedByOpen) {
|
|
136416
136564
|
await this.waitForTree(12e4);
|
|
136417
136565
|
await this.reloadGuestAppRuntime({
|
|
136418
136566
|
launchArguments: null,
|
|
@@ -136454,6 +136602,14 @@ var init_bridge_flow_runner = __esm({
|
|
|
136454
136602
|
await this.ensureRecordingStarted();
|
|
136455
136603
|
}
|
|
136456
136604
|
}
|
|
136605
|
+
// maestro sets permissions and then launches. a sim opened with this
|
|
136606
|
+
// step's permissions already deposited has done both in its one boot.
|
|
136607
|
+
openBootIsLaunch(opts) {
|
|
136608
|
+
const seeded = this.seededLaunchPermissions;
|
|
136609
|
+
if (!seeded || this.firstLaunchDone || this.appStopped) return false;
|
|
136610
|
+
const wanted = plainLaunchPermissions(opts);
|
|
136611
|
+
return wanted !== null && wanted.size === seeded.size && [...wanted].every(([kind, status]) => seeded.get(kind) === status);
|
|
136612
|
+
}
|
|
136457
136613
|
async setLaunchPermissions(permissions) {
|
|
136458
136614
|
const statuses = maestroLaunchPermissions(permissions);
|
|
136459
136615
|
const appId = await this.callTest("permissionGuestAppId");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2229 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -64,6 +64,7 @@ __export(swift_compile_exports, {
|
|
|
64
64
|
swiftCompileSdkOptions: () => swiftCompileSdkOptions,
|
|
65
65
|
swiftCrossImportFlags: () => swiftCrossImportFlags,
|
|
66
66
|
swiftDistributionAt: () => swiftDistributionAt,
|
|
67
|
+
swiftHeaderWithSuperclassImports: () => swiftHeaderWithSuperclassImports,
|
|
67
68
|
swiftIcuAddress: () => swiftIcuAddress,
|
|
68
69
|
swiftIcuAsset: () => swiftIcuAsset,
|
|
69
70
|
swiftIcuBundleAsset: () => swiftIcuBundleAsset,
|
|
@@ -12105,6 +12106,20 @@ var clangInterfaceHeader = (header) => header.replace(/^@import (?:UIKitCore|UIK
|
|
|
12105
12106
|
/^@import (?:CoreFoundation|FoundationNetworking);$/gm,
|
|
12106
12107
|
"@import Foundation;"
|
|
12107
12108
|
).replace(/\b_TtC10Foundation\d+(NS\w+)\b/g, "$1").replace(/\b__attribute__\(\(objc_subclassing_restricted\)\)\s*/g, "");
|
|
12109
|
+
function swiftHeaderWithSuperclassImports(header, interfaceFor) {
|
|
12110
|
+
const superclasses = new Set(
|
|
12111
|
+
[...header.matchAll(/@interface\s+\w+\s*:\s*(\w+)/g)].map((match) => match[1])
|
|
12112
|
+
);
|
|
12113
|
+
return header.replace(/^@import (\w+);$/gm, (statement, name2) => {
|
|
12114
|
+
const dependency = interfaceFor(name2);
|
|
12115
|
+
if (!dependency || ![...swiftInterfaceDeclarations(dependency.header)].some(
|
|
12116
|
+
(name3) => superclasses.has(name3)
|
|
12117
|
+
))
|
|
12118
|
+
return statement;
|
|
12119
|
+
return `${statement}
|
|
12120
|
+
#import ${JSON.stringify(dependency.file)}`;
|
|
12121
|
+
});
|
|
12122
|
+
}
|
|
12108
12123
|
var swiftInterfaceDeclarations = (header) => /* @__PURE__ */ new Set([
|
|
12109
12124
|
...[
|
|
12110
12125
|
...header.matchAll(
|
|
@@ -12462,7 +12477,7 @@ var OPTIONAL_FRAMEWORKS = new Set(Object.keys(OPTIONAL_FRAMEWORK_DEPENDENCIES));
|
|
|
12462
12477
|
function swiftOptionalFramework(name2) {
|
|
12463
12478
|
return OPTIONAL_FRAMEWORKS.has(name2);
|
|
12464
12479
|
}
|
|
12465
|
-
var SWIFT_IMPORT = /^\s*(?:@\w+(?:\([^)]*\))?\s+)*import\s+(?:(?:typealias|struct|class|enum|protocol|let|var|func)\s+)?([A-Za-z_][A-Za-z0-9_]*)/;
|
|
12480
|
+
var SWIFT_IMPORT = /^\s*(?:@\w+(?:\([^)]*\))?\s+|(?:public|package|internal|fileprivate|private)\s+)*import\s+(?:(?:typealias|struct|class|enum|protocol|let|var|func)\s+)?([A-Za-z_][A-Za-z0-9_]*)/;
|
|
12466
12481
|
var kleeneNot = (value) => value === void 0 ? void 0 : !value;
|
|
12467
12482
|
var kleeneAnd = (left, right) => left === false || right === false ? false : left === true && right === true ? true : void 0;
|
|
12468
12483
|
var kleeneOr = (left, right) => left === true || right === true ? true : left === false && right === false ? false : void 0;
|
|
@@ -12963,7 +12978,7 @@ var darwinRecordsRegion = (quoted2) => quoted2.length ? ["-Wl,--start-lib", ...q
|
|
|
12963
12978
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
12964
12979
|
var MULTI_MANIFEST_VERSION = 68;
|
|
12965
12980
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
12966
|
-
var compilerSourceDigest = true ? "
|
|
12981
|
+
var compilerSourceDigest = true ? "280e858b01b1c1393d3765c8d6ff1b3ce4a1a93d7fb7e3dd2d4d3e5f1d5f1ac2" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
12967
12982
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
12968
12983
|
const hash = (0, import_node_crypto13.createHash)("sha256");
|
|
12969
12984
|
hash.update(`swift-compile
|
|
@@ -17269,6 +17284,51 @@ function compileSwiftProjectOnce(input, options) {
|
|
|
17269
17284
|
if ((0, import_node_fs25.existsSync)(linked) && (0, import_node_fs25.statSync)(linked).size <= 8)
|
|
17270
17285
|
(0, import_node_fs25.rmSync)(linked, { force: true });
|
|
17271
17286
|
report("compiling and linking Swift modules");
|
|
17287
|
+
const frameworkInterfaces = /* @__PURE__ */ new Map();
|
|
17288
|
+
const frameworkInterface = (name2) => {
|
|
17289
|
+
if (frameworkInterfaces.has(name2)) return frameworkInterfaces.get(name2);
|
|
17290
|
+
const source = distribution ? import_node_path27.default.join(frameworkRoot, "modules", `${name2}-Swift.h`) : import_node_path27.default.join(
|
|
17291
|
+
prebuilt.modules,
|
|
17292
|
+
"..",
|
|
17293
|
+
`${name2}.build/include/${name2}-Swift.h`
|
|
17294
|
+
);
|
|
17295
|
+
if (!(0, import_node_fs25.existsSync)(source)) {
|
|
17296
|
+
frameworkInterfaces.set(name2, null);
|
|
17297
|
+
return null;
|
|
17298
|
+
}
|
|
17299
|
+
const headers = import_node_path27.default.join(
|
|
17300
|
+
swiftSdkPaths(frameworkRoot, options.toolchainBin).darwin,
|
|
17301
|
+
`System/Library/Frameworks/${name2}.framework/Headers`
|
|
17302
|
+
);
|
|
17303
|
+
const declared = /* @__PURE__ */ new Set();
|
|
17304
|
+
if ((0, import_node_fs25.existsSync)(headers)) {
|
|
17305
|
+
for (const file of (0, import_node_fs25.readdirSync)(headers, {
|
|
17306
|
+
recursive: true,
|
|
17307
|
+
encoding: "utf8"
|
|
17308
|
+
}))
|
|
17309
|
+
if (file.endsWith(".h"))
|
|
17310
|
+
for (const name3 of swiftInterfaceDeclarations(
|
|
17311
|
+
(0, import_node_fs25.readFileSync)(import_node_path27.default.join(headers, file), "utf8")
|
|
17312
|
+
))
|
|
17313
|
+
declared.add(name3);
|
|
17314
|
+
}
|
|
17315
|
+
const header = withoutSwiftDeclarations(
|
|
17316
|
+
clangInterfaceHeader((0, import_node_fs25.readFileSync)(source, "utf8")),
|
|
17317
|
+
declared,
|
|
17318
|
+
`#import <${name2}/${name2}.h>`
|
|
17319
|
+
);
|
|
17320
|
+
const value = {
|
|
17321
|
+
file: import_node_path27.default.join(root, ".build/peach-framework-objc", `${name2}-Swift.h`),
|
|
17322
|
+
header
|
|
17323
|
+
};
|
|
17324
|
+
frameworkInterfaces.set(name2, value);
|
|
17325
|
+
writeBuildFile(
|
|
17326
|
+
value.file,
|
|
17327
|
+
((0, import_node_fs25.existsSync)(import_node_path27.default.join(headers, `${name2}.h`)) ? `#import <${name2}/${name2}.h>
|
|
17328
|
+
` : "") + swiftHeaderWithSuperclassImports(header, frameworkInterface)
|
|
17329
|
+
);
|
|
17330
|
+
return value;
|
|
17331
|
+
};
|
|
17272
17332
|
try {
|
|
17273
17333
|
const headerBuilds = preparation.headerProductTarget ? [
|
|
17274
17334
|
...Object.keys(preparation.nativeHeaderDeclarations),
|
|
@@ -17296,7 +17356,10 @@ function compileSwiftProjectOnce(input, options) {
|
|
|
17296
17356
|
writeBuildFile(
|
|
17297
17357
|
emitted,
|
|
17298
17358
|
withoutSwiftDeclarations(
|
|
17299
|
-
|
|
17359
|
+
swiftHeaderWithSuperclassImports(
|
|
17360
|
+
clangInterfaceHeader((0, import_node_fs25.readFileSync)(original, "utf8")),
|
|
17361
|
+
frameworkInterface
|
|
17362
|
+
),
|
|
17300
17363
|
new Set(preparation.nativeHeaderDeclarations[producer]),
|
|
17301
17364
|
`#import <${producer}/${producer}.h>`
|
|
17302
17365
|
)
|
|
@@ -17472,6 +17535,7 @@ function compileSwiftProjectOnce(input, options) {
|
|
|
17472
17535
|
swiftCompileSdkOptions,
|
|
17473
17536
|
swiftCrossImportFlags,
|
|
17474
17537
|
swiftDistributionAt,
|
|
17538
|
+
swiftHeaderWithSuperclassImports,
|
|
17475
17539
|
swiftIcuAddress,
|
|
17476
17540
|
swiftIcuAsset,
|
|
17477
17541
|
swiftIcuBundleAsset,
|