peachsim 0.1.2182 → 0.1.2186
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/cpu-profile.ts +6 -2
- package/cli/commands/shell-url.ts +3 -6
- package/cli/outbound-endpoints.ts +11 -1
- 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 +371 -36
- 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 +2 -2
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +325 -28
- package/dist-lib/expo-swift-metadata.cjs +2 -1
- package/dist-lib/expo-swift-metadata.mjs +2 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +364 -36
- package/dist-lib/host/fetch-proxy-handler.cjs +8 -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 +51 -7
- 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 +5 -3
- 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 +51 -7
- package/dist-lib/native-app-identity-project.cjs +49 -5
- package/dist-lib/native-app-identity-project.mjs +49 -5
- package/dist-lib/native-app-identity.cjs +40 -2
- package/dist-lib/native-app-identity.mjs +40 -2
- 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 +63 -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 +383 -39
- package/dist-lib/swift-compile.cjs +2 -2
- package/dist-lib/swift-compile.mjs +2 -2
- package/dist-lib/swift-package.cjs +26 -1
- package/dist-lib/swift-package.mjs +25 -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 +286 -24
- package/dist-lib/vite.cjs +8 -5
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/dist-types/packages/peach-engine/src/render-worker/compositor-backend.d.ts +1 -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/ActivityKit.framework/Headers/ActivityKit.h +1 -0
- package/sdk/ios/System/Library/Frameworks/ActivityKit.framework/Modules/module.modulemap +4 -0
- package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/UIImageAsset.h +1 -1
- package/sdk/ios/usr/lib/swift/ActivityKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +14 -0
- package/sdk/ios/usr/lib/swift/CoreGraphics.swiftmodule/arm64-apple-ios-simulator.swiftinterface +14 -0
- package/sdk/ios/usr/lib/swift/Dispatch.swiftmodule/arm64-apple-ios-simulator.swiftinterface +3 -0
- package/sdk/ios/usr/lib/swift/Foundation.swiftmodule/arm64-apple-ios-simulator.swiftinterface +147 -16
- package/sdk/ios/usr/lib/swift/UIKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +5 -0
- package/src/expo-native-workspace.ts +9 -2
- package/src/kotlin-host.ts +4 -2
- package/src/native-app-identity-project.ts +10 -2
- package/src/native-app-identity.ts +15 -1
- package/src/nativeAppIconContract.ts +37 -0
- package/src/swift-installed-targets.ts +8 -0
- package/src/swift-interface-bodies.ts +165 -0
- package/src/swift-objc-standin.ts +73 -13
- package/src/swift-package.ts +26 -0
- package/src/swift-source-pods.ts +27 -4
- package/src/swift-standin-emit.ts +30 -3
- package/src/swift-standins.ts +75 -12
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2186 | (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": "99e03b74c961d2449afd58c2cbc415ba91d1d469a4f89e461c137fd6c305b27c", "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": "4b7d4a715cdaf57468ead23f2ff9dce76d02c6a888d73d144d4baa2ae571ba3c", "swift-package.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": "99e03b74c961d2449afd58c2cbc415ba91d1d469a4f89e461c137fd6c305b27c", "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": "4b7d4a715cdaf57468ead23f2ff9dce76d02c6a888d73d144d4baa2ae571ba3c", "swift-package.ts": "338cfef9a34a930206ac2e1a8a90b85c8d61f776d9a41e6445dc18e0c5385cdb", "swift-source-file.ts": "93fd659ed63a27b67f54a7c229a7ceb636dc9c59e68414920ba36cff1eda1f94", "swift-toolchain.ts": "65a0698bf022ace2f4254f3f891828dedf403d61c102238e242084a2279e04eb", "home-paths.ts": "f5583b61f8bdd81823b3b29ff519a48daf9993719f194ddb7de22218472e90f9", "xcode-header-search.ts": "f8c3d557b4eca5ddad32907545353eb7ad53b2ebd0969d9ed8f7275e109a13b1", "xcode-project.ts": "5f41cd0bd86cb0cffbfb0047348b963f81d5e51cb0e8dd574c739b1a27aa56de", "xcode-target-members.ts": "ad7589132bffab265e8a10b64e24484fe88b4a2b1cc0ee19a97f151a002eca77", "xcode-json-project.ts": "41990ebbe4b488eef34e74c4608b4b48e5a5b299ba98ca7fbcfdfa0e77be63b6", "openstep-plist.ts": "74e6ce1dac80c9c318e0e9f5e3e8cd19a898a8820c36fc160609695bcb59dcd3" };
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
|
|
@@ -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: "c63f83dd24fd36986b72da8da6b6a51edce0a2d061e3bc05d3439d22b1a86c91", file: "node/cli-c63f83dd24fd36986b72da8da6b6a51edce0a2d061e3bc05d3439d22b1a86c91.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 ? "62c7fc880aa6efc985c4786587cb8441b81094e44c28f8d65e1d6dffda9c24f4" : standinSourceDigest();
|
|
1913
1913
|
|
|
1914
1914
|
// src/expo-native-workspace.ts
|
|
1915
1915
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
@@ -4994,6 +4994,9 @@ init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
|
4994
4994
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
4995
4995
|
var import_node_crypto4 = require("node:crypto");
|
|
4996
4996
|
|
|
4997
|
+
// src/swift-interface-bodies.ts
|
|
4998
|
+
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
4999
|
+
|
|
4997
5000
|
// src/swift-objc-sdk.ts
|
|
4998
5001
|
init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
|
|
4999
5002
|
var import_node_path8 = __toESM(require("node:path"), 1);
|
|
@@ -5388,7 +5391,7 @@ var FOUNDATION_IMPLICIT_MODULES = [
|
|
|
5388
5391
|
var FOUNDATION_IMPLICIT_FLAGS = FOUNDATION_IMPLICIT_MODULES.map(
|
|
5389
5392
|
(module2) => `, "-Xfrontend", "-import-module", "-Xfrontend", "${module2}"`
|
|
5390
5393
|
).join("");
|
|
5391
|
-
var compilerSourceDigest = true ? "
|
|
5394
|
+
var compilerSourceDigest = true ? "0d2e8d6fb4545fb31a692a87bd3215ef3a9a64a8c3e1b2fc1f2a3e79511325ec" : swiftCompilerSourceDigest2(__sootsim_import_meta_dirname);
|
|
5392
5395
|
var CORE_FOUNDATION_HANDLE_IMPORTS = [
|
|
5393
5396
|
"CFAllocator",
|
|
5394
5397
|
"CFArray",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.2186 | (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;
|
|
@@ -15,6 +15,7 @@ export type CompositorDeviceProbe = {
|
|
|
15
15
|
readonly device: boolean;
|
|
16
16
|
readonly error?: string;
|
|
17
17
|
};
|
|
18
|
+
export declare function inNativeHost(): boolean;
|
|
18
19
|
export interface CompositorBackendEnvironment {
|
|
19
20
|
readonly webGpuApiAvailable: boolean;
|
|
20
21
|
readonly nativeHost: boolean;
|
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":"c63f83dd24fd36986b72da8da6b6a51edce0a2d061e3bc05d3439d22b1a86c91","file":"node/cli-c63f83dd24fd36986b72da8da6b6a51edce0a2d061e3bc05d3439d22b1a86c91.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
@@ -15,7 +15,7 @@ NS_HEADER_AUDIT_BEGIN(nullability, sendability)
|
|
|
15
15
|
@protocol UIImageConfiguration;
|
|
16
16
|
|
|
17
17
|
UIKIT_EXTERN API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(watchos) NS_SWIFT_SENDABLE
|
|
18
|
-
@interface UIImageAsset : NSObject <NSSecureCoding>
|
|
18
|
+
PEACH_SWIFT_CLASS(UIKitCore) @interface UIImageAsset : NSObject <NSSecureCoding>
|
|
19
19
|
|
|
20
20
|
- (instancetype)init NS_DESIGNATED_INITIALIZER;
|
|
21
21
|
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
|
package/sdk/ios/usr/lib/swift/ActivityKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// swift-interface-format-version: 1.0
|
|
2
|
+
// swift-module-flags: -target arm64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -module-name ActivityKit
|
|
3
|
+
@_exported import ActivityKit
|
|
4
|
+
import Foundation
|
|
5
|
+
import Swift
|
|
6
|
+
import _Concurrency
|
|
7
|
+
public protocol ActivityAttributes : Swift.Decodable, Swift.Encodable {
|
|
8
|
+
associatedtype ContentState : Swift.Decodable, Swift.Encodable, Swift.Hashable
|
|
9
|
+
}
|
|
10
|
+
@available(iOS 16.1, *)
|
|
11
|
+
public struct Activity<Attributes> where Attributes : ActivityKit.ActivityAttributes {
|
|
12
|
+
public let id: Swift.String
|
|
13
|
+
public let attributes: Attributes
|
|
14
|
+
}
|
package/sdk/ios/usr/lib/swift/CoreGraphics.swiftmodule/arm64-apple-ios-simulator.swiftinterface
CHANGED
|
@@ -6,3 +6,17 @@ import Swift
|
|
|
6
6
|
public init()
|
|
7
7
|
public init(_ value: Swift.Double)
|
|
8
8
|
}
|
|
9
|
+
extension CoreGraphics.CGPoint {
|
|
10
|
+
public static let zero: CoreGraphics.CGPoint
|
|
11
|
+
}
|
|
12
|
+
extension CoreGraphics.CGSize {
|
|
13
|
+
public static let zero: CoreGraphics.CGSize
|
|
14
|
+
}
|
|
15
|
+
extension CoreGraphics.CGVector {
|
|
16
|
+
public static let zero: CoreGraphics.CGVector
|
|
17
|
+
}
|
|
18
|
+
extension CoreGraphics.CGRect {
|
|
19
|
+
public static let zero: CoreGraphics.CGRect
|
|
20
|
+
public static let null: CoreGraphics.CGRect
|
|
21
|
+
public static let infinite: CoreGraphics.CGRect
|
|
22
|
+
}
|
package/sdk/ios/usr/lib/swift/Foundation.swiftmodule/arm64-apple-ios-simulator.swiftinterface
CHANGED
|
@@ -5,27 +5,137 @@
|
|
|
5
5
|
@_exported import CoreGraphics
|
|
6
6
|
import Swift
|
|
7
7
|
import _Concurrency
|
|
8
|
-
public struct URL {
|
|
8
|
+
public struct URL : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
9
|
+
public static func == (a: Foundation.URL, b: Foundation.URL) -> Swift.Bool
|
|
10
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
11
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
12
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
13
|
+
public var description: Swift.String { get }
|
|
14
|
+
}
|
|
9
15
|
public struct Data {
|
|
10
16
|
public typealias ReadingOptions = Foundation.NSData.ReadingOptions
|
|
11
17
|
public typealias WritingOptions = Foundation.NSData.WritingOptions
|
|
12
18
|
public typealias SearchOptions = Foundation.NSData.SearchOptions
|
|
19
|
+
public typealias Index = Swift.Int
|
|
20
|
+
}
|
|
21
|
+
public struct Date : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.Comparable, Swift.CustomStringConvertible {
|
|
22
|
+
public init()
|
|
23
|
+
public static var now: Foundation.Date { get }
|
|
24
|
+
public static let distantPast: Foundation.Date
|
|
25
|
+
public static let distantFuture: Foundation.Date
|
|
26
|
+
public static func == (a: Foundation.Date, b: Foundation.Date) -> Swift.Bool
|
|
27
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
28
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
29
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
30
|
+
public static func < (a: Foundation.Date, b: Foundation.Date) -> Swift.Bool
|
|
31
|
+
public var description: Swift.String { get }
|
|
32
|
+
}
|
|
33
|
+
public struct DateComponents : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
34
|
+
public static func == (a: Foundation.DateComponents, b: Foundation.DateComponents) -> Swift.Bool
|
|
35
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
36
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
37
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
38
|
+
public var description: Swift.String { get }
|
|
39
|
+
}
|
|
40
|
+
public struct DateInterval : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
41
|
+
public static func == (a: Foundation.DateInterval, b: Foundation.DateInterval) -> Swift.Bool
|
|
42
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
43
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
44
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
45
|
+
public var description: Swift.String { get }
|
|
46
|
+
}
|
|
47
|
+
public struct URLComponents : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
48
|
+
public static func == (a: Foundation.URLComponents, b: Foundation.URLComponents) -> Swift.Bool
|
|
49
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
50
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
51
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
52
|
+
public var description: Swift.String { get }
|
|
53
|
+
}
|
|
54
|
+
public struct URLQueryItem : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
55
|
+
public static func == (a: Foundation.URLQueryItem, b: Foundation.URLQueryItem) -> Swift.Bool
|
|
56
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
57
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
58
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
59
|
+
public var description: Swift.String { get }
|
|
60
|
+
}
|
|
61
|
+
public struct URLRequest : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
62
|
+
public static func == (a: Foundation.URLRequest, b: Foundation.URLRequest) -> Swift.Bool
|
|
63
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
64
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
65
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
66
|
+
public var description: Swift.String { get }
|
|
67
|
+
}
|
|
68
|
+
public struct UUID : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
69
|
+
public init()
|
|
70
|
+
public static func == (a: Foundation.UUID, b: Foundation.UUID) -> Swift.Bool
|
|
71
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
72
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
73
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
74
|
+
public var description: Swift.String { get }
|
|
75
|
+
}
|
|
76
|
+
public struct IndexPath : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.Comparable, Swift.CustomStringConvertible {
|
|
77
|
+
public static func == (a: Foundation.IndexPath, b: Foundation.IndexPath) -> Swift.Bool
|
|
78
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
79
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
80
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
81
|
+
public static func < (a: Foundation.IndexPath, b: Foundation.IndexPath) -> Swift.Bool
|
|
82
|
+
public var description: Swift.String { get }
|
|
83
|
+
}
|
|
84
|
+
public struct IndexSet : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
85
|
+
public static func == (a: Foundation.IndexSet, b: Foundation.IndexSet) -> Swift.Bool
|
|
86
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
87
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
88
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
89
|
+
public var description: Swift.String { get }
|
|
90
|
+
}
|
|
91
|
+
public struct CharacterSet : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
92
|
+
public static func == (a: Foundation.CharacterSet, b: Foundation.CharacterSet) -> Swift.Bool
|
|
93
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
94
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
95
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
96
|
+
public var description: Swift.String { get }
|
|
97
|
+
}
|
|
98
|
+
public struct Locale : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
99
|
+
public static var current: Foundation.Locale { get }
|
|
100
|
+
public static func == (a: Foundation.Locale, b: Foundation.Locale) -> Swift.Bool
|
|
101
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
102
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
103
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
104
|
+
public var description: Swift.String { get }
|
|
105
|
+
}
|
|
106
|
+
public struct TimeZone : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
107
|
+
public static var current: Foundation.TimeZone { get }
|
|
108
|
+
public static func == (a: Foundation.TimeZone, b: Foundation.TimeZone) -> Swift.Bool
|
|
109
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
110
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
111
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
112
|
+
public var description: Swift.String { get }
|
|
113
|
+
}
|
|
114
|
+
public struct Calendar : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.CustomStringConvertible {
|
|
115
|
+
public static var current: Foundation.Calendar { get }
|
|
116
|
+
public static func == (a: Foundation.Calendar, b: Foundation.Calendar) -> Swift.Bool
|
|
117
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
118
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
119
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
120
|
+
public var description: Swift.String { get }
|
|
121
|
+
}
|
|
122
|
+
public struct Notification {
|
|
123
|
+
public struct Name {}
|
|
124
|
+
}
|
|
125
|
+
public struct Decimal : Swift.Hashable, Swift.Codable, Swift.Sendable, Swift.Comparable, Swift.CustomStringConvertible {
|
|
126
|
+
public static func == (a: Foundation.Decimal, b: Foundation.Decimal) -> Swift.Bool
|
|
127
|
+
public func hash(into hasher: inout Swift.Hasher)
|
|
128
|
+
public func encode(to encoder: any Swift.Encoder) throws
|
|
129
|
+
public init(from decoder: any Swift.Decoder) throws
|
|
130
|
+
public static func < (a: Foundation.Decimal, b: Foundation.Decimal) -> Swift.Bool
|
|
131
|
+
public var description: Swift.String { get }
|
|
132
|
+
}
|
|
133
|
+
open class JSONDecoder {
|
|
134
|
+
public init()
|
|
135
|
+
}
|
|
136
|
+
open class JSONEncoder {
|
|
137
|
+
public init()
|
|
13
138
|
}
|
|
14
|
-
public struct Date {}
|
|
15
|
-
public struct DateComponents {}
|
|
16
|
-
public struct DateInterval {}
|
|
17
|
-
public struct URLComponents {}
|
|
18
|
-
public struct URLQueryItem {}
|
|
19
|
-
public struct URLRequest {}
|
|
20
|
-
public struct UUID {}
|
|
21
|
-
public struct IndexPath {}
|
|
22
|
-
public struct IndexSet {}
|
|
23
|
-
public struct CharacterSet {}
|
|
24
|
-
public struct Locale {}
|
|
25
|
-
public struct TimeZone {}
|
|
26
|
-
public struct Calendar {}
|
|
27
|
-
public struct Notification {}
|
|
28
|
-
public struct Decimal {}
|
|
29
139
|
public typealias NSErrorPointer = Swift.AutoreleasingUnsafeMutablePointer<Foundation.NSError?>?
|
|
30
140
|
public typealias ErrorPointer = Foundation.NSErrorPointer
|
|
31
141
|
public protocol CustomNSError : Swift.Error {
|
|
@@ -33,6 +143,18 @@ public protocol CustomNSError : Swift.Error {
|
|
|
33
143
|
var errorCode: Swift.Int { get }
|
|
34
144
|
var errorUserInfo: [Swift.String : Any] { get }
|
|
35
145
|
}
|
|
146
|
+
public protocol LocalizedError : Swift.Error {
|
|
147
|
+
var errorDescription: Swift.String? { get }
|
|
148
|
+
var failureReason: Swift.String? { get }
|
|
149
|
+
var recoverySuggestion: Swift.String? { get }
|
|
150
|
+
var helpAnchor: Swift.String? { get }
|
|
151
|
+
}
|
|
152
|
+
extension Foundation.LocalizedError {
|
|
153
|
+
public var errorDescription: Swift.String? { get }
|
|
154
|
+
public var failureReason: Swift.String? { get }
|
|
155
|
+
public var recoverySuggestion: Swift.String? { get }
|
|
156
|
+
public var helpAnchor: Swift.String? { get }
|
|
157
|
+
}
|
|
36
158
|
public protocol _ObjectiveCBridgeableError : Swift.Error {
|
|
37
159
|
init?(_bridgedNSError: __shared Foundation.NSError)
|
|
38
160
|
}
|
|
@@ -313,6 +435,15 @@ public func _convertErrorToNSError(_ error: any Swift.Error) -> Foundation.NSErr
|
|
|
313
435
|
public protocol ContiguousBytes {
|
|
314
436
|
func withUnsafeBytes<R>(_ body: (Swift.UnsafeRawBufferPointer) throws -> R) rethrows -> R
|
|
315
437
|
}
|
|
438
|
+
extension Foundation.Data : Swift.RandomAccessCollection, Swift.MutableCollection, Swift.RangeReplaceableCollection {
|
|
439
|
+
public typealias Element = Swift.UInt8
|
|
440
|
+
public typealias Indices = Swift.Range<Swift.Int>
|
|
441
|
+
public init()
|
|
442
|
+
public var startIndex: Swift.Int { get }
|
|
443
|
+
public var endIndex: Swift.Int { get }
|
|
444
|
+
public subscript(position: Swift.Int) -> Swift.UInt8 { get set }
|
|
445
|
+
public mutating func replaceSubrange<C>(_ subrange: Swift.Range<Swift.Int>, with newElements: C) where C : Swift.Collection, C.Element == Swift.UInt8
|
|
446
|
+
}
|
|
316
447
|
extension Foundation.Data : Swift.Hashable, Swift.Codable, Foundation.ContiguousBytes, Swift.Sendable {
|
|
317
448
|
public static func == (lhs: Foundation.Data, rhs: Foundation.Data) -> Swift.Bool
|
|
318
449
|
public func hash(into hasher: inout Swift.Hasher)
|
|
@@ -11,3 +11,8 @@ extension UIKit.UIWindow {
|
|
|
11
11
|
extension UIKit.UIDevice {
|
|
12
12
|
public typealias BatteryState = UIKit.UIDeviceBatteryState
|
|
13
13
|
}
|
|
14
|
+
extension UIKit.NSLayoutConstraint {
|
|
15
|
+
public typealias Relation = UIKit.NSLayoutRelation
|
|
16
|
+
public typealias Attribute = UIKit.NSLayoutAttribute
|
|
17
|
+
public typealias FormatOptions = UIKit.NSLayoutFormatOptions
|
|
18
|
+
}
|
|
@@ -745,7 +745,8 @@ function initializeWorkspaceGit(root: string, work: string) {
|
|
|
745
745
|
})
|
|
746
746
|
const tracked = trackedSourceFiles(root, work)
|
|
747
747
|
if (tracked.length > 0)
|
|
748
|
-
|
|
748
|
+
// update-index takes exact paths; add matches every file against every pathspec, which is quadratic here
|
|
749
|
+
execFileSync('git', ['update-index', '--add', '-z', '--stdin'], {
|
|
749
750
|
cwd: work,
|
|
750
751
|
env: { ...process.env, ...isolatedGitEnv },
|
|
751
752
|
input: tracked.join('\0'),
|
|
@@ -904,7 +905,13 @@ async function prepareWorkspace(
|
|
|
904
905
|
const command = [...prefix, ...args]
|
|
905
906
|
await run(command[0]!, command.slice(1), cwd, env)
|
|
906
907
|
}
|
|
907
|
-
|
|
908
|
+
const installedBun = manager.startsWith('bun@')
|
|
909
|
+
? spawnSync(bunExecutable, ['--version'], { encoding: 'utf8' })
|
|
910
|
+
: null
|
|
911
|
+
if (
|
|
912
|
+
manager.startsWith('bun@') &&
|
|
913
|
+
(installedBun?.status !== 0 || installedBun.stdout.trim() !== manager.slice(4))
|
|
914
|
+
)
|
|
908
915
|
await execute(
|
|
909
916
|
[
|
|
910
917
|
'npm',
|
package/src/kotlin-host.ts
CHANGED
|
@@ -131,10 +131,11 @@ function entrySource(ids: string[]): string {
|
|
|
131
131
|
'',
|
|
132
132
|
'@OptIn(kotlin.js.ExperimentalJsExport::class)',
|
|
133
133
|
'@JsExport',
|
|
134
|
-
'fun peachSetAndroidDeviceInfo(model: String, release: String, apiLevel: Int, locale: String, timeZone: String) {',
|
|
134
|
+
'fun peachSetAndroidDeviceInfo(model: String, release: String, apiLevel: Int, locale: String, timeZone: String, settings: String) {',
|
|
135
135
|
' Build.setDevice(model, release, apiLevel)',
|
|
136
136
|
' java.util.Locale.setDefault(java.util.Locale.forLanguageTag(locale))',
|
|
137
137
|
' java.util.TimeZone.setDevice(timeZone)',
|
|
138
|
+
' dev.peach.android.ProcessSettings.configure(settings)',
|
|
138
139
|
'}',
|
|
139
140
|
'',
|
|
140
141
|
'@OptIn(kotlin.js.ExperimentalJsExport::class, kotlinx.coroutines.DelicateCoroutinesApi::class)',
|
|
@@ -730,10 +731,11 @@ export async function expoKotlinArtifact(
|
|
|
730
731
|
' ))',
|
|
731
732
|
'}',
|
|
732
733
|
'',
|
|
733
|
-
'@JsExport fun peachSetAndroidDeviceInfo(model: String, release: String, apiLevel: Int, locale: String, timeZone: String) {',
|
|
734
|
+
'@JsExport fun peachSetAndroidDeviceInfo(model: String, release: String, apiLevel: Int, locale: String, timeZone: String, settings: String) {',
|
|
734
735
|
' android.os.Build.setDevice(model, release, apiLevel)',
|
|
735
736
|
' java.util.Locale.setDefault(java.util.Locale.forLanguageTag(locale))',
|
|
736
737
|
' java.util.TimeZone.setDevice(timeZone)',
|
|
738
|
+
' dev.peach.android.ProcessSettings.configure(settings)',
|
|
737
739
|
' PeachExpoRuntime.configureProcessLocale(locale)',
|
|
738
740
|
'}',
|
|
739
741
|
'',
|
|
@@ -10,7 +10,10 @@ import {
|
|
|
10
10
|
readGoogleSignInConfiguration,
|
|
11
11
|
selectNativeAppIdentityReader,
|
|
12
12
|
} from './native-app-identity'
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
resolveNativeAppIconArtwork,
|
|
15
|
+
resolveNativeBundleIcons,
|
|
16
|
+
} from './nativeAppIconContract'
|
|
14
17
|
import { parsePlistSource } from './plist'
|
|
15
18
|
import { NATIVE_GRAPH_SDK_VERSION } from './swift-objc-standin'
|
|
16
19
|
import {
|
|
@@ -91,11 +94,15 @@ export function readNativeAppIdentityFromXcodeTarget(
|
|
|
91
94
|
}
|
|
92
95
|
const alternateSetting =
|
|
93
96
|
settings?.('ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES') ?? ''
|
|
97
|
+
const catalogAlternateNames: string[] = []
|
|
94
98
|
for (const match of alternateSetting
|
|
95
99
|
.replace(/\\"/g, '"')
|
|
96
100
|
.matchAll(/"([^"]*)"|([^\s(),]+)/g)) {
|
|
97
101
|
const val = match[1] ?? match[2]
|
|
98
|
-
if (val)
|
|
102
|
+
if (val) {
|
|
103
|
+
alternateIconNames.add(val)
|
|
104
|
+
catalogAlternateNames.push(val)
|
|
105
|
+
}
|
|
99
106
|
}
|
|
100
107
|
|
|
101
108
|
const permissionUsageDescriptions: Record<string, unknown> = {}
|
|
@@ -204,6 +211,7 @@ export function readNativeAppIdentityFromXcodeTarget(
|
|
|
204
211
|
ipadSupportedInterfaceOrientations,
|
|
205
212
|
...(defaultScreenOrientationMask ? { defaultScreenOrientationMask } : {}),
|
|
206
213
|
alternateIconNames: [...alternateIconNames],
|
|
214
|
+
bundleIcons: resolveNativeBundleIcons(icons, catalogAlternateNames, (value) => value),
|
|
207
215
|
appIconArtwork: resolveNativeAppIconArtwork(
|
|
208
216
|
app.resources,
|
|
209
217
|
(file) => fs.readFileSync(file, 'utf8'),
|
|
@@ -13,6 +13,7 @@ import { nativeAppIdentityFromAndroidManifest } from './android-app-identity'
|
|
|
13
13
|
import { isRecord } from './is-record'
|
|
14
14
|
import {
|
|
15
15
|
resolveNativeAppIconArtwork,
|
|
16
|
+
resolveNativeBundleIcons,
|
|
16
17
|
isNativeAppIconArtwork,
|
|
17
18
|
readNativeAppIconArtwork,
|
|
18
19
|
type NativeAppIconArtwork,
|
|
@@ -87,6 +88,7 @@ export interface NativeAppIdentity {
|
|
|
87
88
|
rtcAppGroupIdentifier?: string
|
|
88
89
|
screenShareExtensionBundleId?: string
|
|
89
90
|
alternateIconNames?: readonly string[]
|
|
91
|
+
bundleIcons?: Readonly<Record<string, unknown>>
|
|
90
92
|
appIconArtwork?: NativeAppIconArtwork
|
|
91
93
|
// resolved Reanimated compile flags from the native build inputs.
|
|
92
94
|
reanimatedStaticFeatureFlags?: Readonly<Record<string, boolean>>
|
|
@@ -183,6 +185,7 @@ export function isNativeAppIdentity(value: unknown): value is NativeAppIdentity
|
|
|
183
185
|
)
|
|
184
186
|
return false
|
|
185
187
|
if (value.googleSignIn !== undefined && !isRecord(value.googleSignIn)) return false
|
|
188
|
+
if (value.bundleIcons !== undefined && !isRecord(value.bundleIcons)) return false
|
|
186
189
|
const descriptions = value.permissionUsageDescriptions
|
|
187
190
|
if (
|
|
188
191
|
value.reanimatedStaticFeatureFlags !== undefined &&
|
|
@@ -355,6 +358,9 @@ export function readNativeAppIdentity(value: unknown): NativeAppIdentity | null
|
|
|
355
358
|
...(value.alternateIconNames === undefined
|
|
356
359
|
? {}
|
|
357
360
|
: { alternateIconNames: [...value.alternateIconNames] }),
|
|
361
|
+
...(value.bundleIcons === undefined
|
|
362
|
+
? {}
|
|
363
|
+
: { bundleIcons: structuredClone(value.bundleIcons) }),
|
|
358
364
|
...(value.androidManifestPermissions === undefined
|
|
359
365
|
? {}
|
|
360
366
|
: {
|
|
@@ -1003,10 +1009,13 @@ function nativeAppIdentityFromIos(
|
|
|
1003
1009
|
)
|
|
1004
1010
|
if (alternateSetting === null)
|
|
1005
1011
|
throw new Error('native alternate icon setting is unresolved')
|
|
1012
|
+
const catalogAlternateNames: string[] = []
|
|
1006
1013
|
for (const match of alternateSetting
|
|
1007
1014
|
.replace(/\\"/g, '"')
|
|
1008
1015
|
.matchAll(/"([^"]*)"|([^\s(),]+)/g)) {
|
|
1009
|
-
|
|
1016
|
+
const name = match[1] ?? match[2]
|
|
1017
|
+
alternateIconNames.add(name)
|
|
1018
|
+
catalogAlternateNames.push(name)
|
|
1010
1019
|
}
|
|
1011
1020
|
// swift casts the whole configured value to [String]; a mixed array grants none.
|
|
1012
1021
|
const intentIds = dictionary.OneAppIntentIdentifiers
|
|
@@ -1208,6 +1217,11 @@ function nativeAppIdentityFromIos(
|
|
|
1208
1217
|
? {}
|
|
1209
1218
|
: { defaultScreenOrientationMask }),
|
|
1210
1219
|
alternateIconNames: [...alternateIconNames],
|
|
1220
|
+
bundleIcons: resolveNativeBundleIcons(icons, catalogAlternateNames, (value) => {
|
|
1221
|
+
const resolved = resolveBuildSetting(value, settings)
|
|
1222
|
+
if (resolved === null) throw new Error('native bundle icon reference is unresolved')
|
|
1223
|
+
return resolved
|
|
1224
|
+
}),
|
|
1211
1225
|
...(resourceUri
|
|
1212
1226
|
? {
|
|
1213
1227
|
appIconArtwork: resolveNativeAppIconArtwork(
|
|
@@ -6,6 +6,43 @@ export interface NativeAppIconArtwork {
|
|
|
6
6
|
alternates: Record<string, SwiftImageVariants>
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
export function resolveNativeBundleIcons(
|
|
10
|
+
icons: unknown,
|
|
11
|
+
catalogNames: readonly string[],
|
|
12
|
+
resolveReference: (value: string) => string,
|
|
13
|
+
): Record<string, unknown> | undefined {
|
|
14
|
+
if (!isRecord(icons) && catalogNames.length === 0) return undefined
|
|
15
|
+
const resolve = (value: unknown): unknown => {
|
|
16
|
+
if (typeof value === 'string') return resolveReference(value)
|
|
17
|
+
if (Array.isArray(value)) return value.map(resolve)
|
|
18
|
+
if (isRecord(value))
|
|
19
|
+
return Object.fromEntries(
|
|
20
|
+
Object.entries(value).map(([key, entry]) => [
|
|
21
|
+
resolveReference(key),
|
|
22
|
+
resolve(entry),
|
|
23
|
+
]),
|
|
24
|
+
)
|
|
25
|
+
return value
|
|
26
|
+
}
|
|
27
|
+
const dictionary = isRecord(icons)
|
|
28
|
+
? Object.fromEntries(
|
|
29
|
+
Object.entries(icons).map(([key, value]) => [key, resolve(value)]),
|
|
30
|
+
)
|
|
31
|
+
: {}
|
|
32
|
+
if (catalogNames.length === 0) return dictionary
|
|
33
|
+
return {
|
|
34
|
+
...dictionary,
|
|
35
|
+
CFBundleAlternateIcons: {
|
|
36
|
+
...Object.fromEntries(
|
|
37
|
+
catalogNames.map((name) => [name, { CFBundleIconName: name }]),
|
|
38
|
+
),
|
|
39
|
+
...(isRecord(dictionary.CFBundleAlternateIcons)
|
|
40
|
+
? dictionary.CFBundleAlternateIcons
|
|
41
|
+
: {}),
|
|
42
|
+
},
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
9
46
|
export function isNativeAppIconArtwork(value: unknown): value is NativeAppIconArtwork {
|
|
10
47
|
return (
|
|
11
48
|
isRecord(value) &&
|
|
@@ -201,6 +201,14 @@ export function applyInstalledSwiftTargets(
|
|
|
201
201
|
return !collection.targets.some((target) => target.name === module)
|
|
202
202
|
})
|
|
203
203
|
dropSuppliedHeaders(generated, native)
|
|
204
|
+
if (native.flattensPublicHeaders && native.publicHeaders.length > 0)
|
|
205
|
+
generated.swiftFlags = [
|
|
206
|
+
...(generated.swiftFlags ?? []),
|
|
207
|
+
'-Xcc',
|
|
208
|
+
'-I',
|
|
209
|
+
'-Xcc',
|
|
210
|
+
`$(PEACH_INPUT_ROOT)/.build/peach-cxx-headers/${native.name}`,
|
|
211
|
+
]
|
|
204
212
|
const flags = originalModuleFlags(native.flags)
|
|
205
213
|
generated.clangSettings = [
|
|
206
214
|
{ tool: 'c', flags: [...flags, ...ndebug, ...search] },
|