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
@@ -1,200 +0,0 @@
1
- package dev.contrast.composefixtures
2
-
3
- import dev.onejs.one.source.OneModule
4
- import androidx.compose.runtime.*
5
- import androidx.compose.runtime.snapshots.Snapshot
6
- import kotlinx.coroutines.*
7
- import org.json.JSONObject
8
-
9
- private class Node {
10
- var text = ""
11
- var click: () -> Unit = {}
12
- val children = mutableListOf<Node>()
13
- }
14
- private class TreeApplier(root: Node) : AbstractApplier<Node>(root) {
15
- override fun insertTopDown(index: Int, instance: Node) { current.children.add(index, instance) }
16
- override fun insertBottomUp(index: Int, instance: Node) {}
17
- override fun remove(index: Int, count: Int) { repeat(count) { current.children.removeAt(index) } }
18
- override fun move(from: Int, to: Int, count: Int) { current.children.move(from, to, count) }
19
- override fun onClear() { root.children.clear() }
20
- }
21
- private val shared = mutableStateOf(0)
22
- @Composable
23
- private fun CounterTree() {
24
- var count by remember { mutableStateOf(0) }
25
- val value = "local=$count shared=${shared.value}"
26
- ComposeNode<Node, TreeApplier>(
27
- factory = { Node() },
28
- update = {
29
- set(value) { text = it }
30
- set({ count += 1; shared.value += 1 }) { click = it }
31
- }
32
- )
33
- }
34
-
35
- private class RootEffects {
36
- val launched = CompletableDeferred<Unit>()
37
- val cancelled = CompletableDeferred<Unit>()
38
- val frame = CompletableDeferred<Long>()
39
- val scopeStarted = CompletableDeferred<Unit>()
40
- val scopeCancelled = CompletableDeferred<Unit>()
41
- var starts = 0
42
- var disposals = 0
43
- var scope: CoroutineScope? = null
44
- var scopeJob: Job? = null
45
- }
46
-
47
- @Composable
48
- private fun LifecycleTree(label: String, effects: RootEffects) {
49
- var count by remember { mutableStateOf(0) }
50
- val scope = rememberCoroutineScope()
51
- SideEffect { effects.scope = scope }
52
- DisposableEffect(Unit) {
53
- effects.starts += 1
54
- onDispose { effects.disposals += 1 }
55
- }
56
- LaunchedEffect(Unit) {
57
- effects.launched.complete(Unit)
58
- try {
59
- effects.frame.complete(withFrameNanos { it })
60
- awaitCancellation()
61
- } finally {
62
- effects.cancelled.complete(Unit)
63
- }
64
- }
65
- ComposeNode<Node, TreeApplier>(
66
- factory = { Node() },
67
- update = {
68
- set("$label local=$count shared=${shared.value}") { text = it }
69
- set({
70
- count += 1
71
- shared.value += 1
72
- if (effects.scopeJob == null) effects.scopeJob = scope.launch {
73
- effects.scopeStarted.complete(Unit)
74
- try { awaitCancellation() } finally { effects.scopeCancelled.complete(Unit) }
75
- }
76
- }) { click = it }
77
- }
78
- )
79
- }
80
-
81
- object RuntimeState : OneModule {
82
- fun failError(): Int = throw AssertionError("error boundary")
83
-
84
- suspend fun checkLifecycle(retainRoot: Boolean, disposeRoot: Boolean): String = withTimeout(5_000) {
85
- shared.value = 0
86
- val a = Node()
87
- val b = Node()
88
- val leftEffects = RootEffects()
89
- val rightEffects = RootEffects()
90
- var label by mutableStateOf("original")
91
- var frame = 0L
92
- lateinit var clock: BroadcastFrameClock
93
- clock = BroadcastFrameClock { launch { clock.sendFrame(++frame) } }
94
- val recomposer = Recomposer(coroutineContext + clock)
95
- val runner = launch(clock, CoroutineStart.UNDISPATCHED) { recomposer.runRecomposeAndApplyChanges() }
96
- val left = Composition(TreeApplier(a), recomposer)
97
- val right = Composition(TreeApplier(b), recomposer)
98
- try {
99
- left.setContent {
100
- if (retainRoot) LifecycleTree(label, leftEffects)
101
- else key(label) { LifecycleTree(label, leftEffects) }
102
- }
103
- right.setContent { LifecycleTree("right", rightEffects) }
104
- leftEffects.launched.await()
105
- rightEffects.launched.await()
106
- val leftFrame = leftEffects.frame.await()
107
- val rightFrame = rightEffects.frame.await()
108
- check(leftFrame == rightFrame) { "roots received different frame times: $leftFrame/$rightFrame" }
109
- recomposer.awaitIdle()
110
- check(a.children.single().text == "original local=0 shared=0")
111
- check(b.children.single().text == "right local=0 shared=0")
112
- val original = a.children.single()
113
- original.click()
114
- b.children.single().click()
115
- leftEffects.scopeStarted.await()
116
- rightEffects.scopeStarted.await()
117
- Snapshot.sendApplyNotifications()
118
- recomposer.awaitIdle()
119
- label = "updated"
120
- Snapshot.sendApplyNotifications()
121
- recomposer.awaitIdle()
122
- check(a.children.single().text == "updated local=1 shared=2") {
123
- "props update reset remembered state: ${a.children.single().text}"
124
- }
125
- check(a.children.single() === original) { "props update replaced the root node" }
126
- check(b.children.single().text == "right local=1 shared=2") { "props update touched the other root" }
127
- check(leftEffects.starts == 1 && leftEffects.disposals == 0) { "props update restarted effects" }
128
- check(leftEffects.scope?.isActive == true && rightEffects.scope?.isActive == true)
129
- if (disposeRoot) left.dispose()
130
- check(leftEffects.disposals == 1) { "left disposal did not run DisposableEffect" }
131
- leftEffects.cancelled.await()
132
- leftEffects.scopeCancelled.await()
133
- check(a.children.isEmpty()) { "left disposal retained nodes" }
134
- check(leftEffects.scope?.isActive == false && leftEffects.scopeJob?.isCancelled == true)
135
- check(rightEffects.disposals == 0 && !rightEffects.cancelled.isCompleted && !rightEffects.scopeCancelled.isCompleted) {
136
- "left disposal cancelled the other root"
137
- }
138
- check(rightEffects.scope?.isActive == true && rightEffects.scopeJob?.isActive == true)
139
- b.children.single().click()
140
- Snapshot.sendApplyNotifications()
141
- recomposer.awaitIdle()
142
- check(b.children.single().text == "right local=2 shared=3") { "surviving root stopped recomposing" }
143
- right.dispose()
144
- rightEffects.cancelled.await()
145
- rightEffects.scopeCancelled.await()
146
- check(b.children.isEmpty() && rightEffects.disposals == 1)
147
- check(rightEffects.scope?.isActive == false && rightEffects.scopeJob?.isCancelled == true)
148
- JSONObject().put("passed", true).put("propsRetainState", true).put("propsRetainNode", true)
149
- .put("effectsRetainIdentity", true).put("sharedFrameNanos", leftFrame)
150
- .put("launchedEffectCancelled", true).put("disposableEffectDisposed", true)
151
- .put("rememberedScopeCancelled", true).put("survivingRootRecomposes", true)
152
- .put("uiProven", false).toString()
153
- } finally {
154
- left.dispose()
155
- right.dispose()
156
- recomposer.cancel()
157
- runner.cancelAndJoin()
158
- }
159
- }
160
-
161
- suspend fun checkState(startScheduler: Boolean): String = coroutineScope {
162
- shared.value = 0
163
- val a = Node()
164
- val b = Node()
165
- var frame = 0L
166
- lateinit var clock: BroadcastFrameClock
167
- clock = BroadcastFrameClock { launch { clock.sendFrame(++frame) } }
168
- val recomposer = Recomposer(coroutineContext + clock)
169
- val runner = launch(clock, if (startScheduler) CoroutineStart.UNDISPATCHED else CoroutineStart.LAZY) { recomposer.runRecomposeAndApplyChanges() }
170
- val left = Composition(TreeApplier(a), recomposer)
171
- val right = Composition(TreeApplier(b), recomposer)
172
- try {
173
- left.setContent { CounterTree() }
174
- right.setContent { CounterTree() }
175
- check(a.children.single().text == "local=0 shared=0") { "left initial: ${a.children.single().text}" }
176
- check(b.children.single().text == "local=0 shared=0") { "right initial: ${b.children.single().text}" }
177
- val original = a.children.single()
178
- original.click()
179
- Snapshot.sendApplyNotifications()
180
- recomposer.awaitIdle()
181
- check(a.children.single() === original) { "left node identity changed" }
182
- check(a.children.single().text == "local=1 shared=1") { "left after click: ${a.children.single().text}" }
183
- check(b.children.single().text == "local=0 shared=1") { "right shared update: ${b.children.single().text}" }
184
- left.dispose()
185
- check(a.children.isEmpty()) { "left dispose retained ${a.children.size} nodes" }
186
- b.children.single().click()
187
- Snapshot.sendApplyNotifications()
188
- recomposer.awaitIdle()
189
- check(b.children.single().text == "local=1 shared=2") { "right after click: ${b.children.single().text}" }
190
- right.dispose()
191
- check(b.children.isEmpty()) { "right dispose retained ${b.children.size} nodes" }
192
- "{\"passed\":true,\"runtime\":\"androidx.compose.runtime:1.13.0-alpha02\",\"localState\":[0,1],\"sharedState\":[0,1,2],\"twoRoots\":true,\"retainedNode\":true,\"dispose\":true,\"uiProven\":false}"
193
- } finally {
194
- left.dispose()
195
- right.dispose()
196
- recomposer.cancel()
197
- runner.cancelAndJoin()
198
- }
199
- }
200
- }
@@ -1,97 +0,0 @@
1
- # Peach's JetBrains web fork
2
-
3
- Peach runs Compose in a React Native tenant worker, with no `window`,
4
- `document`, `location`, or browser navigator language/platform fields. The official
5
- Compose UI 1.13.0-alpha01 and Skiko 0.152.0-alpha02 platform actuals assume
6
- browser globals that this native host does not publish. Peach carries patched
7
- builds until upstream supplies equivalent worker and native host hooks, and
8
- Android behavior for the approved web differences and static text shaping below.
9
-
10
- | module | file | native host binding |
11
- | --- | --- | --- |
12
- | Compose `foundation` | `Magnifier.web.kt`, `PlatformMagnifier.web.kt`, `TextFieldSelectionManager.web.kt` | Android magnifier modifier, semantics and selection animation with a scene-owned platform factory |
13
- | Compose `foundation` and `ui` | `RequestFocusOnClick.web.kt`, `Focusability.web.kt` | Android click and touch focus policy keeps sibling controls from taking a text field’s focus |
14
- | Compose `ui` | `Dialog.skiko.kt`, `PlatformContext.skiko.kt` | distinct Dialog window and navigation dispatcher isolate Back from the activity |
15
- | Compose `ui` and `foundation` | `Actuals.wasm.kt`, `UndoManager.web.kt` | clocks read `globalThis.performance.now()` |
16
- | Compose `ui` and `foundation` | `PlatformClipboard.web.kt`, `ClipboardUtils.wasm.kt` | worker-safe secure-context and clipboard reads |
17
- | Compose `ui` | `SystemTheme.kt` | `LocalSystemTheme` visible to the host, which provides the device's night mode |
18
- | Compose `ui-text` | `PlatformLocale.web.kt` | explicit `setPlatformLocaleProvider`; its default keeps upstream navigator behavior |
19
- | Compose `ui-skiko` | `SkiaBackedPaint.nonAndroid.kt` | initial Miter join agrees with the backing paint and Android |
20
- | Compose `ui-skiko` | `SkikoText.nonAndroid.kt`, `SkikoParagraphBuilder.nonAndroid.kt` | Android static advances and letter-spacing scale; Animated text retains fractional shaping |
21
- | Skia shaper | `SkShaper_harfbuzz.cpp` | measurement-font copy truncates static shaping size; the painted run font retains the requested size |
22
- | Skia raster | `SkFontHost_FreeType.cpp`, `SkFontHost_FreeType_common.cpp`, `SkSurface.cpp` | Android implicit autohinting policy and text gamma 1.4, contrast 0 |
23
- | Skia paragraph | `Run.cpp`, `TextLine.cpp`, `TextWrapper.cpp`, `DartTypes.h` | Android inter-glyph spacing, caret boundaries, edge trimming before line fits and integer center origins |
24
- | Compose `ui-skiko` | `SkikoParagraphIntrinsics.nonAndroid.kt`, `SkikoParagraph.nonAndroid.kt`, `SkikoParagraphBuilder.nonAndroid.kt` | Android letter-spacing intrinsic padding, centered line bounds, explicit center alignment and fitting BoringLayout line extents |
25
- | Skiko paragraph | `Alignment.kt` | transports the Android center ordinal without changing existing alignments |
26
- | Compose `material3` | `PlatformDateFormat.web.kt` | timestamp formatting uses UTC, as Android does |
27
- | Navigation `navigation-compose` | `DefaultNavTransitions.web.kt` | Android forward fades and predictive pop defaults |
28
- | Skiko | `OsArch.web.kt` | explicit `setHostOsProvider`; its default lazily retains upstream OS detection |
29
- | Skiko | `Actuals.web.kt` | nanosecond clock reads `globalThis.performance.now()` |
30
- | Skiko loader build | `OptimizeSkikoWasmTask.kt` | script directory reads `import.meta.url`, without `self.location` |
31
- | Skiko linker | `LinkSkikoTask.kt` | object paths sort before linking; library order retains its symbol resolution contract |
32
-
33
- The Compose host installs the locale provider once before any scene, from the
34
- same device locale it passes to `PlatformContext`, and installs `OS.Android`
35
- through Skiko’s host OS provider before any scene. Browser navigator fields
36
- stay absent in guest JS. Changes to device language after launch are outside
37
- this contract.
38
-
39
- `fork.json` pins repositories, commits, patch hashes, JDK and Android tools.
40
- Every changed upstream file carries a modification notice. `LICENSE` and
41
- `NOTICE` travel with the patches. `SKIA_LICENSE` records the modified Skia units’ BSD license. `build.sh` builds the changed KLIBs and Skiko
42
- runtime jar with the upstream Gradle builds on the Linux builder. The Skia shaping, paragraph and raster
43
- units are fetched at their pinned commit, patched, and compiled into Skiko; the linker
44
- uses them instead of the same units in the pinned Skia archive. All other Skia
45
- objects retain their upstream build. The linker sorts object paths, so filesystem
46
- enumeration does not change the Wasm binary. Static archives retain their declared
47
- order because that order controls symbol resolution. Sorting costs once per link,
48
- outside app runtime. FreeType headers match the pinned Skia DEPS revision;
49
- the FreeType binary remains the archive version. Raster changes add no allocation
50
- and retain the existing A8 preblend path. This adds no allocation beyond the existing
51
- measurement-font copy, and truncates once per shaped font, outside the glyph loop.
52
- Paragraph spacing adds constant arithmetic per glyph or cluster; line fits trim
53
- the same edge half-spaces as completed lines, without allocation. Android centered
54
- lines use the platform integer origin; other platforms retain fractional centering.
55
- Intrinsic measurement checks span letter spacing once and adds Android’s 0.5 px
56
- padding; line bounds use the platform floor and ceil. Fitting Android BoringLayout
57
- paragraphs expose the ceiled paragraph extent while preserving fractional glyph
58
- positions, including Animated text. Eligibility is scanned once per intrinsic
59
- construction. These corrections add no allocation. Skiko builds before Compose, whose `skiko-wasm-js` dependency resolves
60
- from this invocation’s Maven directory through `skiko-local.init.gradle`. The init
61
- script travels in the immutable build record with the patches.
62
-
63
- ```sh
64
- delivery="scripts/tmp/kotlin-fork-$(date +%s)-$$"
65
- bun remote --delivery-dir "$delivery" bash packages/peachsim/kotlin/fork/build.sh
66
- bun packages/peachsim/kotlin/fork/publish.ts "$delivery/kotlin-fork"
67
- ```
68
-
69
- The delivery includes `artifacts.sha256` and its exact fork record. Publication
70
- stores each binary at `peach-kotlin-fork/<binary-sha256>/<file>` and its record
71
- at `peach-kotlin-fork/<binary-sha256>/records/<record-sha256>/`. It refuses to
72
- replace existing bytes. A metadata change cannot overwrite a previous record
73
- when a binary is unchanged. `toolchain.json` pins these immutable binary URLs;
74
- all other Compose libraries remain official Maven artifacts. Everything stays
75
- lazy for Kotlin/Compose apps.
76
-
77
- The isolated worker probe cannot certify the native tenant's absent globals.
78
- `scripts/debug/peach-compose-mount/tenant-run.ts` boots the actual capture tenant
79
- with the imported `.kt` component, asserts those globals stay absent, and
80
- checks `Locale.current` and `LocalLocaleList` against an ar-EG device setting
81
- with an en-US browser.
82
-
83
- Delete the fork when official releases provide worker-safe clocks/clipboard,
84
- a location-independent loader and equivalent native locale/host OS provider hooks,
85
- plus UTC date formatting, Android navigation defaults, the correct initial paint join,
86
- Android magnifier lifecycle and Android static shaping size/advances,
87
- then rematch the Android pins in `plans/peach/kotlin-everywhere.md`. The prepared
88
- upstream issue names these hooks and the full guest regression vehicle.
89
-
90
- The static shaping correction is measured against the original `textwidth`
91
- fixture. The six original widths, twelve spacing assertions and the 162/164 px
92
- wrapping threshold pass their paired Android controls. The body Range probe
93
- retains its existing 0.00098 px difference. The original plain Month raster rows pass the strict 16/255 comparison in
94
- the actual Kotlin app; the old frame fails the retained raster check. Other
95
- pixel residuals remain open in the lane plan. The original Animated motion widths
96
- match Android, and the retained mixed-font/caret controls pass after the extent
97
- correction. These corrections do not certify full text parity.
@@ -1,176 +0,0 @@
1
- #!/usr/bin/env bash
2
- #
3
- # builds Peach's patched JetBrains Kotlin/Wasm klibs on the linux builder and
4
- # delivers them to the caller's `.remote-out/kotlin-fork/`:
5
- #
6
- # bun remote bash packages/peachsim/kotlin/fork/build.sh
7
- #
8
- # each upstream in fork.json is fetched at its pinned commit, gets its
9
- # committed patch, and builds with its own gradle build at the upstream's
10
- # kotlin compiler. only the modules the patches change are delivered. the
11
- # builder keeps the sources, the verified toolchain downloads, the sdk
12
- # platforms the compose build installs, and gradle's caches under
13
- # ~/builders/peach-kotlin-fork, so a rebuild is warm. the JDK and sdk tools are
14
- # unpacked fresh from their pinned archives every run, so a changed pin or an
15
- # altered install never survives into a build. bun remote already runs this under SCHED_IDLE with a
16
- # 16G memory bound; gradle and its in-process compiler stay inside it.
17
-
18
- set -euo pipefail
19
-
20
- FORK=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
21
- REPO_ROOT=$(cd "${FORK}/../../../.." && pwd)
22
- ROOT=$HOME/builders/peach-kotlin-fork
23
- DELIVER=${REPO_ROOT}/.remote-out/kotlin-fork
24
-
25
- mkdir -p "${ROOT}/downloads" "${ROOT}/src"
26
- exec 9>>"${ROOT}.lock"
27
- flock 9
28
-
29
- field() { node -p "const f = require('${FORK}/fork.json'); ${1}"; }
30
-
31
- fetch() {
32
- local url=$1 sha256=$2 target=$3
33
- if [[ -f "${target}" ]] && echo "${sha256} ${target}" | sha256sum -c --status; then return; fi
34
- curl -sfL --retry 3 -o "${target}.partial" "${url}"
35
- if ! echo "${sha256} ${target}.partial" | sha256sum -c --status; then
36
- echo "${url} does not match its pinned sha256 ${sha256}" >&2
37
- exit 2
38
- fi
39
- mv "${target}.partial" "${target}"
40
- }
41
-
42
- JDK=${ROOT}/jdk
43
- fetch "$(field 'f.toolchain.jdk.url')" "$(field 'f.toolchain.jdk.sha256')" "${ROOT}/downloads/jdk.tar.gz"
44
- rm -rf "${JDK}" && mkdir -p "${JDK}"
45
- tar -xzf "${ROOT}/downloads/jdk.tar.gz" -C "${JDK}" --strip-components=1
46
-
47
- SDK=${ROOT}/android-sdk
48
- fetch "$(field 'f.toolchain.androidCommandLineTools.url')" \
49
- "$(field 'f.toolchain.androidCommandLineTools.sha256')" "${ROOT}/downloads/cmdline-tools.zip"
50
- rm -rf "${SDK}/cmdline-tools" && mkdir -p "${SDK}/cmdline-tools"
51
- unzip -q "${ROOT}/downloads/cmdline-tools.zip" -d "${SDK}/cmdline-tools"
52
- mv "${SDK}/cmdline-tools/cmdline-tools" "${SDK}/cmdline-tools/latest"
53
- # the compose build downloads the platforms it configures against, which needs
54
- # the sdk licenses accepted once
55
- JAVA_HOME=${JDK} "${SDK}/cmdline-tools/latest/bin/sdkmanager" --sdk_root="${SDK}" --licenses < <(yes) >/dev/null 2>&1
56
-
57
- export JAVA_HOME=${JDK} ANDROIDX_JDK21=${JDK} ANDROID_HOME=${SDK} ANDROID_SDK_ROOT=${SDK}
58
- export GRADLE_USER_HOME=${ROOT}/gradle-home
59
- M2=${ROOT}/m2
60
-
61
- # fetches one upstream at its pinned commit, discards anything a previous run
62
- # left in tracked files, and applies its patch after checking the patch hash.
63
- # sets SOURCE rather than printing it: a command substitution would drop
64
- # errexit and build on past a failed checkout or apply
65
- checkout() {
66
- local index=$1
67
- local name repository commit patch patch_sha256 dir
68
- name=$(field "f.upstreams[${index}].name")
69
- repository=$(field "f.upstreams[${index}].repository")
70
- commit=$(field "f.upstreams[${index}].commit")
71
- patch=${FORK}/$(field "f.upstreams[${index}].patch")
72
- patch_sha256=$(field "f.upstreams[${index}].patchSha256")
73
- dir=${ROOT}/src/${name}
74
- if ! echo "${patch_sha256} ${patch}" | sha256sum -c --status; then
75
- echo "${patch} does not match fork.json patchSha256" >&2
76
- exit 2
77
- fi
78
- if [[ ! -d "${dir}/.git" ]]; then
79
- git init -q "${dir}"
80
- git -C "${dir}" remote add origin "${repository}"
81
- fi
82
- if ! git -C "${dir}" cat-file -e "${commit}^{commit}" 2>/dev/null; then
83
- git -C "${dir}" fetch -q --depth 1 origin "${commit}"
84
- fi
85
- git -C "${dir}" checkout -q -f --detach "${commit}"
86
- git -C "${dir}" clean -fdq
87
- if [[ $(git -C "${dir}" rev-parse HEAD) != "${commit}" ]]; then
88
- echo "${name} is not at ${commit}" >&2
89
- exit 2
90
- fi
91
- git -C "${dir}" apply "${patch}"
92
- SOURCE=${dir}
93
- }
94
-
95
- gradle() {
96
- ./gradlew --no-daemon --console=plain --max-workers=6 \
97
- "-Dorg.gradle.jvmargs=-Xmx10g -XX:+UseParallelGC -Dfile.encoding=UTF-8" \
98
- -Pkotlin.compiler.execution.strategy=in-process \
99
- "-Dmaven.repo.local=${M2}" "$@"
100
- }
101
-
102
- rm -rf "${DELIVER}" "${M2}"
103
- mkdir -p "${DELIVER}"
104
-
105
- checkout 1
106
- SKIKO_SOURCE=${SOURCE}
107
- checkout 2
108
- # compile patched shaping and paragraph units in Skiko instead of their
109
- # upstream archive units. all other Skia objects remain pinned upstream.
110
- cmp "${SOURCE}/LICENSE" "${FORK}/SKIA_LICENSE"
111
- cp "${SOURCE}/modules/skshaper/src/SkShaper_harfbuzz.cpp" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/AndroidShaper.cpp"
112
- # internal paragraph headers come from the same pinned source as the archive.
113
- rsync -a --include='*/' --include='*.h' --exclude='*' "${SOURCE}/include/" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/include/"
114
- rsync -a --include='*/' --include='*.h' --exclude='*' "${SOURCE}/modules/" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/modules/"
115
- rsync -a --include='*/' --include='*.h' --exclude='*' "${SOURCE}/src/" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/src/"
116
- cp "${SOURCE}/modules/skparagraph/src/Run.cpp" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/AndroidParagraphRun.cpp"
117
- cp "${SOURCE}/modules/skparagraph/src/TextLine.cpp" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/AndroidParagraphTextLine.cpp"
118
- cp "${SOURCE}/modules/skparagraph/src/TextWrapper.cpp" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/AndroidParagraphTextWrapper.cpp"
119
- # the raster units use the same freetype headers as the pinned skia archive.
120
- FREETYPE_SOURCE=${ROOT}/src/freetype
121
- FREETYPE_REPOSITORY=$(field 'f.toolchain.freetypeHeaders.repository')
122
- FREETYPE_COMMIT=$(field 'f.toolchain.freetypeHeaders.commit')
123
- if ! grep -Fq "${FREETYPE_REPOSITORY}@${FREETYPE_COMMIT}" "${SOURCE}/DEPS"; then
124
- echo "freetype headers differ from the pinned skia dependency" >&2
125
- exit 2
126
- fi
127
- if [[ ! -d "${FREETYPE_SOURCE}/.git" ]]; then
128
- git init -q "${FREETYPE_SOURCE}"
129
- git -C "${FREETYPE_SOURCE}" remote add origin "${FREETYPE_REPOSITORY}"
130
- fi
131
- if ! git -C "${FREETYPE_SOURCE}" cat-file -e "${FREETYPE_COMMIT}^{commit}" 2>/dev/null; then
132
- git -C "${FREETYPE_SOURCE}" fetch -q --depth 1 origin "${FREETYPE_COMMIT}"
133
- fi
134
- git -C "${FREETYPE_SOURCE}" checkout -q -f --detach "${FREETYPE_COMMIT}"
135
- if [[ $(git -C "${FREETYPE_SOURCE}" rev-parse HEAD) != "${FREETYPE_COMMIT}" ]]; then
136
- echo "freetype headers are not at ${FREETYPE_COMMIT}" >&2
137
- exit 2
138
- fi
139
- rsync -a --delete "${FREETYPE_SOURCE}/include/" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/freetype/"
140
- cp "${SOURCE}/src/ports/SkFontHost_FreeType.cpp" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/AndroidFreeType.cpp"
141
- cp "${SOURCE}/src/ports/SkFontHost_FreeType_common.cpp" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/AndroidFreeTypeCommon.cpp"
142
- cp "${SOURCE}/src/image/SkSurface.cpp" "${SKIKO_SOURCE}/skiko/src/nativeJsMain/cpp/AndroidSurface.cpp"
143
- (
144
- cd "${SKIKO_SOURCE}/skiko"
145
- gradle -Pdeploy.version=0.152.0-alpha02 -Pdeploy.release=true \
146
- -Pskiko.wasm.enabled=true -Pskiko.awt.enabled=false \
147
- :publishWasmJsPublicationToMavenLocal :skikoWasmJar
148
- cp build/libs/skiko-wasm-0.152.0-alpha02.jar "${DELIVER}/"
149
- )
150
-
151
- checkout 0
152
- (
153
- cd "${SOURCE}"
154
- gradle -I "${FORK}/skiko-local.init.gradle" -Pcompose.platforms=web -Pjetbrains.publication.version.COMPOSE=1.13.0-alpha01 \
155
- -Pjetbrains.publication.version.COMPOSE_MATERIAL3=1.13.0-alpha01 \
156
- -Pjetbrains.publication.version.NAVIGATION=2.10.0-beta01 \
157
- :compose:ui:ui:publishWasmJsPublicationToMavenLocal \
158
- :compose:foundation:foundation:publishWasmJsPublicationToMavenLocal \
159
- :compose:ui:ui-text:publishWasmJsPublicationToMavenLocal \
160
- :compose:ui:ui-skiko:publishWasmJsPublicationToMavenLocal \
161
- :compose:material3:material3:publishWasmJsPublicationToMavenLocal \
162
- :navigation:navigation-compose:publishWasmJsPublicationToMavenLocal
163
- )
164
-
165
- cp "${M2}/org/jetbrains/compose/ui/ui-wasm-js/1.13.0-alpha01/ui-wasm-js-1.13.0-alpha01.klib" \
166
- "${M2}/org/jetbrains/compose/foundation/foundation-wasm-js/1.13.0-alpha01/foundation-wasm-js-1.13.0-alpha01.klib" \
167
- "${M2}/org/jetbrains/compose/ui/ui-text-wasm-js/1.13.0-alpha01/ui-text-wasm-js-1.13.0-alpha01.klib" \
168
- "${M2}/org/jetbrains/compose/ui/ui-skiko-wasm-js/1.13.0-alpha01/ui-skiko-wasm-js-1.13.0-alpha01.klib" \
169
- "${M2}/org/jetbrains/compose/material3/material3-wasm-js/1.13.0-alpha01/material3-wasm-js-1.13.0-alpha01.klib" \
170
- "${M2}/org/jetbrains/androidx/navigation/navigation-compose-wasm-js/2.10.0-beta01/navigation-compose-wasm-js-2.10.0-beta01.klib" \
171
- "${M2}/org/jetbrains/skiko/skiko-wasm-js/0.152.0-alpha02/skiko-wasm-js-0.152.0-alpha02.klib" \
172
- "${DELIVER}/"
173
- # the record travels with the klibs it describes, so publishing attaches what
174
- # this build used, not whatever the checkout holds later
175
- cp "${FORK}/fork.json" "${FORK}/LICENSE" "${FORK}/NOTICE" "${FORK}/SKIA_LICENSE" "${FORK}"/*.patch "${FORK}/skiko-local.init.gradle" "${DELIVER}/"
176
- (cd "${DELIVER}" && sha256sum -- *.klib *.jar > artifacts.sha256 && cat artifacts.sha256)