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.
Files changed (608) hide show
  1. package/README.md +12 -0
  2. package/cli/app-catalog.ts +1 -1
  3. package/cli/app-fonts.ts +11 -80
  4. package/cli/app-splash.ts +18 -12
  5. package/cli/bridge-flow-runner.ts +11 -7
  6. package/cli/cloud-client.ts +10 -13
  7. package/cli/command-registry.ts +13 -4
  8. package/cli/commands/box.ts +4 -4
  9. package/cli/commands/control.ts +93 -53
  10. package/cli/commands/coverage-parser.ts +67 -0
  11. package/cli/commands/coverage.ts +550 -0
  12. package/cli/commands/debug.ts +9 -18
  13. package/cli/commands/desktop.ts +19 -7
  14. package/cli/commands/device.ts +14 -9
  15. package/cli/commands/guest-host.ts +6 -10
  16. package/cli/commands/inspect/core.ts +81 -17
  17. package/cli/commands/inspect.ts +13 -8
  18. package/cli/commands/kotlin.ts +2 -2
  19. package/cli/commands/maestro-compare.ts +1 -1
  20. package/cli/commands/platform.ts +20 -11
  21. package/cli/commands/preview.ts +16 -18
  22. package/cli/commands/runtime.ts +3 -2
  23. package/cli/commands/screenshot-layers.ts +1 -1
  24. package/cli/commands/screenshot.ts +1 -1
  25. package/cli/commands/serve.ts +5 -1
  26. package/cli/commands/support.ts +4 -4
  27. package/cli/commands/three-mode.ts +22 -15
  28. package/cli/commands/upload.ts +44 -45
  29. package/cli/current-sim.ts +38 -0
  30. package/cli/desktop-companion.ts +36 -8
  31. package/cli/device-option.ts +1 -1
  32. package/cli/drivers/playwright.ts +1 -0
  33. package/cli/drivers/types.ts +4 -0
  34. package/cli/help-core.ts +1 -1
  35. package/cli/internal-child.ts +2 -1
  36. package/cli/main.ts +9 -3
  37. package/cli/outbound-endpoints.ts +11 -3
  38. package/cli/output-redaction.ts +39 -14
  39. package/cli/remote-simulators.ts +4 -1
  40. package/cli/scene-video.ts +5 -2
  41. package/cli/send-to-box.ts +7 -10
  42. package/cli/telemetry.ts +1 -1
  43. package/cli/ws-bridge.ts +8 -1
  44. package/detox/attempt-events.cjs +3 -1
  45. package/detox/attempt-events.d.cts +1 -1
  46. package/detox/expectations.ts +108 -99
  47. package/detox/frame-offset.d.mts +6 -0
  48. package/detox/frame-offset.mjs +35 -0
  49. package/detox/gestures.ts +6 -18
  50. package/detox/index.ts +169 -101
  51. package/detox/jest-preset.cjs +1 -3
  52. package/detox/jest-transform.cjs +4 -0
  53. package/detox/matchers.ts +3 -0
  54. package/detox/motion-change.cjs +46 -114
  55. package/detox/motion-change.d.cts +5 -27
  56. package/dist-lib/agent-daemon-client.cjs +1 -1
  57. package/dist-lib/agent-events.cjs +1 -1
  58. package/dist-lib/attached-projects.cjs +1 -1
  59. package/dist-lib/auth/shared-session.cjs +1 -1
  60. package/dist-lib/backend-origin.cjs +1 -1
  61. package/dist-lib/beta.cjs +1 -1
  62. package/dist-lib/beta.mjs +1 -1
  63. package/dist-lib/bridge-constants.cjs +1 -1
  64. package/dist-lib/bridge-contract-input.cjs +65 -1
  65. package/dist-lib/bridge-contract-input.mjs +63 -1
  66. package/dist-lib/bridge-contract.cjs +19 -1
  67. package/dist-lib/bridge-contract.mjs +17 -1
  68. package/dist-lib/bundle-channel.cjs +38091 -14846
  69. package/dist-lib/capture-contract.cjs +1 -1
  70. package/dist-lib/capture-contract.mjs +1 -1
  71. package/dist-lib/cloud-contract.cjs +1 -1
  72. package/dist-lib/cloud-contract.mjs +1 -1
  73. package/dist-lib/cloud-test-args.cjs +1 -1
  74. package/dist-lib/cloud-test-args.mjs +1 -1
  75. package/dist-lib/cloud.cjs +1 -1
  76. package/dist-lib/cloud.mjs +1 -1
  77. package/dist-lib/config.cjs +1 -1
  78. package/dist-lib/config.mjs +5 -3
  79. package/dist-lib/detox/index.cjs +1244 -4509
  80. package/dist-lib/detox/jest-preset.cjs +1 -3
  81. package/dist-lib/detox/jest-transform.cjs +4 -0
  82. package/dist-lib/dev-bundle-resolution.cjs +28 -24
  83. package/dist-lib/expo-swift-bundle.cjs +35049 -13125
  84. package/dist-lib/expo-swift-metadata.cjs +1 -1
  85. package/dist-lib/expo-swift-metadata.mjs +1 -1
  86. package/dist-lib/home-paths.cjs +1 -1
  87. package/dist-lib/host/bridge-host.cjs +45112 -63143
  88. package/dist-lib/host/fetch-proxy-handler.cjs +3544 -11
  89. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  90. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  91. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  92. package/dist-lib/host/websocket-proxy.cjs +1 -1
  93. package/dist-lib/index.cjs +1909 -2029
  94. package/dist-lib/jump-to-source-babel.cjs +1 -1
  95. package/dist-lib/jump-to-source-native.cjs +1 -1
  96. package/dist-lib/kotlin-host.cjs +2 -2
  97. package/dist-lib/menu.cjs +1 -1
  98. package/dist-lib/menu.mjs +1 -1
  99. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  100. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  101. package/dist-lib/metro-production-bundle.cjs +1 -1
  102. package/dist-lib/metro-production-bundle.mjs +1 -1
  103. package/dist-lib/metro.cjs +380 -522
  104. package/dist-lib/native-app-identity-project.cjs +39 -252
  105. package/dist-lib/native-app-identity-project.mjs +1174 -11
  106. package/dist-lib/native-app-identity.cjs +8 -3
  107. package/dist-lib/native-app-identity.mjs +8 -3
  108. package/dist-lib/native-firebase-metadata.cjs +1 -1
  109. package/dist-lib/native-firebase-metadata.mjs +1 -1
  110. package/dist-lib/plist.cjs +2 -244
  111. package/dist-lib/plist.mjs +1 -1
  112. package/dist-lib/profiles.cjs +1 -1
  113. package/dist-lib/public-brand.cjs +1 -1
  114. package/dist-lib/public-origins-lib-esm.json +290 -0
  115. package/dist-lib/public-origins-lib-static.json +1 -0
  116. package/dist-lib/public-origins-lib.json +1852 -0
  117. package/dist-lib/react-native-host-modules.cjs +1 -1
  118. package/dist-lib/react-native-host-modules.mjs +1 -1
  119. package/dist-lib/scripts/dev-server-scanner.cjs +14 -253
  120. package/dist-lib/sdk.cjs +83 -16
  121. package/dist-lib/sdk.mjs +81 -15
  122. package/dist-lib/skills.cjs +50546 -75098
  123. package/dist-lib/swift-compile.cjs +25897 -1070
  124. package/dist-lib/swift-compile.mjs +25866 -1033
  125. package/dist-lib/swift-package.cjs +79 -1
  126. package/dist-lib/swift-package.mjs +75 -1
  127. package/dist-lib/swift-submit.cjs +1 -1
  128. package/dist-lib/swift-submit.mjs +1 -1
  129. package/dist-lib/swift-toolchain.cjs +1 -1
  130. package/dist-lib/swift.cjs +1 -1
  131. package/dist-lib/vite-swift.cjs +34273 -12349
  132. package/dist-lib/vite.cjs +373 -298
  133. package/dist-lib/worklet-executable.cjs +1 -1
  134. package/dist-lib/worklet-executable.mjs +1 -1
  135. package/dist-types/packages/peach-compat/src/engine-config.d.ts +2 -0
  136. package/dist-types/packages/peach-compat/src/stubs/form-sheet-spring.d.ts +9 -0
  137. package/dist-types/packages/peach-compat/src/stubs/native-evaluation-lease.d.ts +47 -0
  138. package/dist-types/packages/peach-compat/src/stubs/native-seams/react-native-cookies.d.ts +113 -0
  139. package/dist-types/packages/peach-compat/src/stubs/native-seams/react-native-gesture-handler.d.ts +154 -0
  140. package/dist-types/packages/peach-compat/src/stubs/screen-transition-math.d.ts +756 -0
  141. package/dist-types/packages/peach-compat/src/stubs/transition-scalar.d.ts +25 -0
  142. package/dist-types/packages/peach-engine/src/billing/plans.d.ts +64 -0
  143. package/dist-types/packages/peach-engine/src/browser-page-target.d.ts +2 -0
  144. package/dist-types/packages/peach-engine/src/bundle-platform-url.d.ts +3 -0
  145. package/dist-types/packages/peach-engine/src/capture/browser-accessibility-host.d.ts +3 -0
  146. package/dist-types/packages/peach-engine/src/capture/browser-composite.d.ts +55 -0
  147. package/dist-types/packages/peach-engine/src/capture/browserAccessibilityContract.d.ts +27 -0
  148. package/dist-types/packages/peach-engine/src/capture/nativeScreenCaptureContract.d.ts +22 -0
  149. package/dist-types/packages/peach-engine/src/cli-companion.d.ts +36 -0
  150. package/dist-types/packages/peach-engine/src/components/native-ui/webview-frame-bridge.d.ts +34 -0
  151. package/dist-types/packages/peach-engine/src/config.d.ts +5 -0
  152. package/dist-types/packages/peach-engine/src/engine/android-stretch-effect.d.ts +57 -0
  153. package/dist-types/packages/peach-engine/src/engine/animated-driven-style.d.ts +47 -0
  154. package/dist-types/packages/peach-engine/src/engine/animated-value.d.ts +5 -0
  155. package/dist-types/packages/peach-engine/src/engine/animated.d.ts +195 -0
  156. package/dist-types/packages/peach-engine/src/engine/animation-clockContract.d.ts +15 -0
  157. package/dist-types/packages/peach-engine/src/engine/animation-graph.d.ts +148 -0
  158. package/dist-types/packages/peach-engine/src/engine/app-catalog-wire.d.ts +10 -0
  159. package/dist-types/packages/peach-engine/src/engine/app-font-registry.d.ts +87 -0
  160. package/dist-types/packages/peach-engine/src/engine/attributed-paragraph-paint.d.ts +7 -0
  161. package/dist-types/packages/peach-engine/src/engine/attributed-paragraph.d.ts +123 -0
  162. package/dist-types/packages/peach-engine/src/engine/audioContract.d.ts +16 -0
  163. package/dist-types/packages/peach-engine/src/engine/canvaskit-api.d.ts +93 -0
  164. package/dist-types/packages/peach-engine/src/engine/canvaskit-renderer.d.ts +216 -0
  165. package/dist-types/packages/peach-engine/src/engine/config-plugin-fonts.d.ts +40 -0
  166. package/dist-types/packages/peach-engine/src/engine/config-plugin-splash.d.ts +25 -0
  167. package/dist-types/packages/peach-engine/src/engine/cull-visibility.d.ts +44 -0
  168. package/dist-types/packages/peach-engine/src/engine/damage-rect.d.ts +19 -0
  169. package/dist-types/packages/peach-engine/src/engine/engine-resource.d.ts +6 -0
  170. package/dist-types/packages/peach-engine/src/engine/expo-manifest.d.ts +5 -0
  171. package/dist-types/packages/peach-engine/src/engine/fiber-debug-metadata.d.ts +30 -0
  172. package/dist-types/packages/peach-engine/src/engine/font-config.d.ts +139 -0
  173. package/dist-types/packages/peach-engine/src/engine/generated/sf-pro-font.d.ts +1 -0
  174. package/dist-types/packages/peach-engine/src/engine/glass-material.d.ts +31 -0
  175. package/dist-types/packages/peach-engine/src/engine/host-composite.d.ts +100 -0
  176. package/dist-types/packages/peach-engine/src/engine/hosted-semantics.d.ts +49 -0
  177. package/dist-types/packages/peach-engine/src/engine/image-audit.d.ts +70 -0
  178. package/dist-types/packages/peach-engine/src/engine/image-loader.d.ts +350 -0
  179. package/dist-types/packages/peach-engine/src/engine/inspect-info.d.ts +27 -0
  180. package/dist-types/packages/peach-engine/src/engine/inspect-outline.d.ts +14 -0
  181. package/dist-types/packages/peach-engine/src/engine/inspect-visibility.d.ts +33 -0
  182. package/dist-types/packages/peach-engine/src/engine/ios-fast-scroll.d.ts +16 -0
  183. package/dist-types/packages/peach-engine/src/engine/layout-sab.d.ts +43 -0
  184. package/dist-types/packages/peach-engine/src/engine/liquid-glass-rect.d.ts +23 -0
  185. package/dist-types/packages/peach-engine/src/engine/liquid-glass-shaders.d.ts +9 -0
  186. package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +283 -0
  187. package/dist-types/packages/peach-engine/src/engine/live-object-counts.d.ts +6 -0
  188. package/dist-types/packages/peach-engine/src/engine/lottie-runtime.d.ts +32 -0
  189. package/dist-types/packages/peach-engine/src/engine/lottie-types.d.ts +138 -0
  190. package/dist-types/packages/peach-engine/src/engine/memory-counts.d.ts +27 -0
  191. package/dist-types/packages/peach-engine/src/engine/metalDirectContract.d.ts +108 -0
  192. package/dist-types/packages/peach-engine/src/engine/metalShaderContract.d.ts +217 -0
  193. package/dist-types/packages/peach-engine/src/engine/native-animation-driver.d.ts +112 -0
  194. package/dist-types/packages/peach-engine/src/engine/native-animation-graph.d.ts +62 -0
  195. package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +133 -0
  196. package/dist-types/packages/peach-engine/src/engine/native-resources.d.ts +26 -0
  197. package/dist-types/packages/peach-engine/src/engine/nativeReanimatedContract.d.ts +25 -0
  198. package/dist-types/packages/peach-engine/src/engine/nativeReplayContract.d.ts +64 -0
  199. package/dist-types/packages/peach-engine/src/engine/node.d.ts +589 -0
  200. package/dist-types/packages/peach-engine/src/engine/paint-boundary-types.d.ts +112 -0
  201. package/dist-types/packages/peach-engine/src/engine/paint-boundary.d.ts +57 -0
  202. package/dist-types/packages/peach-engine/src/engine/portalContract.d.ts +21 -0
  203. package/dist-types/packages/peach-engine/src/engine/portals.d.ts +20 -0
  204. package/dist-types/packages/peach-engine/src/engine/render-damage.d.ts +107 -0
  205. package/dist-types/packages/peach-engine/src/engine/riveContract.d.ts +420 -0
  206. package/dist-types/packages/peach-engine/src/engine/rn-spring.d.ts +51 -0
  207. package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +379 -0
  208. package/dist-types/packages/peach-engine/src/engine/scroll-momentum-math.d.ts +152 -0
  209. package/dist-types/packages/peach-engine/src/engine/scroll-pan-contacts.d.ts +10 -0
  210. package/dist-types/packages/peach-engine/src/engine/scroll-platform.d.ts +75 -0
  211. package/dist-types/packages/peach-engine/src/engine/scroll-range.d.ts +14 -0
  212. package/dist-types/packages/peach-engine/src/engine/scroll-velocity.d.ts +14 -0
  213. package/dist-types/packages/peach-engine/src/engine/scroll.d.ts +320 -0
  214. package/dist-types/packages/peach-engine/src/engine/signal.d.ts +7 -0
  215. package/dist-types/packages/peach-engine/src/engine/snapshot-cache-policy.d.ts +6 -0
  216. package/dist-types/packages/peach-engine/src/engine/svg-geometry.d.ts +41 -0
  217. package/dist-types/packages/peach-engine/src/engine/text-attachment-paragraphs.d.ts +10 -0
  218. package/dist-types/packages/peach-engine/src/engine/text-decoration.d.ts +11 -0
  219. package/dist-types/packages/peach-engine/src/engine/text-line-break.d.ts +22 -0
  220. package/dist-types/packages/peach-engine/src/engine/text-paint-receipt.d.ts +98 -0
  221. package/dist-types/packages/peach-engine/src/engine/text-paragraph.d.ts +11 -0
  222. package/dist-types/packages/peach-engine/src/engine/text-paragraphContract.d.ts +34 -0
  223. package/dist-types/packages/peach-engine/src/engine/text-transform.d.ts +1 -0
  224. package/dist-types/packages/peach-engine/src/engine/types.d.ts +657 -0
  225. package/dist-types/packages/peach-engine/src/engine/visible-frame.d.ts +54 -0
  226. package/dist-types/packages/peach-engine/src/engine/webrtcContract.d.ts +74 -0
  227. package/dist-types/packages/peach-engine/src/graphite-stats-fields.d.ts +184 -0
  228. package/dist-types/packages/peach-engine/src/guest-import-meta.d.ts +12 -0
  229. package/dist-types/packages/peach-engine/src/guest-module-overrides.d.ts +7 -0
  230. package/dist-types/packages/peach-engine/src/ios/app-card-types.d.ts +7 -0
  231. package/dist-types/packages/peach-engine/src/ios/apps/canvas-map-data.d.ts +177 -0
  232. package/dist-types/packages/peach-engine/src/ios/aux-home-scene.d.ts +54 -0
  233. package/dist-types/packages/peach-engine/src/ios/chrome-metrics.d.ts +47 -0
  234. package/dist-types/packages/peach-engine/src/ios/constants.d.ts +21 -0
  235. package/dist-types/packages/peach-engine/src/ios/duo-housing.d.ts +37 -0
  236. package/dist-types/packages/peach-engine/src/ios/home/types.d.ts +29 -0
  237. package/dist-types/packages/peach-engine/src/ios/home-app-catalog.d.ts +43 -0
  238. package/dist-types/packages/peach-engine/src/ios/photo-store.d.ts +73 -0
  239. package/dist-types/packages/peach-engine/src/ios/photoLibraryContract.d.ts +166 -0
  240. package/dist-types/packages/peach-engine/src/ios/shell-controller-types.d.ts +21 -0
  241. package/dist-types/packages/peach-engine/src/ios/shell-transition-debug.d.ts +18 -0
  242. package/dist-types/packages/peach-engine/src/metro-asset-path.d.ts +21 -0
  243. package/dist-types/packages/peach-engine/src/metro-fingerprint-registry-client.d.ts +11 -0
  244. package/dist-types/packages/peach-engine/src/metro-fingerprint.d.ts +38 -0
  245. package/dist-types/packages/peach-engine/src/native-preview-bundle.d.ts +44 -0
  246. package/dist-types/packages/peach-engine/src/observability/types.d.ts +74 -0
  247. package/dist-types/packages/peach-engine/src/peach-warm-manifest.d.ts +32 -0
  248. package/dist-types/packages/peach-engine/src/permissions/app-settings-client.d.ts +25 -0
  249. package/dist-types/packages/peach-engine/src/permissions/system-permission-types.d.ts +20 -0
  250. package/dist-types/packages/peach-engine/src/platform/android-back-panel.d.ts +131 -0
  251. package/dist-types/packages/peach-engine/src/platform/android-gesture-exclusion.d.ts +28 -0
  252. package/dist-types/packages/peach-engine/src/platform/android-predictive-back.d.ts +33 -0
  253. package/dist-types/packages/peach-engine/src/platform/system-bars-state.d.ts +14 -0
  254. package/dist-types/packages/peach-engine/src/playwright-sim-host.d.ts +1 -0
  255. package/dist-types/packages/peach-engine/src/preview/bundle-layout.d.ts +8 -0
  256. package/dist-types/packages/peach-engine/src/preview/bundle-variantContract.d.ts +24 -0
  257. package/dist-types/packages/peach-engine/src/preview/capture-bundle.d.ts +26 -0
  258. package/dist-types/packages/peach-engine/src/preview/compress-node.d.ts +2 -0
  259. package/dist-types/packages/peach-engine/src/preview/compress.d.ts +2 -0
  260. package/dist-types/packages/peach-engine/src/preview/presigned-upload.d.ts +60 -0
  261. package/dist-types/packages/peach-engine/src/preview/trace.d.ts +144 -0
  262. package/dist-types/packages/peach-engine/src/preview/upload-protocol.d.ts +152 -0
  263. package/dist-types/packages/peach-engine/src/profiler/animation-recording-loader.d.ts +1 -0
  264. package/dist-types/packages/peach-engine/src/profiler/profile-trace.d.ts +4 -0
  265. package/dist-types/packages/peach-engine/src/react-bridge.d.ts +3 -0
  266. package/dist-types/packages/peach-engine/src/react-native/AppState.d.ts +45 -0
  267. package/dist-types/packages/peach-engine/src/react-native/Appearance.d.ts +34 -0
  268. package/dist-types/packages/peach-engine/src/react-native/framework-colors-data.d.ts +2 -0
  269. package/dist-types/packages/peach-engine/src/react-native/host-services.d.ts +42 -0
  270. package/dist-types/packages/peach-engine/src/react-native/layout-animation.d.ts +22 -0
  271. package/dist-types/packages/peach-engine/src/react-native/platform-colors.d.ts +17 -0
  272. package/dist-types/packages/peach-engine/src/remote-stream/client-config.d.ts +10 -0
  273. package/dist-types/packages/peach-engine/src/remote-stream/cloud-display.d.ts +58 -0
  274. package/dist-types/packages/peach-engine/src/remote-stream/scene-recording.d.ts +45 -0
  275. package/dist-types/packages/peach-engine/src/render-worker/animated-drive-output.d.ts +35 -0
  276. package/dist-types/packages/peach-engine/src/render-worker/app-load.d.ts +16 -0
  277. package/dist-types/packages/peach-engine/src/render-worker/aux-surface-types.d.ts +2 -0
  278. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-shared.d.ts +42 -0
  279. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-webgpu.d.ts +434 -0
  280. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-worker-init.d.ts +12 -0
  281. package/dist-types/packages/peach-engine/src/render-worker/compositor-backend.d.ts +31 -0
  282. package/dist-types/packages/peach-engine/src/render-worker/compositor-gpu.d.ts +202 -0
  283. package/dist-types/packages/peach-engine/src/render-worker/compositor-protocol.d.ts +1945 -0
  284. package/dist-types/packages/peach-engine/src/render-worker/compositor-runtime/scroll-drag-resample.d.ts +44 -0
  285. package/dist-types/packages/peach-engine/src/render-worker/css-keyframes-drive.d.ts +36 -0
  286. package/dist-types/packages/peach-engine/src/render-worker/edit-menu-geometry.d.ts +8 -0
  287. package/dist-types/packages/peach-engine/src/render-worker/engine-resource-relay.d.ts +21 -0
  288. package/dist-types/packages/peach-engine/src/render-worker/expo-widgetContract.d.ts +16 -0
  289. package/dist-types/packages/peach-engine/src/render-worker/gesture-seam-protocol.d.ts +152 -0
  290. package/dist-types/packages/peach-engine/src/render-worker/graph-linked-value.d.ts +29 -0
  291. package/dist-types/packages/peach-engine/src/render-worker/graphite-pipeline-compiler-contract.d.ts +49 -0
  292. package/dist-types/packages/peach-engine/src/render-worker/graphite-pipeline-compiler.d.ts +12 -0
  293. package/dist-types/packages/peach-engine/src/render-worker/host-service-protocol.d.ts +756 -0
  294. package/dist-types/packages/peach-engine/src/render-worker/image-lifecycle-event.d.ts +22 -0
  295. package/dist-types/packages/peach-engine/src/render-worker/image-pixel-contract.d.ts +48 -0
  296. package/dist-types/packages/peach-engine/src/render-worker/live-frame-mirror.d.ts +34 -0
  297. package/dist-types/packages/peach-engine/src/render-worker/map-command-channel.d.ts +189 -0
  298. package/dist-types/packages/peach-engine/src/render-worker/mapNativeContract.d.ts +101 -0
  299. package/dist-types/packages/peach-engine/src/render-worker/native-dynamic-synchronizable.d.ts +22 -0
  300. package/dist-types/packages/peach-engine/src/render-worker/native-menu-gesture.d.ts +9 -0
  301. package/dist-types/packages/peach-engine/src/render-worker/native-ui-commandContract.d.ts +23 -0
  302. package/dist-types/packages/peach-engine/src/render-worker/native-ui-protocol.d.ts +1087 -0
  303. package/dist-types/packages/peach-engine/src/render-worker/native-widgetContract.d.ts +100 -0
  304. package/dist-types/packages/peach-engine/src/render-worker/nativeAnimMirrorContract.d.ts +174 -0
  305. package/dist-types/packages/peach-engine/src/render-worker/nativeSyncReplyContract.d.ts +11 -0
  306. package/dist-types/packages/peach-engine/src/render-worker/one-native-contentContract.d.ts +54 -0
  307. package/dist-types/packages/peach-engine/src/render-worker/pointerSampleContract.d.ts +14 -0
  308. package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +880 -0
  309. package/dist-types/packages/peach-engine/src/render-worker/reanimated-css-contract.d.ts +63 -0
  310. package/dist-types/packages/peach-engine/src/render-worker/reanimated-readiness.d.ts +29 -0
  311. package/dist-types/packages/peach-engine/src/render-worker/resilient-frame-clock.d.ts +22 -0
  312. package/dist-types/packages/peach-engine/src/render-worker/retained-app-load.d.ts +20 -0
  313. package/dist-types/packages/peach-engine/src/render-worker/screen-edge-swipe-commit-protocol.d.ts +1 -0
  314. package/dist-types/packages/peach-engine/src/render-worker/screen-form-sheet-commit-protocol.d.ts +26 -0
  315. package/dist-types/packages/peach-engine/src/render-worker/scroll-mirror-tenant.d.ts +37 -0
  316. package/dist-types/packages/peach-engine/src/render-worker/scroll-mirror.d.ts +164 -0
  317. package/dist-types/packages/peach-engine/src/render-worker/shell-event-registry.d.ts +119 -0
  318. package/dist-types/packages/peach-engine/src/render-worker/shell-gesture-regions.d.ts +41 -0
  319. package/dist-types/packages/peach-engine/src/render-worker/shell-protocol.d.ts +603 -0
  320. package/dist-types/packages/peach-engine/src/render-worker/shell-scene-schema.d.ts +101 -0
  321. package/dist-types/packages/peach-engine/src/render-worker/shell-tree-inline-sources.d.ts +13 -0
  322. package/dist-types/packages/peach-engine/src/render-worker/shell-tree-wire.d.ts +87 -0
  323. package/dist-types/packages/peach-engine/src/render-worker/test-bridge-protocol.d.ts +47 -0
  324. package/dist-types/packages/peach-engine/src/render-worker/text-inputContract.d.ts +93 -0
  325. package/dist-types/packages/peach-engine/src/render-worker/tree-sync-port.d.ts +102 -0
  326. package/dist-types/packages/peach-engine/src/render-worker/webgpu-frame-transaction.d.ts +292 -0
  327. package/dist-types/packages/peach-engine/src/render-worker/webgpu-readback-scheduler.d.ts +107 -0
  328. package/dist-types/packages/peach-engine/src/render-worker/webview-capture-protocol.d.ts +16 -0
  329. package/dist-types/packages/peach-engine/src/render-worker/worker-input-runtime.d.ts +211 -0
  330. package/dist-types/packages/peach-engine/src/render-worker/worker-storage.d.ts +33 -0
  331. package/dist-types/packages/peach-engine/src/render-worker/worklet-runtime.d.ts +987 -0
  332. package/dist-types/packages/peach-engine/src/render-worker/worklet-sab.d.ts +24 -0
  333. package/dist-types/packages/peach-engine/src/rolldown-bundle-inventory.d.ts +84 -0
  334. package/dist-types/packages/peach-engine/src/rolldown-production-fingerprint.d.ts +31 -0
  335. package/dist-types/packages/peach-engine/src/screenshots/timeline-assets.d.ts +10 -0
  336. package/dist-types/packages/peach-engine/src/screenshots/tokens.d.ts +9 -0
  337. package/dist-types/packages/peach-engine/src/settings/devices.d.ts +70 -0
  338. package/dist-types/packages/peach-engine/src/settings/duo-fold-bus.d.ts +87 -0
  339. package/dist-types/packages/peach-engine/src/settings/interface-rotation.d.ts +30 -0
  340. package/dist-types/packages/peach-engine/src/settings/react-native-configuration.d.ts +12 -0
  341. package/dist-types/packages/peach-engine/src/settings/scene-geometryContract.d.ts +40 -0
  342. package/dist-types/packages/peach-engine/src/settings/store.d.ts +37 -0
  343. package/dist-types/packages/peach-engine/src/shell-events.d.ts +203 -0
  344. package/dist-types/packages/peach-engine/src/shell-intent.d.ts +68 -0
  345. package/dist-types/packages/peach-engine/src/sootsim-event.d.ts +35 -0
  346. package/dist-types/packages/peach-engine/src/top-overlay-state.d.ts +5 -0
  347. package/dist-types/packages/peach-engine/src/web-authentication-automation-host.d.ts +2 -0
  348. package/dist-types/packages/peach-engine/src/webAuthenticationContract.d.ts +34 -0
  349. package/dist-types/packages/peach-engine/src/webview-automation-host.d.ts +180 -0
  350. package/dist-types/packages/peach-engine/src/wireframe-mode.d.ts +16 -0
  351. package/dist-types/packages/peach-globals/src/frameBreakdownContract.d.ts +16 -0
  352. package/dist-types/packages/peach-globals/src/index.d.ts +3311 -0
  353. package/dist-types/packages/peach-globals/src/nativeSurfaceContract.d.ts +76 -0
  354. package/dist-types/packages/peach-globals/src/pointerSourceEventContract.d.ts +8 -0
  355. package/dist-types/packages/peach-globals/src/profileTrace.d.ts +11 -0
  356. package/dist-types/packages/peach-globals/src/profilerContract.d.ts +223 -0
  357. package/dist-types/packages/peach-kit/src/capabilities.d.ts +721 -0
  358. package/dist-types/packages/peach-kit/src/internal.d.ts +4 -0
  359. package/dist-types/packages/peach-kit/src/materials/types.d.ts +27 -0
  360. package/dist-types/packages/peach-kit/src/materials/uikit-blur-material.d.ts +14 -0
  361. package/dist-types/packages/peach-kit/src/navigation-types.d.ts +11 -0
  362. package/dist-types/packages/peach-kit/src/react-bridge.d.ts +53 -0
  363. package/dist-types/packages/peach-kit/src/runtime.d.ts +26 -0
  364. package/dist-types/packages/peach-kit/src/ui/hosting-safe-area.d.ts +24 -0
  365. package/dist-types/packages/peach-kit/src/ui/popover-placement.d.ts +53 -0
  366. package/dist-types/packages/peach-kit/src/ui/presentationContract.d.ts +17 -0
  367. package/kotlin/ComposeSources/PeachComposeHost.kt +1 -1
  368. package/kotlin/JniSources/com/facebook/jni/HybridData.kt +0 -2
  369. package/kotlin/JniSources/dev/peach/jni/NativeBindings.kt +0 -2
  370. package/kotlin/JniTransportSources/dev/peach/jni/integration/JniTransport.kt +0 -2
  371. package/kotlin/README.md +6 -0
  372. package/package.json +22 -2
  373. package/runtime-companion.json +1 -0
  374. package/skills/contrast/SKILL.md +1 -0
  375. package/src/assetCatalogContract.ts +21 -0
  376. package/src/bridge-contract-input.ts +84 -0
  377. package/src/bridge-contract.ts +35 -3
  378. package/src/browser-launch-policy.ts +1 -0
  379. package/src/bundle-channel.mjs +4 -2
  380. package/src/cli-runtime.ts +55 -0
  381. package/src/crash-fingerprint.ts +26 -0
  382. package/src/dev-bundle-resolution.ts +50 -23
  383. package/src/device-catalog.ts +1159 -0
  384. package/src/host/bridge-host.ts +3 -26
  385. package/src/host/browser-pointer.ts +71 -0
  386. package/src/host/dev-server-package-versions.ts +23 -0
  387. package/src/host/fetch-proxy-handler.ts +17 -4
  388. package/src/installed-package-versions.ts +142 -38
  389. package/src/kotlin-host.ts +1 -1
  390. package/src/metro-plugin.ts +4 -4
  391. package/src/metro-project-root.ts +68 -0
  392. package/src/nitro-adapter.lock.json +26 -0
  393. package/src/nitro-adapter.ts +103 -0
  394. package/src/nitro-bundle.ts +24 -10
  395. package/src/nitro-compile.ts +33 -51
  396. package/src/nitro-source.ts +177 -96
  397. package/src/nitroAdapterContract.ts +217 -0
  398. package/src/nitroContract.ts +24 -11
  399. package/src/process-group.ts +41 -34
  400. package/src/react-bridge-importers.ts +28 -0
  401. package/src/reactNativeConfigurationContract.ts +36 -0
  402. package/src/runtime-assets.ts +7 -2
  403. package/src/runtime-delivery.ts +2 -0
  404. package/src/runtimePlatformContract.ts +70 -0
  405. package/src/screenshots/frame-compose.ts +42 -43
  406. package/src/screenshots/org-deck.ts +9 -4
  407. package/src/screenshots/preset-names.ts +29 -0
  408. package/src/screenshots/registry.ts +5 -5
  409. package/src/screenshots/schema.ts +1 -1
  410. package/src/screenshots/screenshotContract.ts +971 -0
  411. package/src/settings-flags.ts +107 -0
  412. package/src/settingsContract.ts +609 -0
  413. package/src/storageSnapshotContract.ts +344 -0
  414. package/src/stub-pattern-matcher.ts +550 -0
  415. package/src/swift-compile.ts +908 -40
  416. package/src/swift-compiler-digest.ts +13 -1
  417. package/src/swift-distribution.lock.json +49 -22
  418. package/src/swift-host.ts +167 -52
  419. package/src/swift-objc-compile.ts +54 -24
  420. package/src/swift-objc-export.ts +532 -0
  421. package/src/swift-objc-import.ts +769 -0
  422. package/src/swift-objc-metadata.ts +285 -10
  423. package/src/swift-objc-sdk.ts +13970 -158
  424. package/src/swift-objc-standin.ts +137 -1
  425. package/src/swift-package.ts +94 -0
  426. package/src/swift-packages.ts +5 -5
  427. package/src/swift-submit.ts +6 -0
  428. package/src/swiftContract.ts +99 -0
  429. package/src/target-matcher.ts +6 -1
  430. package/src/vite-plugin.ts +14 -40
  431. package/src/worker-system-chunks.ts +1 -1
  432. package/src/workerChunkContract.ts +5 -0
  433. package/src/worklets-babel.ts +24 -5
  434. package/src/xcode-project.ts +36 -7
  435. package/src/xcode-target-members.ts +10 -3
  436. package/cli/drivers/playwright-sim-host.ts +0 -825
  437. package/kotlin/fixtures/counter/Counter.d.kt.ts +0 -17
  438. package/kotlin/fixtures/counter/Counter.kt +0 -51
  439. package/kotlin/fixtures/counter/CounterApp.native.tsx +0 -61
  440. package/kotlin/fixtures/counter/CounterApp.tsx +0 -3
  441. package/kotlin/fixtures/counter/CounterScreen.d.kt.ts +0 -8
  442. package/kotlin/fixtures/counter/CounterScreen.kt +0 -56
  443. package/kotlin/fixtures/counter/app/_layout.tsx +0 -4
  444. package/kotlin/fixtures/counter/app/index+spa.tsx +0 -1
  445. package/kotlin/fixtures/counter/app/routes.d.ts +0 -18
  446. package/kotlin/fixtures/counter/package.json +0 -20
  447. package/kotlin/fixtures/counter/tsconfig.json +0 -19
  448. package/kotlin/fixtures/counter/vite.config.ts +0 -20
  449. package/kotlin/fixtures/headless-counter/Headless.kt +0 -234
  450. package/kotlin/fixtures/import-animation/Animation.d.kt.ts +0 -7
  451. package/kotlin/fixtures/import-animation/Animation.kt +0 -80
  452. package/kotlin/fixtures/import-animation/ImportAnimation.native.tsx +0 -13
  453. package/kotlin/fixtures/import-animation/README.md +0 -24
  454. package/kotlin/fixtures/import-animation/app/_layout.tsx +0 -4
  455. package/kotlin/fixtures/import-animation/app/index+spa.tsx +0 -1
  456. package/kotlin/fixtures/import-animation/app/routes.d.ts +0 -18
  457. package/kotlin/fixtures/import-animation/package.json +0 -23
  458. package/kotlin/fixtures/import-animation/tsconfig.json +0 -20
  459. package/kotlin/fixtures/import-animation/vite.config.ts +0 -20
  460. package/kotlin/fixtures/import-drawing/Drawing.d.kt.ts +0 -7
  461. package/kotlin/fixtures/import-drawing/Drawing.kt +0 -101
  462. package/kotlin/fixtures/import-drawing/ImportDrawing.native.tsx +0 -18
  463. package/kotlin/fixtures/import-drawing/README.md +0 -34
  464. package/kotlin/fixtures/import-drawing/app/_layout.tsx +0 -4
  465. package/kotlin/fixtures/import-drawing/app/index+spa.tsx +0 -1
  466. package/kotlin/fixtures/import-drawing/package.json +0 -23
  467. package/kotlin/fixtures/import-drawing/tsconfig.json +0 -20
  468. package/kotlin/fixtures/import-drawing/vite.config.ts +0 -20
  469. package/kotlin/fixtures/import-editor/Editor.d.kt.ts +0 -7
  470. package/kotlin/fixtures/import-editor/Editor.kt +0 -59
  471. package/kotlin/fixtures/import-editor/ImportEditor.native.tsx +0 -23
  472. package/kotlin/fixtures/import-editor/README.md +0 -27
  473. package/kotlin/fixtures/import-editor/app/_layout.tsx +0 -4
  474. package/kotlin/fixtures/import-editor/app/index+spa.tsx +0 -1
  475. package/kotlin/fixtures/import-editor/package.json +0 -23
  476. package/kotlin/fixtures/import-editor/tsconfig.json +0 -20
  477. package/kotlin/fixtures/import-editor/vite.config.ts +0 -20
  478. package/kotlin/fixtures/import-effects/Effects.d.kt.ts +0 -7
  479. package/kotlin/fixtures/import-effects/Effects.kt +0 -87
  480. package/kotlin/fixtures/import-effects/ImportEffects.native.tsx +0 -13
  481. package/kotlin/fixtures/import-effects/README.md +0 -19
  482. package/kotlin/fixtures/import-effects/app/_layout.tsx +0 -4
  483. package/kotlin/fixtures/import-effects/app/index+spa.tsx +0 -1
  484. package/kotlin/fixtures/import-effects/package.json +0 -23
  485. package/kotlin/fixtures/import-effects/tsconfig.json +0 -20
  486. package/kotlin/fixtures/import-effects/vite.config.ts +0 -20
  487. package/kotlin/fixtures/import-layout/ImportLayout.native.tsx +0 -13
  488. package/kotlin/fixtures/import-layout/Layout.d.kt.ts +0 -7
  489. package/kotlin/fixtures/import-layout/Layout.kt +0 -72
  490. package/kotlin/fixtures/import-layout/README.md +0 -24
  491. package/kotlin/fixtures/import-layout/app/_layout.tsx +0 -4
  492. package/kotlin/fixtures/import-layout/app/index+spa.tsx +0 -1
  493. package/kotlin/fixtures/import-layout/package.json +0 -23
  494. package/kotlin/fixtures/import-layout/tsconfig.json +0 -20
  495. package/kotlin/fixtures/import-layout/vite.config.ts +0 -20
  496. package/kotlin/fixtures/import-navigation/ImportNavigation.native.tsx +0 -18
  497. package/kotlin/fixtures/import-navigation/Navigation.d.kt.ts +0 -7
  498. package/kotlin/fixtures/import-navigation/Navigation.kt +0 -104
  499. package/kotlin/fixtures/import-navigation/README.md +0 -31
  500. package/kotlin/fixtures/import-navigation/app/_layout.tsx +0 -4
  501. package/kotlin/fixtures/import-navigation/app/index+spa.tsx +0 -1
  502. package/kotlin/fixtures/import-navigation/package.json +0 -23
  503. package/kotlin/fixtures/import-navigation/tsconfig.json +0 -20
  504. package/kotlin/fixtures/import-navigation/vite.config.ts +0 -20
  505. package/kotlin/fixtures/import-overlays/ImportOverlays.native.tsx +0 -29
  506. package/kotlin/fixtures/import-overlays/Overlays.d.kt.ts +0 -7
  507. package/kotlin/fixtures/import-overlays/Overlays.kt +0 -93
  508. package/kotlin/fixtures/import-overlays/README.md +0 -34
  509. package/kotlin/fixtures/import-overlays/app/_layout.tsx +0 -4
  510. package/kotlin/fixtures/import-overlays/app/index+spa.tsx +0 -1
  511. package/kotlin/fixtures/import-overlays/package.json +0 -23
  512. package/kotlin/fixtures/import-overlays/tsconfig.json +0 -20
  513. package/kotlin/fixtures/import-overlays/vite.config.ts +0 -20
  514. package/kotlin/fixtures/import-resources/ImportResources.native.tsx +0 -18
  515. package/kotlin/fixtures/import-resources/README.md +0 -26
  516. package/kotlin/fixtures/import-resources/Resources.d.kt.ts +0 -6
  517. package/kotlin/fixtures/import-resources/Resources.kt +0 -72
  518. package/kotlin/fixtures/import-resources/app/_layout.tsx +0 -4
  519. package/kotlin/fixtures/import-resources/app/index+spa.tsx +0 -1
  520. package/kotlin/fixtures/import-resources/package.json +0 -23
  521. package/kotlin/fixtures/import-resources/tsconfig.json +0 -20
  522. package/kotlin/fixtures/import-resources/vite.config.ts +0 -20
  523. package/kotlin/fixtures/import-scroll/ImportNested.native.tsx +0 -10
  524. package/kotlin/fixtures/import-scroll/ImportScroll.native.tsx +0 -13
  525. package/kotlin/fixtures/import-scroll/Nested.d.kt.ts +0 -4
  526. package/kotlin/fixtures/import-scroll/Nested.kt +0 -64
  527. package/kotlin/fixtures/import-scroll/README.md +0 -38
  528. package/kotlin/fixtures/import-scroll/Scroll.d.kt.ts +0 -7
  529. package/kotlin/fixtures/import-scroll/Scroll.kt +0 -91
  530. package/kotlin/fixtures/import-scroll/app/_layout.tsx +0 -4
  531. package/kotlin/fixtures/import-scroll/app/index+spa.tsx +0 -1
  532. package/kotlin/fixtures/import-scroll/app/nested+spa.tsx +0 -1
  533. package/kotlin/fixtures/import-scroll/package.json +0 -23
  534. package/kotlin/fixtures/import-scroll/tsconfig.json +0 -20
  535. package/kotlin/fixtures/import-scroll/vite.config.ts +0 -20
  536. package/kotlin/fixtures/import-selection/ImportSelection.native.tsx +0 -44
  537. package/kotlin/fixtures/import-selection/README.md +0 -32
  538. package/kotlin/fixtures/import-selection/Selection.d.kt.ts +0 -8
  539. package/kotlin/fixtures/import-selection/Selection.kt +0 -78
  540. package/kotlin/fixtures/import-selection/app/_layout.tsx +0 -4
  541. package/kotlin/fixtures/import-selection/app/index+spa.tsx +0 -1
  542. package/kotlin/fixtures/import-selection/package.json +0 -23
  543. package/kotlin/fixtures/import-selection/tsconfig.json +0 -20
  544. package/kotlin/fixtures/import-selection/vite.config.ts +0 -20
  545. package/kotlin/fixtures/import-surfaces/ImportSurfaces.native.tsx +0 -13
  546. package/kotlin/fixtures/import-surfaces/README.md +0 -22
  547. package/kotlin/fixtures/import-surfaces/Surfaces.d.kt.ts +0 -7
  548. package/kotlin/fixtures/import-surfaces/Surfaces.kt +0 -64
  549. package/kotlin/fixtures/import-surfaces/app/_layout.tsx +0 -4
  550. package/kotlin/fixtures/import-surfaces/app/index+spa.tsx +0 -1
  551. package/kotlin/fixtures/import-surfaces/package.json +0 -23
  552. package/kotlin/fixtures/import-surfaces/tsconfig.json +0 -20
  553. package/kotlin/fixtures/import-surfaces/vite.config.ts +0 -20
  554. package/kotlin/fixtures/import-values/ImportValues.native.tsx +0 -61
  555. package/kotlin/fixtures/import-values/README.md +0 -28
  556. package/kotlin/fixtures/import-values/Values.d.kt.ts +0 -15
  557. package/kotlin/fixtures/import-values/Values.kt +0 -84
  558. package/kotlin/fixtures/import-values/app/_layout.tsx +0 -4
  559. package/kotlin/fixtures/import-values/app/index+spa.tsx +0 -1
  560. package/kotlin/fixtures/import-values/package.json +0 -23
  561. package/kotlin/fixtures/import-values/tsconfig.json +0 -20
  562. package/kotlin/fixtures/import-values/vite.config.ts +0 -20
  563. package/kotlin/fixtures/kotlin-app/app/build.gradle.kts +0 -30
  564. package/kotlin/fixtures/kotlin-app/app/src/main/AndroidManifest.xml +0 -13
  565. package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/MainActivity.kt +0 -60
  566. package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/ProbeApplication.kt +0 -18
  567. package/kotlin/fixtures/kotlin-app/build.gradle.kts +0 -5
  568. package/kotlin/fixtures/kotlin-app/gradle.properties +0 -4
  569. package/kotlin/fixtures/kotlin-app/settings.gradle.kts +0 -4
  570. package/kotlin/fixtures/kotlin-app-variants/Anim.kt +0 -62
  571. package/kotlin/fixtures/kotlin-app-variants/BarBehavior.kt +0 -38
  572. package/kotlin/fixtures/kotlin-app-variants/BarVisibility.kt +0 -36
  573. package/kotlin/fixtures/kotlin-app-variants/Bitmaps.kt +0 -50
  574. package/kotlin/fixtures/kotlin-app-variants/Browse.kt +0 -73
  575. package/kotlin/fixtures/kotlin-app-variants/Colors.kt +0 -41
  576. package/kotlin/fixtures/kotlin-app-variants/Controls.kt +0 -62
  577. package/kotlin/fixtures/kotlin-app-variants/Drag.kt +0 -56
  578. package/kotlin/fixtures/kotlin-app-variants/Draw.kt +0 -74
  579. package/kotlin/fixtures/kotlin-app-variants/Drawables.kt +0 -53
  580. package/kotlin/fixtures/kotlin-app-variants/Focus.kt +0 -62
  581. package/kotlin/fixtures/kotlin-app-variants/Form.kt +0 -47
  582. package/kotlin/fixtures/kotlin-app-variants/Icons.kt +0 -59
  583. package/kotlin/fixtures/kotlin-app-variants/Ime.kt +0 -53
  584. package/kotlin/fixtures/kotlin-app-variants/Lists.kt +0 -57
  585. package/kotlin/fixtures/kotlin-app-variants/Nav.kt +0 -47
  586. package/kotlin/fixtures/kotlin-app-variants/Note.kt +0 -40
  587. package/kotlin/fixtures/kotlin-app-variants/Overlays.kt +0 -56
  588. package/kotlin/fixtures/kotlin-app-variants/Pan.kt +0 -38
  589. package/kotlin/fixtures/kotlin-app-variants/Pickers.kt +0 -44
  590. package/kotlin/fixtures/kotlin-app-variants/Press.kt +0 -43
  591. package/kotlin/fixtures/kotlin-app-variants/Scroll.kt +0 -63
  592. package/kotlin/fixtures/kotlin-app-variants/Sheet.kt +0 -43
  593. package/kotlin/fixtures/kotlin-app-variants/Strings.kt +0 -49
  594. package/kotlin/fixtures/kotlin-app-variants/Tabs.kt +0 -47
  595. package/kotlin/fixtures/kotlin-app-variants/TextWidth.kt +0 -45
  596. package/kotlin/fixtures/kotlin-app-variants/TransientInsets.kt +0 -50
  597. package/kotlin/fixtures/kotlin-app-variants/Transition.kt +0 -69
  598. package/kotlin/fixtures/kotlin-app-variants/ViewConfig.kt +0 -22
  599. package/kotlin/fixtures/kotlin-app-variants/Widgets.kt +0 -67
  600. package/kotlin/fixtures/runtime-state/RuntimeState.kt +0 -200
  601. package/kotlin/fork/README.md +0 -97
  602. package/kotlin/fork/build.sh +0 -176
  603. package/kotlin/fork/compose-worker-globals.patch +0 -1247
  604. package/kotlin/fork/fork.json +0 -46
  605. package/kotlin/fork/publish.ts +0 -99
  606. package/kotlin/fork/skia-android-shaping.patch +0 -189
  607. package/kotlin/fork/skiko-local.init.gradle +0 -10
  608. package/kotlin/fork/skiko-worker-clock.patch +0 -122
package/README.md CHANGED
@@ -484,6 +484,18 @@ connected. With multiple driveable sims, the bridge lists their ids and refuses
484
484
  to choose. Run `peach use <id>` to pin later commands, or pass `--sim <id>` to
485
485
  target one command.
486
486
 
487
+ Writes, `peach do reload`, `storage-clear` and `close` honor a live lease held
488
+ by another CLI identity and refuse before the sim is touched. A `peach open`
489
+ that will not reuse a pinned sim (no pin, or `--new`, `--profile`,
490
+ `--ephemeral`) records that intent as soon as its arguments validate. If it
491
+ then fails, including while resolving the app bundle, later commands from the
492
+ same CLI identity that name no sim refuse instead of landing on another
493
+ connected tab: writes, `reload`, `storage-clear`, `close`, `close --all` and
494
+ `close --others`. A successful `peach open`, `peach use <id>` or `--sim <id>`
495
+ restores intent, and reads keep the fallback. Naming a sim (`peach close <id>`)
496
+ is explicit and is not blocked; closing an unleased sim that someone else owns
497
+ by naming it stays the caller's call.
498
+
487
499
  Use an inline `peach do` chain for a short action sequence that should execute as
488
500
  one engine batch. Repeat `--then` before each additional action. Each phrase
489
501
  uses the same positional grammar as its standalone `do` command. Touch timing
@@ -5,7 +5,7 @@ import {
5
5
  enumerateBundleImages,
6
6
  enumerateBundleSymbols,
7
7
  } from '../../sootsim-swift/src/bundleAssets'
8
- import type { AppCatalog } from 'peach-engine/engine/app-catalog-wire'
8
+ import type { AppCatalog } from '#peach-cli-contract/engine/app-catalog-wire'
9
9
 
10
10
  // the xcode build setting actool turns into the built Info.plist's
11
11
  // NSAccentColorName when the source plist does not name one itself
package/cli/app-fonts.ts CHANGED
@@ -2,19 +2,7 @@ import { createHash } from 'node:crypto'
2
2
  import fs from 'node:fs'
3
3
  import { createRequire } from 'node:module'
4
4
  import path from 'node:path'
5
- import {
6
- encodeAppFontsWire,
7
- resolveAppFontsWire,
8
- expoFontPathsFromPlugins,
9
- nativeLinkedFontSpecsFromPaths,
10
- appFontAssetUrlsFromWire,
11
- type ConfigPluginFontSpec,
12
- type FontPlatform,
13
- } from 'peach-engine/engine/config-plugin-fonts'
14
- import { resolveListeningPid, resolveProcessCwd } from '../scripts/dev-server-scanner'
15
- import { loopbackOriginOf } from '../src/backend-origin'
16
- import { MANIFEST_PROBE_TIMEOUT_MS } from '../src/dev-bundle-resolution'
17
- import { parseExpoManifestBody } from '../src/expo-manifest-body'
5
+ import { getCliRuntime } from '../src/cli-runtime.ts'
18
6
  import { stageHostFile } from '../src/host/staged-host-files'
19
7
  import { parsePlistSource } from '../src/plist.ts'
20
8
  import { listXcodeAppTargets, readXcodeAppTarget } from '../src/xcode-project'
@@ -23,6 +11,8 @@ import {
23
11
  materialSymbolFontPaths,
24
12
  materialSymbolFontAssets,
25
13
  } from './material-symbol-fonts'
14
+ import type { FontPlatform } from '#peach-cli-contract/engine/config-plugin-fonts'
15
+ import type { ConfigPluginFontSpec } from '#peach-cli-contract/engine/config-plugin-fonts'
26
16
 
27
17
  const require = createRequire(import.meta.url)
28
18
 
@@ -43,7 +33,7 @@ export function discoverNativeLinkedAppFonts(opts: {
43
33
  }): DiscoveredAppFontSpec[] {
44
34
  const { paths, materialSymbols } = discoverNativeLinkedAppFontAssets(opts)
45
35
  const realProjectRoot = fs.realpathSync(opts.projectDir)
46
- const specs = nativeLinkedFontSpecsFromPaths(
36
+ const specs = getCliRuntime().engine_config_plugin_fonts.nativeLinkedFontSpecsFromPaths(
47
37
  projectRelativeFontPaths(opts.projectDir, paths),
48
38
  nativeFontPlatform(opts.platform),
49
39
  (fontPath) =>
@@ -143,7 +133,8 @@ function discoverNativeLinkedAppFontAssets(opts: {
143
133
  }
144
134
 
145
135
  // a declared path with no file behind it links nothing natively.
146
- const fontPaths = expoFontPathsFromPlugins(plugins, platform)
136
+ const fontPaths = getCliRuntime()
137
+ .engine_config_plugin_fonts.expoFontPathsFromPlugins(plugins, platform)
147
138
  .slice(0, 256)
148
139
  .map((fontPath) => path.resolve(selectedAppDir, fontPath))
149
140
  .filter(isFile)
@@ -354,7 +345,7 @@ export function readNativeLinkedAppFontsWire(opts: {
354
345
  }
355
346
  const projectDir = fs.realpathSync(opts.projectDir)
356
347
  const { paths, materialSymbols } = discoverNativeLinkedAppFontAssets(opts)
357
- const specs = nativeLinkedFontSpecsFromPaths(
348
+ const specs = getCliRuntime().engine_config_plugin_fonts.nativeLinkedFontSpecsFromPaths(
358
349
  projectRelativeFontPaths(projectDir, paths),
359
350
  nativeFontPlatform(opts.platform),
360
351
  (fontPath) => {
@@ -368,69 +359,7 @@ export function readNativeLinkedAppFontsWire(opts: {
368
359
  (filePath) =>
369
360
  `data:application/octet-stream;base64,${fs.readFileSync(filePath).toString('base64')}`,
370
361
  )
371
- return encodeAppFontsWire(specs)
372
- }
373
-
374
- // resolve a metro dev server's project root. Expo's middleware advertises it
375
- // in X-React-Native-Project-Root, encoded with encodeURI. Older servers name it
376
- // in extra.expoClient._internal.projectRoot. The local peach open path runs from the
377
- // CLI's cwd, which almost never owns the bundle being opened (e.g.
378
- // `peach open 8081` run from ~/contrast against a 3pc metro), so scanning cwd for
379
- // font declarations finds nothing.
380
- //
381
- // a bare react-native packager serves no such manifest, so the same resolver
382
- // asks the OS for the listening process's cwd. that is still the development
383
- // server's project identity; the invoking CLI's cwd is never consulted.
384
- //
385
- // it waits on the same budget as the manifest resolution that found this dev
386
- // server. a cold Expo Metro answers /status in 2-4s while it builds a bundle,
387
- // and dropping the project there opens the app without its fonts, splash or
388
- // Firebase config. a server that stays silent past the budget fails the open.
389
- export async function resolveMetroProjectRoot(bundleUrl: string): Promise<string | null> {
390
- const origin = loopbackOriginOf(bundleUrl)
391
- if (!origin) return null
392
- const controller = new AbortController()
393
- const timer = setTimeout(() => controller.abort(), MANIFEST_PROBE_TIMEOUT_MS)
394
- let servedManifest = false
395
- let metroRunning = false
396
- try {
397
- const status = await fetch(`${origin}/status`, { signal: controller.signal })
398
- const advertisedRoot = status.headers.get('X-React-Native-Project-Root')
399
- if (status.ok && advertisedRoot) return decodeURI(advertisedRoot)
400
- metroRunning = status.ok && (await status.text()).trim() === 'packager-status:running'
401
- const res = await fetch(`${origin}/`, {
402
- headers: { 'expo-platform': 'ios', Accept: 'application/json' },
403
- signal: controller.signal,
404
- })
405
- if (res.ok) {
406
- const manifest = parseExpoManifestBody(await res.text()) as {
407
- extra?: { expoClient?: { _internal?: { projectRoot?: unknown } } }
408
- }
409
- servedManifest = true
410
- const root = manifest?.extra?.expoClient?._internal?.projectRoot
411
- if (typeof root === 'string' && root.length > 0) return root
412
- }
413
- } catch {
414
- if (controller.signal.aborted)
415
- throw new Error(
416
- `Metro project root request timed out after ${MANIFEST_PROBE_TIMEOUT_MS / 1000}s: ${origin}. Wait for the dev server to finish starting or pass --project-root.`,
417
- )
418
- } finally {
419
- clearTimeout(timer)
420
- }
421
-
422
- // a server that answered with a manifest has already told us everything it
423
- // knows. if it did not name a project root there is none to learn, and asking
424
- // the OS about the listening process would answer with whatever directory
425
- // that process happens to sit in — which is the CLI's own cwd trap this
426
- // function exists to avoid. only a server whose status identifies Metro
427
- // and which served no manifest gets the process lookup.
428
- if (servedManifest || !metroRunning) return null
429
-
430
- const port = Number(new URL(origin).port)
431
- if (!Number.isFinite(port) || port <= 0) return null
432
- const pid = await resolveListeningPid(port)
433
- return pid === null ? null : resolveProcessCwd(pid)
362
+ return getCliRuntime().engine_config_plugin_fonts.encodeAppFontsWire(specs)
434
363
  }
435
364
 
436
365
  // content type for a config-plugin font url, by extension. config fonts only
@@ -469,7 +398,9 @@ export async function fetchAppFontFiles(
469
398
  ): Promise<FetchedAppFont[]> {
470
399
  const out: FetchedAppFont[] = []
471
400
  const seen = new Set<string>()
472
- for (const url of appFontAssetUrlsFromWire(await resolveAppFontsWire(wire, fetch))) {
401
+ for (const url of getCliRuntime().engine_config_plugin_fonts.appFontAssetUrlsFromWire(
402
+ await getCliRuntime().engine_config_plugin_fonts.resolveAppFontsWire(wire, fetch),
403
+ )) {
473
404
  const urlhash = createHash('sha256').update(url).digest('hex')
474
405
  if (seen.has(urlhash)) continue
475
406
  seen.add(urlhash)
package/cli/app-splash.ts CHANGED
@@ -2,21 +2,22 @@ import { createHash } from 'node:crypto'
2
2
  import fs from 'node:fs'
3
3
  import { createRequire } from 'node:module'
4
4
  import path from 'node:path'
5
- import {
6
- configPluginSplashFromExpoConfig,
7
- encodeAppSplashWire,
8
- parseAppSplashWire,
9
- type ConfigPluginSplashSpec,
10
- } from 'peach-engine/engine/config-plugin-splash'
11
5
  import { loopbackOriginOf } from '../src/backend-origin'
6
+ import { getCliRuntime } from '../src/cli-runtime.ts'
12
7
  import { resolveAppProject } from './app-project'
8
+ import type { ConfigPluginSplashSpec } from '#peach-cli-contract/engine/config-plugin-splash'
13
9
 
14
10
  const require = createRequire(import.meta.url)
15
11
 
16
12
  // the filesystem scan and the engine's metro-manifest scan share the same
17
13
  // parser (config-plugin-splash.ts) and produce the same resolved spec.
18
14
  export type DiscoveredAppSplashSpec = ConfigPluginSplashSpec
19
- export { encodeAppSplashWire, parseAppSplashWire }
15
+ export function encodeAppSplashWire(spec: ConfigPluginSplashSpec): string {
16
+ return getCliRuntime().engine_config_plugin_splash.encodeAppSplashWire(spec)
17
+ }
18
+ export function parseAppSplashWire(wire: string): ConfigPluginSplashSpec | null {
19
+ return getCliRuntime().engine_config_plugin_splash.parseAppSplashWire(wire)
20
+ }
20
21
 
21
22
  export async function discoverOneNativeAppSplash(
22
23
  bundleUrl: string,
@@ -42,9 +43,14 @@ export async function discoverOneNativeAppSplash(
42
43
  return null
43
44
  const extra = 'extra' in manifest ? manifest.extra : undefined
44
45
  if (!extra || typeof extra !== 'object' || !('expoClient' in extra)) return null
45
- return configPluginSplashFromExpoConfig(extra.expoClient, 'ios', origin, {
46
- oneNativeApp: true,
47
- })
46
+ return getCliRuntime().engine_config_plugin_splash.configPluginSplashFromExpoConfig(
47
+ extra.expoClient,
48
+ 'ios',
49
+ origin,
50
+ {
51
+ oneNativeApp: true,
52
+ },
53
+ )
48
54
  } catch {
49
55
  return null
50
56
  }
@@ -88,7 +94,7 @@ export function discoverConfigPluginAppSplash(opts: {
88
94
  } catch {}
89
95
  if (!exp || typeof exp !== 'object') return null
90
96
 
91
- return configPluginSplashFromExpoConfig(
97
+ return getCliRuntime().engine_config_plugin_splash.configPluginSplashFromExpoConfig(
92
98
  exp,
93
99
  platform === 'android' ? 'android' : 'ios',
94
100
  metroOrigin,
@@ -140,7 +146,7 @@ export async function fetchAppSplashImages(
140
146
  onError?: (url: string, err: unknown) => void
141
147
  },
142
148
  ): Promise<FetchedAppSplashImage[]> {
143
- const spec = parseAppSplashWire(wire)
149
+ const spec = getCliRuntime().engine_config_plugin_splash.parseAppSplashWire(wire)
144
150
  if (!spec) return []
145
151
  const out: FetchedAppSplashImage[] = []
146
152
  const seen = new Set<string>()
@@ -1,16 +1,16 @@
1
1
  import * as fs from 'fs'
2
2
  import * as path from 'path'
3
3
  import { isTextInputEditCommand, type TextInputEditCommand } from '@peach/globals'
4
- import {
5
- isStorageSnapshot,
6
- prepareStorageSnapshotForShare,
7
- type ShareableStorageSnapshot,
8
- } from 'peach-engine/preview/storage-snapshot-contract'
9
- import { devices, type DeviceModel } from 'peach-engine/settings/devices'
10
4
  import { REQUIRED_IDENTICAL_FLOW_FRAMES, framesIdentical } from '../detox/proof-frame.cjs'
5
+ import { devices, type DeviceModel } from '../src/device-catalog.ts'
11
6
  import { flowTimeoutScale } from '../src/flow-timeout-scale'
12
7
  import { composeFramedScreenshot } from '../src/screenshots/frame-compose'
13
8
  import { sleep } from '../src/sleep'
9
+ import {
10
+ isStorageSnapshot,
11
+ prepareStorageSnapshotForShare,
12
+ ShareableStorageSnapshot,
13
+ } from '../src/storageSnapshotContract.ts'
14
14
  import {
15
15
  inspectWaitReady,
16
16
  isPeachAccessibilityTree,
@@ -27,6 +27,7 @@ import {
27
27
  sameNativeAccessibilityShape,
28
28
  } from './maestro-accessibility'
29
29
  import { MaestroJsContext, scriptConditionIsTruthy } from './maestro-js'
30
+ import { redactForSharing } from './output-redaction'
30
31
  import { ensureCliRecordingEntitlement } from './recording-access'
31
32
  import type { PerformResult, PerformStep, ResetResult } from '../src/bridge-contract'
32
33
  import type { WsBridge } from './ws-bridge'
@@ -2387,7 +2388,10 @@ export class SootSimBridgeFlowRunner {
2387
2388
  fs.mkdirSync(outputDir, { recursive: true })
2388
2389
  const write = (name: string, content: string | Buffer) => {
2389
2390
  try {
2390
- fs.writeFileSync(path.join(outputDir, name), content)
2391
+ fs.writeFileSync(
2392
+ path.join(outputDir, name),
2393
+ typeof content === 'string' ? redactForSharing(content) : content,
2394
+ )
2391
2395
  } catch {
2392
2396
  // best-effort; don't let one failed write block the others
2393
2397
  }
@@ -24,14 +24,8 @@ import {
24
24
  buildRnxCloudArtifact,
25
25
  type RnxCloudArtifactReceipt,
26
26
  } from '../../contrast-bundler/src/metroCloudArtifact.ts'
27
- import { rewriteGuestImportMeta } from '../../peach-engine/src/guest-import-meta.ts'
28
- import { loadMetroFingerprintRegistry } from '../../peach-engine/src/metro-fingerprint-registry-client.ts'
29
- import { inferMetroModuleIdentity } from '../../peach-engine/src/metro-fingerprint.ts'
30
- import {
31
- isNativeJavaScriptBundle,
32
- isRolldownBundle,
33
- } from '../../peach-engine/src/preview/bundle-layout'
34
27
  import { isLoopbackHost } from '../src/backend-origin.ts'
28
+ import { getCliRuntime } from '../src/cli-runtime.ts'
35
29
  import {
36
30
  isRnxCloudCommandType,
37
31
  isRnxCloudSimStatus,
@@ -52,6 +46,7 @@ import {
52
46
  } from '../src/metro-production-bundle.ts'
53
47
  import { readPackageVersionsFooter } from '../src/packageVersionsContract'
54
48
  import { rnxPublicBrand } from '../src/public-brand.ts'
49
+ import { StorageSnapshot } from '../src/storageSnapshotContract.ts'
55
50
  import { CHOOSE_ACCOUNT_HINT, resolveCliAuth } from './auth.ts'
56
51
  import {
57
52
  createCloudSession,
@@ -63,7 +58,6 @@ import {
63
58
  type RemotePlatform,
64
59
  } from './cloud-session.ts'
65
60
  import { detectProject } from './commands/detect.ts'
66
- import type { StorageSnapshot } from '../../peach-engine/src/preview/storage-snapshot-contract.ts'
67
61
  import type {
68
62
  BridgeClaimResult,
69
63
  BridgeSimInfo,
@@ -258,13 +252,15 @@ async function loadBundleSource(bundleInput: string, command: string): Promise<s
258
252
  const source = isRemoteBundleInput(bundleInput)
259
253
  ? await fetchBundleSource(bundleInput, command)
260
254
  : readImmutableBundleSource(bundleInput, command)
261
- if (!isNativeJavaScriptBundle(source)) {
255
+ if (!getCliRuntime().preview_bundle_layout.isNativeJavaScriptBundle(source)) {
262
256
  throw new Error(`${command} requires a supported React Native JavaScript bundle`)
263
257
  }
264
258
  // validate the actual runtime script form without executing guest code or
265
259
  // allocating a host.
266
260
  try {
267
- new Script(rewriteGuestImportMeta(source), { filename: bundleInput })
261
+ new Script(getCliRuntime().guest_import_meta.rewriteGuestImportMeta(source), {
262
+ filename: bundleInput,
263
+ })
268
264
  } catch (error) {
269
265
  throw new Error(
270
266
  `${command} bundle contains invalid JavaScript: ${
@@ -674,7 +670,8 @@ async function inferCloudModuleIdentity(
674
670
  ): Promise<RNXMetroModuleIdentityMetadata> {
675
671
  let receipt
676
672
  try {
677
- receipt = await loadMetroFingerprintRegistry()
673
+ receipt =
674
+ await getCliRuntime().metro_fingerprint_registry_client.loadMetroFingerprintRegistry()
678
675
  } catch (error) {
679
676
  throw new Error(
680
677
  `${command} could not load the Metro fingerprint registry needed to identify this bundle: ${
@@ -683,7 +680,7 @@ async function inferCloudModuleIdentity(
683
680
  )
684
681
  }
685
682
  try {
686
- const inferred = await inferMetroModuleIdentity({
683
+ const inferred = await getCliRuntime().metro_fingerprint.inferMetroModuleIdentity({
687
684
  source,
688
685
  registry: receipt.registry,
689
686
  registryIntegrity: receipt.integrity,
@@ -741,7 +738,7 @@ export async function produceCloudArtifact(
741
738
  /** prepares a standalone preview whose bytes must represent every Metro asset. */
742
739
  export async function producePreviewArtifact(bundlePath: string) {
743
740
  const prepared = await embedBundleAssets(bundlePath, PREVIEW_COMMAND, 'require-assets')
744
- if (!isRolldownBundle(prepared.source)) {
741
+ if (!getCliRuntime().preview_bundle_layout.isRolldownBundle(prepared.source)) {
745
742
  return {
746
743
  ...(await produceArtifact(prepared, Number.POSITIVE_INFINITY, PREVIEW_COMMAND)),
747
744
  minified: true,
@@ -51,6 +51,7 @@ const NODE_COMMAND_NAMES = [
51
51
  'claim',
52
52
  'close',
53
53
  'doctor',
54
+ 'coverage',
54
55
  'project-report',
55
56
  'support',
56
57
  'desktop',
@@ -145,16 +146,24 @@ const VALUE_FLAGS = new Set([
145
146
 
146
147
  const BROWSER_SCREENSHOT_SUBCOMMANDS = new Set(['capture', 'ask', 'appearance', 'motion'])
147
148
 
148
- export function getRnxFirstPositional(args: readonly string[]): string | null {
149
+ export function getRnxPositionals(
150
+ args: readonly string[],
151
+ extraValueFlags: ReadonlySet<string> = new Set(),
152
+ ): string[] {
153
+ const positionals: string[] = []
149
154
  for (let index = 0; index < args.length; index++) {
150
155
  const arg = args[index]
151
156
  if (arg.startsWith('-')) {
152
- if (VALUE_FLAGS.has(arg)) index++
157
+ if (VALUE_FLAGS.has(arg) || extraValueFlags.has(arg)) index++
153
158
  continue
154
159
  }
155
- return arg
160
+ positionals.push(arg)
156
161
  }
157
- return null
162
+ return positionals
163
+ }
164
+
165
+ export function getRnxFirstPositional(args: readonly string[]): string | null {
166
+ return getRnxPositionals(args)[0] ?? null
158
167
  }
159
168
 
160
169
  export function getRnxCommandRegistration(name: string): RnxCommandRegistration | null {
@@ -1,3 +1,4 @@
1
+ import { createHash } from 'node:crypto'
1
2
  // `peach box` — the box environment.
2
3
  //
3
4
  // bare `peach box` is LOCAL and mounts the current checkout at /project. cloud
@@ -9,8 +10,6 @@
9
10
  // every verb that acts on an existing Box takes it the same way: the id or
10
11
  // name on the command line, else the one `peach box use` remembered. see
11
12
  // boxTarget below.
12
-
13
- import { createHash } from 'node:crypto'
14
13
  import fs from 'node:fs'
15
14
  import path from 'node:path'
16
15
  import { createInterface } from 'node:readline'
@@ -30,7 +29,8 @@ import {
30
29
  ensureCloudBoxBrowser,
31
30
  resolveCloudBoxReference,
32
31
  } from 'peach-cloud-box/client'
33
- import { getRuntimePlatform, isDeviceModel } from 'peach-engine/settings/devices'
32
+ import { getCliRuntime } from '../../src/cli-runtime.ts'
33
+ import { isDeviceModel } from '../../src/device-catalog.ts'
34
34
  import { readDefaultBox, writeDefaultBox } from '../../src/home-paths'
35
35
  import { rnxPublicBrand } from '../../src/public-brand'
36
36
  import { readNativeLinkedAppFontsWire } from '../app-fonts'
@@ -532,7 +532,7 @@ export async function createPrebuiltBundleBox(options: {
532
532
  }) {
533
533
  const platform =
534
534
  options.device && isDeviceModel(options.device)
535
- ? getRuntimePlatform(options.device)
535
+ ? getCliRuntime().settings_devices.getRuntimePlatform(options.device)
536
536
  : 'ios'
537
537
  const nativeRenderer = options.nativeProjectDir
538
538
  ? readNativeProjectRenderer(options.nativeProjectDir, platform)