peachsim 0.1.1644 → 0.1.1653
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 +12 -0
- package/cli/app-catalog.ts +1 -1
- package/cli/app-fonts.ts +11 -80
- package/cli/app-splash.ts +18 -12
- package/cli/bridge-flow-runner.ts +11 -7
- package/cli/cloud-client.ts +10 -13
- package/cli/command-registry.ts +13 -4
- package/cli/commands/box.ts +4 -4
- package/cli/commands/control.ts +93 -53
- package/cli/commands/coverage-parser.ts +67 -0
- package/cli/commands/coverage.ts +550 -0
- package/cli/commands/debug.ts +9 -18
- package/cli/commands/desktop.ts +19 -7
- package/cli/commands/device.ts +14 -9
- package/cli/commands/guest-host.ts +6 -10
- package/cli/commands/inspect/core.ts +81 -17
- package/cli/commands/inspect.ts +13 -8
- package/cli/commands/kotlin.ts +2 -2
- package/cli/commands/maestro-compare.ts +1 -1
- package/cli/commands/platform.ts +20 -11
- package/cli/commands/preview.ts +16 -18
- package/cli/commands/runtime.ts +3 -2
- package/cli/commands/screenshot-layers.ts +1 -1
- package/cli/commands/screenshot.ts +1 -1
- package/cli/commands/serve.ts +5 -1
- package/cli/commands/support.ts +4 -4
- package/cli/commands/three-mode.ts +22 -15
- package/cli/commands/upload.ts +44 -45
- package/cli/current-sim.ts +38 -0
- package/cli/desktop-companion.ts +36 -8
- package/cli/device-option.ts +1 -1
- package/cli/drivers/playwright.ts +1 -0
- package/cli/drivers/types.ts +4 -0
- package/cli/help-core.ts +1 -1
- package/cli/internal-child.ts +2 -1
- package/cli/main.ts +9 -3
- package/cli/outbound-endpoints.ts +11 -3
- package/cli/output-redaction.ts +39 -14
- package/cli/remote-simulators.ts +4 -1
- package/cli/scene-video.ts +5 -2
- package/cli/send-to-box.ts +7 -10
- package/cli/telemetry.ts +1 -1
- package/cli/ws-bridge.ts +8 -1
- package/detox/attempt-events.cjs +3 -1
- package/detox/attempt-events.d.cts +1 -1
- package/detox/expectations.ts +108 -99
- package/detox/frame-offset.d.mts +6 -0
- package/detox/frame-offset.mjs +35 -0
- package/detox/gestures.ts +6 -18
- package/detox/index.ts +169 -101
- package/detox/jest-preset.cjs +1 -3
- package/detox/jest-transform.cjs +4 -0
- package/detox/matchers.ts +3 -0
- package/detox/motion-change.cjs +46 -114
- package/detox/motion-change.d.cts +5 -27
- 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 +65 -1
- package/dist-lib/bridge-contract-input.mjs +63 -1
- package/dist-lib/bridge-contract.cjs +19 -1
- package/dist-lib/bridge-contract.mjs +17 -1
- package/dist-lib/bundle-channel.cjs +38091 -14846
- 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 +5 -3
- package/dist-lib/detox/index.cjs +1244 -4509
- package/dist-lib/detox/jest-preset.cjs +1 -3
- package/dist-lib/detox/jest-transform.cjs +4 -0
- package/dist-lib/dev-bundle-resolution.cjs +28 -24
- package/dist-lib/expo-swift-bundle.cjs +35049 -13125
- 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 +45112 -63143
- package/dist-lib/host/fetch-proxy-handler.cjs +3544 -11
- 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 +1909 -2029
- 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 +2 -2
- 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 +380 -522
- package/dist-lib/native-app-identity-project.cjs +39 -252
- package/dist-lib/native-app-identity-project.mjs +1174 -11
- package/dist-lib/native-app-identity.cjs +8 -3
- package/dist-lib/native-app-identity.mjs +8 -3
- package/dist-lib/native-firebase-metadata.cjs +1 -1
- package/dist-lib/native-firebase-metadata.mjs +1 -1
- package/dist-lib/plist.cjs +2 -244
- 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 +290 -0
- package/dist-lib/public-origins-lib-static.json +1 -0
- package/dist-lib/public-origins-lib.json +1852 -0
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +14 -253
- package/dist-lib/sdk.cjs +83 -16
- package/dist-lib/sdk.mjs +81 -15
- package/dist-lib/skills.cjs +50546 -75098
- package/dist-lib/swift-compile.cjs +25897 -1070
- package/dist-lib/swift-compile.mjs +25866 -1033
- package/dist-lib/swift-package.cjs +79 -1
- package/dist-lib/swift-package.mjs +75 -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 +34273 -12349
- package/dist-lib/vite.cjs +373 -298
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/dist-types/packages/peach-compat/src/engine-config.d.ts +2 -0
- package/dist-types/packages/peach-compat/src/stubs/form-sheet-spring.d.ts +9 -0
- package/dist-types/packages/peach-compat/src/stubs/native-evaluation-lease.d.ts +47 -0
- package/dist-types/packages/peach-compat/src/stubs/native-seams/react-native-cookies.d.ts +113 -0
- package/dist-types/packages/peach-compat/src/stubs/native-seams/react-native-gesture-handler.d.ts +154 -0
- package/dist-types/packages/peach-compat/src/stubs/screen-transition-math.d.ts +756 -0
- package/dist-types/packages/peach-compat/src/stubs/transition-scalar.d.ts +25 -0
- package/dist-types/packages/peach-engine/src/billing/plans.d.ts +64 -0
- package/dist-types/packages/peach-engine/src/browser-page-target.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/bundle-platform-url.d.ts +3 -0
- package/dist-types/packages/peach-engine/src/capture/browser-accessibility-host.d.ts +3 -0
- package/dist-types/packages/peach-engine/src/capture/browser-composite.d.ts +55 -0
- package/dist-types/packages/peach-engine/src/capture/browserAccessibilityContract.d.ts +27 -0
- package/dist-types/packages/peach-engine/src/capture/nativeScreenCaptureContract.d.ts +22 -0
- package/dist-types/packages/peach-engine/src/cli-companion.d.ts +36 -0
- package/dist-types/packages/peach-engine/src/components/native-ui/webview-frame-bridge.d.ts +34 -0
- package/dist-types/packages/peach-engine/src/config.d.ts +5 -0
- package/dist-types/packages/peach-engine/src/engine/android-stretch-effect.d.ts +57 -0
- package/dist-types/packages/peach-engine/src/engine/animated-driven-style.d.ts +47 -0
- package/dist-types/packages/peach-engine/src/engine/animated-value.d.ts +5 -0
- package/dist-types/packages/peach-engine/src/engine/animated.d.ts +195 -0
- package/dist-types/packages/peach-engine/src/engine/animation-clockContract.d.ts +15 -0
- package/dist-types/packages/peach-engine/src/engine/animation-graph.d.ts +148 -0
- package/dist-types/packages/peach-engine/src/engine/app-catalog-wire.d.ts +10 -0
- package/dist-types/packages/peach-engine/src/engine/app-font-registry.d.ts +87 -0
- package/dist-types/packages/peach-engine/src/engine/attributed-paragraph-paint.d.ts +7 -0
- package/dist-types/packages/peach-engine/src/engine/attributed-paragraph.d.ts +123 -0
- package/dist-types/packages/peach-engine/src/engine/audioContract.d.ts +16 -0
- package/dist-types/packages/peach-engine/src/engine/canvaskit-api.d.ts +93 -0
- package/dist-types/packages/peach-engine/src/engine/canvaskit-renderer.d.ts +216 -0
- package/dist-types/packages/peach-engine/src/engine/config-plugin-fonts.d.ts +40 -0
- package/dist-types/packages/peach-engine/src/engine/config-plugin-splash.d.ts +25 -0
- package/dist-types/packages/peach-engine/src/engine/cull-visibility.d.ts +44 -0
- package/dist-types/packages/peach-engine/src/engine/damage-rect.d.ts +19 -0
- package/dist-types/packages/peach-engine/src/engine/engine-resource.d.ts +6 -0
- package/dist-types/packages/peach-engine/src/engine/expo-manifest.d.ts +5 -0
- package/dist-types/packages/peach-engine/src/engine/fiber-debug-metadata.d.ts +30 -0
- package/dist-types/packages/peach-engine/src/engine/font-config.d.ts +139 -0
- package/dist-types/packages/peach-engine/src/engine/generated/sf-pro-font.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/engine/glass-material.d.ts +31 -0
- package/dist-types/packages/peach-engine/src/engine/host-composite.d.ts +100 -0
- package/dist-types/packages/peach-engine/src/engine/hosted-semantics.d.ts +49 -0
- package/dist-types/packages/peach-engine/src/engine/image-audit.d.ts +70 -0
- package/dist-types/packages/peach-engine/src/engine/image-loader.d.ts +350 -0
- package/dist-types/packages/peach-engine/src/engine/inspect-info.d.ts +27 -0
- package/dist-types/packages/peach-engine/src/engine/inspect-outline.d.ts +14 -0
- package/dist-types/packages/peach-engine/src/engine/inspect-visibility.d.ts +33 -0
- package/dist-types/packages/peach-engine/src/engine/ios-fast-scroll.d.ts +16 -0
- package/dist-types/packages/peach-engine/src/engine/layout-sab.d.ts +43 -0
- package/dist-types/packages/peach-engine/src/engine/liquid-glass-rect.d.ts +23 -0
- package/dist-types/packages/peach-engine/src/engine/liquid-glass-shaders.d.ts +9 -0
- package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +283 -0
- package/dist-types/packages/peach-engine/src/engine/live-object-counts.d.ts +6 -0
- package/dist-types/packages/peach-engine/src/engine/lottie-runtime.d.ts +32 -0
- package/dist-types/packages/peach-engine/src/engine/lottie-types.d.ts +138 -0
- package/dist-types/packages/peach-engine/src/engine/memory-counts.d.ts +27 -0
- package/dist-types/packages/peach-engine/src/engine/metalDirectContract.d.ts +108 -0
- package/dist-types/packages/peach-engine/src/engine/metalShaderContract.d.ts +217 -0
- package/dist-types/packages/peach-engine/src/engine/native-animation-driver.d.ts +112 -0
- package/dist-types/packages/peach-engine/src/engine/native-animation-graph.d.ts +62 -0
- package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +133 -0
- package/dist-types/packages/peach-engine/src/engine/native-resources.d.ts +26 -0
- package/dist-types/packages/peach-engine/src/engine/nativeReanimatedContract.d.ts +25 -0
- package/dist-types/packages/peach-engine/src/engine/nativeReplayContract.d.ts +64 -0
- package/dist-types/packages/peach-engine/src/engine/node.d.ts +589 -0
- package/dist-types/packages/peach-engine/src/engine/paint-boundary-types.d.ts +112 -0
- package/dist-types/packages/peach-engine/src/engine/paint-boundary.d.ts +57 -0
- package/dist-types/packages/peach-engine/src/engine/portalContract.d.ts +21 -0
- package/dist-types/packages/peach-engine/src/engine/portals.d.ts +20 -0
- package/dist-types/packages/peach-engine/src/engine/render-damage.d.ts +107 -0
- package/dist-types/packages/peach-engine/src/engine/riveContract.d.ts +420 -0
- package/dist-types/packages/peach-engine/src/engine/rn-spring.d.ts +51 -0
- package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +379 -0
- package/dist-types/packages/peach-engine/src/engine/scroll-momentum-math.d.ts +152 -0
- package/dist-types/packages/peach-engine/src/engine/scroll-pan-contacts.d.ts +10 -0
- package/dist-types/packages/peach-engine/src/engine/scroll-platform.d.ts +75 -0
- package/dist-types/packages/peach-engine/src/engine/scroll-range.d.ts +14 -0
- package/dist-types/packages/peach-engine/src/engine/scroll-velocity.d.ts +14 -0
- package/dist-types/packages/peach-engine/src/engine/scroll.d.ts +320 -0
- package/dist-types/packages/peach-engine/src/engine/signal.d.ts +7 -0
- package/dist-types/packages/peach-engine/src/engine/snapshot-cache-policy.d.ts +6 -0
- package/dist-types/packages/peach-engine/src/engine/svg-geometry.d.ts +41 -0
- package/dist-types/packages/peach-engine/src/engine/text-attachment-paragraphs.d.ts +10 -0
- package/dist-types/packages/peach-engine/src/engine/text-decoration.d.ts +11 -0
- package/dist-types/packages/peach-engine/src/engine/text-line-break.d.ts +22 -0
- package/dist-types/packages/peach-engine/src/engine/text-paint-receipt.d.ts +98 -0
- package/dist-types/packages/peach-engine/src/engine/text-paragraph.d.ts +11 -0
- package/dist-types/packages/peach-engine/src/engine/text-paragraphContract.d.ts +34 -0
- package/dist-types/packages/peach-engine/src/engine/text-transform.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/engine/types.d.ts +657 -0
- package/dist-types/packages/peach-engine/src/engine/visible-frame.d.ts +54 -0
- package/dist-types/packages/peach-engine/src/engine/webrtcContract.d.ts +74 -0
- package/dist-types/packages/peach-engine/src/graphite-stats-fields.d.ts +184 -0
- package/dist-types/packages/peach-engine/src/guest-import-meta.d.ts +12 -0
- package/dist-types/packages/peach-engine/src/guest-module-overrides.d.ts +7 -0
- package/dist-types/packages/peach-engine/src/ios/app-card-types.d.ts +7 -0
- package/dist-types/packages/peach-engine/src/ios/apps/canvas-map-data.d.ts +177 -0
- package/dist-types/packages/peach-engine/src/ios/aux-home-scene.d.ts +54 -0
- package/dist-types/packages/peach-engine/src/ios/chrome-metrics.d.ts +47 -0
- package/dist-types/packages/peach-engine/src/ios/constants.d.ts +21 -0
- package/dist-types/packages/peach-engine/src/ios/duo-housing.d.ts +37 -0
- package/dist-types/packages/peach-engine/src/ios/home/types.d.ts +29 -0
- package/dist-types/packages/peach-engine/src/ios/home-app-catalog.d.ts +43 -0
- package/dist-types/packages/peach-engine/src/ios/photo-store.d.ts +73 -0
- package/dist-types/packages/peach-engine/src/ios/photoLibraryContract.d.ts +166 -0
- package/dist-types/packages/peach-engine/src/ios/shell-controller-types.d.ts +21 -0
- package/dist-types/packages/peach-engine/src/ios/shell-transition-debug.d.ts +18 -0
- package/dist-types/packages/peach-engine/src/metro-asset-path.d.ts +21 -0
- package/dist-types/packages/peach-engine/src/metro-fingerprint-registry-client.d.ts +11 -0
- package/dist-types/packages/peach-engine/src/metro-fingerprint.d.ts +38 -0
- package/dist-types/packages/peach-engine/src/native-preview-bundle.d.ts +44 -0
- package/dist-types/packages/peach-engine/src/observability/types.d.ts +74 -0
- package/dist-types/packages/peach-engine/src/peach-warm-manifest.d.ts +32 -0
- package/dist-types/packages/peach-engine/src/permissions/app-settings-client.d.ts +25 -0
- package/dist-types/packages/peach-engine/src/permissions/system-permission-types.d.ts +20 -0
- package/dist-types/packages/peach-engine/src/platform/android-back-panel.d.ts +131 -0
- package/dist-types/packages/peach-engine/src/platform/android-gesture-exclusion.d.ts +28 -0
- package/dist-types/packages/peach-engine/src/platform/android-predictive-back.d.ts +33 -0
- package/dist-types/packages/peach-engine/src/platform/system-bars-state.d.ts +14 -0
- package/dist-types/packages/peach-engine/src/playwright-sim-host.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/preview/bundle-layout.d.ts +8 -0
- package/dist-types/packages/peach-engine/src/preview/bundle-variantContract.d.ts +24 -0
- package/dist-types/packages/peach-engine/src/preview/capture-bundle.d.ts +26 -0
- package/dist-types/packages/peach-engine/src/preview/compress-node.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/preview/compress.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/preview/presigned-upload.d.ts +60 -0
- package/dist-types/packages/peach-engine/src/preview/trace.d.ts +144 -0
- package/dist-types/packages/peach-engine/src/preview/upload-protocol.d.ts +152 -0
- package/dist-types/packages/peach-engine/src/profiler/animation-recording-loader.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/profiler/profile-trace.d.ts +4 -0
- package/dist-types/packages/peach-engine/src/react-bridge.d.ts +3 -0
- package/dist-types/packages/peach-engine/src/react-native/AppState.d.ts +45 -0
- package/dist-types/packages/peach-engine/src/react-native/Appearance.d.ts +34 -0
- package/dist-types/packages/peach-engine/src/react-native/framework-colors-data.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/react-native/host-services.d.ts +42 -0
- package/dist-types/packages/peach-engine/src/react-native/layout-animation.d.ts +22 -0
- package/dist-types/packages/peach-engine/src/react-native/platform-colors.d.ts +17 -0
- package/dist-types/packages/peach-engine/src/remote-stream/client-config.d.ts +10 -0
- package/dist-types/packages/peach-engine/src/remote-stream/cloud-display.d.ts +58 -0
- package/dist-types/packages/peach-engine/src/remote-stream/scene-recording.d.ts +45 -0
- package/dist-types/packages/peach-engine/src/render-worker/animated-drive-output.d.ts +35 -0
- package/dist-types/packages/peach-engine/src/render-worker/app-load.d.ts +16 -0
- package/dist-types/packages/peach-engine/src/render-worker/aux-surface-types.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/render-worker/canvaskit-shared.d.ts +42 -0
- package/dist-types/packages/peach-engine/src/render-worker/canvaskit-webgpu.d.ts +434 -0
- package/dist-types/packages/peach-engine/src/render-worker/canvaskit-worker-init.d.ts +12 -0
- package/dist-types/packages/peach-engine/src/render-worker/compositor-backend.d.ts +31 -0
- package/dist-types/packages/peach-engine/src/render-worker/compositor-gpu.d.ts +202 -0
- package/dist-types/packages/peach-engine/src/render-worker/compositor-protocol.d.ts +1945 -0
- package/dist-types/packages/peach-engine/src/render-worker/compositor-runtime/scroll-drag-resample.d.ts +44 -0
- package/dist-types/packages/peach-engine/src/render-worker/css-keyframes-drive.d.ts +36 -0
- package/dist-types/packages/peach-engine/src/render-worker/edit-menu-geometry.d.ts +8 -0
- package/dist-types/packages/peach-engine/src/render-worker/engine-resource-relay.d.ts +21 -0
- package/dist-types/packages/peach-engine/src/render-worker/expo-widgetContract.d.ts +16 -0
- package/dist-types/packages/peach-engine/src/render-worker/gesture-seam-protocol.d.ts +152 -0
- package/dist-types/packages/peach-engine/src/render-worker/graph-linked-value.d.ts +29 -0
- package/dist-types/packages/peach-engine/src/render-worker/graphite-pipeline-compiler-contract.d.ts +49 -0
- package/dist-types/packages/peach-engine/src/render-worker/graphite-pipeline-compiler.d.ts +12 -0
- package/dist-types/packages/peach-engine/src/render-worker/host-service-protocol.d.ts +756 -0
- package/dist-types/packages/peach-engine/src/render-worker/image-lifecycle-event.d.ts +22 -0
- package/dist-types/packages/peach-engine/src/render-worker/image-pixel-contract.d.ts +48 -0
- package/dist-types/packages/peach-engine/src/render-worker/live-frame-mirror.d.ts +34 -0
- package/dist-types/packages/peach-engine/src/render-worker/map-command-channel.d.ts +189 -0
- package/dist-types/packages/peach-engine/src/render-worker/mapNativeContract.d.ts +101 -0
- package/dist-types/packages/peach-engine/src/render-worker/native-dynamic-synchronizable.d.ts +22 -0
- package/dist-types/packages/peach-engine/src/render-worker/native-menu-gesture.d.ts +9 -0
- package/dist-types/packages/peach-engine/src/render-worker/native-ui-commandContract.d.ts +23 -0
- package/dist-types/packages/peach-engine/src/render-worker/native-ui-protocol.d.ts +1087 -0
- package/dist-types/packages/peach-engine/src/render-worker/native-widgetContract.d.ts +100 -0
- package/dist-types/packages/peach-engine/src/render-worker/nativeAnimMirrorContract.d.ts +174 -0
- package/dist-types/packages/peach-engine/src/render-worker/nativeSyncReplyContract.d.ts +11 -0
- package/dist-types/packages/peach-engine/src/render-worker/one-native-contentContract.d.ts +54 -0
- package/dist-types/packages/peach-engine/src/render-worker/pointerSampleContract.d.ts +14 -0
- package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +880 -0
- package/dist-types/packages/peach-engine/src/render-worker/reanimated-css-contract.d.ts +63 -0
- package/dist-types/packages/peach-engine/src/render-worker/reanimated-readiness.d.ts +29 -0
- package/dist-types/packages/peach-engine/src/render-worker/resilient-frame-clock.d.ts +22 -0
- package/dist-types/packages/peach-engine/src/render-worker/retained-app-load.d.ts +20 -0
- package/dist-types/packages/peach-engine/src/render-worker/screen-edge-swipe-commit-protocol.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/render-worker/screen-form-sheet-commit-protocol.d.ts +26 -0
- package/dist-types/packages/peach-engine/src/render-worker/scroll-mirror-tenant.d.ts +37 -0
- package/dist-types/packages/peach-engine/src/render-worker/scroll-mirror.d.ts +164 -0
- package/dist-types/packages/peach-engine/src/render-worker/shell-event-registry.d.ts +119 -0
- package/dist-types/packages/peach-engine/src/render-worker/shell-gesture-regions.d.ts +41 -0
- package/dist-types/packages/peach-engine/src/render-worker/shell-protocol.d.ts +603 -0
- package/dist-types/packages/peach-engine/src/render-worker/shell-scene-schema.d.ts +101 -0
- package/dist-types/packages/peach-engine/src/render-worker/shell-tree-inline-sources.d.ts +13 -0
- package/dist-types/packages/peach-engine/src/render-worker/shell-tree-wire.d.ts +87 -0
- package/dist-types/packages/peach-engine/src/render-worker/test-bridge-protocol.d.ts +47 -0
- package/dist-types/packages/peach-engine/src/render-worker/text-inputContract.d.ts +93 -0
- package/dist-types/packages/peach-engine/src/render-worker/tree-sync-port.d.ts +102 -0
- package/dist-types/packages/peach-engine/src/render-worker/webgpu-frame-transaction.d.ts +292 -0
- package/dist-types/packages/peach-engine/src/render-worker/webgpu-readback-scheduler.d.ts +107 -0
- package/dist-types/packages/peach-engine/src/render-worker/webview-capture-protocol.d.ts +16 -0
- package/dist-types/packages/peach-engine/src/render-worker/worker-input-runtime.d.ts +211 -0
- package/dist-types/packages/peach-engine/src/render-worker/worker-storage.d.ts +33 -0
- package/dist-types/packages/peach-engine/src/render-worker/worklet-runtime.d.ts +987 -0
- package/dist-types/packages/peach-engine/src/render-worker/worklet-sab.d.ts +24 -0
- package/dist-types/packages/peach-engine/src/rolldown-bundle-inventory.d.ts +84 -0
- package/dist-types/packages/peach-engine/src/rolldown-production-fingerprint.d.ts +31 -0
- package/dist-types/packages/peach-engine/src/screenshots/timeline-assets.d.ts +10 -0
- package/dist-types/packages/peach-engine/src/screenshots/tokens.d.ts +9 -0
- package/dist-types/packages/peach-engine/src/settings/devices.d.ts +70 -0
- package/dist-types/packages/peach-engine/src/settings/duo-fold-bus.d.ts +87 -0
- package/dist-types/packages/peach-engine/src/settings/interface-rotation.d.ts +30 -0
- package/dist-types/packages/peach-engine/src/settings/react-native-configuration.d.ts +12 -0
- package/dist-types/packages/peach-engine/src/settings/scene-geometryContract.d.ts +40 -0
- package/dist-types/packages/peach-engine/src/settings/store.d.ts +37 -0
- package/dist-types/packages/peach-engine/src/shell-events.d.ts +203 -0
- package/dist-types/packages/peach-engine/src/shell-intent.d.ts +68 -0
- package/dist-types/packages/peach-engine/src/sootsim-event.d.ts +35 -0
- package/dist-types/packages/peach-engine/src/top-overlay-state.d.ts +5 -0
- package/dist-types/packages/peach-engine/src/web-authentication-automation-host.d.ts +2 -0
- package/dist-types/packages/peach-engine/src/webAuthenticationContract.d.ts +34 -0
- package/dist-types/packages/peach-engine/src/webview-automation-host.d.ts +180 -0
- package/dist-types/packages/peach-engine/src/wireframe-mode.d.ts +16 -0
- package/dist-types/packages/peach-globals/src/frameBreakdownContract.d.ts +16 -0
- package/dist-types/packages/peach-globals/src/index.d.ts +3311 -0
- package/dist-types/packages/peach-globals/src/nativeSurfaceContract.d.ts +76 -0
- package/dist-types/packages/peach-globals/src/pointerSourceEventContract.d.ts +8 -0
- package/dist-types/packages/peach-globals/src/profileTrace.d.ts +11 -0
- package/dist-types/packages/peach-globals/src/profilerContract.d.ts +223 -0
- package/dist-types/packages/peach-kit/src/capabilities.d.ts +721 -0
- package/dist-types/packages/peach-kit/src/internal.d.ts +4 -0
- package/dist-types/packages/peach-kit/src/materials/types.d.ts +27 -0
- package/dist-types/packages/peach-kit/src/materials/uikit-blur-material.d.ts +14 -0
- package/dist-types/packages/peach-kit/src/navigation-types.d.ts +11 -0
- package/dist-types/packages/peach-kit/src/react-bridge.d.ts +53 -0
- package/dist-types/packages/peach-kit/src/runtime.d.ts +26 -0
- package/dist-types/packages/peach-kit/src/ui/hosting-safe-area.d.ts +24 -0
- package/dist-types/packages/peach-kit/src/ui/popover-placement.d.ts +53 -0
- package/dist-types/packages/peach-kit/src/ui/presentationContract.d.ts +17 -0
- package/kotlin/ComposeSources/PeachComposeHost.kt +1 -1
- package/kotlin/JniSources/com/facebook/jni/HybridData.kt +0 -2
- package/kotlin/JniSources/dev/peach/jni/NativeBindings.kt +0 -2
- package/kotlin/JniTransportSources/dev/peach/jni/integration/JniTransport.kt +0 -2
- package/kotlin/README.md +6 -0
- package/package.json +22 -2
- package/runtime-companion.json +1 -0
- package/skills/contrast/SKILL.md +1 -0
- package/src/assetCatalogContract.ts +21 -0
- package/src/bridge-contract-input.ts +84 -0
- package/src/bridge-contract.ts +35 -3
- package/src/browser-launch-policy.ts +1 -0
- package/src/bundle-channel.mjs +4 -2
- package/src/cli-runtime.ts +55 -0
- package/src/crash-fingerprint.ts +26 -0
- package/src/dev-bundle-resolution.ts +50 -23
- package/src/device-catalog.ts +1159 -0
- package/src/host/bridge-host.ts +3 -26
- package/src/host/browser-pointer.ts +71 -0
- package/src/host/dev-server-package-versions.ts +23 -0
- package/src/host/fetch-proxy-handler.ts +17 -4
- package/src/installed-package-versions.ts +142 -38
- package/src/kotlin-host.ts +1 -1
- package/src/metro-plugin.ts +4 -4
- package/src/metro-project-root.ts +68 -0
- package/src/nitro-adapter.lock.json +26 -0
- package/src/nitro-adapter.ts +103 -0
- package/src/nitro-bundle.ts +24 -10
- package/src/nitro-compile.ts +33 -51
- package/src/nitro-source.ts +177 -96
- package/src/nitroAdapterContract.ts +217 -0
- package/src/nitroContract.ts +24 -11
- package/src/process-group.ts +41 -34
- package/src/react-bridge-importers.ts +28 -0
- package/src/reactNativeConfigurationContract.ts +36 -0
- package/src/runtime-assets.ts +7 -2
- package/src/runtime-delivery.ts +2 -0
- package/src/runtimePlatformContract.ts +70 -0
- package/src/screenshots/frame-compose.ts +42 -43
- package/src/screenshots/org-deck.ts +9 -4
- package/src/screenshots/preset-names.ts +29 -0
- package/src/screenshots/registry.ts +5 -5
- package/src/screenshots/schema.ts +1 -1
- package/src/screenshots/screenshotContract.ts +971 -0
- package/src/settings-flags.ts +107 -0
- package/src/settingsContract.ts +609 -0
- package/src/storageSnapshotContract.ts +344 -0
- package/src/stub-pattern-matcher.ts +550 -0
- package/src/swift-compile.ts +908 -40
- package/src/swift-compiler-digest.ts +13 -1
- package/src/swift-distribution.lock.json +49 -22
- package/src/swift-host.ts +167 -52
- package/src/swift-objc-compile.ts +54 -24
- package/src/swift-objc-export.ts +532 -0
- package/src/swift-objc-import.ts +769 -0
- package/src/swift-objc-metadata.ts +285 -10
- package/src/swift-objc-sdk.ts +13970 -158
- package/src/swift-objc-standin.ts +137 -1
- package/src/swift-package.ts +94 -0
- package/src/swift-packages.ts +5 -5
- package/src/swift-submit.ts +6 -0
- package/src/swiftContract.ts +99 -0
- package/src/target-matcher.ts +6 -1
- package/src/vite-plugin.ts +14 -40
- package/src/worker-system-chunks.ts +1 -1
- package/src/workerChunkContract.ts +5 -0
- package/src/worklets-babel.ts +24 -5
- package/src/xcode-project.ts +36 -7
- package/src/xcode-target-members.ts +10 -3
- package/cli/drivers/playwright-sim-host.ts +0 -825
- package/kotlin/fixtures/counter/Counter.d.kt.ts +0 -17
- package/kotlin/fixtures/counter/Counter.kt +0 -51
- package/kotlin/fixtures/counter/CounterApp.native.tsx +0 -61
- package/kotlin/fixtures/counter/CounterApp.tsx +0 -3
- package/kotlin/fixtures/counter/CounterScreen.d.kt.ts +0 -8
- package/kotlin/fixtures/counter/CounterScreen.kt +0 -56
- package/kotlin/fixtures/counter/app/_layout.tsx +0 -4
- package/kotlin/fixtures/counter/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/counter/app/routes.d.ts +0 -18
- package/kotlin/fixtures/counter/package.json +0 -20
- package/kotlin/fixtures/counter/tsconfig.json +0 -19
- package/kotlin/fixtures/counter/vite.config.ts +0 -20
- package/kotlin/fixtures/headless-counter/Headless.kt +0 -234
- package/kotlin/fixtures/import-animation/Animation.d.kt.ts +0 -7
- package/kotlin/fixtures/import-animation/Animation.kt +0 -80
- package/kotlin/fixtures/import-animation/ImportAnimation.native.tsx +0 -13
- package/kotlin/fixtures/import-animation/README.md +0 -24
- package/kotlin/fixtures/import-animation/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-animation/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-animation/app/routes.d.ts +0 -18
- package/kotlin/fixtures/import-animation/package.json +0 -23
- package/kotlin/fixtures/import-animation/tsconfig.json +0 -20
- package/kotlin/fixtures/import-animation/vite.config.ts +0 -20
- package/kotlin/fixtures/import-drawing/Drawing.d.kt.ts +0 -7
- package/kotlin/fixtures/import-drawing/Drawing.kt +0 -101
- package/kotlin/fixtures/import-drawing/ImportDrawing.native.tsx +0 -18
- package/kotlin/fixtures/import-drawing/README.md +0 -34
- package/kotlin/fixtures/import-drawing/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-drawing/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-drawing/package.json +0 -23
- package/kotlin/fixtures/import-drawing/tsconfig.json +0 -20
- package/kotlin/fixtures/import-drawing/vite.config.ts +0 -20
- package/kotlin/fixtures/import-editor/Editor.d.kt.ts +0 -7
- package/kotlin/fixtures/import-editor/Editor.kt +0 -59
- package/kotlin/fixtures/import-editor/ImportEditor.native.tsx +0 -23
- package/kotlin/fixtures/import-editor/README.md +0 -27
- package/kotlin/fixtures/import-editor/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-editor/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-editor/package.json +0 -23
- package/kotlin/fixtures/import-editor/tsconfig.json +0 -20
- package/kotlin/fixtures/import-editor/vite.config.ts +0 -20
- package/kotlin/fixtures/import-effects/Effects.d.kt.ts +0 -7
- package/kotlin/fixtures/import-effects/Effects.kt +0 -87
- package/kotlin/fixtures/import-effects/ImportEffects.native.tsx +0 -13
- package/kotlin/fixtures/import-effects/README.md +0 -19
- package/kotlin/fixtures/import-effects/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-effects/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-effects/package.json +0 -23
- package/kotlin/fixtures/import-effects/tsconfig.json +0 -20
- package/kotlin/fixtures/import-effects/vite.config.ts +0 -20
- package/kotlin/fixtures/import-layout/ImportLayout.native.tsx +0 -13
- package/kotlin/fixtures/import-layout/Layout.d.kt.ts +0 -7
- package/kotlin/fixtures/import-layout/Layout.kt +0 -72
- package/kotlin/fixtures/import-layout/README.md +0 -24
- package/kotlin/fixtures/import-layout/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-layout/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-layout/package.json +0 -23
- package/kotlin/fixtures/import-layout/tsconfig.json +0 -20
- package/kotlin/fixtures/import-layout/vite.config.ts +0 -20
- package/kotlin/fixtures/import-navigation/ImportNavigation.native.tsx +0 -18
- package/kotlin/fixtures/import-navigation/Navigation.d.kt.ts +0 -7
- package/kotlin/fixtures/import-navigation/Navigation.kt +0 -104
- package/kotlin/fixtures/import-navigation/README.md +0 -31
- package/kotlin/fixtures/import-navigation/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-navigation/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-navigation/package.json +0 -23
- package/kotlin/fixtures/import-navigation/tsconfig.json +0 -20
- package/kotlin/fixtures/import-navigation/vite.config.ts +0 -20
- package/kotlin/fixtures/import-overlays/ImportOverlays.native.tsx +0 -29
- package/kotlin/fixtures/import-overlays/Overlays.d.kt.ts +0 -7
- package/kotlin/fixtures/import-overlays/Overlays.kt +0 -93
- package/kotlin/fixtures/import-overlays/README.md +0 -34
- package/kotlin/fixtures/import-overlays/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-overlays/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-overlays/package.json +0 -23
- package/kotlin/fixtures/import-overlays/tsconfig.json +0 -20
- package/kotlin/fixtures/import-overlays/vite.config.ts +0 -20
- package/kotlin/fixtures/import-resources/ImportResources.native.tsx +0 -18
- package/kotlin/fixtures/import-resources/README.md +0 -26
- package/kotlin/fixtures/import-resources/Resources.d.kt.ts +0 -6
- package/kotlin/fixtures/import-resources/Resources.kt +0 -72
- package/kotlin/fixtures/import-resources/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-resources/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-resources/package.json +0 -23
- package/kotlin/fixtures/import-resources/tsconfig.json +0 -20
- package/kotlin/fixtures/import-resources/vite.config.ts +0 -20
- package/kotlin/fixtures/import-scroll/ImportNested.native.tsx +0 -10
- package/kotlin/fixtures/import-scroll/ImportScroll.native.tsx +0 -13
- package/kotlin/fixtures/import-scroll/Nested.d.kt.ts +0 -4
- package/kotlin/fixtures/import-scroll/Nested.kt +0 -64
- package/kotlin/fixtures/import-scroll/README.md +0 -38
- package/kotlin/fixtures/import-scroll/Scroll.d.kt.ts +0 -7
- package/kotlin/fixtures/import-scroll/Scroll.kt +0 -91
- package/kotlin/fixtures/import-scroll/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-scroll/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-scroll/app/nested+spa.tsx +0 -1
- package/kotlin/fixtures/import-scroll/package.json +0 -23
- package/kotlin/fixtures/import-scroll/tsconfig.json +0 -20
- package/kotlin/fixtures/import-scroll/vite.config.ts +0 -20
- package/kotlin/fixtures/import-selection/ImportSelection.native.tsx +0 -44
- package/kotlin/fixtures/import-selection/README.md +0 -32
- package/kotlin/fixtures/import-selection/Selection.d.kt.ts +0 -8
- package/kotlin/fixtures/import-selection/Selection.kt +0 -78
- package/kotlin/fixtures/import-selection/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-selection/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-selection/package.json +0 -23
- package/kotlin/fixtures/import-selection/tsconfig.json +0 -20
- package/kotlin/fixtures/import-selection/vite.config.ts +0 -20
- package/kotlin/fixtures/import-surfaces/ImportSurfaces.native.tsx +0 -13
- package/kotlin/fixtures/import-surfaces/README.md +0 -22
- package/kotlin/fixtures/import-surfaces/Surfaces.d.kt.ts +0 -7
- package/kotlin/fixtures/import-surfaces/Surfaces.kt +0 -64
- package/kotlin/fixtures/import-surfaces/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-surfaces/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-surfaces/package.json +0 -23
- package/kotlin/fixtures/import-surfaces/tsconfig.json +0 -20
- package/kotlin/fixtures/import-surfaces/vite.config.ts +0 -20
- package/kotlin/fixtures/import-values/ImportValues.native.tsx +0 -61
- package/kotlin/fixtures/import-values/README.md +0 -28
- package/kotlin/fixtures/import-values/Values.d.kt.ts +0 -15
- package/kotlin/fixtures/import-values/Values.kt +0 -84
- package/kotlin/fixtures/import-values/app/_layout.tsx +0 -4
- package/kotlin/fixtures/import-values/app/index+spa.tsx +0 -1
- package/kotlin/fixtures/import-values/package.json +0 -23
- package/kotlin/fixtures/import-values/tsconfig.json +0 -20
- package/kotlin/fixtures/import-values/vite.config.ts +0 -20
- package/kotlin/fixtures/kotlin-app/app/build.gradle.kts +0 -30
- package/kotlin/fixtures/kotlin-app/app/src/main/AndroidManifest.xml +0 -13
- package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/MainActivity.kt +0 -60
- package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/ProbeApplication.kt +0 -18
- package/kotlin/fixtures/kotlin-app/build.gradle.kts +0 -5
- package/kotlin/fixtures/kotlin-app/gradle.properties +0 -4
- package/kotlin/fixtures/kotlin-app/settings.gradle.kts +0 -4
- package/kotlin/fixtures/kotlin-app-variants/Anim.kt +0 -62
- package/kotlin/fixtures/kotlin-app-variants/BarBehavior.kt +0 -38
- package/kotlin/fixtures/kotlin-app-variants/BarVisibility.kt +0 -36
- package/kotlin/fixtures/kotlin-app-variants/Bitmaps.kt +0 -50
- package/kotlin/fixtures/kotlin-app-variants/Browse.kt +0 -73
- package/kotlin/fixtures/kotlin-app-variants/Colors.kt +0 -41
- package/kotlin/fixtures/kotlin-app-variants/Controls.kt +0 -62
- package/kotlin/fixtures/kotlin-app-variants/Drag.kt +0 -56
- package/kotlin/fixtures/kotlin-app-variants/Draw.kt +0 -74
- package/kotlin/fixtures/kotlin-app-variants/Drawables.kt +0 -53
- package/kotlin/fixtures/kotlin-app-variants/Focus.kt +0 -62
- package/kotlin/fixtures/kotlin-app-variants/Form.kt +0 -47
- package/kotlin/fixtures/kotlin-app-variants/Icons.kt +0 -59
- package/kotlin/fixtures/kotlin-app-variants/Ime.kt +0 -53
- package/kotlin/fixtures/kotlin-app-variants/Lists.kt +0 -57
- package/kotlin/fixtures/kotlin-app-variants/Nav.kt +0 -47
- package/kotlin/fixtures/kotlin-app-variants/Note.kt +0 -40
- package/kotlin/fixtures/kotlin-app-variants/Overlays.kt +0 -56
- package/kotlin/fixtures/kotlin-app-variants/Pan.kt +0 -38
- package/kotlin/fixtures/kotlin-app-variants/Pickers.kt +0 -44
- package/kotlin/fixtures/kotlin-app-variants/Press.kt +0 -43
- package/kotlin/fixtures/kotlin-app-variants/Scroll.kt +0 -63
- package/kotlin/fixtures/kotlin-app-variants/Sheet.kt +0 -43
- package/kotlin/fixtures/kotlin-app-variants/Strings.kt +0 -49
- package/kotlin/fixtures/kotlin-app-variants/Tabs.kt +0 -47
- package/kotlin/fixtures/kotlin-app-variants/TextWidth.kt +0 -45
- package/kotlin/fixtures/kotlin-app-variants/TransientInsets.kt +0 -50
- package/kotlin/fixtures/kotlin-app-variants/Transition.kt +0 -69
- package/kotlin/fixtures/kotlin-app-variants/ViewConfig.kt +0 -22
- package/kotlin/fixtures/kotlin-app-variants/Widgets.kt +0 -67
- package/kotlin/fixtures/runtime-state/RuntimeState.kt +0 -200
- package/kotlin/fork/README.md +0 -97
- package/kotlin/fork/build.sh +0 -176
- package/kotlin/fork/compose-worker-globals.patch +0 -1247
- package/kotlin/fork/fork.json +0 -46
- package/kotlin/fork/publish.ts +0 -99
- package/kotlin/fork/skia-android-shaping.patch +0 -189
- package/kotlin/fork/skiko-local.init.gradle +0 -10
- package/kotlin/fork/skiko-worker-clock.patch +0 -122
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { setEngineConfig, setEngineConfigInitializer, resetCapabilityStore, type SootSimEngineConfig, } from './capabilities.d.ts';
|
|
2
|
+
export { bindReact } from './react-bridge.d.ts';
|
|
3
|
+
export { POPOVER_ARROWS, POPOVER_CORNER_RADIUS, placePopover, centerArrowlessPopover, popoverGlassArrow, popoverRegion, } from './ui/popover-placement.d.ts';
|
|
4
|
+
export { HostingSafeAreaContext, systemLayoutMargin, type HostingSafeAreaContainer, } from './ui/hosting-safe-area.d.ts';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Ref } from 'react';
|
|
2
|
+
import type { View, ViewProps } from 'react-native';
|
|
3
|
+
type SystemBlurStyle = 'systemUltraThinMaterial' | 'systemThinMaterial' | 'systemMaterial' | 'systemThickMaterial' | 'systemChromeMaterial';
|
|
4
|
+
export type BlurStyle = SystemBlurStyle | `${SystemBlurStyle}Light` | `${SystemBlurStyle}Dark` | 'extraLight' | 'light' | 'dark' | 'regular' | 'prominent';
|
|
5
|
+
export interface ProgressiveBlurViewProps extends ViewProps {
|
|
6
|
+
maxRadius: number;
|
|
7
|
+
direction: 'top' | 'bottom' | 'center';
|
|
8
|
+
startOffset?: number;
|
|
9
|
+
blurStyle?: BlurStyle;
|
|
10
|
+
ref?: Ref<View>;
|
|
11
|
+
}
|
|
12
|
+
interface VariableBlurAppearance {
|
|
13
|
+
fillDarken: number;
|
|
14
|
+
fillLighten: number;
|
|
15
|
+
fillNormal: number;
|
|
16
|
+
plateColor: readonly [number, number, number];
|
|
17
|
+
plateOpacity: number;
|
|
18
|
+
}
|
|
19
|
+
export interface VariableBlurStyle {
|
|
20
|
+
radius: number;
|
|
21
|
+
fillRadius: number;
|
|
22
|
+
captureFactor?: number;
|
|
23
|
+
light: VariableBlurAppearance;
|
|
24
|
+
dark: VariableBlurAppearance;
|
|
25
|
+
radiusMaskHex: string;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { VariableBlurStyle } from './types.d.ts';
|
|
2
|
+
export type UIBlurMaterialStyle = {
|
|
3
|
+
lightSigma: number;
|
|
4
|
+
darkSigma: number;
|
|
5
|
+
light: number[];
|
|
6
|
+
dark: number[];
|
|
7
|
+
amount: number;
|
|
8
|
+
sampleWithinBounds?: true;
|
|
9
|
+
tileMode?: 'mirror';
|
|
10
|
+
colorMatrix?: readonly number[];
|
|
11
|
+
variableBlur?: VariableBlurStyle;
|
|
12
|
+
};
|
|
13
|
+
export declare const IDENTITY_MATERIAL: number[];
|
|
14
|
+
export declare const UI_MATERIAL_RECIPES: Record<string, Omit<UIBlurMaterialStyle, 'amount'>>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ShellNativeEvaluationOwner } from '../../peach-globals/src/index.d.ts';
|
|
2
|
+
export interface ScreenInfo {
|
|
3
|
+
id: string;
|
|
4
|
+
owner: ShellNativeEvaluationOwner | null;
|
|
5
|
+
routeName?: string;
|
|
6
|
+
isActive: boolean;
|
|
7
|
+
headerHeight: number;
|
|
8
|
+
largeTitleState?: 'expanded' | 'collapsed' | 'collapsing' | 'expanding';
|
|
9
|
+
presentation?: string;
|
|
10
|
+
depth?: number;
|
|
11
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as _defaultReact from 'react';
|
|
2
|
+
export declare function bindReact(react: typeof _defaultReact): void;
|
|
3
|
+
export declare function getReact(): typeof _defaultReact;
|
|
4
|
+
export declare function useState<T>(init: T | (() => T)): [T, (v: T | ((prev: T) => T)) => void];
|
|
5
|
+
export declare function use<T>(usable: import('react').Usable<T>): T;
|
|
6
|
+
export declare function useActionState(...args: any[]): any;
|
|
7
|
+
export declare function useEffect(effect: () => void | (() => void | undefined), deps?: readonly any[]): void;
|
|
8
|
+
export declare function useEffectEvent<T extends (...args: any[]) => any>(event: T): T;
|
|
9
|
+
export declare function useLayoutEffect(effect: () => void | (() => void | undefined), deps?: readonly any[]): void;
|
|
10
|
+
export declare function useCallback<T extends (...args: any[]) => any>(cb: T, deps: readonly any[]): T;
|
|
11
|
+
export declare function useId(): string;
|
|
12
|
+
export declare function useRef<T>(init: T): import('react').RefObject<T>;
|
|
13
|
+
export declare function useRef<T>(init: T | null): import('react').RefObject<T | null>;
|
|
14
|
+
export declare function useRef<T = undefined>(): import('react').RefObject<T | undefined>;
|
|
15
|
+
export declare function useMemo<T>(factory: () => T, deps: readonly any[]): T;
|
|
16
|
+
export declare function useOptimistic(...args: any[]): any;
|
|
17
|
+
export declare function useContext<T>(ctx: import('react').Context<T>): T;
|
|
18
|
+
export declare function useReducer(...args: any[]): any;
|
|
19
|
+
export declare function useImperativeHandle(...args: any[]): void;
|
|
20
|
+
export declare function useInsertionEffect(effect: () => void | (() => void | undefined), deps?: readonly any[]): any;
|
|
21
|
+
export declare function useDeferredValue<T>(value: T): T;
|
|
22
|
+
export declare function useTransition(): [boolean, (cb: () => void) => void];
|
|
23
|
+
export declare function useDebugValue(value: any, format?: (v: any) => any): void;
|
|
24
|
+
export declare function useSyncExternalStore<T>(subscribe: (onStoreChange: () => void) => () => void, getSnapshot: () => T, getServerSnapshot?: () => T): T;
|
|
25
|
+
export declare function startTransition(fn: () => void): void;
|
|
26
|
+
export declare function unstable_useCacheRefresh(): () => void;
|
|
27
|
+
export declare function act(...args: any[]): any;
|
|
28
|
+
export declare function cache<T extends (...args: any[]) => any>(fn: T): T;
|
|
29
|
+
export declare function cacheSignal(): import('react').CacheSignal | null;
|
|
30
|
+
export declare function captureOwnerStack(): string | null;
|
|
31
|
+
export declare function createElement(...args: any[]): any;
|
|
32
|
+
export declare function createContext<T>(defaultValue?: T): import('react').Context<T>;
|
|
33
|
+
export declare function forwardRef(render: any): any;
|
|
34
|
+
export declare function createRef<T = unknown>(): import('react').RefObject<T | null>;
|
|
35
|
+
export declare function memo(component: any, compare?: any): any;
|
|
36
|
+
export declare function lazy(factory: any): any;
|
|
37
|
+
export declare function isValidElement(el: unknown): el is _defaultReact.ReactElement;
|
|
38
|
+
export declare function cloneElement(...args: any[]): any;
|
|
39
|
+
export declare const Children: typeof _defaultReact.Children;
|
|
40
|
+
export declare let Activity: any;
|
|
41
|
+
export declare let Fragment: any;
|
|
42
|
+
export declare let Profiler: any;
|
|
43
|
+
export declare let StrictMode: any;
|
|
44
|
+
export declare let Suspense: any;
|
|
45
|
+
export declare let Component: any;
|
|
46
|
+
export declare let PureComponent: any;
|
|
47
|
+
export declare const __CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE: any;
|
|
48
|
+
export declare const __COMPILER_RUNTIME: any;
|
|
49
|
+
export declare const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: any;
|
|
50
|
+
export declare const version: string;
|
|
51
|
+
declare const _default: typeof _defaultReact;
|
|
52
|
+
export default _default;
|
|
53
|
+
export type { ComponentType, Context, Dispatch, FC, JSX, PropsWithChildren, ReactElement, ReactNode, Ref, RefObject, SetStateAction, } from 'react';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type NativeAlertsConfig, type SootSimEngineConfig } from './capabilities.d.ts';
|
|
2
|
+
export type { ScreenInfo } from './navigation-types.d.ts';
|
|
3
|
+
export { getEngineConfig, getOptionalEngineConfig, type SootSimEngineConfig, type ColorPickerControlProps, type BottomTabAccessoryPlacement, type BottomTabAccessoryRenderer, type BottomTabBarItem, type BottomTabBarProps, type TabBarIconImage, type GestureSeamOwner, type ScreenEdgeSwipeCommit, type ScreenTransitionAnimation, type ScreenTransitionProgress, isScreenTransitionAnimation, type NativeAlertPromptValue, type NativeAlertsConfig, type NativeNotificationsConfig, type NativePermissionsConfig, type NotifAction, type NotifCategory, type NotifChannel, type NotifChannelGroup, type NotifEvent, type NotifEventType, type NotifForegroundPresenter, type NotifPermission, type NotifPresentation, type NotifSpec, type NotifToken, type NotifTrigger, type NotificationBusInterface, type SystemNotificationSettings, type SystemPermissionDescriptor, type SystemPermissionKind, type SystemPermissionLocationAccuracy, type SystemPermissionState, type SystemPermissionStatus, } from './capabilities.d.ts';
|
|
4
|
+
export declare function getReactNative(): {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
usePinnedTraitColorScheme: () => 'light' | 'dark' | null;
|
|
7
|
+
Platform: any;
|
|
8
|
+
Dimensions: any;
|
|
9
|
+
UIManager: any;
|
|
10
|
+
Keyboard: any;
|
|
11
|
+
findNodeHandle?: (component: any) => number | null;
|
|
12
|
+
BackHandler: {
|
|
13
|
+
emitBackPress: () => boolean;
|
|
14
|
+
};
|
|
15
|
+
AppRegistry: any;
|
|
16
|
+
NativeEventEmitter: any;
|
|
17
|
+
DeviceEventEmitter: any;
|
|
18
|
+
Animated?: any;
|
|
19
|
+
Easing?: any;
|
|
20
|
+
};
|
|
21
|
+
export declare function getEngine(): SootSimEngineConfig['engine'];
|
|
22
|
+
export declare function getNativeNotifications(): import("../../peach-engine/src/react-bridge.d.ts").NativeNotificationsConfig | undefined;
|
|
23
|
+
export declare function getNativeAlerts(): NativeAlertsConfig;
|
|
24
|
+
export declare function getSystemPermissions(): import("../../peach-engine/src/react-bridge.d.ts").NativePermissionsConfig | undefined;
|
|
25
|
+
export declare function getPlatform(): string;
|
|
26
|
+
export { getReact, useState, use, useActionState, useEffect, useEffectEvent, useLayoutEffect, useCallback, useId, useRef, useMemo, useOptimistic, useContext, useReducer, useImperativeHandle, useInsertionEffect, useDeferredValue, useTransition, useDebugValue, useSyncExternalStore, startTransition, unstable_useCacheRefresh, act, cache, cacheSignal, captureOwnerStack, createElement, createContext, forwardRef, createRef, memo, lazy, isValidElement, cloneElement, Children, Activity, Fragment, Profiler, StrictMode, Suspense, Component, PureComponent, version, __CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, __COMPILER_RUNTIME, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, type ComponentType, type Context, type Dispatch, type FC, type JSX, type PropsWithChildren, type ReactElement, type ReactNode, type Ref, type RefObject, type SetStateAction, default, } from './react-bridge.d.ts';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
export interface HostingSafeAreaContainer {
|
|
3
|
+
view: RefObject<unknown>;
|
|
4
|
+
height: number;
|
|
5
|
+
top: number;
|
|
6
|
+
bottom: number;
|
|
7
|
+
left: number;
|
|
8
|
+
right: number;
|
|
9
|
+
margins: {
|
|
10
|
+
left: number;
|
|
11
|
+
right: number;
|
|
12
|
+
};
|
|
13
|
+
rowInset?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare const HostingSafeAreaContext: import("react").Context<HostingSafeAreaContainer | null>;
|
|
16
|
+
export declare function systemLayoutMargin(screen: {
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
}): number;
|
|
20
|
+
export declare const SWIFTUI_TOGGLE_TRAILING_PLACEMENT = -1.5;
|
|
21
|
+
export declare function expoUiFormToggleTrackTrailingInset(screen: {
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
}): number;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export declare const POPOVER_ARROW_DEPTH = 13;
|
|
2
|
+
export declare const POPOVER_ARROW_END_INSET = 19;
|
|
3
|
+
export declare const POPOVER_SIDE_MARGIN = 10;
|
|
4
|
+
export declare const POPOVER_CORNER_RADIUS = 33;
|
|
5
|
+
export declare const POPOVER_ARROW_TIP_RADIUS = 1.5;
|
|
6
|
+
export declare const POPOVER_ARROW_JOIN_RADIUS = 6;
|
|
7
|
+
export type PopoverArrow = 'up' | 'down' | 'left' | 'right';
|
|
8
|
+
export declare const POPOVER_ARROWS: PopoverArrow[];
|
|
9
|
+
export interface PopoverSource {
|
|
10
|
+
absX: number;
|
|
11
|
+
absY: number;
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function centerArrowlessPopover(source: PopoverSource, content: {
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
}): {
|
|
19
|
+
cardX: number;
|
|
20
|
+
cardY: number;
|
|
21
|
+
};
|
|
22
|
+
export interface PopoverRegion {
|
|
23
|
+
left: number;
|
|
24
|
+
top: number;
|
|
25
|
+
right: number;
|
|
26
|
+
bottom: number;
|
|
27
|
+
}
|
|
28
|
+
export declare function popoverRegion(windowWidth: number, safeTop: number, safeBottom: number): PopoverRegion;
|
|
29
|
+
export declare function placePopover(source: PopoverSource, content: {
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
}, region: PopoverRegion, arrows: PopoverArrow[], narrowsBesideSource?: boolean): {
|
|
33
|
+
cardX: number;
|
|
34
|
+
cardY: number;
|
|
35
|
+
cardWidth: number | undefined;
|
|
36
|
+
direction: PopoverArrow;
|
|
37
|
+
arrowX: number;
|
|
38
|
+
arrowY: number;
|
|
39
|
+
pivotX: number;
|
|
40
|
+
pivotY: number;
|
|
41
|
+
pinned: "end" | "start" | undefined;
|
|
42
|
+
arrowCentre: number;
|
|
43
|
+
};
|
|
44
|
+
export declare function popoverGlassArrow(placed: ReturnType<typeof placePopover>): {
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
direction: PopoverArrow;
|
|
48
|
+
depth: number;
|
|
49
|
+
tipRadius: number;
|
|
50
|
+
joinRadius: number;
|
|
51
|
+
pinned: "end" | "start" | undefined;
|
|
52
|
+
centre: number;
|
|
53
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type SheetDismissalDecision = readonly [requestId: number, allowed: boolean];
|
|
2
|
+
export type SheetDismissalResult = 'allowed' | 'denied' | 'cancelled';
|
|
3
|
+
export interface SheetDismissalAttempt {
|
|
4
|
+
result: Promise<SheetDismissalResult>;
|
|
5
|
+
cancel: () => void;
|
|
6
|
+
}
|
|
7
|
+
export type SheetDismissalRequest = () => SheetDismissalAttempt;
|
|
8
|
+
export type SheetDismissalLifecycle = {
|
|
9
|
+
phase: 'begin';
|
|
10
|
+
interactive: boolean;
|
|
11
|
+
} | {
|
|
12
|
+
phase: 'interaction';
|
|
13
|
+
cancelled: boolean;
|
|
14
|
+
} | {
|
|
15
|
+
phase: 'cancelled';
|
|
16
|
+
};
|
|
17
|
+
export type SheetDismissalObserver = (event: SheetDismissalLifecycle) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@file:OptIn(androidx.compose.ui.ExperimentalComposeUiApi::class, androidx.compose.ui.InternalComposeUiApi::class, androidx.compose.ui.text.ExperimentalTextApi::class, kotlin.js.ExperimentalJsExport::class,
|
|
1
|
+
@file:OptIn(androidx.compose.ui.ExperimentalComposeUiApi::class, androidx.compose.ui.InternalComposeUiApi::class, androidx.compose.ui.text.ExperimentalTextApi::class, kotlin.js.ExperimentalJsExport::class, org.jetbrains.skiko.InternalSkikoApi::class)
|
|
2
2
|
|
|
3
3
|
import androidx.compose.foundation.LocalPlatformMagnifierFactory
|
|
4
4
|
import androidx.compose.runtime.Composable
|
package/kotlin/README.md
CHANGED
|
@@ -72,3 +72,9 @@ The eager Vite entry must remain byte-identical. Compose dispatch runs in a
|
|
|
72
72
|
browser worker with no document, after official Skiko initializes. This proves
|
|
73
73
|
runtime behavior, with no Compose UI or Android pixel grade. UI fixtures still
|
|
74
74
|
use the paired Compose oracle.
|
|
75
|
+
|
|
76
|
+
The npm package publishes the `*Sources/` directories, `tools/` and
|
|
77
|
+
`toolchain.json` required by client compilation, plus this documentation and
|
|
78
|
+
the fork licenses and notices. `fork/` patches, pins and producer scripts,
|
|
79
|
+
and development fixtures remain in private Git. The package smoke check rejects
|
|
80
|
+
these build inputs in actual npm payloads, including a supplied tarball.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "peachsim",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1653",
|
|
4
4
|
"description": "Vite and Metro plugins, testing drivers, and SDK exports for peach.",
|
|
5
5
|
"author": "Tamagui LLC",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -313,9 +313,26 @@
|
|
|
313
313
|
"install.mjs",
|
|
314
314
|
"install.sh",
|
|
315
315
|
"dist-lib/",
|
|
316
|
+
"dist-types/",
|
|
317
|
+
"runtime-companion.json",
|
|
316
318
|
"src/",
|
|
317
319
|
"cli/",
|
|
318
|
-
"kotlin/",
|
|
320
|
+
"kotlin/AndroidViewSources/",
|
|
321
|
+
"kotlin/AppSources/",
|
|
322
|
+
"kotlin/CompilerSources/",
|
|
323
|
+
"kotlin/ComposeSources/",
|
|
324
|
+
"kotlin/ExpoComposeSources/",
|
|
325
|
+
"kotlin/ExpoSources/",
|
|
326
|
+
"kotlin/JniPlatformSources/",
|
|
327
|
+
"kotlin/JniSources/",
|
|
328
|
+
"kotlin/JniTransportSources/",
|
|
329
|
+
"kotlin/Sources/",
|
|
330
|
+
"kotlin/tools/",
|
|
331
|
+
"kotlin/toolchain.json",
|
|
332
|
+
"kotlin/README.md",
|
|
333
|
+
"kotlin/fork/LICENSE",
|
|
334
|
+
"kotlin/fork/SKIA_LICENSE",
|
|
335
|
+
"kotlin/fork/NOTICE",
|
|
319
336
|
"skills/",
|
|
320
337
|
"scripts/dev-server-scanner.ts",
|
|
321
338
|
"scripts/optional-demo-registry.ts",
|
|
@@ -374,5 +391,8 @@
|
|
|
374
391
|
"typescript": "7.1.0-beta",
|
|
375
392
|
"vite": "8.3.3",
|
|
376
393
|
"yaml": "^2.8.3"
|
|
394
|
+
},
|
|
395
|
+
"imports": {
|
|
396
|
+
"#peach-cli-contract/*": "./dist-types/packages/peach-engine/src/*.d.ts"
|
|
377
397
|
}
|
|
378
398
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"abi":1,"sha256":"d58f0fedc3c0065faaafcf578781567b6cdac88e5c062a8354111d37fdf3c465","file":"node/cli-d58f0fedc3c0065faaafcf578781567b6cdac88e5c062a8354111d37fdf3c465.cjs"}
|
package/skills/contrast/SKILL.md
CHANGED
|
@@ -60,6 +60,7 @@ automation, inspecting the render tree, and managing sims.
|
|
|
60
60
|
| `peach close` | close a connected sim |
|
|
61
61
|
| `peach setup` | configure optional local conveniences |
|
|
62
62
|
| `peach doctor` | check what of an app Peach runs |
|
|
63
|
+
| `peach coverage` | scan repository source for mapped APIs and unknown reach |
|
|
63
64
|
| `peach project-report` | print local project and toolchain metadata |
|
|
64
65
|
| `peach support` | ask for help, report a problem, and read our replies |
|
|
65
66
|
| `peach desktop` | launch or install the desktop companion |
|
|
@@ -60,6 +60,8 @@ export interface SfSymbolImageDrawing {
|
|
|
60
60
|
referencePointSize: number
|
|
61
61
|
basePointSize: number
|
|
62
62
|
baselineOffsetUnrounded: number
|
|
63
|
+
// coreui's glyph cap height at basePointSize, before scale rounding
|
|
64
|
+
capHeightUnrounded: number
|
|
63
65
|
referenceCanvasSize: readonly [number, number]
|
|
64
66
|
insets: readonly [number, number, number, number]
|
|
65
67
|
layers: readonly { d: string; opacity: number; eraser: boolean; threshold?: number }[]
|
|
@@ -115,6 +117,25 @@ export function sfSymbolImageDimensions(
|
|
|
115
117
|
}
|
|
116
118
|
}
|
|
117
119
|
|
|
120
|
+
// uiimage's baseline above the image bottom and its cap height, in device
|
|
121
|
+
// pixels: each glyph metric rounds at the display scale, and the baseline
|
|
122
|
+
// rides on the bottom bearing
|
|
123
|
+
// (docs/ios-framework-oracle/sf-symbol-image-alignment-metrics-and-weight-scale-boundary-uikitcore-coreui.md)
|
|
124
|
+
export function sfSymbolImageAlignment(
|
|
125
|
+
drawing: SfSymbolImageMetadata,
|
|
126
|
+
pointSize: number,
|
|
127
|
+
scale: number,
|
|
128
|
+
) {
|
|
129
|
+
const dimensions = sfSymbolImageDimensions(drawing, pointSize, scale)
|
|
130
|
+
const round = (value: number) =>
|
|
131
|
+
Math.round((value * pointSize * scale) / drawing.basePointSize)
|
|
132
|
+
return {
|
|
133
|
+
...dimensions,
|
|
134
|
+
baseline: round(drawing.baselineOffsetUnrounded) + dimensions.insets[3],
|
|
135
|
+
capHeight: round(drawing.capHeightUnrounded),
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
118
139
|
// roundtrip Float64 decimal coordinates with shared svg verb programs.
|
|
119
140
|
export interface SfSymbolPathEncoding {
|
|
120
141
|
format: 'float64-table'
|
|
@@ -5,6 +5,8 @@ import { isRecord } from './is-record'
|
|
|
5
5
|
// WebSocket routes) validates its request bodies here rather than growing a
|
|
6
6
|
// second reader for the same shapes.
|
|
7
7
|
import type {
|
|
8
|
+
DiagnosticsOptions,
|
|
9
|
+
DiagnosticsResult,
|
|
8
10
|
ResetOptions,
|
|
9
11
|
SemanticWaitOptions,
|
|
10
12
|
SimSemanticQuery,
|
|
@@ -343,6 +345,88 @@ export function findInvalidPointerSequence(
|
|
|
343
345
|
}
|
|
344
346
|
}
|
|
345
347
|
|
|
348
|
+
function diagnosticsChannels(value: unknown, path: string): string[] {
|
|
349
|
+
if (!Array.isArray(value)) validationFailure(path, 'must be a list of channel names')
|
|
350
|
+
return value.map((channel) => stringValue(channel, path))
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
export function parseDiagnosticsResult(value: unknown): DiagnosticsResult {
|
|
354
|
+
if (
|
|
355
|
+
!isRecord(value) ||
|
|
356
|
+
!Array.isArray(value.channels) ||
|
|
357
|
+
!value.channels.every((channel) => typeof channel === 'string') ||
|
|
358
|
+
!Array.isArray(value.availableChannels) ||
|
|
359
|
+
!value.availableChannels.every((channel) => typeof channel === 'string') ||
|
|
360
|
+
!Array.isArray(value.events)
|
|
361
|
+
) {
|
|
362
|
+
validationFailure(
|
|
363
|
+
'remote diagnostics',
|
|
364
|
+
'returned an incompatible native host response',
|
|
365
|
+
)
|
|
366
|
+
}
|
|
367
|
+
return {
|
|
368
|
+
channels: value.channels,
|
|
369
|
+
availableChannels: value.availableChannels,
|
|
370
|
+
runtime: value.runtime,
|
|
371
|
+
found: value.found,
|
|
372
|
+
events: value.events,
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
export function parseDiagnosticsOptions(value: unknown): DiagnosticsOptions {
|
|
377
|
+
const options = recordValue(value, 'diagnostics')
|
|
378
|
+
const channels =
|
|
379
|
+
options.channels === undefined
|
|
380
|
+
? undefined
|
|
381
|
+
: diagnosticsChannels(options.channels, 'diagnostics.channels')
|
|
382
|
+
let channelControl: DiagnosticsOptions['channelControl']
|
|
383
|
+
if (options.channelControl !== undefined) {
|
|
384
|
+
if (channels !== undefined) {
|
|
385
|
+
validationFailure('diagnostics.channelControl', 'cannot be combined with channels')
|
|
386
|
+
}
|
|
387
|
+
const control = recordValue(options.channelControl, 'diagnostics.channelControl')
|
|
388
|
+
const action = control.action
|
|
389
|
+
if (action !== 'enable' && action !== 'disable' && action !== 'toggle') {
|
|
390
|
+
validationFailure(
|
|
391
|
+
'diagnostics.channelControl.action',
|
|
392
|
+
'must be enable, disable, or toggle',
|
|
393
|
+
)
|
|
394
|
+
}
|
|
395
|
+
const selected = diagnosticsChannels(
|
|
396
|
+
control.channels,
|
|
397
|
+
'diagnostics.channelControl.channels',
|
|
398
|
+
)
|
|
399
|
+
if (action === 'toggle' && (selected.length !== 1 || selected[0] === 'all')) {
|
|
400
|
+
validationFailure('diagnostics.channelControl', 'toggle requires one channel')
|
|
401
|
+
}
|
|
402
|
+
channelControl = { action, channels: selected }
|
|
403
|
+
}
|
|
404
|
+
const find = options.find
|
|
405
|
+
if (
|
|
406
|
+
find !== undefined &&
|
|
407
|
+
find !== 'sheets' &&
|
|
408
|
+
find !== 'portals' &&
|
|
409
|
+
find !== 'boundaries'
|
|
410
|
+
) {
|
|
411
|
+
validationFailure('diagnostics.find', 'must be sheets, portals, or boundaries')
|
|
412
|
+
}
|
|
413
|
+
return {
|
|
414
|
+
...(channels === undefined ? {} : { channels }),
|
|
415
|
+
...(channelControl === undefined ? {} : { channelControl }),
|
|
416
|
+
...(find === undefined ? {} : { find }),
|
|
417
|
+
...(options.recentChannel === undefined
|
|
418
|
+
? {}
|
|
419
|
+
: {
|
|
420
|
+
recentChannel: stringValue(options.recentChannel, 'diagnostics.recentChannel'),
|
|
421
|
+
}),
|
|
422
|
+
...(options.recentLimit === undefined
|
|
423
|
+
? {}
|
|
424
|
+
: {
|
|
425
|
+
recentLimit: numberValue(options.recentLimit, 'diagnostics.recentLimit'),
|
|
426
|
+
}),
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
|
|
346
430
|
export function parseStateOptions(value: unknown): SimStateOptions {
|
|
347
431
|
const input = recordValue(value, 'state')
|
|
348
432
|
const route = optionalBoolean(input, 'route', 'state')
|
package/src/bridge-contract.ts
CHANGED
|
@@ -437,9 +437,15 @@ export interface SemanticWaitResult {
|
|
|
437
437
|
// ---------------------------------------------------------------------------
|
|
438
438
|
|
|
439
439
|
export interface DiagnosticsOptions {
|
|
440
|
-
// debug
|
|
441
|
-
//
|
|
440
|
+
// debug channel selection. omitted leaves recording as it is; replacement
|
|
441
|
+
// with an empty list stops recording.
|
|
442
442
|
channels?: readonly string[]
|
|
443
|
+
// controls update the tenant's selection atomically instead of replacing it.
|
|
444
|
+
// enable/disable accept 'all' or an empty list for every native channel.
|
|
445
|
+
channelControl?: {
|
|
446
|
+
action: 'enable' | 'disable' | 'toggle'
|
|
447
|
+
channels: readonly string[]
|
|
448
|
+
}
|
|
443
449
|
find?: 'sheets' | 'portals' | 'boundaries'
|
|
444
450
|
recentChannel?: string
|
|
445
451
|
recentLimit?: number
|
|
@@ -447,8 +453,9 @@ export interface DiagnosticsOptions {
|
|
|
447
453
|
|
|
448
454
|
export interface DiagnosticsResult {
|
|
449
455
|
channels: string[]
|
|
456
|
+
availableChannels: string[]
|
|
450
457
|
runtime: unknown
|
|
451
|
-
found: unknown
|
|
458
|
+
found: unknown
|
|
452
459
|
events: unknown[]
|
|
453
460
|
}
|
|
454
461
|
|
|
@@ -657,3 +664,28 @@ export interface LocationResult {
|
|
|
657
664
|
fix?: LocationFix
|
|
658
665
|
error?: string
|
|
659
666
|
}
|
|
667
|
+
|
|
668
|
+
// commands that change what a sim shows or runs must respect the cli lease.
|
|
669
|
+
// observational/lifecycle commands pass through the host without taking or
|
|
670
|
+
// checking one so cleanup never gets stuck behind a stale cli owner.
|
|
671
|
+
export const WRITE_COMMAND_TYPES: ReadonlySet<string> = new Set([
|
|
672
|
+
'tap',
|
|
673
|
+
'keyboard',
|
|
674
|
+
'longPress',
|
|
675
|
+
'perform',
|
|
676
|
+
'reset',
|
|
677
|
+
'camera',
|
|
678
|
+
])
|
|
679
|
+
|
|
680
|
+
// `call` and `evaluate` are mostly queries, so they opt into the lease with
|
|
681
|
+
// acquireLock=true when they mutate (a reload, a storage clear).
|
|
682
|
+
export function commandWritesSim(msg: {
|
|
683
|
+
type?: unknown
|
|
684
|
+
acquireLock?: unknown
|
|
685
|
+
readOnly?: unknown
|
|
686
|
+
}): boolean {
|
|
687
|
+
if (typeof msg.type !== 'string') return false
|
|
688
|
+
if (msg.acquireLock === true) return true
|
|
689
|
+
if (msg.readOnly === true) return false
|
|
690
|
+
return WRITE_COMMAND_TYPES.has(msg.type)
|
|
691
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const DRIVER_AUTOPLAY_POLICY = '--autoplay-policy=no-user-gesture-required'
|
package/src/bundle-channel.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// publish the plain OTA bundle for Peach without changing the phone's bytecode.
|
|
2
2
|
import { createHash } from 'node:crypto'
|
|
3
3
|
import { Script } from 'node:vm'
|
|
4
|
-
import { terminateProcessGroup } from './process-group'
|
|
5
4
|
import { isLoopbackHost } from './backend-origin'
|
|
6
5
|
import { insertExpoKotlinFooter } from './expoKotlinContract'
|
|
7
6
|
import { insertExpoSwiftFooter } from './expoSwiftContract'
|
|
8
7
|
import { insertNitroFooter } from './nitroContract'
|
|
8
|
+
import { terminateProcessGroup } from './process-group'
|
|
9
9
|
|
|
10
10
|
const digest = (bytes) => createHash('sha256').update(bytes).digest('hex')
|
|
11
11
|
const segment = /^[a-zA-Z0-9._-]+$/
|
|
@@ -286,7 +286,8 @@ export async function publishBundleChannel(release, { put, fetchObject = fetch }
|
|
|
286
286
|
// peach boots an app from the dev server's bundle: it carries the module graph
|
|
287
287
|
// peach maps native seams by, which a release build erases. snapshot each
|
|
288
288
|
// platform's bundle from a running dev server and package the files its
|
|
289
|
-
// assets register, with the app's local Expo native modules for that platform
|
|
289
|
+
// assets register, with the app's local Expo native modules for that platform
|
|
290
|
+
// and, on ios, one executable of its installed Nitro providers.
|
|
290
291
|
export async function snapshotDevServerBundles(
|
|
291
292
|
origin,
|
|
292
293
|
projectRoot,
|
|
@@ -343,6 +344,7 @@ export async function snapshotDevServerBundles(
|
|
|
343
344
|
expoSwift: await (
|
|
344
345
|
await import('./expo-swift-bundle')
|
|
345
346
|
).buildExpoSwiftBundle(projectRoot),
|
|
347
|
+
nitro: await (await import('./nitro-bundle')).buildNitroBundle(projectRoot),
|
|
346
348
|
}
|
|
347
349
|
: {
|
|
348
350
|
expoKotlin: await (
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto'
|
|
2
|
+
import { readFileSync } from 'node:fs'
|
|
3
|
+
import { createRequire } from 'node:module'
|
|
4
|
+
import { join } from 'node:path'
|
|
5
|
+
import companionIdentity from '../runtime-companion.json' with { type: 'json' }
|
|
6
|
+
import {
|
|
7
|
+
resolveActiveRuntimeRoot,
|
|
8
|
+
resolveDevCheckoutRuntimeAssetRoot,
|
|
9
|
+
} from './runtime-assets'
|
|
10
|
+
import type * as CliRuntime from '#peach-cli-contract/cli-companion'
|
|
11
|
+
|
|
12
|
+
export const CLI_COMPANION_ABI = 1
|
|
13
|
+
|
|
14
|
+
export function cliCompanionPath(): string {
|
|
15
|
+
return `node/cli-${companionIdentity.sha256}.cjs`
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function verifyCliCompanion(root: string): void {
|
|
19
|
+
const file = join(root, cliCompanionPath())
|
|
20
|
+
let bytes: Buffer
|
|
21
|
+
try {
|
|
22
|
+
bytes = readFileSync(file)
|
|
23
|
+
} catch (cause) {
|
|
24
|
+
throw new Error(
|
|
25
|
+
'Peach runtime is missing the companion required by this CLI; run `peach runtime install`',
|
|
26
|
+
{ cause },
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
const hash = createHash('sha256').update(bytes).digest('hex')
|
|
30
|
+
if (hash !== companionIdentity.sha256) {
|
|
31
|
+
throw new Error(
|
|
32
|
+
'Peach runtime companion does not match this CLI; run `peach runtime install`',
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
let loaded: { root: string; runtime: typeof CliRuntime } | undefined
|
|
38
|
+
|
|
39
|
+
// select once per runtime, verify before evaluation, and retain the real functions
|
|
40
|
+
// so host serializers receive their implementation rather than a forwarding closure.
|
|
41
|
+
export function getCliRuntime(): typeof CliRuntime {
|
|
42
|
+
if (loaded) return loaded.runtime
|
|
43
|
+
const root = resolveDevCheckoutRuntimeAssetRoot() ?? resolveActiveRuntimeRoot()
|
|
44
|
+
if (!root) throw new Error('No Peach runtime installed; run `peach runtime install`')
|
|
45
|
+
verifyCliCompanion(root)
|
|
46
|
+
const require = createRequire(import.meta.url)
|
|
47
|
+
const runtime: typeof CliRuntime = require(join(root, cliCompanionPath()))
|
|
48
|
+
if (runtime.cliCompanionAbi !== CLI_COMPANION_ABI) {
|
|
49
|
+
throw new Error(
|
|
50
|
+
'Incompatible Peach runtime companion ABI; run `peach runtime install`',
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
loaded = { root, runtime }
|
|
54
|
+
return runtime
|
|
55
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// the text an automatic crash report's signature hashes, shared by the app's
|
|
2
|
+
// red screen and the CLI. it keeps the error kind and the message's words and
|
|
3
|
+
// blanks everything that varies between occurrences of one crash (paths and
|
|
4
|
+
// URLs, quoted values, numbers, hex ids), and leaves stacks out entirely, so
|
|
5
|
+
// one crash dedupes onto one report whatever its frames, directories or data.
|
|
6
|
+
export function crashFingerprint(
|
|
7
|
+
source: 'app' | 'cli',
|
|
8
|
+
kind: string,
|
|
9
|
+
message: string,
|
|
10
|
+
): string {
|
|
11
|
+
let fuzzy = message.toLowerCase()
|
|
12
|
+
// redacted locations nest (<v1/users/<n>/>); collapse them from the inside out
|
|
13
|
+
for (let previous = ''; previous !== fuzzy; ) {
|
|
14
|
+
previous = fuzzy
|
|
15
|
+
fuzzy = fuzzy.replace(/<[^<>]*>/g, '\u0000')
|
|
16
|
+
}
|
|
17
|
+
fuzzy = fuzzy
|
|
18
|
+
.replace(/https?:\/\/\S+/g, '\u0000')
|
|
19
|
+
.replace(/(["'`])[^"'`]*\1/g, "''")
|
|
20
|
+
.replace(/\b0x[0-9a-f]+\b|\b[0-9a-f]{8,}\b/g, '#')
|
|
21
|
+
.replace(/\d+/g, '#')
|
|
22
|
+
.replace(/\u0000/g, '<>')
|
|
23
|
+
.replace(/\s+/g, ' ')
|
|
24
|
+
.trim()
|
|
25
|
+
return `${source}\n${kind.trim()}\n${fuzzy}`
|
|
26
|
+
}
|