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
package/dist-lib/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! peach v0.1.
|
|
1
|
+
/*! peach v0.1.1653 | (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;
|
|
@@ -645,245 +645,6 @@ var init_replacement_module_handler = __esm({
|
|
|
645
645
|
}
|
|
646
646
|
});
|
|
647
647
|
|
|
648
|
-
// ../../node_modules/plist/lib/parse.js
|
|
649
|
-
var require_parse = __commonJS({
|
|
650
|
-
"../../node_modules/plist/lib/parse.js"(exports2) {
|
|
651
|
-
var { DOMParser } = require("@xmldom/xmldom");
|
|
652
|
-
exports2.parse = parse4;
|
|
653
|
-
var TEXT_NODE = 3;
|
|
654
|
-
var CDATA_NODE = 4;
|
|
655
|
-
var COMMENT_NODE = 8;
|
|
656
|
-
function shouldIgnoreNode(node) {
|
|
657
|
-
return node.nodeType === TEXT_NODE || node.nodeType === COMMENT_NODE || node.nodeType === CDATA_NODE;
|
|
658
|
-
}
|
|
659
|
-
function isEmptyNode(node) {
|
|
660
|
-
if (!node.childNodes || node.childNodes.length === 0) {
|
|
661
|
-
return true;
|
|
662
|
-
} else {
|
|
663
|
-
return false;
|
|
664
|
-
}
|
|
665
|
-
}
|
|
666
|
-
function invariant(test, message) {
|
|
667
|
-
if (!test) {
|
|
668
|
-
throw new Error(message);
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
function parse4(xml) {
|
|
672
|
-
var doc = new DOMParser().parseFromString(xml, "text/xml");
|
|
673
|
-
invariant(
|
|
674
|
-
doc.documentElement.nodeName === "plist",
|
|
675
|
-
"malformed document. First element should be <plist>"
|
|
676
|
-
);
|
|
677
|
-
var plist3 = parsePlistXML(doc.documentElement);
|
|
678
|
-
if (plist3.length == 1) plist3 = plist3[0];
|
|
679
|
-
return plist3;
|
|
680
|
-
}
|
|
681
|
-
function parsePlistXML(node) {
|
|
682
|
-
var i, new_obj, key, val, new_arr, res, counter, type;
|
|
683
|
-
if (!node) return null;
|
|
684
|
-
if (node.nodeName === "plist") {
|
|
685
|
-
new_arr = [];
|
|
686
|
-
if (isEmptyNode(node)) {
|
|
687
|
-
return new_arr;
|
|
688
|
-
}
|
|
689
|
-
for (i = 0; i < node.childNodes.length; i++) {
|
|
690
|
-
if (!shouldIgnoreNode(node.childNodes[i])) {
|
|
691
|
-
new_arr.push(parsePlistXML(node.childNodes[i]));
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
return new_arr;
|
|
695
|
-
} else if (node.nodeName === "dict") {
|
|
696
|
-
new_obj = {};
|
|
697
|
-
key = null;
|
|
698
|
-
counter = 0;
|
|
699
|
-
if (isEmptyNode(node)) {
|
|
700
|
-
return new_obj;
|
|
701
|
-
}
|
|
702
|
-
for (i = 0; i < node.childNodes.length; i++) {
|
|
703
|
-
if (shouldIgnoreNode(node.childNodes[i])) continue;
|
|
704
|
-
if (counter % 2 === 0) {
|
|
705
|
-
invariant(
|
|
706
|
-
node.childNodes[i].nodeName === "key",
|
|
707
|
-
"Missing key while parsing <dict/>."
|
|
708
|
-
);
|
|
709
|
-
key = parsePlistXML(node.childNodes[i]);
|
|
710
|
-
} else {
|
|
711
|
-
invariant(
|
|
712
|
-
node.childNodes[i].nodeName !== "key",
|
|
713
|
-
'Unexpected key "' + parsePlistXML(node.childNodes[i]) + '" while parsing <dict/>.'
|
|
714
|
-
);
|
|
715
|
-
new_obj[key] = parsePlistXML(node.childNodes[i]);
|
|
716
|
-
}
|
|
717
|
-
counter += 1;
|
|
718
|
-
}
|
|
719
|
-
if (counter % 2 === 1) {
|
|
720
|
-
new_obj[key] = "";
|
|
721
|
-
}
|
|
722
|
-
return new_obj;
|
|
723
|
-
} else if (node.nodeName === "array") {
|
|
724
|
-
new_arr = [];
|
|
725
|
-
if (isEmptyNode(node)) {
|
|
726
|
-
return new_arr;
|
|
727
|
-
}
|
|
728
|
-
for (i = 0; i < node.childNodes.length; i++) {
|
|
729
|
-
if (!shouldIgnoreNode(node.childNodes[i])) {
|
|
730
|
-
res = parsePlistXML(node.childNodes[i]);
|
|
731
|
-
if (null != res) new_arr.push(res);
|
|
732
|
-
}
|
|
733
|
-
}
|
|
734
|
-
return new_arr;
|
|
735
|
-
} else if (node.nodeName === "#text") {
|
|
736
|
-
} else if (node.nodeName === "key") {
|
|
737
|
-
if (isEmptyNode(node)) {
|
|
738
|
-
return "";
|
|
739
|
-
}
|
|
740
|
-
invariant(
|
|
741
|
-
node.childNodes[0].nodeValue !== "__proto__",
|
|
742
|
-
"__proto__ keys can lead to prototype pollution. More details on CVE-2022-22912"
|
|
743
|
-
);
|
|
744
|
-
return node.childNodes[0].nodeValue;
|
|
745
|
-
} else if (node.nodeName === "string") {
|
|
746
|
-
res = "";
|
|
747
|
-
if (isEmptyNode(node)) {
|
|
748
|
-
return res;
|
|
749
|
-
}
|
|
750
|
-
for (i = 0; i < node.childNodes.length; i++) {
|
|
751
|
-
var type = node.childNodes[i].nodeType;
|
|
752
|
-
if (type === TEXT_NODE || type === CDATA_NODE) {
|
|
753
|
-
res += node.childNodes[i].nodeValue;
|
|
754
|
-
}
|
|
755
|
-
}
|
|
756
|
-
return res;
|
|
757
|
-
} else if (node.nodeName === "integer") {
|
|
758
|
-
invariant(!isEmptyNode(node), 'Cannot parse "" as integer.');
|
|
759
|
-
return parseInt(node.childNodes[0].nodeValue, 10);
|
|
760
|
-
} else if (node.nodeName === "real") {
|
|
761
|
-
invariant(!isEmptyNode(node), 'Cannot parse "" as real.');
|
|
762
|
-
res = "";
|
|
763
|
-
for (i = 0; i < node.childNodes.length; i++) {
|
|
764
|
-
if (node.childNodes[i].nodeType === TEXT_NODE) {
|
|
765
|
-
res += node.childNodes[i].nodeValue;
|
|
766
|
-
}
|
|
767
|
-
}
|
|
768
|
-
return parseFloat(res);
|
|
769
|
-
} else if (node.nodeName === "data") {
|
|
770
|
-
res = "";
|
|
771
|
-
if (isEmptyNode(node)) {
|
|
772
|
-
return Buffer.from(res, "base64");
|
|
773
|
-
}
|
|
774
|
-
for (i = 0; i < node.childNodes.length; i++) {
|
|
775
|
-
if (node.childNodes[i].nodeType === TEXT_NODE) {
|
|
776
|
-
res += node.childNodes[i].nodeValue.replace(/\s+/g, "");
|
|
777
|
-
}
|
|
778
|
-
}
|
|
779
|
-
return Buffer.from(res, "base64");
|
|
780
|
-
} else if (node.nodeName === "date") {
|
|
781
|
-
invariant(!isEmptyNode(node), 'Cannot parse "" as Date.');
|
|
782
|
-
return new Date(node.childNodes[0].nodeValue);
|
|
783
|
-
} else if (node.nodeName === "null") {
|
|
784
|
-
return null;
|
|
785
|
-
} else if (node.nodeName === "true") {
|
|
786
|
-
return true;
|
|
787
|
-
} else if (node.nodeName === "false") {
|
|
788
|
-
return false;
|
|
789
|
-
} else {
|
|
790
|
-
throw new Error("Invalid PLIST tag " + node.nodeName);
|
|
791
|
-
}
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
});
|
|
795
|
-
|
|
796
|
-
// ../../node_modules/plist/lib/build.js
|
|
797
|
-
var require_build = __commonJS({
|
|
798
|
-
"../../node_modules/plist/lib/build.js"(exports2) {
|
|
799
|
-
var base64 = require("base64-js");
|
|
800
|
-
var xmlbuilder = require("xmlbuilder");
|
|
801
|
-
exports2.build = build;
|
|
802
|
-
function ISODateString(d) {
|
|
803
|
-
function pad(n) {
|
|
804
|
-
return n < 10 ? "0" + n : n;
|
|
805
|
-
}
|
|
806
|
-
return d.getUTCFullYear() + "-" + pad(d.getUTCMonth() + 1) + "-" + pad(d.getUTCDate()) + "T" + pad(d.getUTCHours()) + ":" + pad(d.getUTCMinutes()) + ":" + pad(d.getUTCSeconds()) + "Z";
|
|
807
|
-
}
|
|
808
|
-
var toString = Object.prototype.toString;
|
|
809
|
-
function type(obj) {
|
|
810
|
-
var m = toString.call(obj).match(/\[object (.*)\]/);
|
|
811
|
-
return m ? m[1] : m;
|
|
812
|
-
}
|
|
813
|
-
function build(obj, opts) {
|
|
814
|
-
var XMLHDR = {
|
|
815
|
-
version: "1.0",
|
|
816
|
-
encoding: "UTF-8"
|
|
817
|
-
};
|
|
818
|
-
var XMLDTD = {
|
|
819
|
-
pubid: "-//Apple//DTD PLIST 1.0//EN",
|
|
820
|
-
sysid: "http://www.apple.com/DTDs/PropertyList-1.0.dtd"
|
|
821
|
-
};
|
|
822
|
-
var doc = xmlbuilder.create("plist");
|
|
823
|
-
doc.dec(XMLHDR.version, XMLHDR.encoding, XMLHDR.standalone);
|
|
824
|
-
doc.dtd(XMLDTD.pubid, XMLDTD.sysid);
|
|
825
|
-
doc.att("version", "1.0");
|
|
826
|
-
walk_obj(obj, doc);
|
|
827
|
-
if (!opts) opts = {};
|
|
828
|
-
opts.pretty = opts.pretty !== false;
|
|
829
|
-
return doc.end(opts);
|
|
830
|
-
}
|
|
831
|
-
function walk_obj(next, next_child) {
|
|
832
|
-
var tag_type, i, prop;
|
|
833
|
-
var name2 = type(next);
|
|
834
|
-
if ("Undefined" == name2) {
|
|
835
|
-
return;
|
|
836
|
-
} else if (Array.isArray(next)) {
|
|
837
|
-
next_child = next_child.ele("array");
|
|
838
|
-
for (i = 0; i < next.length; i++) {
|
|
839
|
-
walk_obj(next[i], next_child);
|
|
840
|
-
}
|
|
841
|
-
} else if (Buffer.isBuffer(next)) {
|
|
842
|
-
next_child.ele("data").raw(next.toString("base64"));
|
|
843
|
-
} else if ("Object" == name2) {
|
|
844
|
-
next_child = next_child.ele("dict");
|
|
845
|
-
for (prop in next) {
|
|
846
|
-
if (next.hasOwnProperty(prop)) {
|
|
847
|
-
next_child.ele("key").txt(prop);
|
|
848
|
-
walk_obj(next[prop], next_child);
|
|
849
|
-
}
|
|
850
|
-
}
|
|
851
|
-
} else if ("Number" == name2) {
|
|
852
|
-
tag_type = next % 1 === 0 ? "integer" : "real";
|
|
853
|
-
next_child.ele(tag_type).txt(next.toString());
|
|
854
|
-
} else if ("BigInt" == name2) {
|
|
855
|
-
next_child.ele("integer").txt(next);
|
|
856
|
-
} else if ("Date" == name2) {
|
|
857
|
-
next_child.ele("date").txt(ISODateString(new Date(next)));
|
|
858
|
-
} else if ("Boolean" == name2) {
|
|
859
|
-
next_child.ele(next ? "true" : "false");
|
|
860
|
-
} else if ("String" == name2) {
|
|
861
|
-
next_child.ele("string").txt(next);
|
|
862
|
-
} else if ("ArrayBuffer" == name2) {
|
|
863
|
-
next_child.ele("data").raw(base64.fromByteArray(next));
|
|
864
|
-
} else if (next && next.buffer && "ArrayBuffer" == type(next.buffer)) {
|
|
865
|
-
next_child.ele("data").raw(base64.fromByteArray(new Uint8Array(next.buffer), next_child));
|
|
866
|
-
} else if ("Null" === name2) {
|
|
867
|
-
next_child.ele("null").txt("");
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
});
|
|
872
|
-
|
|
873
|
-
// ../../node_modules/plist/index.js
|
|
874
|
-
var require_plist = __commonJS({
|
|
875
|
-
"../../node_modules/plist/index.js"(exports2) {
|
|
876
|
-
var parserFunctions = require_parse();
|
|
877
|
-
Object.keys(parserFunctions).forEach(function(k) {
|
|
878
|
-
exports2[k] = parserFunctions[k];
|
|
879
|
-
});
|
|
880
|
-
var builderFunctions = require_build();
|
|
881
|
-
Object.keys(builderFunctions).forEach(function(k) {
|
|
882
|
-
exports2[k] = builderFunctions[k];
|
|
883
|
-
});
|
|
884
|
-
}
|
|
885
|
-
});
|
|
886
|
-
|
|
887
648
|
// ../../node_modules/json5/lib/unicode.js
|
|
888
649
|
var require_unicode = __commonJS({
|
|
889
650
|
"../../node_modules/json5/lib/unicode.js"(exports2, module2) {
|
|
@@ -918,7 +679,7 @@ var require_util = __commonJS({
|
|
|
918
679
|
});
|
|
919
680
|
|
|
920
681
|
// ../../node_modules/json5/lib/parse.js
|
|
921
|
-
var
|
|
682
|
+
var require_parse = __commonJS({
|
|
922
683
|
"../../node_modules/json5/lib/parse.js"(exports2, module2) {
|
|
923
684
|
var util = require_util();
|
|
924
685
|
var source;
|
|
@@ -1986,7 +1747,7 @@ var require_stringify = __commonJS({
|
|
|
1986
1747
|
// ../../node_modules/json5/lib/index.js
|
|
1987
1748
|
var require_lib = __commonJS({
|
|
1988
1749
|
"../../node_modules/json5/lib/index.js"(exports2, module2) {
|
|
1989
|
-
var parse4 =
|
|
1750
|
+
var parse4 = require_parse();
|
|
1990
1751
|
var stringify4 = require_stringify();
|
|
1991
1752
|
var JSON53 = {
|
|
1992
1753
|
parse: parse4,
|
|
@@ -2013,6 +1774,258 @@ var init_version = __esm({
|
|
|
2013
1774
|
}
|
|
2014
1775
|
});
|
|
2015
1776
|
|
|
1777
|
+
// ../contrast-runtime-delivery/src/product.ts
|
|
1778
|
+
var init_product = __esm({
|
|
1779
|
+
"../contrast-runtime-delivery/src/product.ts"() {
|
|
1780
|
+
"use strict";
|
|
1781
|
+
init_version();
|
|
1782
|
+
}
|
|
1783
|
+
});
|
|
1784
|
+
|
|
1785
|
+
// ../contrast-runtime-delivery/src/index.ts
|
|
1786
|
+
var init_src = __esm({
|
|
1787
|
+
"../contrast-runtime-delivery/src/index.ts"() {
|
|
1788
|
+
"use strict";
|
|
1789
|
+
init_process_group();
|
|
1790
|
+
init_product();
|
|
1791
|
+
init_product();
|
|
1792
|
+
}
|
|
1793
|
+
});
|
|
1794
|
+
|
|
1795
|
+
// src/home-paths.ts
|
|
1796
|
+
function rnxHomeDir() {
|
|
1797
|
+
const override = process.env[PEACH_HOME_ENV];
|
|
1798
|
+
if (override && override.length > 0) return import_node_path8.default.resolve(override);
|
|
1799
|
+
return import_node_path8.default.join((0, import_node_os2.homedir)(), ".peach");
|
|
1800
|
+
}
|
|
1801
|
+
function runtimesDir() {
|
|
1802
|
+
return import_node_path8.default.join(rnxHomeDir(), "runtimes");
|
|
1803
|
+
}
|
|
1804
|
+
function runtimeDir(version) {
|
|
1805
|
+
return import_node_path8.default.join(runtimesDir(), version);
|
|
1806
|
+
}
|
|
1807
|
+
function activeRuntimeFile() {
|
|
1808
|
+
return import_node_path8.default.join(runtimesDir(), ACTIVE_RUNTIME_FILE);
|
|
1809
|
+
}
|
|
1810
|
+
function readActiveRuntime() {
|
|
1811
|
+
try {
|
|
1812
|
+
const value = import_node_fs8.default.readFileSync(activeRuntimeFile(), "utf8").trim();
|
|
1813
|
+
return value.length > 0 ? value : null;
|
|
1814
|
+
} catch {
|
|
1815
|
+
return null;
|
|
1816
|
+
}
|
|
1817
|
+
}
|
|
1818
|
+
var import_node_fs8, import_node_os2, import_node_path8, PEACH_HOME_ENV, ACTIVE_RUNTIME_FILE, DAEMON_LOCKFILE_MAX_BYTES;
|
|
1819
|
+
var init_home_paths = __esm({
|
|
1820
|
+
"src/home-paths.ts"() {
|
|
1821
|
+
"use strict";
|
|
1822
|
+
import_node_fs8 = __toESM(require("node:fs"), 1);
|
|
1823
|
+
import_node_os2 = require("node:os");
|
|
1824
|
+
import_node_path8 = __toESM(require("node:path"), 1);
|
|
1825
|
+
PEACH_HOME_ENV = "PEACH_HOME";
|
|
1826
|
+
ACTIVE_RUNTIME_FILE = "active";
|
|
1827
|
+
DAEMON_LOCKFILE_MAX_BYTES = 16 * 1024;
|
|
1828
|
+
}
|
|
1829
|
+
});
|
|
1830
|
+
|
|
1831
|
+
// src/runtime-assets.ts
|
|
1832
|
+
function findMonorepoRoot() {
|
|
1833
|
+
if (_monorepoRootCache !== void 0) return _monorepoRootCache;
|
|
1834
|
+
let dir = import_path2.default.dirname((0, import_url.fileURLToPath)(__sootsim_import_meta_url));
|
|
1835
|
+
for (let i = 0; i < 12 && dir !== import_path2.default.dirname(dir); i++) {
|
|
1836
|
+
if (import_fs2.default.existsSync(import_path2.default.join(dir, "packages/peach-engine/package.json")) && import_fs2.default.existsSync(import_path2.default.join(dir, "public/sootsim"))) {
|
|
1837
|
+
_monorepoRootCache = dir;
|
|
1838
|
+
return dir;
|
|
1839
|
+
}
|
|
1840
|
+
dir = import_path2.default.dirname(dir);
|
|
1841
|
+
}
|
|
1842
|
+
_monorepoRootCache = null;
|
|
1843
|
+
return null;
|
|
1844
|
+
}
|
|
1845
|
+
function resolveDevCheckoutRuntimeAssetRoot() {
|
|
1846
|
+
if (process.env.PEACH_HOME && readActiveRuntime()) return null;
|
|
1847
|
+
const root = findMonorepoRoot();
|
|
1848
|
+
if (!root) return null;
|
|
1849
|
+
return import_path2.default.join(root, "public/sootsim");
|
|
1850
|
+
}
|
|
1851
|
+
function resolveDevCheckoutRuntimeRoot() {
|
|
1852
|
+
const devBuild = resolveDevCheckoutRuntimeAssetRoot();
|
|
1853
|
+
if (!devBuild) return null;
|
|
1854
|
+
if (import_fs2.default.existsSync(import_path2.default.join(devBuild, "index.html")) && import_fs2.default.existsSync(import_path2.default.join(devBuild, "engine/index.html")) && import_fs2.default.existsSync(import_path2.default.join(devBuild, "engine-tenant/worker.js")) && import_fs2.default.existsSync(import_path2.default.join(devBuild, "engine-tenant/worker.prod.js"))) {
|
|
1855
|
+
return devBuild;
|
|
1856
|
+
}
|
|
1857
|
+
return null;
|
|
1858
|
+
}
|
|
1859
|
+
function resolveActiveRuntimeRoot() {
|
|
1860
|
+
const devRoot = resolveDevCheckoutRuntimeRoot();
|
|
1861
|
+
if (devRoot) return devRoot;
|
|
1862
|
+
const active = readActiveRuntime();
|
|
1863
|
+
if (!active) return null;
|
|
1864
|
+
const dir = runtimeDir(active);
|
|
1865
|
+
if (!import_fs2.default.existsSync(import_path2.default.join(dir, "index.html"))) return null;
|
|
1866
|
+
return dir;
|
|
1867
|
+
}
|
|
1868
|
+
function isRuntimeVersionHostname(hostname) {
|
|
1869
|
+
return hostname.toLowerCase().endsWith(RUNTIME_VERSION_HOSTNAME_SUFFIX);
|
|
1870
|
+
}
|
|
1871
|
+
function runtimeVersionFromHostname(hostname) {
|
|
1872
|
+
if (!isRuntimeVersionHostname(hostname)) return null;
|
|
1873
|
+
const labels = hostname.slice(0, -RUNTIME_VERSION_HOSTNAME_SUFFIX.length).split(".");
|
|
1874
|
+
if (labels.length === 0 || labels.some((label) => !/^[0-9a-f]{1,60}$/i.test(label))) {
|
|
1875
|
+
return null;
|
|
1876
|
+
}
|
|
1877
|
+
const encoded = labels.join("");
|
|
1878
|
+
if (encoded.length % 2 !== 0) return null;
|
|
1879
|
+
try {
|
|
1880
|
+
const version = Buffer.from(encoded, "hex").toString("utf8");
|
|
1881
|
+
return isValidRuntimeVersion(version) ? version : null;
|
|
1882
|
+
} catch {
|
|
1883
|
+
return null;
|
|
1884
|
+
}
|
|
1885
|
+
}
|
|
1886
|
+
function resolveInstalledRuntimeRoot(version) {
|
|
1887
|
+
const dir = runtimeDir(version);
|
|
1888
|
+
if (!import_fs2.default.existsSync(import_path2.default.join(dir, "index.html"))) return null;
|
|
1889
|
+
return dir;
|
|
1890
|
+
}
|
|
1891
|
+
function resolveRuntimeRootForHostname(hostname) {
|
|
1892
|
+
if (!isRuntimeVersionHostname(hostname)) return resolveActiveRuntimeRoot();
|
|
1893
|
+
const version = runtimeVersionFromHostname(hostname);
|
|
1894
|
+
return version ? resolveInstalledRuntimeRoot(version) : null;
|
|
1895
|
+
}
|
|
1896
|
+
function resolveRuntimeRootForRequestHost(host) {
|
|
1897
|
+
if (!host) return resolveActiveRuntimeRoot();
|
|
1898
|
+
try {
|
|
1899
|
+
return resolveRuntimeRootForHostname(new URL(`http://${host}`).hostname);
|
|
1900
|
+
} catch {
|
|
1901
|
+
return null;
|
|
1902
|
+
}
|
|
1903
|
+
}
|
|
1904
|
+
function isRootRuntimeAssetPath(pathname) {
|
|
1905
|
+
return ROOT_RUNTIME_PATHS.some((p) => pathname === p || pathname.startsWith(p));
|
|
1906
|
+
}
|
|
1907
|
+
function resolveRuntimeFilePath(runtimeRoot, pathname) {
|
|
1908
|
+
if (!pathname.startsWith("/")) return null;
|
|
1909
|
+
if (pathname.includes("\0") || pathname.includes("\\")) return null;
|
|
1910
|
+
for (const segment of pathname.split("/")) {
|
|
1911
|
+
if (segment === "..") return null;
|
|
1912
|
+
}
|
|
1913
|
+
const normalized = pathname.startsWith("/sootsim/") ? pathname.slice("/sootsim".length) : pathname;
|
|
1914
|
+
const fullPath = import_path2.default.resolve(runtimeRoot, normalized.replace(/^\/+/, ""));
|
|
1915
|
+
const rootWithSep = runtimeRoot.endsWith(import_path2.default.sep) ? runtimeRoot : runtimeRoot + import_path2.default.sep;
|
|
1916
|
+
if (!fullPath.startsWith(rootWithSep) && fullPath !== runtimeRoot) return null;
|
|
1917
|
+
if (!import_fs2.default.existsSync(fullPath) || !import_fs2.default.statSync(fullPath).isFile()) return null;
|
|
1918
|
+
return fullPath;
|
|
1919
|
+
}
|
|
1920
|
+
function serveRuntimeFile(req, res, fullPath) {
|
|
1921
|
+
const ext = import_path2.default.extname(fullPath);
|
|
1922
|
+
const stat = import_fs2.default.statSync(fullPath);
|
|
1923
|
+
const lastModified = stat.mtime.toUTCString();
|
|
1924
|
+
res.setHeader("content-type", MIME_TYPES[ext] || "application/octet-stream");
|
|
1925
|
+
if (/^canvaskit-graphite-pipelines-[0-9a-f]{8}\.bin$/.test(import_path2.default.basename(fullPath))) {
|
|
1926
|
+
res.setHeader("cache-control", "public, max-age=31536000, immutable");
|
|
1927
|
+
import_fs2.default.createReadStream(fullPath).pipe(res);
|
|
1928
|
+
return;
|
|
1929
|
+
}
|
|
1930
|
+
res.setHeader("cache-control", "no-cache");
|
|
1931
|
+
res.setHeader("last-modified", lastModified);
|
|
1932
|
+
if (req?.headers?.["if-modified-since"] === lastModified) {
|
|
1933
|
+
res.statusCode = 304;
|
|
1934
|
+
res.end();
|
|
1935
|
+
return;
|
|
1936
|
+
}
|
|
1937
|
+
sendFileWithRanges(req, res, fullPath, stat.size, {});
|
|
1938
|
+
}
|
|
1939
|
+
function sendFileWithRanges(req, res, filePath, total, headers) {
|
|
1940
|
+
const head = (req?.method || "GET").toUpperCase() === "HEAD";
|
|
1941
|
+
const range = /^bytes=(\d*)-(\d*)$/.exec(req?.headers?.range || "");
|
|
1942
|
+
const invalid = range && range[1] && range[2] && Number(range[2]) < Number(range[1]);
|
|
1943
|
+
if (range && (range[1] || range[2]) && !invalid) {
|
|
1944
|
+
const [, startRaw, endRaw] = range;
|
|
1945
|
+
const start = startRaw ? Number(startRaw) : Math.max(0, total - Number(endRaw));
|
|
1946
|
+
const end = startRaw && endRaw ? Math.min(Number(endRaw), total - 1) : total - 1;
|
|
1947
|
+
if (start > end || start >= total) {
|
|
1948
|
+
res.writeHead(416, { ...headers, "Content-Range": `bytes */${total}` });
|
|
1949
|
+
res.end();
|
|
1950
|
+
return;
|
|
1951
|
+
}
|
|
1952
|
+
res.writeHead(206, {
|
|
1953
|
+
...headers,
|
|
1954
|
+
"Content-Range": `bytes ${start}-${end}/${total}`,
|
|
1955
|
+
"Accept-Ranges": "bytes",
|
|
1956
|
+
"Content-Length": String(end - start + 1)
|
|
1957
|
+
});
|
|
1958
|
+
if (head) res.end();
|
|
1959
|
+
else streamFile(res, import_fs2.default.createReadStream(filePath, { start, end }));
|
|
1960
|
+
return;
|
|
1961
|
+
}
|
|
1962
|
+
res.writeHead(200, {
|
|
1963
|
+
...headers,
|
|
1964
|
+
"Accept-Ranges": "bytes",
|
|
1965
|
+
"Content-Length": String(total)
|
|
1966
|
+
});
|
|
1967
|
+
if (head || total === 0) res.end();
|
|
1968
|
+
else streamFile(res, import_fs2.default.createReadStream(filePath, { start: 0, end: total - 1 }));
|
|
1969
|
+
}
|
|
1970
|
+
function streamFile(res, stream) {
|
|
1971
|
+
stream.on("error", (error) => res.destroy(error));
|
|
1972
|
+
stream.pipe(res);
|
|
1973
|
+
}
|
|
1974
|
+
var import_fs2, import_path2, import_url, SOOTSIM_RUNTIME_MISSING_MESSAGE, _monorepoRootCache, MIME_TYPES, ROOT_RUNTIME_PATHS, RUNTIME_VERSION_HOSTNAME_SUFFIX;
|
|
1975
|
+
var init_runtime_assets = __esm({
|
|
1976
|
+
"src/runtime-assets.ts"() {
|
|
1977
|
+
"use strict";
|
|
1978
|
+
import_fs2 = __toESM(require("fs"), 1);
|
|
1979
|
+
import_path2 = __toESM(require("path"), 1);
|
|
1980
|
+
import_url = require("url");
|
|
1981
|
+
init_src();
|
|
1982
|
+
init_home_paths();
|
|
1983
|
+
SOOTSIM_RUNTIME_MISSING_MESSAGE = "[peach] no engine runtime installed. run `peach runtime install`";
|
|
1984
|
+
MIME_TYPES = {
|
|
1985
|
+
".js": "application/javascript",
|
|
1986
|
+
".mjs": "application/javascript",
|
|
1987
|
+
".css": "text/css",
|
|
1988
|
+
".html": "text/html",
|
|
1989
|
+
".wasm": "application/wasm",
|
|
1990
|
+
".json": "application/json",
|
|
1991
|
+
".jpg": "image/jpeg",
|
|
1992
|
+
".jpeg": "image/jpeg",
|
|
1993
|
+
".png": "image/png",
|
|
1994
|
+
".svg": "image/svg+xml",
|
|
1995
|
+
".webp": "image/webp",
|
|
1996
|
+
".glb": "model/gltf-binary",
|
|
1997
|
+
".ttf": "font/ttf",
|
|
1998
|
+
".otf": "font/otf",
|
|
1999
|
+
".woff": "font/woff",
|
|
2000
|
+
".woff2": "font/woff2",
|
|
2001
|
+
".mp3": "audio/mpeg",
|
|
2002
|
+
".wav": "audio/wav",
|
|
2003
|
+
".mp4": "video/mp4",
|
|
2004
|
+
".m4v": "video/mp4",
|
|
2005
|
+
".mov": "video/quicktime",
|
|
2006
|
+
".webm": "video/webm"
|
|
2007
|
+
};
|
|
2008
|
+
ROOT_RUNTIME_PATHS = [
|
|
2009
|
+
"/assets/",
|
|
2010
|
+
"/engine/",
|
|
2011
|
+
"/engine-tenant/",
|
|
2012
|
+
"/photos/",
|
|
2013
|
+
"/three-mode/",
|
|
2014
|
+
"/fonts/",
|
|
2015
|
+
"/icons/",
|
|
2016
|
+
"/sounds/",
|
|
2017
|
+
"/spike/",
|
|
2018
|
+
"/test-wallpaper.jpg",
|
|
2019
|
+
"/preview-sw.js",
|
|
2020
|
+
"/peach.svg",
|
|
2021
|
+
"/bedrock-sqlite.wasm",
|
|
2022
|
+
"/bedrock-sqlite.js",
|
|
2023
|
+
"/sootsim/"
|
|
2024
|
+
];
|
|
2025
|
+
RUNTIME_VERSION_HOSTNAME_SUFFIX = ".runtime.localhost";
|
|
2026
|
+
}
|
|
2027
|
+
});
|
|
2028
|
+
|
|
2016
2029
|
// src/nativeViewSourceContract.ts
|
|
2017
2030
|
function isNativeViewSource(value) {
|
|
2018
2031
|
if (!isRecord(value)) return false;
|
|
@@ -6027,34 +6040,6 @@ var import_fs3 = __toESM(require("fs"), 1);
|
|
|
6027
6040
|
var import_module = require("module");
|
|
6028
6041
|
var import_node_crypto3 = require("node:crypto");
|
|
6029
6042
|
var import_path3 = __toESM(require("path"), 1);
|
|
6030
|
-
|
|
6031
|
-
// ../peach-engine/src/platform/adapter.ts
|
|
6032
|
-
var IOS_ADAPTER = Object.freeze({
|
|
6033
|
-
id: "ios",
|
|
6034
|
-
displayName: "iOS",
|
|
6035
|
-
isIOS: true,
|
|
6036
|
-
isAndroid: false,
|
|
6037
|
-
select: (registry) => registry.ios
|
|
6038
|
-
});
|
|
6039
|
-
var ANDROID_ADAPTER = Object.freeze({
|
|
6040
|
-
id: "android",
|
|
6041
|
-
displayName: "Android",
|
|
6042
|
-
isIOS: false,
|
|
6043
|
-
isAndroid: true,
|
|
6044
|
-
select: (registry) => registry.android
|
|
6045
|
-
});
|
|
6046
|
-
var RUNTIME_PLATFORM_ADAPTERS = Object.freeze({
|
|
6047
|
-
ios: IOS_ADAPTER,
|
|
6048
|
-
android: ANDROID_ADAPTER
|
|
6049
|
-
});
|
|
6050
|
-
function isRuntimePlatform(value) {
|
|
6051
|
-
return value === "ios" || value === "android";
|
|
6052
|
-
}
|
|
6053
|
-
function getRuntimePlatformAdapter(platform) {
|
|
6054
|
-
return RUNTIME_PLATFORM_ADAPTERS[platform];
|
|
6055
|
-
}
|
|
6056
|
-
|
|
6057
|
-
// src/metro-plugin.ts
|
|
6058
6043
|
init_app_project();
|
|
6059
6044
|
|
|
6060
6045
|
// src/android-autolinking.ts
|
|
@@ -8403,7 +8388,7 @@ var PEACH_UPSTREAM_MODULES = {
|
|
|
8403
8388
|
...PEACH_REACT_NATIVE_UPSTREAM_MODULES
|
|
8404
8389
|
};
|
|
8405
8390
|
|
|
8406
|
-
//
|
|
8391
|
+
// src/stub-pattern-matcher.ts
|
|
8407
8392
|
function extractPackageFromPath(modulePath) {
|
|
8408
8393
|
let nodeModulesIndex = modulePath.lastIndexOf("/node_modules/");
|
|
8409
8394
|
let prefixLength = "/node_modules/".length;
|
|
@@ -8425,25 +8410,74 @@ function packageNameAt(modulePath, start) {
|
|
|
8425
8410
|
}
|
|
8426
8411
|
|
|
8427
8412
|
// src/installed-package-versions.ts
|
|
8428
|
-
function
|
|
8429
|
-
|
|
8430
|
-
|
|
8431
|
-
|
|
8432
|
-
|
|
8433
|
-
|
|
8434
|
-
|
|
8435
|
-
|
|
8436
|
-
|
|
8437
|
-
|
|
8438
|
-
|
|
8413
|
+
function* exists(target) {
|
|
8414
|
+
return (yield { op: "exists", path: target }) === true;
|
|
8415
|
+
}
|
|
8416
|
+
function* readManifest(target) {
|
|
8417
|
+
const manifest = yield { op: "manifest", path: target };
|
|
8418
|
+
return typeof manifest === "object" ? manifest : null;
|
|
8419
|
+
}
|
|
8420
|
+
function parseManifest(source) {
|
|
8421
|
+
const manifest = JSON.parse(source);
|
|
8422
|
+
return typeof manifest === "object" && manifest !== null ? manifest : null;
|
|
8423
|
+
}
|
|
8424
|
+
function isMissing(error) {
|
|
8425
|
+
return error instanceof Error && "code" in error && error.code === "ENOENT";
|
|
8426
|
+
}
|
|
8427
|
+
function answerSync(step) {
|
|
8428
|
+
if (step.op === "exists") return import_fs.default.existsSync(step.path);
|
|
8429
|
+
if (step.op === "realpath") return import_fs.default.realpathSync(step.path);
|
|
8430
|
+
try {
|
|
8431
|
+
return parseManifest(import_fs.default.readFileSync(step.path, "utf8"));
|
|
8432
|
+
} catch (error) {
|
|
8433
|
+
if (isMissing(error)) return null;
|
|
8434
|
+
throw error;
|
|
8435
|
+
}
|
|
8436
|
+
}
|
|
8437
|
+
function runSync(walk) {
|
|
8438
|
+
for (let step = walk.next(); ; ) {
|
|
8439
|
+
if (step.done) return step.value;
|
|
8440
|
+
step = walk.next(answerSync(step.value));
|
|
8441
|
+
}
|
|
8442
|
+
}
|
|
8443
|
+
function createInstalledPackageReader() {
|
|
8444
|
+
const hasModules = /* @__PURE__ */ new Map();
|
|
8445
|
+
const manifests = /* @__PURE__ */ new Map();
|
|
8446
|
+
return function* readInstalledPackage(fromDir, name2) {
|
|
8447
|
+
for (let dir = fromDir; ; ) {
|
|
8448
|
+
if (import_path.default.basename(dir) !== "node_modules") {
|
|
8449
|
+
const modules = import_path.default.join(dir, "node_modules");
|
|
8450
|
+
let present = hasModules.get(dir);
|
|
8451
|
+
if (present === void 0) {
|
|
8452
|
+
present = yield* exists(modules);
|
|
8453
|
+
hasModules.set(dir, present);
|
|
8454
|
+
}
|
|
8455
|
+
if (present) {
|
|
8456
|
+
const root = import_path.default.join(modules, name2);
|
|
8457
|
+
let installed = manifests.get(root);
|
|
8458
|
+
if (installed === void 0) {
|
|
8459
|
+
const manifest = yield* readManifest(import_path.default.join(root, "package.json"));
|
|
8460
|
+
installed = manifest ? { root, manifest } : null;
|
|
8461
|
+
manifests.set(root, installed);
|
|
8462
|
+
}
|
|
8463
|
+
if (installed) return installed;
|
|
8464
|
+
}
|
|
8439
8465
|
}
|
|
8440
8466
|
const parent = import_path.default.dirname(dir);
|
|
8441
8467
|
if (parent === dir) return null;
|
|
8442
8468
|
dir = parent;
|
|
8443
|
-
continue;
|
|
8444
8469
|
}
|
|
8445
|
-
|
|
8470
|
+
};
|
|
8471
|
+
}
|
|
8472
|
+
function* installedVersionsWalk(projectRoot, names) {
|
|
8473
|
+
const readInstalledPackage = createInstalledPackageReader();
|
|
8474
|
+
const versions = {};
|
|
8475
|
+
for (const name2 of [...names].sort()) {
|
|
8476
|
+
const installed = yield* readInstalledPackage(projectRoot, name2);
|
|
8477
|
+
const version = installed && Reflect.get(installed.manifest, "version");
|
|
8478
|
+
if (typeof version === "string" && version.length > 0) versions[name2] = version;
|
|
8446
8479
|
}
|
|
8480
|
+
return versions;
|
|
8447
8481
|
}
|
|
8448
8482
|
function readInstalledPackageVersions(projectRoot, modulePaths) {
|
|
8449
8483
|
const names = /* @__PURE__ */ new Set();
|
|
@@ -8451,13 +8485,7 @@ function readInstalledPackageVersions(projectRoot, modulePaths) {
|
|
|
8451
8485
|
const name2 = extractPackageFromPath(modulePath.replaceAll(import_path.default.sep, "/"));
|
|
8452
8486
|
if (name2) names.add(name2);
|
|
8453
8487
|
}
|
|
8454
|
-
|
|
8455
|
-
for (const name2 of [...names].sort()) {
|
|
8456
|
-
const installed = readInstalledPackage(projectRoot, name2);
|
|
8457
|
-
const version = installed && Reflect.get(installed.manifest, "version");
|
|
8458
|
-
if (typeof version === "string" && version.length > 0) versions[name2] = version;
|
|
8459
|
-
}
|
|
8460
|
-
return versions;
|
|
8488
|
+
return runSync(installedVersionsWalk(projectRoot, names));
|
|
8461
8489
|
}
|
|
8462
8490
|
|
|
8463
8491
|
// src/metro-production-bundle.ts
|
|
@@ -8935,8 +8963,13 @@ function visitXcodeTargetMembers(objects, targetId, resolvePath, filesUnder, joi
|
|
|
8935
8963
|
if (file.endsWith(".swift")) {
|
|
8936
8964
|
if (!relative3.split("/").some((segment) => BUNDLE_DIR.test(segment)))
|
|
8937
8965
|
visit3(file, "source");
|
|
8938
|
-
} else if (/\.(h|
|
|
8939
|
-
|
|
8966
|
+
} else if (/\.(h|hh|hpp|hxx|pch)$/.test(file)) {
|
|
8967
|
+
visit3(
|
|
8968
|
+
file,
|
|
8969
|
+
relative3.split("/").some((segment) => BUNDLE_DIR.test(segment)) ? "resource" : "header"
|
|
8970
|
+
);
|
|
8971
|
+
} else if (/\.(m|mm|c|cc|cpp|cxx|metal)$/.test(file)) {
|
|
8972
|
+
visit3(file, "source");
|
|
8940
8973
|
} else visit3(file, "resource");
|
|
8941
8974
|
}
|
|
8942
8975
|
}
|
|
@@ -9445,7 +9478,7 @@ var import_node_path6 = __toESM(require("node:path"), 1);
|
|
|
9445
9478
|
init_is_record();
|
|
9446
9479
|
|
|
9447
9480
|
// src/plist.ts
|
|
9448
|
-
var import_plist = __toESM(
|
|
9481
|
+
var import_plist = __toESM(require("plist"), 1);
|
|
9449
9482
|
function parsePlistSource(source) {
|
|
9450
9483
|
return import_plist.default.parse(source);
|
|
9451
9484
|
}
|
|
@@ -9455,7 +9488,7 @@ var import_node_child_process2 = require("node:child_process");
|
|
|
9455
9488
|
var import_node_crypto2 = require("node:crypto");
|
|
9456
9489
|
var import_node_fs5 = __toESM(require("node:fs"), 1);
|
|
9457
9490
|
var import_node_path5 = __toESM(require("node:path"), 1);
|
|
9458
|
-
var import_plist2 = __toESM(
|
|
9491
|
+
var import_plist2 = __toESM(require("plist"), 1);
|
|
9459
9492
|
|
|
9460
9493
|
// src/xcode-json-project.ts
|
|
9461
9494
|
var import_node_path4 = __toESM(require("node:path"), 1);
|
|
@@ -10111,6 +10144,7 @@ function targetMembers(ref, settings, options, settingKeys, projectInputs) {
|
|
|
10111
10144
|
const targetName = str(target.name) ?? targetId;
|
|
10112
10145
|
const sources = /* @__PURE__ */ new Set();
|
|
10113
10146
|
const allSources = /* @__PURE__ */ new Set();
|
|
10147
|
+
const headers = /* @__PURE__ */ new Set();
|
|
10114
10148
|
const resources = /* @__PURE__ */ new Set();
|
|
10115
10149
|
const scriptForOutput = /* @__PURE__ */ new Map();
|
|
10116
10150
|
for (const phaseId of list(target.buildPhases)) {
|
|
@@ -10239,6 +10273,10 @@ ${output}`
|
|
|
10239
10273
|
(file) => isDirectory(file) ? walkFiles(file) : import_node_fs5.default.existsSync(file) ? [file] : [],
|
|
10240
10274
|
import_node_path5.default.join,
|
|
10241
10275
|
(file, kind) => {
|
|
10276
|
+
if (kind === "header") {
|
|
10277
|
+
headers.add(file);
|
|
10278
|
+
return;
|
|
10279
|
+
}
|
|
10242
10280
|
if (kind === "resource") {
|
|
10243
10281
|
resources.add(file);
|
|
10244
10282
|
return;
|
|
@@ -10268,7 +10306,8 @@ ${output}`
|
|
|
10268
10306
|
return {
|
|
10269
10307
|
sources: [...sources].sort(),
|
|
10270
10308
|
resources: [...resources].sort(),
|
|
10271
|
-
allSources: [...allSources].sort()
|
|
10309
|
+
allSources: [...allSources].sort(),
|
|
10310
|
+
headers: [...headers].sort()
|
|
10272
10311
|
};
|
|
10273
10312
|
}
|
|
10274
10313
|
function commonAncestor(dirs) {
|
|
@@ -10444,7 +10483,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
10444
10483
|
);
|
|
10445
10484
|
for (const file of read) xcconfigs.add(file);
|
|
10446
10485
|
const swiftVersion = Number.parseFloat(settings2("SWIFT_VERSION") || "5");
|
|
10447
|
-
const members = targetMembers(ref, settings2, options, keys, xcconfigs);
|
|
10486
|
+
const { headers, ...members } = targetMembers(ref, settings2, options, keys, xcconfigs);
|
|
10448
10487
|
const searchRules = recursiveSearchRules(settings2);
|
|
10449
10488
|
const implementations = members.allSources.filter(
|
|
10450
10489
|
(file) => /\.(c|cc|cpp|cxx|m|mm)$/.test(file)
|
|
@@ -10479,10 +10518,25 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
10479
10518
|
iosDeploymentTarget: settings2("IPHONEOS_DEPLOYMENT_TARGET") || null,
|
|
10480
10519
|
...implementations.some((file) => /\.mm?$/.test(file)) ? {
|
|
10481
10520
|
objc: {
|
|
10482
|
-
|
|
10483
|
-
const
|
|
10484
|
-
|
|
10521
|
+
publicHeaders: list(ref.target.buildPhases).flatMap((phaseId) => {
|
|
10522
|
+
const phase = ref.project.object(phaseId);
|
|
10523
|
+
if (phase?.isa !== "PBXHeadersBuildPhase") return [];
|
|
10524
|
+
return list(phase.files).flatMap((id) => {
|
|
10525
|
+
const file = ref.project.object(id);
|
|
10526
|
+
const attributes = isDict(file?.settings) ? list(file.settings.ATTRIBUTES) : [];
|
|
10527
|
+
const resolved = ref.project.resolvePath(str(file?.fileRef) ?? "");
|
|
10528
|
+
return attributes.includes("Public") && resolved ? [resolved] : [];
|
|
10529
|
+
});
|
|
10485
10530
|
}),
|
|
10531
|
+
headers: [
|
|
10532
|
+
.../* @__PURE__ */ new Set([
|
|
10533
|
+
...headers,
|
|
10534
|
+
...Object.keys(ref.project.objects).flatMap((id) => {
|
|
10535
|
+
const file = ref.project.resolvePath(id);
|
|
10536
|
+
return file && /\.(h|hh|hpp|hxx|pch)$/.test(file) && import_node_fs5.default.existsSync(file) ? [file] : [];
|
|
10537
|
+
})
|
|
10538
|
+
])
|
|
10539
|
+
],
|
|
10486
10540
|
prefixHeader: settings2("GCC_PREFIX_HEADER") ? absolute(settings2("GCC_PREFIX_HEADER")) : null,
|
|
10487
10541
|
bridgingHeader: settings2("SWIFT_OBJC_BRIDGING_HEADER") ? absolute(settings2("SWIFT_OBJC_BRIDGING_HEADER")) : null,
|
|
10488
10542
|
headerSearchPaths: [
|
|
@@ -10493,7 +10547,7 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
|
|
|
10493
10547
|
settings2("FRAMEWORK_SEARCH_PATHS")
|
|
10494
10548
|
).flatMap((raw) => expandSearchPath(absolute(raw), searchRules)),
|
|
10495
10549
|
flags: [
|
|
10496
|
-
|
|
10550
|
+
settings2("CLANG_ENABLE_OBJC_ARC") === "YES" ? "-fobjc-arc" : "-fno-objc-arc",
|
|
10497
10551
|
...settings2("CLANG_ENABLE_OBJC_WEAK") === "YES" ? ["-fobjc-weak"] : [],
|
|
10498
10552
|
...settings2("CLANG_ENABLE_MODULES") === "YES" ? ["-fmodules"] : [],
|
|
10499
10553
|
...settings2("GCC_C_LANGUAGE_STANDARD") ? [`-std=${settings2("GCC_C_LANGUAGE_STANDARD")}`] : [],
|
|
@@ -11413,229 +11467,33 @@ function insertPackageVersionsFooter(source, versions) {
|
|
|
11413
11467
|
return insertBundleGlobalFooter(source, FOOTER2, readPackageVersions(versions));
|
|
11414
11468
|
}
|
|
11415
11469
|
|
|
11416
|
-
// src/
|
|
11417
|
-
|
|
11418
|
-
var import_path2 = __toESM(require("path"), 1);
|
|
11419
|
-
var import_url = require("url");
|
|
11420
|
-
|
|
11421
|
-
// ../contrast-runtime-delivery/src/index.ts
|
|
11422
|
-
init_process_group();
|
|
11423
|
-
|
|
11424
|
-
// ../contrast-runtime-delivery/src/product.ts
|
|
11425
|
-
init_version();
|
|
11426
|
-
|
|
11427
|
-
// src/home-paths.ts
|
|
11428
|
-
var import_node_fs8 = __toESM(require("node:fs"), 1);
|
|
11429
|
-
var import_node_os2 = require("node:os");
|
|
11430
|
-
var import_node_path8 = __toESM(require("node:path"), 1);
|
|
11431
|
-
var PEACH_HOME_ENV = "PEACH_HOME";
|
|
11432
|
-
var ACTIVE_RUNTIME_FILE = "active";
|
|
11433
|
-
function rnxHomeDir() {
|
|
11434
|
-
const override = process.env[PEACH_HOME_ENV];
|
|
11435
|
-
if (override && override.length > 0) return import_node_path8.default.resolve(override);
|
|
11436
|
-
return import_node_path8.default.join((0, import_node_os2.homedir)(), ".peach");
|
|
11437
|
-
}
|
|
11438
|
-
function runtimesDir() {
|
|
11439
|
-
return import_node_path8.default.join(rnxHomeDir(), "runtimes");
|
|
11440
|
-
}
|
|
11441
|
-
function runtimeDir(version) {
|
|
11442
|
-
return import_node_path8.default.join(runtimesDir(), version);
|
|
11443
|
-
}
|
|
11444
|
-
function activeRuntimeFile() {
|
|
11445
|
-
return import_node_path8.default.join(runtimesDir(), ACTIVE_RUNTIME_FILE);
|
|
11446
|
-
}
|
|
11447
|
-
function readActiveRuntime() {
|
|
11448
|
-
try {
|
|
11449
|
-
const value = import_node_fs8.default.readFileSync(activeRuntimeFile(), "utf8").trim();
|
|
11450
|
-
return value.length > 0 ? value : null;
|
|
11451
|
-
} catch {
|
|
11452
|
-
return null;
|
|
11453
|
-
}
|
|
11454
|
-
}
|
|
11455
|
-
var DAEMON_LOCKFILE_MAX_BYTES = 16 * 1024;
|
|
11470
|
+
// src/metro-plugin.ts
|
|
11471
|
+
init_runtime_assets();
|
|
11456
11472
|
|
|
11457
|
-
// src/
|
|
11458
|
-
var
|
|
11459
|
-
|
|
11460
|
-
|
|
11461
|
-
|
|
11462
|
-
|
|
11463
|
-
|
|
11464
|
-
|
|
11465
|
-
|
|
11466
|
-
|
|
11467
|
-
|
|
11468
|
-
|
|
11469
|
-
|
|
11470
|
-
|
|
11471
|
-
|
|
11472
|
-
|
|
11473
|
-
|
|
11474
|
-
|
|
11475
|
-
|
|
11476
|
-
|
|
11477
|
-
|
|
11478
|
-
if (import_fs2.default.existsSync(import_path2.default.join(devBuild, "index.html")) && import_fs2.default.existsSync(import_path2.default.join(devBuild, "engine/index.html")) && import_fs2.default.existsSync(import_path2.default.join(devBuild, "engine-tenant/worker.js")) && import_fs2.default.existsSync(import_path2.default.join(devBuild, "engine-tenant/worker.prod.js"))) {
|
|
11479
|
-
return devBuild;
|
|
11480
|
-
}
|
|
11481
|
-
return null;
|
|
11482
|
-
}
|
|
11483
|
-
var MIME_TYPES = {
|
|
11484
|
-
".js": "application/javascript",
|
|
11485
|
-
".mjs": "application/javascript",
|
|
11486
|
-
".css": "text/css",
|
|
11487
|
-
".html": "text/html",
|
|
11488
|
-
".wasm": "application/wasm",
|
|
11489
|
-
".json": "application/json",
|
|
11490
|
-
".jpg": "image/jpeg",
|
|
11491
|
-
".jpeg": "image/jpeg",
|
|
11492
|
-
".png": "image/png",
|
|
11493
|
-
".svg": "image/svg+xml",
|
|
11494
|
-
".webp": "image/webp",
|
|
11495
|
-
".glb": "model/gltf-binary",
|
|
11496
|
-
".ttf": "font/ttf",
|
|
11497
|
-
".otf": "font/otf",
|
|
11498
|
-
".woff": "font/woff",
|
|
11499
|
-
".woff2": "font/woff2",
|
|
11500
|
-
".mp3": "audio/mpeg",
|
|
11501
|
-
".wav": "audio/wav",
|
|
11502
|
-
".mp4": "video/mp4",
|
|
11503
|
-
".m4v": "video/mp4",
|
|
11504
|
-
".mov": "video/quicktime",
|
|
11505
|
-
".webm": "video/webm"
|
|
11506
|
-
};
|
|
11507
|
-
var ROOT_RUNTIME_PATHS = [
|
|
11508
|
-
"/assets/",
|
|
11509
|
-
"/engine/",
|
|
11510
|
-
"/engine-tenant/",
|
|
11511
|
-
"/photos/",
|
|
11512
|
-
"/three-mode/",
|
|
11513
|
-
"/fonts/",
|
|
11514
|
-
"/icons/",
|
|
11515
|
-
"/sounds/",
|
|
11516
|
-
"/spike/",
|
|
11517
|
-
"/test-wallpaper.jpg",
|
|
11518
|
-
"/preview-sw.js",
|
|
11519
|
-
"/peach.svg",
|
|
11520
|
-
"/bedrock-sqlite.wasm",
|
|
11521
|
-
"/bedrock-sqlite.js",
|
|
11522
|
-
"/sootsim/"
|
|
11523
|
-
];
|
|
11524
|
-
function resolveActiveRuntimeRoot() {
|
|
11525
|
-
const devRoot = resolveDevCheckoutRuntimeRoot();
|
|
11526
|
-
if (devRoot) return devRoot;
|
|
11527
|
-
const active = readActiveRuntime();
|
|
11528
|
-
if (!active) return null;
|
|
11529
|
-
const dir = runtimeDir(active);
|
|
11530
|
-
if (!import_fs2.default.existsSync(import_path2.default.join(dir, "index.html"))) return null;
|
|
11531
|
-
return dir;
|
|
11532
|
-
}
|
|
11533
|
-
var RUNTIME_VERSION_HOSTNAME_SUFFIX = ".runtime.localhost";
|
|
11534
|
-
function isRuntimeVersionHostname(hostname) {
|
|
11535
|
-
return hostname.toLowerCase().endsWith(RUNTIME_VERSION_HOSTNAME_SUFFIX);
|
|
11536
|
-
}
|
|
11537
|
-
function runtimeVersionFromHostname(hostname) {
|
|
11538
|
-
if (!isRuntimeVersionHostname(hostname)) return null;
|
|
11539
|
-
const labels = hostname.slice(0, -RUNTIME_VERSION_HOSTNAME_SUFFIX.length).split(".");
|
|
11540
|
-
if (labels.length === 0 || labels.some((label) => !/^[0-9a-f]{1,60}$/i.test(label))) {
|
|
11541
|
-
return null;
|
|
11542
|
-
}
|
|
11543
|
-
const encoded = labels.join("");
|
|
11544
|
-
if (encoded.length % 2 !== 0) return null;
|
|
11545
|
-
try {
|
|
11546
|
-
const version = Buffer.from(encoded, "hex").toString("utf8");
|
|
11547
|
-
return isValidRuntimeVersion(version) ? version : null;
|
|
11548
|
-
} catch {
|
|
11549
|
-
return null;
|
|
11550
|
-
}
|
|
11551
|
-
}
|
|
11552
|
-
function resolveInstalledRuntimeRoot(version) {
|
|
11553
|
-
const dir = runtimeDir(version);
|
|
11554
|
-
if (!import_fs2.default.existsSync(import_path2.default.join(dir, "index.html"))) return null;
|
|
11555
|
-
return dir;
|
|
11556
|
-
}
|
|
11557
|
-
function resolveRuntimeRootForHostname(hostname) {
|
|
11558
|
-
if (!isRuntimeVersionHostname(hostname)) return resolveActiveRuntimeRoot();
|
|
11559
|
-
const version = runtimeVersionFromHostname(hostname);
|
|
11560
|
-
return version ? resolveInstalledRuntimeRoot(version) : null;
|
|
11561
|
-
}
|
|
11562
|
-
function resolveRuntimeRootForRequestHost(host) {
|
|
11563
|
-
if (!host) return resolveActiveRuntimeRoot();
|
|
11564
|
-
try {
|
|
11565
|
-
return resolveRuntimeRootForHostname(new URL(`http://${host}`).hostname);
|
|
11566
|
-
} catch {
|
|
11567
|
-
return null;
|
|
11568
|
-
}
|
|
11569
|
-
}
|
|
11570
|
-
function isRootRuntimeAssetPath(pathname) {
|
|
11571
|
-
return ROOT_RUNTIME_PATHS.some((p) => pathname === p || pathname.startsWith(p));
|
|
11572
|
-
}
|
|
11573
|
-
function resolveRuntimeFilePath(runtimeRoot, pathname) {
|
|
11574
|
-
if (!pathname.startsWith("/")) return null;
|
|
11575
|
-
if (pathname.includes("\0") || pathname.includes("\\")) return null;
|
|
11576
|
-
for (const segment of pathname.split("/")) {
|
|
11577
|
-
if (segment === "..") return null;
|
|
11578
|
-
}
|
|
11579
|
-
const normalized = pathname.startsWith("/sootsim/") ? pathname.slice("/sootsim".length) : pathname;
|
|
11580
|
-
const fullPath = import_path2.default.resolve(runtimeRoot, normalized.replace(/^\/+/, ""));
|
|
11581
|
-
const rootWithSep = runtimeRoot.endsWith(import_path2.default.sep) ? runtimeRoot : runtimeRoot + import_path2.default.sep;
|
|
11582
|
-
if (!fullPath.startsWith(rootWithSep) && fullPath !== runtimeRoot) return null;
|
|
11583
|
-
if (!import_fs2.default.existsSync(fullPath) || !import_fs2.default.statSync(fullPath).isFile()) return null;
|
|
11584
|
-
return fullPath;
|
|
11585
|
-
}
|
|
11586
|
-
function serveRuntimeFile(req, res, fullPath) {
|
|
11587
|
-
const ext = import_path2.default.extname(fullPath);
|
|
11588
|
-
const stat = import_fs2.default.statSync(fullPath);
|
|
11589
|
-
const lastModified = stat.mtime.toUTCString();
|
|
11590
|
-
res.setHeader("content-type", MIME_TYPES[ext] || "application/octet-stream");
|
|
11591
|
-
if (/^canvaskit-graphite-pipelines-[0-9a-f]{8}\.bin$/.test(import_path2.default.basename(fullPath))) {
|
|
11592
|
-
res.setHeader("cache-control", "public, max-age=31536000, immutable");
|
|
11593
|
-
import_fs2.default.createReadStream(fullPath).pipe(res);
|
|
11594
|
-
return;
|
|
11595
|
-
}
|
|
11596
|
-
res.setHeader("cache-control", "no-cache");
|
|
11597
|
-
res.setHeader("last-modified", lastModified);
|
|
11598
|
-
if (req?.headers?.["if-modified-since"] === lastModified) {
|
|
11599
|
-
res.statusCode = 304;
|
|
11600
|
-
res.end();
|
|
11601
|
-
return;
|
|
11602
|
-
}
|
|
11603
|
-
sendFileWithRanges(req, res, fullPath, stat.size, {});
|
|
11604
|
-
}
|
|
11605
|
-
function sendFileWithRanges(req, res, filePath, total, headers) {
|
|
11606
|
-
const head = (req?.method || "GET").toUpperCase() === "HEAD";
|
|
11607
|
-
const range = /^bytes=(\d*)-(\d*)$/.exec(req?.headers?.range || "");
|
|
11608
|
-
const invalid = range && range[1] && range[2] && Number(range[2]) < Number(range[1]);
|
|
11609
|
-
if (range && (range[1] || range[2]) && !invalid) {
|
|
11610
|
-
const [, startRaw, endRaw] = range;
|
|
11611
|
-
const start = startRaw ? Number(startRaw) : Math.max(0, total - Number(endRaw));
|
|
11612
|
-
const end = startRaw && endRaw ? Math.min(Number(endRaw), total - 1) : total - 1;
|
|
11613
|
-
if (start > end || start >= total) {
|
|
11614
|
-
res.writeHead(416, { ...headers, "Content-Range": `bytes */${total}` });
|
|
11615
|
-
res.end();
|
|
11616
|
-
return;
|
|
11617
|
-
}
|
|
11618
|
-
res.writeHead(206, {
|
|
11619
|
-
...headers,
|
|
11620
|
-
"Content-Range": `bytes ${start}-${end}/${total}`,
|
|
11621
|
-
"Accept-Ranges": "bytes",
|
|
11622
|
-
"Content-Length": String(end - start + 1)
|
|
11623
|
-
});
|
|
11624
|
-
if (head) res.end();
|
|
11625
|
-
else streamFile(res, import_fs2.default.createReadStream(filePath, { start, end }));
|
|
11626
|
-
return;
|
|
11627
|
-
}
|
|
11628
|
-
res.writeHead(200, {
|
|
11629
|
-
...headers,
|
|
11630
|
-
"Accept-Ranges": "bytes",
|
|
11631
|
-
"Content-Length": String(total)
|
|
11632
|
-
});
|
|
11633
|
-
if (head || total === 0) res.end();
|
|
11634
|
-
else streamFile(res, import_fs2.default.createReadStream(filePath, { start: 0, end: total - 1 }));
|
|
11473
|
+
// src/runtimePlatformContract.ts
|
|
11474
|
+
var IOS_ADAPTER = Object.freeze({
|
|
11475
|
+
id: "ios",
|
|
11476
|
+
displayName: "iOS",
|
|
11477
|
+
isIOS: true,
|
|
11478
|
+
isAndroid: false,
|
|
11479
|
+
select: (registry) => registry.ios
|
|
11480
|
+
});
|
|
11481
|
+
var ANDROID_ADAPTER = Object.freeze({
|
|
11482
|
+
id: "android",
|
|
11483
|
+
displayName: "Android",
|
|
11484
|
+
isIOS: false,
|
|
11485
|
+
isAndroid: true,
|
|
11486
|
+
select: (registry) => registry.android
|
|
11487
|
+
});
|
|
11488
|
+
var RUNTIME_PLATFORM_ADAPTERS = Object.freeze({
|
|
11489
|
+
ios: IOS_ADAPTER,
|
|
11490
|
+
android: ANDROID_ADAPTER
|
|
11491
|
+
});
|
|
11492
|
+
function isRuntimePlatform(value) {
|
|
11493
|
+
return value === "ios" || value === "android";
|
|
11635
11494
|
}
|
|
11636
|
-
function
|
|
11637
|
-
|
|
11638
|
-
stream.pipe(res);
|
|
11495
|
+
function getRuntimePlatformAdapter(platform) {
|
|
11496
|
+
return RUNTIME_PLATFORM_ADAPTERS[platform];
|
|
11639
11497
|
}
|
|
11640
11498
|
|
|
11641
11499
|
// src/metro-plugin.ts
|