peachsim 0.1.2220 → 0.1.2222
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/compat.ts +4 -4
- package/cli/commands/inspect.ts +4 -4
- package/cli/commands/report-issue.ts +1 -1
- package/cli/runtime-compat.ts +7 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +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 +475 -381
- 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 +3 -2
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +472 -379
- 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 +695 -574
- package/dist-lib/host/fetch-proxy-handler.cjs +10 -7
- 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 +8232 -7815
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/kotlin-host.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +8146 -7737
- package/dist-lib/native-app-identity-project.cjs +331 -13
- package/dist-lib/native-app-identity-project.mjs +331 -13
- package/dist-lib/native-app-identity.cjs +16 -3
- package/dist-lib/native-app-identity.mjs +16 -3
- 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 +99 -96
- 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 +532 -420
- package/dist-lib/swift-compile.cjs +84 -49
- package/dist-lib/swift-compile.mjs +84 -49
- 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 +158 -69
- package/dist-lib/vite.cjs +2930 -2800
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/dist-types/packages/peach-engine/src/cli-companion.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/cli-host-terser.d.ts +7 -0
- package/dist-types/packages/peach-engine/src/engine/glass-material.d.ts +1 -1
- package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/engine/node.d.ts +5 -0
- package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +8 -1
- package/dist-types/packages/peach-engine/src/engine/types.d.ts +3 -0
- package/dist-types/packages/peach-engine/src/engine/yoga-layout.d.ts +1 -1
- package/dist-types/packages/peach-engine/src/remote-stream/cloud-display.d.ts +2 -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/shell-tree-wire.d.ts +1 -2
- package/dist-types/packages/peach-kit/src/internal.d.ts +1 -0
- package/dist-types/packages/peach-kit/src/ios-tint.d.ts +1 -0
- package/dist-types/packages/peach-kit/src/transitions/screen-transition-math.d.ts +25 -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/SceneKit.framework/Headers/SCNAnimation.h +4 -4
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNCameraController.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNConstraint.h +5 -5
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNGeometry.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNLevelOfDetail.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNParametricGeometry.h +9 -9
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNParticleSystem.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNPhysicsBehavior.h +7 -7
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNRenderer.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNShadable.h +1 -1
- package/sdk/ios/System/Library/Frameworks/SceneKit.framework/Headers/SCNTechnique.h +1 -1
- package/sdk/ios/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutConstraint.h +1 -8
- package/sdk/ios/System/Library/Frameworks/UIKit.framework/Modules/module.modulemap +1 -0
- package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UIKitTypes.h +1 -0
- package/sdk/ios/System/Library/Frameworks/UIKitTypes.framework/Headers/UILayoutPriority.h +11 -0
- package/src/cli-runtime.ts +1 -0
- package/src/expo-native-workspace.ts +14 -10
- package/src/expo-workspace-exclusion.ts +10 -7
- package/src/react-native-autolinking.ts +2 -1
- package/src/runtime-delivery.ts +7 -0
- package/src/swift-compile.ts +90 -54
- package/src/swift-coverage/xcode-assets.ts +4 -2
- package/src/swift-host.ts +53 -14
- package/src/swift-objc-import.ts +4 -0
- package/src/wasm-optimize.ts +5 -1
- package/src/xcode-project.ts +26 -5
- package/src/xcode-target-members.ts +25 -3
package/src/wasm-optimize.ts
CHANGED
|
@@ -22,8 +22,11 @@ const FEATURES = [
|
|
|
22
22
|
'sign-ext',
|
|
23
23
|
]
|
|
24
24
|
|
|
25
|
+
// PEACH_SWIFT_NAMES=1 keeps the name section so a trap stack names its functions.
|
|
26
|
+
export const KEEP_WASM_NAMES = process.env.PEACH_SWIFT_NAMES === '1'
|
|
27
|
+
|
|
25
28
|
/** feeds the artifact hash: a new optimizer or flag set is a new artifact. */
|
|
26
|
-
export const WASM_OPTIMIZE_IDENTITY = `wasm-opt ${BINARYEN_VERSION} -Oz ${FEATURES.join(',')}`
|
|
29
|
+
export const WASM_OPTIMIZE_IDENTITY = `wasm-opt ${BINARYEN_VERSION} -Oz ${FEATURES.join(',')}${KEEP_WASM_NAMES ? ' -g' : ''}`
|
|
27
30
|
|
|
28
31
|
// the sha256 of each Binaryen release archive wasm-opt resolves for its own platform
|
|
29
32
|
// keys; update both when the wasm-opt package moves BINARYEN_VERSION.
|
|
@@ -73,6 +76,7 @@ async function runWasmOpt(
|
|
|
73
76
|
const result = await wasmOpt(
|
|
74
77
|
[
|
|
75
78
|
'-Oz',
|
|
79
|
+
...(KEEP_WASM_NAMES ? ['-g'] : []),
|
|
76
80
|
...skipPasses.flatMap((pass) => ['--skip-pass', pass]),
|
|
77
81
|
...FEATURES.map((feature) => `--enable-${feature}`),
|
|
78
82
|
file,
|
package/src/xcode-project.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { createHash } from 'node:crypto'
|
|
|
12
12
|
import fs from 'node:fs'
|
|
13
13
|
import path from 'node:path'
|
|
14
14
|
import plist from 'plist'
|
|
15
|
+
import iosSdk from './ios-sdk-frameworks.json' with { type: 'json' }
|
|
15
16
|
import { isRecord } from './is-record'
|
|
16
17
|
import { readKeychainAccessGroups } from './native-app-identity'
|
|
17
18
|
import { preparedXcodePhase } from './prepared-xcode-phases'
|
|
@@ -93,6 +94,8 @@ export interface XcodeModuleTarget {
|
|
|
93
94
|
allSources: string[]
|
|
94
95
|
/** absolute paths of every resource file the target copies, bundles expanded. */
|
|
95
96
|
resources: string[]
|
|
97
|
+
/** a folder reference's files by their path in the bundle, which keeps the folder. */
|
|
98
|
+
resourceNames: Record<string, string>
|
|
96
99
|
/** files the target's shell phases copy with a plain `cp`, resolved from the phase's own assignments and the build settings. */
|
|
97
100
|
copiedFiles: { from: string; to: string }[]
|
|
98
101
|
/** a shell phase of the target generates its INFOPLIST_FILE, which exists only once prepared. */
|
|
@@ -1032,6 +1035,7 @@ function targetMembers(
|
|
|
1032
1035
|
): {
|
|
1033
1036
|
sources: string[]
|
|
1034
1037
|
resources: string[]
|
|
1038
|
+
resourceNames: Record<string, string>
|
|
1035
1039
|
copiedFiles: { from: string; to: string }[]
|
|
1036
1040
|
generatedInfoPlist: boolean
|
|
1037
1041
|
allSources: string[]
|
|
@@ -1043,6 +1047,7 @@ function targetMembers(
|
|
|
1043
1047
|
const allSources = new Set<string>()
|
|
1044
1048
|
const headers = new Set<string>()
|
|
1045
1049
|
const resources = new Set<string>()
|
|
1050
|
+
const resourceNames: Record<string, string> = {}
|
|
1046
1051
|
const scriptForOutput = new Map<string, string>()
|
|
1047
1052
|
const copiedFiles: { from: string; to: string }[] = []
|
|
1048
1053
|
let generatedInfoPlist = false
|
|
@@ -1232,13 +1237,14 @@ function targetMembers(
|
|
|
1232
1237
|
xcodePathResolver(project.objects, project.projectDir, path.join, settings),
|
|
1233
1238
|
(file) => (isDirectory(file) ? walkFiles(file) : fs.existsSync(file) ? [file] : []),
|
|
1234
1239
|
path.join,
|
|
1235
|
-
(file, kind) => {
|
|
1240
|
+
(file, kind, bundleName) => {
|
|
1236
1241
|
if (kind === 'header') {
|
|
1237
1242
|
headers.add(file)
|
|
1238
1243
|
return
|
|
1239
1244
|
}
|
|
1240
1245
|
if (kind === 'resource') {
|
|
1241
1246
|
resources.add(file)
|
|
1247
|
+
if (bundleName) resourceNames[file] = bundleName
|
|
1242
1248
|
return
|
|
1243
1249
|
}
|
|
1244
1250
|
if (!fs.existsSync(file)) {
|
|
@@ -1376,6 +1382,7 @@ function targetMembers(
|
|
|
1376
1382
|
return {
|
|
1377
1383
|
sources: [...sources].sort(),
|
|
1378
1384
|
resources: [...resources].sort(),
|
|
1385
|
+
resourceNames,
|
|
1379
1386
|
copiedFiles,
|
|
1380
1387
|
generatedInfoPlist,
|
|
1381
1388
|
allSources: [...allSources].sort(),
|
|
@@ -3117,10 +3124,17 @@ export function readXcodeAppTarget(
|
|
|
3117
3124
|
)
|
|
3118
3125
|
continue
|
|
3119
3126
|
const resolved = fileId ? project.resolvePath(fileId) : null
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3127
|
+
// a reference to a file that is not there still links -framework
|
|
3128
|
+
// <name> (xcode 27.1, iOS simulator): the sdk's framework answers it,
|
|
3129
|
+
// and a name the sdk lacks fails the link
|
|
3130
|
+
if (fileId && resolved !== null && !fs.existsSync(resolved)) {
|
|
3131
|
+
if (!iosSdk.frameworks.includes(name))
|
|
3132
|
+
throw new Error(
|
|
3133
|
+
`${str(target.name) ?? 'target'}: linked framework ${name} (${fileId}) points at missing ${resolved} in ${project.projectFile}`,
|
|
3134
|
+
)
|
|
3135
|
+
sdkFrameworks.add(name)
|
|
3136
|
+
continue
|
|
3137
|
+
}
|
|
3124
3138
|
if (!binaryFrameworks.get(name)) binaryFrameworks.set(name, resolved)
|
|
3125
3139
|
}
|
|
3126
3140
|
}
|
|
@@ -3234,6 +3248,13 @@ export function readXcodeAppTarget(
|
|
|
3234
3248
|
source.kind === 'local' && fs.existsSync(source.dir) ? [source.dir] : [],
|
|
3235
3249
|
),
|
|
3236
3250
|
...new Set(podSourceDirs),
|
|
3251
|
+
// a target's own files may sit beside the project, such as an asset
|
|
3252
|
+
// catalog one folder up, and xcode builds them from there
|
|
3253
|
+
...new Set(
|
|
3254
|
+
[...module.allSources, ...module.resources]
|
|
3255
|
+
.filter((file) => fs.existsSync(file))
|
|
3256
|
+
.map((file) => path.dirname(file)),
|
|
3257
|
+
),
|
|
3237
3258
|
].map((dir) => fs.realpathSync.native(dir)),
|
|
3238
3259
|
),
|
|
3239
3260
|
projectFiles: [
|
|
@@ -4,6 +4,8 @@ import { isDict, list, str, type PlistDict } from './openstep-plist'
|
|
|
4
4
|
|
|
5
5
|
const NEVER_MEMBER =
|
|
6
6
|
/(?:^|\/)(?:Info\.plist|[^/]+\.entitlements|[^/]+\.xcconfig|\.DS_Store)$/
|
|
7
|
+
// a folder reference and a scenekit asset catalog copy as one directory of that name.
|
|
8
|
+
const FOLDER_REFERENCE = /^(?:folder|wrapper\.scnassets)$/
|
|
7
9
|
const BUNDLE_DIR =
|
|
8
10
|
/\.(xcassets|bundle|lproj|xcdatamodeld|scnassets|spriteatlas|rcproject|storyboardc|icon)$/
|
|
9
11
|
|
|
@@ -71,7 +73,11 @@ export function xcodeTargetMemberVisitor(objects: PlistDict) {
|
|
|
71
73
|
resolvePath: (id: string) => string | null,
|
|
72
74
|
filesUnder: (path: string) => string[],
|
|
73
75
|
join: (base: string, own: string) => string,
|
|
74
|
-
visit: (
|
|
76
|
+
visit: (
|
|
77
|
+
file: string,
|
|
78
|
+
kind: 'source' | 'header' | 'resource',
|
|
79
|
+
bundleName?: string,
|
|
80
|
+
) => void,
|
|
75
81
|
): void => {
|
|
76
82
|
const target = objects[targetId]
|
|
77
83
|
if (!isDict(target)) return
|
|
@@ -93,8 +99,24 @@ export function xcodeTargetMemberVisitor(objects: PlistDict) {
|
|
|
93
99
|
for (const id of refs) {
|
|
94
100
|
const file = resolvePath(id)
|
|
95
101
|
if (file === null) continue
|
|
96
|
-
if (phase.isa === 'PBXSourcesBuildPhase')
|
|
97
|
-
|
|
102
|
+
if (phase.isa === 'PBXSourcesBuildPhase') {
|
|
103
|
+
visit(file, 'source')
|
|
104
|
+
continue
|
|
105
|
+
}
|
|
106
|
+
const ref = objects[id]
|
|
107
|
+
const type = isDict(ref)
|
|
108
|
+
? (str(ref.lastKnownFileType) ?? str(ref.explicitFileType) ?? '')
|
|
109
|
+
: ''
|
|
110
|
+
const root = file.replace(/[\\/]+$/, '')
|
|
111
|
+
const folder = FOLDER_REFERENCE.test(type)
|
|
112
|
+
? root.split(/[\\/]/).pop()
|
|
113
|
+
: undefined
|
|
114
|
+
for (const inner of filesUnder(file))
|
|
115
|
+
visit(
|
|
116
|
+
inner,
|
|
117
|
+
'resource',
|
|
118
|
+
folder && `${folder}/${inner.slice(root.length + 1).replaceAll('\\', '/')}`,
|
|
119
|
+
)
|
|
98
120
|
}
|
|
99
121
|
}
|
|
100
122
|
}
|