peachsim 0.1.2199 → 0.1.2201
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/commands/inspect/settling.ts +20 -20
- package/cli/outbound-endpoints.ts +12 -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 +1423 -1118
- 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 +22 -22
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +45945 -40026
- 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 +50879 -49774
- package/dist-lib/host/fetch-proxy-handler.cjs +16 -4
- 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 +36 -24
- 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 +100 -10
- 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 +16 -4
- package/dist-lib/native-app-identity-project.cjs +14 -2
- package/dist-lib/native-app-identity-project.mjs +14 -2
- 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 +24 -24
- package/dist-lib/public-origins-lib.json +302 -289
- 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 +21 -21
- package/dist-lib/sdk.mjs +21 -21
- package/dist-lib/skills.cjs +3520 -2920
- package/dist-lib/swift-compile.cjs +34 -3
- package/dist-lib/swift-compile.mjs +34 -3
- 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 +42 -8
- package/dist-lib/vite.cjs +16 -4
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/engine/yoga-layout.d.ts +2 -1
- package/dist-types/packages/peach-engine/src/render-worker/app-prefetch-contract.d.ts +5 -0
- package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/render-worker/tree-sync-port.d.ts +5 -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/QuartzCore.framework/Headers/CAValueFunction.h +1 -1
- package/sdk/ios/System/Library/Frameworks/QuartzCore.framework/Modules/module.modulemap +1 -0
- package/sdk/ios/System/Library/Frameworks/UIKitText.framework/Headers/UIKitText.apinotes +14 -0
- package/src/android-layout-ids.ts +50 -0
- package/src/android-view-classes.ts +41 -0
- package/src/expo-swift-host.ts +6 -1
- package/src/java-module-abi.ts +2 -0
- package/src/javaAbiContract.ts +2 -0
- package/src/kotlin-app.ts +33 -7
- package/src/kotlin-host.ts +83 -6
- package/src/kotlin-maven-sources.ts +248 -0
- package/src/native-prebuilt.ts +3 -3
- package/src/react-native-core-build.ts +176 -0
- package/src/react-native-core-digest.ts +1 -1
- package/src/react-native-core.ts +24 -7
- package/src/swift-standin-emit.ts +9 -1
- package/src/swift-wasm-prune.ts +41 -3
- package/src/turbo-compile.ts +6 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2201 | (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;
|
|
@@ -5720,6 +5720,25 @@ function getModulePrefix(file) {
|
|
|
5720
5720
|
const dash = base.indexOf("-");
|
|
5721
5721
|
return dash > 0 ? base.slice(0, dash) : base;
|
|
5722
5722
|
}
|
|
5723
|
+
var SWIFTUI_WRAPPER_HOST_PROTOCOLS = new Set(
|
|
5724
|
+
[
|
|
5725
|
+
"View",
|
|
5726
|
+
"ViewModifier",
|
|
5727
|
+
"App",
|
|
5728
|
+
"Scene",
|
|
5729
|
+
"Gesture",
|
|
5730
|
+
"ToolbarContent",
|
|
5731
|
+
"Commands",
|
|
5732
|
+
"DynamicProperty"
|
|
5733
|
+
].map((name2) => `$s7SwiftUI${name2.length}${name2}Mp`)
|
|
5734
|
+
);
|
|
5735
|
+
function keepsSwiftUIReflection(file, undefinedSymbols) {
|
|
5736
|
+
if (/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(import_node_path10.default.basename(file))) return true;
|
|
5737
|
+
for (const name2 of undefinedSymbols) {
|
|
5738
|
+
if (SWIFTUI_WRAPPER_HOST_PROTOCOLS.has(name2)) return true;
|
|
5739
|
+
}
|
|
5740
|
+
return false;
|
|
5741
|
+
}
|
|
5723
5742
|
function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTargets = [], owner, link, resourceReferences = []) {
|
|
5724
5743
|
const rspPath = import_node_path10.default.join(directory, ".peach-link.rsp");
|
|
5725
5744
|
if (!import_node_fs9.default.existsSync(rspPath)) return;
|
|
@@ -5750,7 +5769,19 @@ function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTarg
|
|
|
5750
5769
|
throw new Error(`swift-wasm-prune: the build owns its sdk directory ${sdkWasiDir}`);
|
|
5751
5770
|
const sdkObjsDir = ensureUnpackedSdkObjects(sdkWasiDir);
|
|
5752
5771
|
const distDir = import_node_path10.default.join(moduleRoot, "lib");
|
|
5753
|
-
const
|
|
5772
|
+
const keepsReflection = /* @__PURE__ */ new Map();
|
|
5773
|
+
const declaresSwiftUIConformers = (obj) => {
|
|
5774
|
+
let keeps = keepsReflection.get(obj);
|
|
5775
|
+
if (keeps === void 0) {
|
|
5776
|
+
keeps = keepsSwiftUIReflection(
|
|
5777
|
+
obj.file,
|
|
5778
|
+
obj.symNames.filter((n, i) => n && (obj.symFlags[i] & 16) !== 0)
|
|
5779
|
+
);
|
|
5780
|
+
keepsReflection.set(obj, keeps);
|
|
5781
|
+
}
|
|
5782
|
+
return keeps;
|
|
5783
|
+
};
|
|
5784
|
+
const dropsReflection = (obj, name2) => !!name2 && !declaresSwiftUIConformers(obj) && (name2.startsWith("l__swift5_reflection_descriptor") || name2.startsWith("$s") && (name2.endsWith("CMF") || name2.endsWith("VMF")) && !(!obj.file.startsWith(distDir) && obj.file.endsWith(".swift.o")));
|
|
5754
5785
|
const prunedObjsDir = import_node_path10.default.join(directory, ".peach-pruned-objs");
|
|
5755
5786
|
import_node_fs9.default.rmSync(prunedObjsDir, { recursive: true, force: true });
|
|
5756
5787
|
import_node_fs9.default.mkdirSync(prunedObjsDir, { recursive: true });
|
|
@@ -12468,7 +12499,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
|
|
|
12468
12499
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
12469
12500
|
var MULTI_MANIFEST_VERSION = 68;
|
|
12470
12501
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
12471
|
-
var compilerSourceDigest = true ? "
|
|
12502
|
+
var compilerSourceDigest = true ? "8004dbc307143f91fede23d329c01a8171056ea767fd3755b8ac7a39d59e25b3" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
12472
12503
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
12473
12504
|
const hash = (0, import_node_crypto13.createHash)("sha256");
|
|
12474
12505
|
hash.update(`swift-compile
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2201 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/swift-compile.ts
|
|
4
4
|
import {
|
|
@@ -5667,6 +5667,25 @@ function getModulePrefix(file) {
|
|
|
5667
5667
|
const dash = base.indexOf("-");
|
|
5668
5668
|
return dash > 0 ? base.slice(0, dash) : base;
|
|
5669
5669
|
}
|
|
5670
|
+
var SWIFTUI_WRAPPER_HOST_PROTOCOLS = new Set(
|
|
5671
|
+
[
|
|
5672
|
+
"View",
|
|
5673
|
+
"ViewModifier",
|
|
5674
|
+
"App",
|
|
5675
|
+
"Scene",
|
|
5676
|
+
"Gesture",
|
|
5677
|
+
"ToolbarContent",
|
|
5678
|
+
"Commands",
|
|
5679
|
+
"DynamicProperty"
|
|
5680
|
+
].map((name2) => `$s7SwiftUI${name2.length}${name2}Mp`)
|
|
5681
|
+
);
|
|
5682
|
+
function keepsSwiftUIReflection(file, undefinedSymbols) {
|
|
5683
|
+
if (/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(path10.basename(file))) return true;
|
|
5684
|
+
for (const name2 of undefinedSymbols) {
|
|
5685
|
+
if (SWIFTUI_WRAPPER_HOST_PROTOCOLS.has(name2)) return true;
|
|
5686
|
+
}
|
|
5687
|
+
return false;
|
|
5688
|
+
}
|
|
5670
5689
|
function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTargets = [], owner, link, resourceReferences = []) {
|
|
5671
5690
|
const rspPath = path10.join(directory, ".peach-link.rsp");
|
|
5672
5691
|
if (!fs4.existsSync(rspPath)) return;
|
|
@@ -5697,7 +5716,19 @@ function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTarg
|
|
|
5697
5716
|
throw new Error(`swift-wasm-prune: the build owns its sdk directory ${sdkWasiDir}`);
|
|
5698
5717
|
const sdkObjsDir = ensureUnpackedSdkObjects(sdkWasiDir);
|
|
5699
5718
|
const distDir = path10.join(moduleRoot, "lib");
|
|
5700
|
-
const
|
|
5719
|
+
const keepsReflection = /* @__PURE__ */ new Map();
|
|
5720
|
+
const declaresSwiftUIConformers = (obj) => {
|
|
5721
|
+
let keeps = keepsReflection.get(obj);
|
|
5722
|
+
if (keeps === void 0) {
|
|
5723
|
+
keeps = keepsSwiftUIReflection(
|
|
5724
|
+
obj.file,
|
|
5725
|
+
obj.symNames.filter((n, i) => n && (obj.symFlags[i] & 16) !== 0)
|
|
5726
|
+
);
|
|
5727
|
+
keepsReflection.set(obj, keeps);
|
|
5728
|
+
}
|
|
5729
|
+
return keeps;
|
|
5730
|
+
};
|
|
5731
|
+
const dropsReflection = (obj, name2) => !!name2 && !declaresSwiftUIConformers(obj) && (name2.startsWith("l__swift5_reflection_descriptor") || name2.startsWith("$s") && (name2.endsWith("CMF") || name2.endsWith("VMF")) && !(!obj.file.startsWith(distDir) && obj.file.endsWith(".swift.o")));
|
|
5701
5732
|
const prunedObjsDir = path10.join(directory, ".peach-pruned-objs");
|
|
5702
5733
|
fs4.rmSync(prunedObjsDir, { recursive: true, force: true });
|
|
5703
5734
|
fs4.mkdirSync(prunedObjsDir, { recursive: true });
|
|
@@ -12448,7 +12479,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
|
|
|
12448
12479
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
12449
12480
|
var MULTI_MANIFEST_VERSION = 68;
|
|
12450
12481
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
12451
|
-
var compilerSourceDigest = true ? "
|
|
12482
|
+
var compilerSourceDigest = true ? "8004dbc307143f91fede23d329c01a8171056ea767fd3755b8ac7a39d59e25b3" : swiftCompilerSourceDigest(import.meta.dirname);
|
|
12452
12483
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
12453
12484
|
const hash = createHash13("sha256");
|
|
12454
12485
|
hash.update(`swift-compile
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2201 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2201 | (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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2201 | (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/swift.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2201 | (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/vite-swift.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2201 | (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;
|
|
@@ -6919,7 +6919,10 @@ function emitSwiftStandin(sourceGraphs, options) {
|
|
|
6919
6919
|
const restatesRequired = context.inClass && path51.endsWith(".init()") && [...superChain(owner.get(member.identifier.precise) ?? "")].some(
|
|
6920
6920
|
(at) => options.requiredInits?.has(`${pathOf(byId.get(at))}.init()`)
|
|
6921
6921
|
);
|
|
6922
|
-
const
|
|
6922
|
+
const protocolInit = member.kind.identifier === "swift.init" && /^c:objc\(pl\)\w+\(im\).*::SYNTHESIZED::c:objc\(cs\)/.test(
|
|
6923
|
+
member.identifier.precise
|
|
6924
|
+
);
|
|
6925
|
+
const required = context.inClass && (flags.has("required") || requiredInit || restatesRequired || protocolInit);
|
|
6923
6926
|
const final = context.inClass && flags.has("final") ? "final " : "";
|
|
6924
6927
|
const mutating = flags.has("mutating") ? "mutating " : flags.has("nonmutating") ? "nonmutating " : "";
|
|
6925
6928
|
let core = `${flags.has("convenience") ? "convenience " : ""}${modifiers[2]}`;
|
|
@@ -10671,6 +10674,25 @@ function getModulePrefix(file) {
|
|
|
10671
10674
|
const dash = base.indexOf("-");
|
|
10672
10675
|
return dash > 0 ? base.slice(0, dash) : base;
|
|
10673
10676
|
}
|
|
10677
|
+
var SWIFTUI_WRAPPER_HOST_PROTOCOLS = new Set(
|
|
10678
|
+
[
|
|
10679
|
+
"View",
|
|
10680
|
+
"ViewModifier",
|
|
10681
|
+
"App",
|
|
10682
|
+
"Scene",
|
|
10683
|
+
"Gesture",
|
|
10684
|
+
"ToolbarContent",
|
|
10685
|
+
"Commands",
|
|
10686
|
+
"DynamicProperty"
|
|
10687
|
+
].map((name3) => `$s7SwiftUI${name3.length}${name3}Mp`)
|
|
10688
|
+
);
|
|
10689
|
+
function keepsSwiftUIReflection(file, undefinedSymbols) {
|
|
10690
|
+
if (/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(import_node_path10.default.basename(file))) return true;
|
|
10691
|
+
for (const name3 of undefinedSymbols) {
|
|
10692
|
+
if (SWIFTUI_WRAPPER_HOST_PROTOCOLS.has(name3)) return true;
|
|
10693
|
+
}
|
|
10694
|
+
return false;
|
|
10695
|
+
}
|
|
10674
10696
|
function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTargets = [], owner, link, resourceReferences = []) {
|
|
10675
10697
|
const rspPath = import_node_path10.default.join(directory, ".peach-link.rsp");
|
|
10676
10698
|
if (!import_node_fs10.default.existsSync(rspPath)) return;
|
|
@@ -10701,7 +10723,19 @@ function pruneSwiftWasmLink(directory, toolchainBin, moduleRoot, staticClangTarg
|
|
|
10701
10723
|
throw new Error(`swift-wasm-prune: the build owns its sdk directory ${sdkWasiDir}`);
|
|
10702
10724
|
const sdkObjsDir = ensureUnpackedSdkObjects(sdkWasiDir);
|
|
10703
10725
|
const distDir = import_node_path10.default.join(moduleRoot, "lib");
|
|
10704
|
-
const
|
|
10726
|
+
const keepsReflection = /* @__PURE__ */ new Map();
|
|
10727
|
+
const declaresSwiftUIConformers = (obj) => {
|
|
10728
|
+
let keeps = keepsReflection.get(obj);
|
|
10729
|
+
if (keeps === void 0) {
|
|
10730
|
+
keeps = keepsSwiftUIReflection(
|
|
10731
|
+
obj.file,
|
|
10732
|
+
obj.symNames.filter((n, i) => n && (obj.symFlags[i] & 16) !== 0)
|
|
10733
|
+
);
|
|
10734
|
+
keepsReflection.set(obj, keeps);
|
|
10735
|
+
}
|
|
10736
|
+
return keeps;
|
|
10737
|
+
};
|
|
10738
|
+
const dropsReflection = (obj, name3) => !!name3 && !declaresSwiftUIConformers(obj) && (name3.startsWith("l__swift5_reflection_descriptor") || name3.startsWith("$s") && (name3.endsWith("CMF") || name3.endsWith("VMF")) && !(!obj.file.startsWith(distDir) && obj.file.endsWith(".swift.o")));
|
|
10705
10739
|
const prunedObjsDir = import_node_path10.default.join(directory, ".peach-pruned-objs");
|
|
10706
10740
|
import_node_fs10.default.rmSync(prunedObjsDir, { recursive: true, force: true });
|
|
10707
10741
|
import_node_fs10.default.mkdirSync(prunedObjsDir, { recursive: true });
|
|
@@ -17309,7 +17343,7 @@ var darwinRecordsRegion = (quoted) => quoted.length ? ["-Wl,--start-lib", ...quo
|
|
|
17309
17343
|
var REACTOR_FLAG = '"-Xclang-linker", "-mexec-model=reactor",\n';
|
|
17310
17344
|
var MULTI_MANIFEST_VERSION = 68;
|
|
17311
17345
|
var SWIFT_HEADER_PRODUCTS_TARGET = "PeachHeaderProducts";
|
|
17312
|
-
var compilerSourceDigest = true ? "
|
|
17346
|
+
var compilerSourceDigest = true ? "8004dbc307143f91fede23d329c01a8171056ea767fd3755b8ac7a39d59e25b3" : swiftCompilerSourceDigest(__sootsim_import_meta_dirname);
|
|
17313
17347
|
function swiftArtifactHash(input, release, moduleRoot) {
|
|
17314
17348
|
const hash = (0, import_node_crypto13.createHash)("sha256");
|
|
17315
17349
|
hash.update(`swift-compile
|
|
@@ -30615,7 +30649,7 @@ function sourceClosureDigest(srcDir, entrypoints) {
|
|
|
30615
30649
|
return hash.digest("hex");
|
|
30616
30650
|
}
|
|
30617
30651
|
var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
|
|
30618
|
-
var STANDIN_SOURCE_DIGEST = true ? "
|
|
30652
|
+
var STANDIN_SOURCE_DIGEST = true ? "fc51a249ab5b00720eab27b7d9e4945936878069347a86180f9c5efd7f063012" : standinSourceDigest();
|
|
30619
30653
|
|
|
30620
30654
|
// src/swift-standins.ts
|
|
30621
30655
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
@@ -30636,7 +30670,7 @@ function nativeEntryKey(inputs) {
|
|
|
30636
30670
|
return (0, import_node_crypto22.createHash)("sha256").update(lines.join("\n")).digest("hex").slice(0, 32);
|
|
30637
30671
|
}
|
|
30638
30672
|
var nativeEntryPrefix = (kind, name3, key2) => `native/${kind}/${name3}/${key2}`;
|
|
30639
|
-
var
|
|
30673
|
+
var nativeEntryCache = (kind, name3, key2) => import_node_path43.default.join(cacheDir(), "native-prebuilt", kind, name3, key2);
|
|
30640
30674
|
function download(url, to) {
|
|
30641
30675
|
try {
|
|
30642
30676
|
(0, import_node_child_process26.execFileSync)("curl", ["-fsS", "--max-time", "120", url, "-o", to], {
|
|
@@ -30659,7 +30693,7 @@ function parseFiles(text5, kind, name3, key2) {
|
|
|
30659
30693
|
return parsed.files;
|
|
30660
30694
|
}
|
|
30661
30695
|
function fetchNativeEntry(kind, name3, key2) {
|
|
30662
|
-
const dir =
|
|
30696
|
+
const dir = nativeEntryCache(kind, name3, key2);
|
|
30663
30697
|
const descriptorFile = import_node_path43.default.join(dir, "descriptor.json");
|
|
30664
30698
|
if (import_node_fs42.default.existsSync(descriptorFile)) return dir;
|
|
30665
30699
|
const base = `${NATIVE_PREBUILT_ORIGIN}/${nativeEntryPrefix(kind, name3, key2)}`;
|
|
@@ -30705,7 +30739,7 @@ function installNativeEntry(kind, name3, key2, source) {
|
|
|
30705
30739
|
`native prebuilt ${kind}/${name3}/${key2}: ${file.path} does not match its descriptor`
|
|
30706
30740
|
);
|
|
30707
30741
|
}
|
|
30708
|
-
const dir =
|
|
30742
|
+
const dir = nativeEntryCache(kind, name3, key2);
|
|
30709
30743
|
import_node_fs42.default.mkdirSync(import_node_path43.default.dirname(dir), { recursive: true });
|
|
30710
30744
|
const staging = `${dir}.${process.pid}.partial`;
|
|
30711
30745
|
import_node_fs42.default.rmSync(staging, { recursive: true, force: true });
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2201 | (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;
|
|
@@ -1416,7 +1416,7 @@ function isValidRuntimeVersion(value) {
|
|
|
1416
1416
|
}
|
|
1417
1417
|
|
|
1418
1418
|
// runtime-companion.json
|
|
1419
|
-
var runtime_companion_default = { abi: 1, sha256: "
|
|
1419
|
+
var runtime_companion_default = { abi: 1, sha256: "5aec79ac0fcea933862e7e373e0d167401e0d891c835d195b7f48039c87add60", file: "node/cli-5aec79ac0fcea933862e7e373e0d167401e0d891c835d195b7f48039c87add60.cjs" };
|
|
1420
1420
|
|
|
1421
1421
|
// src/answeredNativePackages.ts
|
|
1422
1422
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
@@ -1909,7 +1909,7 @@ function readIosSdkTree(root) {
|
|
|
1909
1909
|
|
|
1910
1910
|
// src/swift-standin-digest.ts
|
|
1911
1911
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
1912
|
-
var STANDIN_SOURCE_DIGEST = true ? "
|
|
1912
|
+
var STANDIN_SOURCE_DIGEST = true ? "fc51a249ab5b00720eab27b7d9e4945936878069347a86180f9c5efd7f063012" : standinSourceDigest();
|
|
1913
1913
|
|
|
1914
1914
|
// src/expo-native-workspace.ts
|
|
1915
1915
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
@@ -5193,6 +5193,18 @@ var OMIT_SDK_LIB_FLAGS = /* @__PURE__ */ new Set([
|
|
|
5193
5193
|
"-lswiftCore",
|
|
5194
5194
|
"-lswift_Concurrency"
|
|
5195
5195
|
]);
|
|
5196
|
+
var SWIFTUI_WRAPPER_HOST_PROTOCOLS = new Set(
|
|
5197
|
+
[
|
|
5198
|
+
"View",
|
|
5199
|
+
"ViewModifier",
|
|
5200
|
+
"App",
|
|
5201
|
+
"Scene",
|
|
5202
|
+
"Gesture",
|
|
5203
|
+
"ToolbarContent",
|
|
5204
|
+
"Commands",
|
|
5205
|
+
"DynamicProperty"
|
|
5206
|
+
].map((name) => `$s7SwiftUI${name.length}${name}Mp`)
|
|
5207
|
+
);
|
|
5196
5208
|
|
|
5197
5209
|
// src/swift-guest-link.ts
|
|
5198
5210
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
@@ -5391,7 +5403,7 @@ var FOUNDATION_IMPLICIT_MODULES = [
|
|
|
5391
5403
|
var FOUNDATION_IMPLICIT_FLAGS = FOUNDATION_IMPLICIT_MODULES.map(
|
|
5392
5404
|
(module2) => `, "-Xfrontend", "-import-module", "-Xfrontend", "${module2}"`
|
|
5393
5405
|
).join("");
|
|
5394
|
-
var compilerSourceDigest = true ? "
|
|
5406
|
+
var compilerSourceDigest = true ? "8004dbc307143f91fede23d329c01a8171056ea767fd3755b8ac7a39d59e25b3" : swiftCompilerSourceDigest2(__sootsim_import_meta_dirname);
|
|
5395
5407
|
var CORE_FOUNDATION_HANDLE_IMPORTS = [
|
|
5396
5408
|
"CFAllocator",
|
|
5397
5409
|
"CFArray",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2201 | (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;
|
|
@@ -136,6 +136,7 @@ export interface SceneNativeBinding {
|
|
|
136
136
|
_peach_walk_retained_census(): number;
|
|
137
137
|
_peach_classic_layout_set(slot: number, start: number, duration: number, easing: number, fromX: number, fromY: number, fromWidth: number, fromHeight: number, targetX: number, targetY: number, targetWidth: number, targetHeight: number): void;
|
|
138
138
|
_peach_classic_layout_clear(slot: number): void;
|
|
139
|
+
_peach_classic_layout_progress(progress: number): void;
|
|
139
140
|
_peach_classic_layout_sample(slot: number, timestamp: number): number;
|
|
140
141
|
peachExtentParameters?: (slot: number) => void;
|
|
141
142
|
_peach_scene_set_buffers(integers: number, doubles: number, floats: number, layoutMatrices: number): void;
|
|
@@ -350,6 +351,7 @@ export declare class SceneTable {
|
|
|
350
351
|
stampPaintKind(slot: number, kind: number, bits: number): void;
|
|
351
352
|
readLayout(slot: number, layout: SootSimLayout): void;
|
|
352
353
|
writeClassicLayoutAnimation(slot: number, from: SootSimLayout, target: SootSimLayout, start: number, duration: number, type: string | null): void;
|
|
354
|
+
setClassicLayoutPresentationProgress(progress: number): void;
|
|
353
355
|
clearClassicLayoutAnimation(slot: number): void;
|
|
354
356
|
sampleClassicLayoutAnimation(slot: number, timestamp: number, out: SootSimLayout): boolean;
|
|
355
357
|
commitNativeLayouts(native: NativeLayoutExports): void;
|
|
@@ -58,6 +58,7 @@ export declare function invalidateLayoutHook(target: unknown): void;
|
|
|
58
58
|
export declare function placeFromLayoutHook(target: unknown, placement: LayoutHookPlacement | null): void;
|
|
59
59
|
export declare function layoutHookFrame(target: unknown): SootSimLayout | null;
|
|
60
60
|
export declare function releaseYogaRoot(root: SootSimNode): void;
|
|
61
|
-
export declare function
|
|
61
|
+
export declare function nestsInParkedYogaTree(root: SootSimNode, owner: SootSimNode): boolean;
|
|
62
|
+
export declare function parkYogaRoot(root: SootSimNode): boolean;
|
|
62
63
|
export declare function freeYogaTree(node: SootSimNode, seen?: Set<SootSimNode>): void;
|
|
63
64
|
export declare function measureText(text: string, sourceStyle: SootSimStyle, maxWidth: number, ctx: MeasureContext, props?: Record<string, any>, node?: SootSimNode, includeInk?: boolean): MeasuredTextResult;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const APP_PREFETCH_MANIFEST_FILE = "app-prefetch.json";
|
|
2
|
+
export declare const APP_PREFETCH_PROD_MANIFEST_FILE = "app-prefetch.prod.json";
|
|
3
|
+
export declare const APP_PREFETCH_MANIFEST_FROM_CHUNK = "../app-prefetch.json";
|
|
4
|
+
export declare const APP_PREFETCH_PROD_MANIFEST_FROM_CHUNK = "../app-prefetch.prod.json";
|
|
5
|
+
export type BackgroundWarm = 'none' | 'light' | 'eager';
|
|
@@ -12,6 +12,7 @@ import type { RemoteEngineClientConfig } from '../remote-stream/client-config.d.
|
|
|
12
12
|
import type { DuoFoldWireState } from '../settings/duo-fold-bus.d.ts';
|
|
13
13
|
import type { ReactNativeConfigurationMutation, ReactNativeConfigurationSnapshot } from '../settings/react-native-configuration.d.ts';
|
|
14
14
|
import type { ShellIntentEventName } from '../shell-intent.d.ts';
|
|
15
|
+
import type { BackgroundWarm } from './app-prefetch-contract.d.ts';
|
|
15
16
|
import type { CompositorBackend } from './compositor-backend.d.ts';
|
|
16
17
|
import type { EditMenuItemRect } from './edit-menu-geometry.d.ts';
|
|
17
18
|
import type { GestureSeamEvent } from './gesture-seam-protocol.d.ts';
|
|
@@ -165,6 +166,7 @@ export type HostToWorker = {
|
|
|
165
166
|
prefersReducedMotion?: boolean;
|
|
166
167
|
netInfo?: NetInfoSnapshot;
|
|
167
168
|
hostSpeechRecognitionAvailable?: boolean;
|
|
169
|
+
backgroundWarm?: BackgroundWarm;
|
|
168
170
|
verboseWorkerLogs?: boolean;
|
|
169
171
|
workletSAB?: SharedArrayBuffer;
|
|
170
172
|
synchronizableArenas?: SynchronizableArenas;
|
|
@@ -38,6 +38,11 @@ export type TreeSyncPortMessage = {
|
|
|
38
38
|
} | {
|
|
39
39
|
type: 'requestSurfaceResync';
|
|
40
40
|
surfaceId: string;
|
|
41
|
+
} | {
|
|
42
|
+
type: 'treeInbox';
|
|
43
|
+
buffer: SharedArrayBuffer;
|
|
44
|
+
} | {
|
|
45
|
+
type: 'treeInboxAccepted';
|
|
41
46
|
} | {
|
|
42
47
|
type: 'nativeAnimMirror';
|
|
43
48
|
envelope: NativeAnimMirrorEnvelope;
|
package/kotlin/sdk.tar.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
package/runtime-companion.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":1,"sha256":"
|
|
1
|
+
{"abi":1,"sha256":"5aec79ac0fcea933862e7e373e0d167401e0d891c835d195b7f48039c87add60","file":"node/cli-5aec79ac0fcea933862e7e373e0d167401e0d891c835d195b7f48039c87add60.cjs"}
|
|
@@ -13,7 +13,7 @@ typedef NSString * CAValueFunctionName NS_TYPED_ENUM API_AVAILABLE(macos(10.6),
|
|
|
13
13
|
NS_HEADER_AUDIT_BEGIN(nullability, sendability)
|
|
14
14
|
|
|
15
15
|
API_AVAILABLE(macos(10.6), ios(3.0), tvos(9.0)) API_UNAVAILABLE(watchos)
|
|
16
|
-
|
|
16
|
+
@interface CAValueFunction : NSObject <NSSecureCoding>
|
|
17
17
|
{
|
|
18
18
|
@protected
|
|
19
19
|
NSString *_string;
|
|
@@ -81,6 +81,20 @@ Tags:
|
|
|
81
81
|
Typedefs:
|
|
82
82
|
- Name: NSTextListMarkerFormat
|
|
83
83
|
SwiftName: NSTextList.MarkerFormat
|
|
84
|
+
- Name: NSAttributedStringDocumentAttributeKey
|
|
85
|
+
SwiftName: NSAttributedString.DocumentAttributeKey
|
|
86
|
+
- Name: NSAttributedStringDocumentReadingOptionKey
|
|
87
|
+
SwiftName: NSAttributedString.DocumentReadingOptionKey
|
|
88
|
+
- Name: NSAttributedStringDocumentType
|
|
89
|
+
SwiftName: NSAttributedString.DocumentType
|
|
90
|
+
- Name: NSTextEffectStyle
|
|
91
|
+
SwiftName: NSAttributedString.TextEffectStyle
|
|
92
|
+
- Name: NSTextHighlightStyle
|
|
93
|
+
SwiftName: NSAttributedString.TextHighlightStyle
|
|
94
|
+
- Name: NSTextHighlightColorScheme
|
|
95
|
+
SwiftName: NSAttributedString.TextHighlightColorScheme
|
|
96
|
+
- Name: NSTextLayoutSectionKey
|
|
97
|
+
SwiftName: NSAttributedString.TextLayoutSectionKey
|
|
84
98
|
- Name: NSTextTabOptionKey
|
|
85
99
|
SwiftName: NSTextTab.OptionKey
|
|
86
100
|
- Name: UIFontDescriptorAttributeName
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import fs from 'node:fs'
|
|
2
|
+
import path from 'node:path'
|
|
3
|
+
import { parseXml, type XmlElement } from './android-xml'
|
|
4
|
+
|
|
5
|
+
// the layout names and view ids a module's R class declares: every layout
|
|
6
|
+
// file's name, every `@+id/` or `@id/` an attribute names in a layout, and each
|
|
7
|
+
// `<item type="id">` in values, as aapt2 declares them
|
|
8
|
+
export interface AndroidLayoutIds {
|
|
9
|
+
layouts: string[]
|
|
10
|
+
ids: string[]
|
|
11
|
+
// the unqualified `layout` directory's files by name, which Resources inflates
|
|
12
|
+
elements: Map<string, XmlElement>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const LAYOUT_DIR = /^layout(?:-[A-Za-z0-9+-]+)?$/
|
|
16
|
+
const ID_REFERENCE = /@\+?id\/([A-Za-z0-9_.]+)/g
|
|
17
|
+
const ID_ITEM = /<item\b[^>]*\btype\s*=\s*"id"[^>]*>/g
|
|
18
|
+
const ITEM_NAME = /\bname\s*=\s*"([^"]+)"/
|
|
19
|
+
|
|
20
|
+
export function readAndroidLayoutIds(moduleDir: string): AndroidLayoutIds {
|
|
21
|
+
const res = path.join(moduleDir, 'src/main/res')
|
|
22
|
+
const layouts = new Set<string>()
|
|
23
|
+
const ids = new Set<string>()
|
|
24
|
+
const elements = new Map<string, XmlElement>()
|
|
25
|
+
for (const dir of fs.existsSync(res) ? fs.readdirSync(res).sort() : []) {
|
|
26
|
+
const directory = path.join(res, dir)
|
|
27
|
+
if (LAYOUT_DIR.test(dir)) {
|
|
28
|
+
for (const entry of fs.readdirSync(directory).sort()) {
|
|
29
|
+
if (!entry.endsWith('.xml')) continue
|
|
30
|
+
layouts.add(entry.slice(0, -'.xml'.length))
|
|
31
|
+
const xml = fs.readFileSync(path.join(directory, entry), 'utf8')
|
|
32
|
+
for (const match of xml.matchAll(ID_REFERENCE)) ids.add(match[1])
|
|
33
|
+
if (dir === 'layout') {
|
|
34
|
+
const root = parseXml(xml, path.join(directory, entry)).children[0]
|
|
35
|
+
if (root) elements.set(entry.slice(0, -'.xml'.length), root)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
} else if (dir.startsWith('values')) {
|
|
39
|
+
for (const entry of fs.readdirSync(directory).sort()) {
|
|
40
|
+
if (!entry.endsWith('.xml')) continue
|
|
41
|
+
const xml = fs.readFileSync(path.join(directory, entry), 'utf8')
|
|
42
|
+
for (const item of xml.matchAll(ID_ITEM)) {
|
|
43
|
+
const name = ITEM_NAME.exec(item[0])?.[1]
|
|
44
|
+
if (name) ids.add(name)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return { layouts: [...layouts].sort(), ids: [...ids].sort(), elements }
|
|
50
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { XmlElement } from './android-xml'
|
|
2
|
+
|
|
3
|
+
// the framework view classes LayoutInflater can create; each is a Kotlin class
|
|
4
|
+
// of the same name in AndroidViewSources, linked into an app only when one of
|
|
5
|
+
// its layouts names it
|
|
6
|
+
export const androidViewClasses = [
|
|
7
|
+
'android.view.View',
|
|
8
|
+
'android.widget.FrameLayout',
|
|
9
|
+
'android.widget.ImageView',
|
|
10
|
+
'android.widget.LinearLayout',
|
|
11
|
+
'android.widget.RelativeLayout',
|
|
12
|
+
'android.widget.TextView',
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
// PhoneLayoutInflater's prefixes, then LayoutInflater's own
|
|
16
|
+
const classPrefixes = [
|
|
17
|
+
'android.widget.',
|
|
18
|
+
'android.webkit.',
|
|
19
|
+
'android.app.',
|
|
20
|
+
'android.view.',
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
// the classes a set of layout trees names, as the inflater resolves a tag: a
|
|
24
|
+
// dotted name is that class, any other tries each framework prefix in order
|
|
25
|
+
export function layoutViewClasses(roots: Iterable<XmlElement>): string[] {
|
|
26
|
+
const used = new Set<string>()
|
|
27
|
+
const visit = (element: XmlElement) => {
|
|
28
|
+
if (element.name !== 'include' && element.name !== 'merge') {
|
|
29
|
+
if (element.name.includes('.')) used.add(element.name)
|
|
30
|
+
else {
|
|
31
|
+
const found = classPrefixes
|
|
32
|
+
.map((prefix) => prefix + element.name)
|
|
33
|
+
.find((name) => androidViewClasses.includes(name))
|
|
34
|
+
if (found) used.add(found)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
element.children.forEach(visit)
|
|
38
|
+
}
|
|
39
|
+
for (const root of roots) visit(root)
|
|
40
|
+
return [...used].sort()
|
|
41
|
+
}
|
package/src/expo-swift-host.ts
CHANGED
|
@@ -2353,7 +2353,12 @@ async function compileExpoSwiftModulesTraced(
|
|
|
2353
2353
|
'react-native/package.json',
|
|
2354
2354
|
),
|
|
2355
2355
|
)
|
|
2356
|
-
const provider = prebuiltReactNativeCore(
|
|
2356
|
+
const provider = await prebuiltReactNativeCore(
|
|
2357
|
+
projectRoot,
|
|
2358
|
+
reactNativeRoot,
|
|
2359
|
+
module.root,
|
|
2360
|
+
'expo',
|
|
2361
|
+
)
|
|
2357
2362
|
const headers = new Map<string, { file: string; relative: string }[]>()
|
|
2358
2363
|
for (const [file, body] of Object.entries(provider.files)) {
|
|
2359
2364
|
const relative = file.split('/upstream/react-native/')[1]
|
package/src/java-module-abi.ts
CHANGED
|
@@ -62,6 +62,7 @@ export async function readJavaModuleSpecs(
|
|
|
62
62
|
typeof row.className !== 'string' ||
|
|
63
63
|
(row.name !== null && typeof row.name !== 'string') ||
|
|
64
64
|
typeof row.source !== 'string' ||
|
|
65
|
+
(row.application !== undefined && typeof row.application !== 'boolean') ||
|
|
65
66
|
!Array.isArray(row.methods)
|
|
66
67
|
)
|
|
67
68
|
throw new Error('Java module reader printed an invalid spec')
|
|
@@ -73,6 +74,7 @@ export async function readJavaModuleSpecs(
|
|
|
73
74
|
name: row.name,
|
|
74
75
|
source: row.source,
|
|
75
76
|
methods: row.methods.map(readBridgeMethod),
|
|
77
|
+
application: row.application === true,
|
|
76
78
|
}
|
|
77
79
|
})
|
|
78
80
|
return { sha256: digest.digest('hex'), specs }
|
package/src/javaAbiContract.ts
CHANGED