peachsim 0.1.940 → 0.1.1399
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -22
- package/cli/app-catalog.ts +29 -14
- package/cli/app-fonts.ts +5 -3
- package/cli/bridge-flow-runner.ts +40 -29
- package/cli/cloud-client.ts +57 -21
- package/cli/cloud-test-tunnel.ts +12 -18
- package/cli/commands/agent.ts +1 -1
- package/cli/commands/app-fonts.ts +3 -3
- package/cli/commands/assert.ts +8 -8
- package/cli/commands/auth.ts +8 -3
- package/cli/commands/box/bundle-plane.ts +13 -1
- package/cli/commands/box.ts +16 -5
- package/cli/commands/compat.ts +1 -1
- package/cli/commands/config.ts +2 -2
- package/cli/commands/control.ts +125 -71
- package/cli/commands/cpu-profile.ts +45 -1
- package/cli/commands/daemon.ts +131 -33
- package/cli/commands/debug.ts +24 -17
- package/cli/commands/desktop.ts +7 -1
- package/cli/commands/detect.ts +101 -0
- package/cli/commands/detox.ts +6 -6
- package/cli/commands/device.ts +12 -12
- package/cli/commands/electron.ts +32 -14
- package/cli/commands/flow.ts +49 -41
- package/cli/commands/guest-host.ts +39 -1
- package/cli/commands/inspect/core.ts +14 -8
- package/cli/commands/inspect/list.ts +1 -1
- package/cli/commands/inspect/settle.ts +5 -3
- package/cli/commands/inspect/settling.ts +229 -44
- package/cli/commands/inspect/wait-idle.ts +3 -2
- package/cli/commands/inspect.ts +105 -93
- package/cli/commands/install-cli.ts +36 -15
- package/cli/commands/install-desktop.ts +68 -195
- package/cli/commands/kotlin.ts +6 -5
- package/cli/commands/login.ts +5 -5
- package/cli/commands/maestro-compare.ts +554 -0
- package/cli/commands/maestro-generate.ts +6 -3
- package/cli/commands/maestro.ts +22 -0
- package/cli/commands/mode.ts +2 -2
- package/cli/commands/no-bridge-hint.ts +6 -2
- package/cli/commands/platform.ts +35 -6
- package/cli/commands/preview.ts +6 -0
- package/cli/commands/project-report.ts +10 -12
- package/cli/commands/record.ts +37 -37
- package/cli/commands/runtime.ts +9 -9
- package/cli/commands/screenshot-layers.ts +4 -4
- package/cli/commands/screenshot-mode.ts +2 -2
- package/cli/commands/screenshot.ts +8 -8
- package/cli/commands/screenshots-capture.ts +2 -2
- package/cli/commands/serve.ts +9 -12
- package/cli/commands/setup.ts +29 -14
- package/cli/commands/shell-boolean-mode.ts +2 -2
- package/cli/commands/show-touches-mode.ts +2 -2
- package/cli/commands/skills.ts +11 -11
- package/cli/commands/swift.ts +29 -11
- package/cli/commands/telemetry.ts +2 -2
- package/cli/commands/test.ts +5 -0
- package/cli/commands/three-mode.ts +3 -3
- package/cli/commands/timeline.ts +4 -4
- package/cli/commands/upgrade.ts +2 -2
- package/cli/commands/upload.ts +15 -15
- package/cli/commands/what-happened.ts +2 -2
- package/cli/current-sim.ts +6 -3
- package/cli/desktop-companion.ts +55 -149
- package/cli/dev-build-freshness.ts +2 -2
- package/cli/drivers/desktop.ts +17 -9
- package/cli/drivers/electron.ts +1 -2
- package/cli/drivers/playwright-sim-host.ts +11 -2
- package/cli/drivers/playwright.ts +35 -2
- package/cli/drivers/types.ts +8 -0
- package/cli/maestro-compare.ts +670 -0
- package/cli/outbound-endpoints.ts +46 -8
- package/cli/recording-access.ts +6 -6
- package/cli/run-registry.ts +1 -1
- package/cli/runtime-compat.ts +5 -1
- package/cli/send-to-box.ts +3 -3
- package/cli/shell-init.ts +2 -1
- package/cli/ws-bridge.ts +9 -5
- package/detox/element-types.ts +1 -0
- package/detox/gestures.ts +3 -3
- package/detox/index.ts +67 -38
- package/detox/navigation-lifecycle.ts +9 -6
- package/detox/proof-frame.cjs +6 -4
- 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 +42 -17
- package/dist-lib/bridge-contract-input.mjs +41 -16
- package/dist-lib/bridge-contract.cjs +1 -4
- package/dist-lib/bridge-contract.mjs +1 -3
- package/dist-lib/bundle-channel.cjs +2918 -550
- package/dist-lib/capture-contract.cjs +65 -24
- package/dist-lib/capture-contract.mjs +63 -24
- package/dist-lib/cloud-contract.cjs +2 -2
- package/dist-lib/cloud-contract.mjs +2 -2
- package/dist-lib/cloud-test-args.cjs +1 -1
- package/dist-lib/cloud-test-args.mjs +1 -1
- package/dist-lib/cloud.cjs +3 -3
- package/dist-lib/cloud.mjs +3 -3
- package/dist-lib/config.cjs +15 -5
- package/dist-lib/config.mjs +154 -0
- package/dist-lib/detox/index.cjs +495 -139
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +1168 -238
- package/dist-lib/expo-swift-metadata.cjs +34 -23
- package/dist-lib/expo-swift-metadata.mjs +32 -23
- package/dist-lib/home-paths.cjs +2 -2
- package/dist-lib/host/bridge-host.cjs +2938 -654
- package/dist-lib/host/fetch-proxy-handler.cjs +14 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +7 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +5 -1
- package/dist-lib/host/replacement-module-handler.cjs +2 -2
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +981 -353
- 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 +332 -19
- 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 +7 -7
- package/dist-lib/metro-production-bundle.mjs +5 -5
- package/dist-lib/metro.cjs +670 -250
- package/dist-lib/native-app-identity-project.cjs +2647 -0
- package/dist-lib/native-app-identity-project.mjs +1257 -0
- package/dist-lib/native-app-identity.cjs +304 -25
- package/dist-lib/native-app-identity.mjs +302 -25
- package/dist-lib/native-firebase-metadata.cjs +1 -1
- package/dist-lib/native-firebase-metadata.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/react-native-host-modules.cjs +5 -1
- package/dist-lib/react-native-host-modules.mjs +5 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +57 -32
- package/dist-lib/sdk.cjs +231 -51
- package/dist-lib/sdk.mjs +231 -51
- package/dist-lib/skills.cjs +4107 -1374
- package/dist-lib/swift-compile.cjs +290 -30
- package/dist-lib/swift-compile.mjs +290 -30
- package/dist-lib/swift-package.cjs +143 -12
- package/dist-lib/swift-package.mjs +137 -11
- package/dist-lib/swift-submit.cjs +47 -5
- package/dist-lib/swift-submit.mjs +42 -5
- package/dist-lib/swift-toolchain.cjs +7 -2
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +1392 -458
- package/dist-lib/vite.cjs +13 -17
- package/dist-lib/worklet-executable.cjs +248 -33
- package/dist-lib/worklet-executable.mjs +248 -33
- package/install.sh +10 -1
- package/kotlin/{AppSources → AndroidViewSources}/android/content/res/Resources.kt +9 -9
- package/kotlin/AndroidViewSources/android/graphics/Canvas.kt +20 -0
- package/kotlin/AndroidViewSources/android/view/View.kt +211 -0
- package/kotlin/AndroidViewSources/android/widget/FrameLayout.kt +61 -0
- package/kotlin/AndroidViewSources/android/widget/LinearLayout.kt +49 -0
- package/kotlin/AppSources/android/view/Window.kt +36 -0
- package/kotlin/AppSources/android/view/WindowInsets.kt +9 -0
- package/kotlin/AppSources/android/view/WindowInsetsController.kt +5 -0
- package/kotlin/AppSources/android/window/OnBackInvokedDispatcher.kt +48 -0
- package/kotlin/AppSources/androidx/activity/OnBackPressedDispatcher.kt +20 -5
- package/kotlin/AppSources/androidx/compose/foundation/layout/WindowInsets.kt +15 -0
- package/kotlin/AppSources/androidx/compose/ui/platform/ComposeView.kt +2 -1
- package/kotlin/AppSources/dev/peach/app/PeachApp.kt +42 -50
- package/kotlin/ComposeSources/PeachComposeHost.kt +200 -84
- package/kotlin/ExpoComposeSources/PeachAndroidView.kt +87 -0
- package/kotlin/ExpoComposeSources/PeachExpoViewMount.kt +24 -0
- package/kotlin/ExpoComposeSources/dev/peach/expo/PeachExpoCompose.kt +28 -0
- package/kotlin/ExpoComposeSources/expo/modules/kotlin/views/ExpoComposeView.kt +70 -0
- package/kotlin/ExpoSources/dev/peach/expo/PeachExpoRuntime.kt +513 -0
- package/kotlin/ExpoSources/dev/peach/expo/PeachExpoTypes.kt +173 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/AppContext.kt +20 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/Promise.kt +19 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/classcomponent/ClassComponentBuilder.kt +198 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/exception/CodedException.kt +126 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/functions/Functions.kt +132 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/jni/JavaScriptTypedArray.kt +81 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/modules/Module.kt +98 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/objects/ObjectDefinitionBuilder.kt +236 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/records/Record.kt +12 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/runtime/Runtime.kt +9 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/sharedobjects/SharedObject.kt +50 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/sharedobjects/SharedObjectRegistry.kt +57 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/sharedobjects/SharedRef.kt +19 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/typedarray/ConcreteTypedArrays.kt +158 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/typedarray/GenericTypedArray.kt +8 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/typedarray/TypedArray.kt +29 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/typedarray/TypedArrayIterator.kt +9 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/types/AnyType.kt +155 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/types/Either.kt +91 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/types/Enumerable.kt +6 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/viewevent/ViewEvent.kt +54 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/views/ExpoView.kt +23 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/views/ViewDefinitionBuilder.kt +71 -0
- package/kotlin/ExpoSources/expo/modules/kotlin/views/ViewProps.kt +35 -0
- package/kotlin/README.md +13 -3
- package/kotlin/Sources/android/os/Build.kt +17 -0
- package/kotlin/Sources/android/os/Handler.kt +35 -0
- package/kotlin/Sources/android/os/Looper.kt +17 -0
- package/kotlin/Sources/android/os/MessageQueue.kt +56 -0
- package/kotlin/Sources/android/os/SystemClock.kt +14 -0
- package/kotlin/Sources/android/util/Log.kt +64 -0
- package/kotlin/Sources/java/security/MessageDigest.kt +114 -0
- package/kotlin/Sources/kotlin/text/StringFormat.kt +9 -0
- package/kotlin/Sources/org/json/JSON.kt +44 -0
- package/kotlin/fixtures/counter/Counter.d.kt.ts +1 -0
- package/kotlin/fixtures/counter/Counter.kt +10 -3
- package/kotlin/fixtures/counter/CounterApp.native.tsx +1 -1
- package/kotlin/fixtures/counter/vite.config.ts +2 -2
- package/kotlin/fixtures/headless-counter/Headless.kt +7 -6
- package/kotlin/fixtures/import-animation/Animation.d.kt.ts +7 -0
- package/kotlin/fixtures/import-animation/Animation.kt +80 -0
- package/kotlin/fixtures/import-animation/ImportAnimation.native.tsx +13 -0
- package/kotlin/fixtures/import-animation/README.md +24 -0
- package/kotlin/fixtures/import-animation/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-animation/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-animation/app/routes.d.ts +18 -0
- package/kotlin/fixtures/import-animation/package.json +23 -0
- package/kotlin/fixtures/import-animation/tsconfig.json +20 -0
- package/kotlin/fixtures/import-animation/vite.config.ts +20 -0
- package/kotlin/fixtures/import-editor/Editor.d.kt.ts +7 -0
- package/kotlin/fixtures/import-editor/Editor.kt +59 -0
- package/kotlin/fixtures/import-editor/ImportEditor.native.tsx +23 -0
- package/kotlin/fixtures/import-editor/README.md +27 -0
- package/kotlin/fixtures/import-editor/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-editor/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-editor/package.json +23 -0
- package/kotlin/fixtures/import-editor/tsconfig.json +20 -0
- package/kotlin/fixtures/import-editor/vite.config.ts +20 -0
- package/kotlin/fixtures/import-effects/Effects.d.kt.ts +7 -0
- package/kotlin/fixtures/import-effects/Effects.kt +87 -0
- package/kotlin/fixtures/import-effects/ImportEffects.native.tsx +13 -0
- package/kotlin/fixtures/import-effects/README.md +19 -0
- package/kotlin/fixtures/import-effects/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-effects/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-effects/package.json +23 -0
- package/kotlin/fixtures/import-effects/tsconfig.json +20 -0
- package/kotlin/fixtures/import-effects/vite.config.ts +20 -0
- package/kotlin/fixtures/import-layout/ImportLayout.native.tsx +13 -0
- package/kotlin/fixtures/import-layout/Layout.d.kt.ts +7 -0
- package/kotlin/fixtures/import-layout/Layout.kt +72 -0
- package/kotlin/fixtures/import-layout/README.md +24 -0
- package/kotlin/fixtures/import-layout/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-layout/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-layout/package.json +23 -0
- package/kotlin/fixtures/import-layout/tsconfig.json +20 -0
- package/kotlin/fixtures/import-layout/vite.config.ts +20 -0
- package/kotlin/fixtures/import-navigation/ImportNavigation.native.tsx +18 -0
- package/kotlin/fixtures/import-navigation/Navigation.d.kt.ts +7 -0
- package/kotlin/fixtures/import-navigation/Navigation.kt +104 -0
- package/kotlin/fixtures/import-navigation/README.md +31 -0
- package/kotlin/fixtures/import-navigation/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-navigation/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-navigation/package.json +23 -0
- package/kotlin/fixtures/import-navigation/tsconfig.json +20 -0
- package/kotlin/fixtures/import-navigation/vite.config.ts +20 -0
- package/kotlin/fixtures/import-overlays/ImportOverlays.native.tsx +29 -0
- package/kotlin/fixtures/import-overlays/Overlays.d.kt.ts +7 -0
- package/kotlin/fixtures/import-overlays/Overlays.kt +93 -0
- package/kotlin/fixtures/import-overlays/README.md +34 -0
- package/kotlin/fixtures/import-overlays/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-overlays/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-overlays/package.json +23 -0
- package/kotlin/fixtures/import-overlays/tsconfig.json +20 -0
- package/kotlin/fixtures/import-overlays/vite.config.ts +20 -0
- package/kotlin/fixtures/import-scroll/ImportScroll.native.tsx +13 -0
- package/kotlin/fixtures/import-scroll/README.md +23 -0
- package/kotlin/fixtures/import-scroll/Scroll.d.kt.ts +7 -0
- package/kotlin/fixtures/import-scroll/Scroll.kt +91 -0
- package/kotlin/fixtures/import-scroll/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-scroll/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-scroll/package.json +23 -0
- package/kotlin/fixtures/import-scroll/tsconfig.json +20 -0
- package/kotlin/fixtures/import-scroll/vite.config.ts +20 -0
- package/kotlin/fixtures/import-selection/ImportSelection.native.tsx +44 -0
- package/kotlin/fixtures/import-selection/README.md +32 -0
- package/kotlin/fixtures/import-selection/Selection.d.kt.ts +8 -0
- package/kotlin/fixtures/import-selection/Selection.kt +78 -0
- package/kotlin/fixtures/import-selection/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-selection/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-selection/package.json +23 -0
- package/kotlin/fixtures/import-selection/tsconfig.json +20 -0
- package/kotlin/fixtures/import-selection/vite.config.ts +20 -0
- package/kotlin/fixtures/import-surfaces/ImportSurfaces.native.tsx +13 -0
- package/kotlin/fixtures/import-surfaces/README.md +22 -0
- package/kotlin/fixtures/import-surfaces/Surfaces.d.kt.ts +7 -0
- package/kotlin/fixtures/import-surfaces/Surfaces.kt +64 -0
- package/kotlin/fixtures/import-surfaces/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-surfaces/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-surfaces/package.json +23 -0
- package/kotlin/fixtures/import-surfaces/tsconfig.json +20 -0
- package/kotlin/fixtures/import-surfaces/vite.config.ts +20 -0
- package/kotlin/fixtures/import-values/ImportValues.native.tsx +35 -0
- package/kotlin/fixtures/import-values/README.md +23 -0
- package/kotlin/fixtures/import-values/Values.d.kt.ts +11 -0
- package/kotlin/fixtures/import-values/Values.kt +66 -0
- package/kotlin/fixtures/import-values/app/_layout.tsx +4 -0
- package/kotlin/fixtures/import-values/app/index+spa.tsx +1 -0
- package/kotlin/fixtures/import-values/package.json +23 -0
- package/kotlin/fixtures/import-values/tsconfig.json +20 -0
- package/kotlin/fixtures/import-values/vite.config.ts +20 -0
- package/kotlin/fixtures/kotlin-app-variants/BarBehavior.kt +38 -0
- package/kotlin/fixtures/kotlin-app-variants/BarVisibility.kt +36 -0
- package/kotlin/fixtures/kotlin-app-variants/Ime.kt +3 -1
- package/kotlin/fixtures/kotlin-app-variants/TransientInsets.kt +50 -0
- package/kotlin/fork/NOTICE +6 -1
- package/kotlin/fork/README.md +15 -7
- package/kotlin/fork/build.sh +2 -0
- package/kotlin/fork/compose-worker-globals.patch +186 -4
- package/kotlin/fork/fork.json +2 -2
- package/kotlin/fork/skiko-worker-clock.patch +12 -0
- package/kotlin/toolchain.json +12 -12
- package/kotlin/tools/expo-types.main.kts +115 -0
- package/package.json +17 -23
- package/scripts/dev-server-scanner.ts +92 -66
- package/skills/contrast/SKILL.md +2 -2
- package/skills/peach-debug/SKILL.md +1 -1
- package/skills/peach-perf/SKILL.md +1 -1
- package/skills/peach-setup/SKILL.md +2 -1
- package/skills/peach-test/SKILL.md +8 -0
- package/src/assetCatalogContract.ts +43 -1
- package/src/bridge-contract-input.ts +46 -19
- package/src/bridge-contract.ts +0 -1
- package/src/bundle-channel.mjs +197 -84
- package/src/bundleGlobalFooter.ts +38 -0
- package/src/capture-contract.ts +107 -33
- package/src/cloud-contract.ts +5 -1
- package/src/cloud.ts +5 -2
- package/src/config.ts +22 -3
- package/src/configured-bundle-producer.ts +1 -1
- package/src/desktop-host-delivery.ts +95 -1
- package/src/expo-kotlin-bundle.ts +29 -0
- package/src/expo-kotlin-host.ts +201 -0
- package/src/expo-swift-host.ts +96 -76
- package/src/expoKotlinContract.ts +70 -0
- package/src/expoSwiftContract.ts +4 -25
- package/src/home-paths.ts +7 -4
- package/src/host/bridge-host.ts +23 -3
- package/src/host/fetch-proxy-handler.ts +13 -0
- package/src/host/fetch-proxy-overrides.ts +11 -0
- package/src/host/replacement-module-handler.ts +5 -2
- package/src/index.ts +3 -1
- package/src/kotlin-host.ts +463 -19
- package/src/metro-plugin.ts +56 -28
- package/src/metro-production-bundle.ts +2 -2
- package/src/native-app-identity-project.ts +190 -0
- package/src/native-app-identity.ts +367 -34
- package/src/native-firebase-config.ts +69 -15
- package/src/native-seam-manifest.ts +6 -0
- package/src/one-widget-discovery.ts +2 -1
- package/src/openstep-plist.ts +107 -0
- package/src/react-native-host-modules.ts +4 -0
- package/src/runtime-assets.ts +2 -2
- package/src/sim-client.ts +2 -2
- package/src/swift-binary-modules.ts +3 -1
- package/src/swift-compile.ts +286 -38
- package/src/swift-distribution-contract.ts +4 -0
- package/src/swift-distribution.lock.json +123 -12
- package/src/swift-distribution.ts +7 -3
- package/src/swift-host.ts +298 -83
- package/src/swift-package-manifest.ts +29 -2
- package/src/swift-package.ts +180 -10
- package/src/swift-packages.ts +4 -0
- package/src/swift-standin-emit.ts +4 -1
- package/src/swift-standins.ts +274 -15
- package/src/swift-submit.ts +62 -7
- package/src/swift-toolchain.ts +6 -1
- package/src/swiftContract.ts +126 -3
- package/src/vite-plugin-one.ts +13 -16
- package/src/vite-plugin-swift.ts +4 -5
- package/src/vite-plugin.ts +360 -144
- package/src/vite.d.ts +1 -1
- package/src/worker-system-chunks.ts +221 -0
- package/src/worklet-executable.ts +348 -38
- package/src/worklets-babel.ts +1 -1
- package/src/xcode-project.ts +243 -127
- package/dist-lib/agent-identity.cjs +0 -39
- package/dist-lib/agent-sessions.cjs +0 -760
- package/dist-lib/cli-constants.cjs +0 -32
- package/dist-lib/render-mode.cjs +0 -44
- package/kotlin/AppSources/android/view/View.kt +0 -74
- package/kotlin/AppSources/android/widget/FrameLayout.kt +0 -6
- package/src/render-mode.ts +0 -15
- /package/kotlin/{AppSources → AndroidViewSources}/android/content/Context.kt +0 -0
- /package/kotlin/{AppSources → AndroidViewSources}/android/content/res/Configuration.kt +0 -0
- /package/kotlin/{AppSources → AndroidViewSources}/android/graphics/Color.kt +0 -0
- /package/kotlin/{AppSources → AndroidViewSources}/android/util/DisplayMetrics.kt +0 -0
- /package/kotlin/{AppSources → AndroidViewSources}/dev/peach/app/JavaFormat.kt +0 -0
- /package/kotlin/{AppSources → Sources}/java/lang/Runnable.kt +0 -0
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! peach v0.1.1399 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -33,13 +33,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
33
33
|
var vite_plugin_one_exports = {};
|
|
34
34
|
__export(vite_plugin_one_exports, {
|
|
35
35
|
default: () => vite_plugin_one_default,
|
|
36
|
-
|
|
37
|
-
sootsimPlugin: () => sootsimPlugin
|
|
36
|
+
peachPlugin: () => peachPlugin
|
|
38
37
|
});
|
|
39
38
|
module.exports = __toCommonJS(vite_plugin_one_exports);
|
|
40
39
|
var import_fs2 = __toESM(require("fs"), 1);
|
|
41
40
|
var import_node_crypto3 = require("node:crypto");
|
|
42
|
-
var
|
|
41
|
+
var import_node_url = require("node:url");
|
|
43
42
|
var import_path2 = __toESM(require("path"), 1);
|
|
44
43
|
var import_ws = require("ws");
|
|
45
44
|
|
|
@@ -554,6 +553,7 @@ async function handleReplacementModuleRequest(req, res, options = {}) {
|
|
|
554
553
|
} catch {
|
|
555
554
|
return false;
|
|
556
555
|
}
|
|
556
|
+
if (url.pathname !== REPLACEMENT_MODULE_ROUTE) return false;
|
|
557
557
|
if (options.requireLoopbackOrigin) {
|
|
558
558
|
const origin = req.headers.origin;
|
|
559
559
|
const remoteAddress = req.socket.remoteAddress?.replace(/^::ffff:/, "");
|
|
@@ -571,7 +571,6 @@ async function handleReplacementModuleRequest(req, res, options = {}) {
|
|
|
571
571
|
return true;
|
|
572
572
|
}
|
|
573
573
|
}
|
|
574
|
-
if (url.pathname !== REPLACEMENT_MODULE_ROUTE) return false;
|
|
575
574
|
if (options.requestToken && url.searchParams.get("token") !== options.requestToken) {
|
|
576
575
|
res.writeHead(403, { "Content-Type": "text/plain; charset=utf-8" });
|
|
577
576
|
res.end("replacement module request token is invalid");
|
|
@@ -720,6 +719,8 @@ var SWIFT_HMR_PATH = "/__peach/swift-hmr";
|
|
|
720
719
|
var MAX_SWIFT_COMPILE_SOURCE_BYTES = 2 * 1024 * 1024;
|
|
721
720
|
var MAX_SWIFT_COMPILE_RESOURCE_BYTES = 2 * 1024 * 1024;
|
|
722
721
|
var MAX_SWIFT_COMPILE_RESOURCE_TOTAL_BYTES = 8 * 1024 * 1024;
|
|
722
|
+
var MAX_SWIFT_COMPILE_METAL_BYTES = 2 * 1024 * 1024;
|
|
723
|
+
var MAX_SWIFT_COMPILE_METAL_TOTAL_BYTES = 8 * 1024 * 1024;
|
|
723
724
|
var MAX_SWIFT_COMPILE_IMAGE_BYTES = 4 * 1024 * 1024;
|
|
724
725
|
var MAX_SWIFT_COMPILE_IMAGE_TOTAL_BYTES = 16 * 1024 * 1024;
|
|
725
726
|
|
|
@@ -1072,8 +1073,8 @@ var loadSwiftHost = () => swiftHost ??= import("peachsim/vite-swift");
|
|
|
1072
1073
|
var KOTLIN_ROUTE_PREFIX = "/__peach/kotlin";
|
|
1073
1074
|
var kotlinHost;
|
|
1074
1075
|
var loadKotlinHost = () => kotlinHost ??= import("peachsim/kotlin-host");
|
|
1075
|
-
function
|
|
1076
|
-
const prefix = options.prefix || "/
|
|
1076
|
+
function peachPlugin(options = {}) {
|
|
1077
|
+
const prefix = options.prefix || "/__peachsim";
|
|
1077
1078
|
return {
|
|
1078
1079
|
name: "sootsim-one",
|
|
1079
1080
|
// use-latest-callback ships a CJS main (module.exports, no default) with
|
|
@@ -1094,12 +1095,9 @@ function rnxPlugin(options = {}) {
|
|
|
1094
1095
|
let swiftModuleRoot;
|
|
1095
1096
|
const moduleRootFor = () => {
|
|
1096
1097
|
if (swiftModuleRoot === void 0) {
|
|
1097
|
-
const peachsimPackage = (0, import_node_module2.createRequire)(
|
|
1098
|
-
import_path2.default.join(server.config.root, "package.json")
|
|
1099
|
-
).resolve("peachsim/package.json");
|
|
1100
1098
|
const moduleRoot = import_path2.default.resolve(
|
|
1101
|
-
import_path2.default.dirname(
|
|
1102
|
-
"
|
|
1099
|
+
import_path2.default.dirname((0, import_node_url.fileURLToPath)(__sootsim_import_meta_url)),
|
|
1100
|
+
"../../sootsim-swift"
|
|
1103
1101
|
);
|
|
1104
1102
|
swiftModuleRoot = import_fs2.default.existsSync(import_path2.default.join(moduleRoot, "toolchain.json")) ? moduleRoot : null;
|
|
1105
1103
|
}
|
|
@@ -1186,7 +1184,7 @@ function rnxPlugin(options = {}) {
|
|
|
1186
1184
|
if (!pathname.startsWith(KOTLIN_ROUTE_PREFIX)) return next();
|
|
1187
1185
|
loadKotlinHost().then(async (host) => {
|
|
1188
1186
|
if (!kotlinModuleRoot) {
|
|
1189
|
-
kotlinModuleRoot = host.peachKotlinModuleRoot(
|
|
1187
|
+
kotlinModuleRoot = host.peachKotlinModuleRoot();
|
|
1190
1188
|
server.watcher.add(import_path2.default.join(kotlinModuleRoot, "Sources"));
|
|
1191
1189
|
}
|
|
1192
1190
|
const served = await host.serveKotlinRequest(pathname, res, {
|
|
@@ -1410,10 +1408,8 @@ function rnxPlugin(options = {}) {
|
|
|
1410
1408
|
}
|
|
1411
1409
|
};
|
|
1412
1410
|
}
|
|
1413
|
-
var
|
|
1414
|
-
var vite_plugin_one_default = rnxPlugin;
|
|
1411
|
+
var vite_plugin_one_default = peachPlugin;
|
|
1415
1412
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1416
1413
|
0 && (module.exports = {
|
|
1417
|
-
|
|
1418
|
-
sootsimPlugin
|
|
1414
|
+
peachPlugin
|
|
1419
1415
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*!
|
|
1
|
+
/*! peach v0.1.1399 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -30,51 +30,266 @@ var import_acorn = require("acorn");
|
|
|
30
30
|
function isNode(value) {
|
|
31
31
|
return value !== null && typeof value === "object" && typeof Reflect.get(value, "type") === "string";
|
|
32
32
|
}
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
33
|
+
function childNodes(value) {
|
|
34
|
+
return Array.isArray(value) ? value.filter(isNode) : [];
|
|
35
|
+
}
|
|
36
|
+
function identifierName(node) {
|
|
37
|
+
if (!isNode(node) || node.type !== "Identifier") return void 0;
|
|
38
|
+
const name = Reflect.get(node, "name");
|
|
39
|
+
return typeof name === "string" ? name : void 0;
|
|
41
40
|
}
|
|
42
41
|
function propertyName(node) {
|
|
43
42
|
if (!isNode(node)) return void 0;
|
|
44
43
|
const name = Reflect.get(node, node.type === "Identifier" ? "name" : "value");
|
|
45
44
|
return typeof name === "string" ? name : void 0;
|
|
46
45
|
}
|
|
47
|
-
function
|
|
48
|
-
if (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
function keyName(owner, key) {
|
|
47
|
+
if (Reflect.get(owner, "computed") === true && isNode(key) && key.type === "Identifier")
|
|
48
|
+
return void 0;
|
|
49
|
+
return propertyName(key);
|
|
50
|
+
}
|
|
51
|
+
function patternNames(node) {
|
|
52
|
+
if (!isNode(node)) return [];
|
|
53
|
+
switch (node.type) {
|
|
54
|
+
case "Identifier": {
|
|
55
|
+
const name = identifierName(node);
|
|
56
|
+
return name === void 0 ? [] : [name];
|
|
57
|
+
}
|
|
58
|
+
case "AssignmentPattern":
|
|
59
|
+
return patternNames(Reflect.get(node, "left"));
|
|
60
|
+
case "RestElement":
|
|
61
|
+
return patternNames(Reflect.get(node, "argument"));
|
|
62
|
+
case "ArrayPattern":
|
|
63
|
+
return childNodes(Reflect.get(node, "elements")).flatMap(patternNames);
|
|
64
|
+
case "ObjectPattern":
|
|
65
|
+
return childNodes(Reflect.get(node, "properties")).flatMap(
|
|
66
|
+
(property) => patternNames(
|
|
67
|
+
property.type === "Property" || property.type === "ObjectProperty" ? Reflect.get(property, "value") : property
|
|
68
|
+
)
|
|
69
|
+
);
|
|
70
|
+
default:
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
var FUNCTION_TYPES = /* @__PURE__ */ new Set([
|
|
75
|
+
"FunctionDeclaration",
|
|
76
|
+
"FunctionExpression",
|
|
77
|
+
"ArrowFunctionExpression"
|
|
78
|
+
]);
|
|
79
|
+
var MAX_RESOLUTION_DEPTH = 32;
|
|
80
|
+
function newScope(parent, hoist) {
|
|
81
|
+
return { parent, hoist, names: /* @__PURE__ */ new Map() };
|
|
82
|
+
}
|
|
83
|
+
function hoistScope(scope) {
|
|
84
|
+
let current = scope;
|
|
85
|
+
while (!current.hoist && current.parent) current = current.parent;
|
|
86
|
+
return current;
|
|
87
|
+
}
|
|
88
|
+
function declare(scope, name, binding) {
|
|
89
|
+
scope.names.set(name, scope.names.has(name) ? { kind: "opaque" } : binding);
|
|
90
|
+
}
|
|
91
|
+
function declareOpaque(scope, names) {
|
|
92
|
+
for (const name of names) declare(scope, name, { kind: "opaque" });
|
|
93
|
+
}
|
|
94
|
+
function lookup(scope, name) {
|
|
95
|
+
for (let current = scope; current; current = current.parent) {
|
|
96
|
+
const binding = current.names.get(name);
|
|
97
|
+
if (binding) return binding;
|
|
98
|
+
}
|
|
99
|
+
return void 0;
|
|
100
|
+
}
|
|
101
|
+
function declareParam(inner, fn, index, param) {
|
|
102
|
+
const name = identifierName(param);
|
|
103
|
+
if (name !== void 0) {
|
|
104
|
+
declare(inner, name, { kind: "param", fn, index });
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!isNode(param) || param.type !== "ObjectPattern") {
|
|
108
|
+
declareOpaque(inner, patternNames(param));
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
for (const property of childNodes(Reflect.get(param, "properties"))) {
|
|
112
|
+
const key = keyName(property, Reflect.get(property, "key"));
|
|
113
|
+
const value = Reflect.get(property, "value");
|
|
114
|
+
const valueName = identifierName(value);
|
|
115
|
+
if (key !== void 0 && valueName !== void 0 && ["Property", "ObjectProperty"].includes(property.type))
|
|
116
|
+
declare(inner, valueName, { kind: "param", fn, index, key });
|
|
117
|
+
else
|
|
118
|
+
declareOpaque(
|
|
119
|
+
inner,
|
|
120
|
+
patternNames(property.type === "RestElement" ? property : value)
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function enter(node, scope) {
|
|
125
|
+
switch (node.type) {
|
|
126
|
+
case "FunctionDeclaration":
|
|
127
|
+
case "FunctionExpression":
|
|
128
|
+
case "ArrowFunctionExpression": {
|
|
129
|
+
const inner = newScope(scope, true);
|
|
130
|
+
const params = Reflect.get(node, "params");
|
|
131
|
+
if (Array.isArray(params)) {
|
|
132
|
+
params.forEach((param, index) => declareParam(inner, node, index, param));
|
|
133
|
+
}
|
|
134
|
+
const id = Reflect.get(node, "id");
|
|
135
|
+
if (node.type === "FunctionExpression") declareOpaque(inner, patternNames(id));
|
|
136
|
+
if (node.type === "FunctionDeclaration") {
|
|
137
|
+
declareOpaque(scope, patternNames(id));
|
|
138
|
+
declareOpaque(hoistScope(scope), patternNames(id));
|
|
139
|
+
}
|
|
140
|
+
return inner;
|
|
141
|
+
}
|
|
142
|
+
case "BlockStatement":
|
|
143
|
+
case "ForStatement":
|
|
144
|
+
case "ForInStatement":
|
|
145
|
+
case "ForOfStatement":
|
|
146
|
+
case "SwitchStatement":
|
|
147
|
+
case "StaticBlock":
|
|
148
|
+
return newScope(scope, false);
|
|
149
|
+
case "CatchClause": {
|
|
150
|
+
const inner = newScope(scope, false);
|
|
151
|
+
declareOpaque(inner, patternNames(Reflect.get(node, "param")));
|
|
152
|
+
return inner;
|
|
153
|
+
}
|
|
154
|
+
case "VariableDeclaration": {
|
|
155
|
+
const target = Reflect.get(node, "kind") === "var" ? hoistScope(scope) : scope;
|
|
156
|
+
for (const declarator of childNodes(Reflect.get(node, "declarations"))) {
|
|
157
|
+
const id = Reflect.get(declarator, "id");
|
|
158
|
+
const init = Reflect.get(declarator, "init");
|
|
159
|
+
const name = identifierName(id);
|
|
160
|
+
if (name !== void 0 && isNode(init))
|
|
161
|
+
declare(target, name, { kind: "value", init, scope });
|
|
162
|
+
else declareOpaque(target, patternNames(id));
|
|
163
|
+
}
|
|
164
|
+
return scope;
|
|
165
|
+
}
|
|
166
|
+
case "ImportDeclaration":
|
|
167
|
+
for (const specifier of childNodes(Reflect.get(node, "specifiers")))
|
|
168
|
+
declareOpaque(scope, patternNames(Reflect.get(specifier, "local")));
|
|
169
|
+
return scope;
|
|
170
|
+
case "ClassDeclaration":
|
|
171
|
+
declareOpaque(scope, patternNames(Reflect.get(node, "id")));
|
|
172
|
+
return scope;
|
|
173
|
+
default:
|
|
174
|
+
return scope;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
function recordWrites(target, scope, collection) {
|
|
178
|
+
for (const name of patternNames(target)) collection.writes.push({ name, scope });
|
|
179
|
+
}
|
|
180
|
+
function record(node, scope, collection) {
|
|
181
|
+
switch (node.type) {
|
|
182
|
+
case "AssignmentExpression": {
|
|
183
|
+
const left = Reflect.get(node, "left");
|
|
184
|
+
const right = Reflect.get(node, "right");
|
|
185
|
+
if (isNode(left) && left.type === "MemberExpression" && keyName(left, Reflect.get(left, "property")) === "__initData" && isNode(right))
|
|
186
|
+
collection.inits.push({ value: right, scope });
|
|
187
|
+
recordWrites(left, scope, collection);
|
|
56
188
|
return;
|
|
57
|
-
const right = Reflect.get(node, "right");
|
|
58
|
-
if (!isNode(right)) return;
|
|
59
|
-
if (right.type === "ObjectExpression") objects.add(right);
|
|
60
|
-
else if (right.type === "Identifier") {
|
|
61
|
-
const name = propertyName(right);
|
|
62
|
-
if (name) initNames.add(name);
|
|
63
189
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
190
|
+
case "UpdateExpression":
|
|
191
|
+
recordWrites(Reflect.get(node, "argument"), scope, collection);
|
|
192
|
+
return;
|
|
193
|
+
case "ForInStatement":
|
|
194
|
+
case "ForOfStatement":
|
|
195
|
+
recordWrites(Reflect.get(node, "left"), scope, collection);
|
|
196
|
+
return;
|
|
197
|
+
case "CallExpression": {
|
|
198
|
+
const callee = Reflect.get(node, "callee");
|
|
199
|
+
if (isNode(callee) && FUNCTION_TYPES.has(callee.type))
|
|
200
|
+
collection.immediate.set(callee, { call: node, scope });
|
|
201
|
+
return;
|
|
71
202
|
}
|
|
72
|
-
|
|
203
|
+
default:
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function visit(node, scope, collection) {
|
|
208
|
+
record(node, scope, collection);
|
|
209
|
+
const inner = enter(node, scope);
|
|
210
|
+
for (const value of Object.values(node)) {
|
|
211
|
+
if (isNode(value)) visit(value, inner, collection);
|
|
212
|
+
else for (const child of childNodes(value)) visit(child, inner, collection);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function collectInitData(root) {
|
|
216
|
+
const collection = {
|
|
217
|
+
inits: [],
|
|
218
|
+
immediate: /* @__PURE__ */ new Map(),
|
|
219
|
+
writes: [],
|
|
220
|
+
reassigned: /* @__PURE__ */ new Set()
|
|
221
|
+
};
|
|
222
|
+
visit(root, newScope(void 0, true), collection);
|
|
223
|
+
for (const { name, scope } of collection.writes) {
|
|
224
|
+
const binding = lookup(scope, name);
|
|
225
|
+
if (binding) collection.reassigned.add(binding);
|
|
226
|
+
}
|
|
227
|
+
return collection;
|
|
228
|
+
}
|
|
229
|
+
function immediateArgument(fn, index, collection) {
|
|
230
|
+
const immediate = collection.immediate.get(fn);
|
|
231
|
+
const args = immediate && Reflect.get(immediate.call, "arguments");
|
|
232
|
+
if (!immediate || !Array.isArray(args)) return void 0;
|
|
233
|
+
const preceding = args.slice(0, index + 1);
|
|
234
|
+
if (preceding.some((arg) => isNode(arg) && arg.type === "SpreadElement"))
|
|
235
|
+
return void 0;
|
|
236
|
+
return { argument: args[index], scope: immediate.scope };
|
|
237
|
+
}
|
|
238
|
+
function propertyValue(object, name) {
|
|
239
|
+
let value;
|
|
240
|
+
for (const property of childNodes(Reflect.get(object, "properties"))) {
|
|
241
|
+
if (property.type === "SpreadElement") return void 0;
|
|
242
|
+
if (!["Property", "ObjectProperty"].includes(property.type)) continue;
|
|
243
|
+
if (keyName(property, Reflect.get(property, "key")) !== name) continue;
|
|
244
|
+
const next = Reflect.get(property, "value");
|
|
245
|
+
value = isNode(next) ? next : void 0;
|
|
246
|
+
}
|
|
247
|
+
return value;
|
|
248
|
+
}
|
|
249
|
+
function resolveProperty(owner, name, collection, depth) {
|
|
250
|
+
if (!owner) return void 0;
|
|
251
|
+
const value = propertyValue(owner.object, name);
|
|
252
|
+
return value && resolveObject(value, owner.scope, collection, depth + 1);
|
|
253
|
+
}
|
|
254
|
+
function resolveObject(expression, scope, collection, depth) {
|
|
255
|
+
if (depth > MAX_RESOLUTION_DEPTH) return void 0;
|
|
256
|
+
if (expression.type === "ObjectExpression") return { object: expression, scope };
|
|
257
|
+
if (expression.type === "Identifier") {
|
|
258
|
+
const name = identifierName(expression);
|
|
259
|
+
const binding = name === void 0 ? void 0 : lookup(scope, name);
|
|
260
|
+
if (!binding || collection.reassigned.has(binding)) return void 0;
|
|
261
|
+
if (binding.kind === "value")
|
|
262
|
+
return resolveObject(binding.init, binding.scope, collection, depth + 1);
|
|
263
|
+
if (binding.kind === "param") {
|
|
264
|
+
const passed = immediateArgument(binding.fn, binding.index, collection);
|
|
265
|
+
if (!passed || !isNode(passed.argument)) return void 0;
|
|
266
|
+
const argument = resolveObject(passed.argument, passed.scope, collection, depth + 1);
|
|
267
|
+
return binding.key === void 0 ? argument : resolveProperty(argument, binding.key, collection, depth);
|
|
268
|
+
}
|
|
269
|
+
return void 0;
|
|
270
|
+
}
|
|
271
|
+
if (expression.type === "MemberExpression") {
|
|
272
|
+
const name = keyName(expression, Reflect.get(expression, "property"));
|
|
273
|
+
const object = Reflect.get(expression, "object");
|
|
274
|
+
if (name === void 0 || !isNode(object)) return void 0;
|
|
275
|
+
const owner = resolveObject(object, scope, collection, depth + 1);
|
|
276
|
+
return resolveProperty(owner, name, collection, depth);
|
|
277
|
+
}
|
|
278
|
+
return void 0;
|
|
279
|
+
}
|
|
280
|
+
function workletExecutableBodies(syntax, includeCompiled = false) {
|
|
281
|
+
if (!isNode(syntax)) throw new Error("peach: expected worklet syntax");
|
|
282
|
+
const collection = collectInitData(syntax);
|
|
283
|
+
const objects = /* @__PURE__ */ new Set();
|
|
284
|
+
for (const { value, scope } of collection.inits) {
|
|
285
|
+
const resolved = resolveObject(value, scope, collection, 0);
|
|
286
|
+
if (resolved) objects.add(resolved.object);
|
|
287
|
+
}
|
|
73
288
|
const bodies = [];
|
|
74
289
|
for (const object of objects) {
|
|
75
290
|
const properties = Reflect.get(object, "properties");
|
|
76
291
|
if (!Array.isArray(properties)) continue;
|
|
77
|
-
if (properties.some(
|
|
292
|
+
if (!includeCompiled && properties.some(
|
|
78
293
|
(property2) => isNode(property2) && propertyName(Reflect.get(property2, "key")) === "__peachExecutable"
|
|
79
294
|
))
|
|
80
295
|
continue;
|