peachsim 0.1.940 → 0.1.1400
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 +17 -8
- 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 +107 -95
- 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 +19 -16
- 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 +50 -8
- package/cli/recording-access.ts +6 -6
- package/cli/run-registry.ts +1 -1
- package/cli/runtime-compat.ts +5 -1
- package/cli/screenshot-output.ts +17 -0
- 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 +3 -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 +4114 -1376
- 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/dev-bundle-resolution.ts +1 -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.1400 | (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.1400 | (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;
|