peachsim 0.1.1641 → 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 (618) hide show
  1. package/README.md +12 -0
  2. package/cli/app-bundle-resources.ts +57 -0
  3. package/cli/app-catalog.ts +1 -1
  4. package/cli/app-fonts.ts +11 -80
  5. package/cli/app-splash.ts +18 -12
  6. package/cli/bridge-flow-runner.ts +11 -7
  7. package/cli/cloud-client.ts +10 -13
  8. package/cli/command-registry.ts +13 -4
  9. package/cli/commands/box.ts +4 -4
  10. package/cli/commands/control.ts +105 -53
  11. package/cli/commands/coverage-parser.ts +67 -0
  12. package/cli/commands/coverage.ts +550 -0
  13. package/cli/commands/debug.ts +9 -18
  14. package/cli/commands/desktop.ts +19 -7
  15. package/cli/commands/device.ts +14 -9
  16. package/cli/commands/guest-host.ts +6 -10
  17. package/cli/commands/inspect/core.ts +81 -17
  18. package/cli/commands/inspect.ts +13 -8
  19. package/cli/commands/kotlin.ts +2 -2
  20. package/cli/commands/maestro-compare.ts +1 -1
  21. package/cli/commands/platform.ts +20 -11
  22. package/cli/commands/preview.ts +16 -18
  23. package/cli/commands/runtime.ts +3 -2
  24. package/cli/commands/screenshot-layers.ts +1 -1
  25. package/cli/commands/screenshot.ts +1 -1
  26. package/cli/commands/serve.ts +5 -1
  27. package/cli/commands/support.ts +4 -4
  28. package/cli/commands/three-mode.ts +22 -15
  29. package/cli/commands/upload.ts +44 -45
  30. package/cli/current-sim.ts +38 -0
  31. package/cli/desktop-companion.ts +36 -8
  32. package/cli/device-option.ts +1 -1
  33. package/cli/drivers/playwright.ts +40 -0
  34. package/cli/drivers/types.ts +4 -0
  35. package/cli/help-core.ts +1 -1
  36. package/cli/internal-child.ts +2 -1
  37. package/cli/main.ts +9 -3
  38. package/cli/outbound-endpoints.ts +15 -5
  39. package/cli/output-redaction.ts +39 -14
  40. package/cli/remote-simulators.ts +4 -1
  41. package/cli/scene-video.ts +5 -2
  42. package/cli/send-to-box.ts +7 -10
  43. package/cli/telemetry.ts +1 -1
  44. package/cli/ws-bridge.ts +8 -1
  45. package/detox/attempt-events.cjs +3 -1
  46. package/detox/attempt-events.d.cts +1 -1
  47. package/detox/expectations.ts +108 -99
  48. package/detox/frame-offset.d.mts +6 -0
  49. package/detox/frame-offset.mjs +35 -0
  50. package/detox/gestures.ts +6 -18
  51. package/detox/index.ts +169 -101
  52. package/detox/jest-preset.cjs +1 -3
  53. package/detox/jest-transform.cjs +4 -0
  54. package/detox/matchers.ts +3 -0
  55. package/detox/motion-change.cjs +52 -118
  56. package/detox/motion-change.d.cts +6 -27
  57. package/detox/motion-leg-starts.cjs +20 -0
  58. package/detox/motion-leg-starts.d.cts +8 -0
  59. package/dist-lib/agent-daemon-client.cjs +1 -1
  60. package/dist-lib/agent-events.cjs +1 -1
  61. package/dist-lib/attached-projects.cjs +1 -1
  62. package/dist-lib/auth/shared-session.cjs +1 -1
  63. package/dist-lib/backend-origin.cjs +3 -3
  64. package/dist-lib/beta.cjs +1 -1
  65. package/dist-lib/beta.mjs +1 -1
  66. package/dist-lib/bridge-constants.cjs +1 -1
  67. package/dist-lib/bridge-contract-input.cjs +65 -1
  68. package/dist-lib/bridge-contract-input.mjs +63 -1
  69. package/dist-lib/bridge-contract.cjs +19 -1
  70. package/dist-lib/bridge-contract.mjs +17 -1
  71. package/dist-lib/bundle-channel.cjs +38332 -14940
  72. package/dist-lib/capture-contract.cjs +1 -1
  73. package/dist-lib/capture-contract.mjs +1 -1
  74. package/dist-lib/cloud-contract.cjs +1 -1
  75. package/dist-lib/cloud-contract.mjs +1 -1
  76. package/dist-lib/cloud-test-args.cjs +1 -1
  77. package/dist-lib/cloud-test-args.mjs +1 -1
  78. package/dist-lib/cloud.cjs +1 -1
  79. package/dist-lib/cloud.mjs +1 -1
  80. package/dist-lib/config.cjs +1 -1
  81. package/dist-lib/config.mjs +5 -3
  82. package/dist-lib/detox/index.cjs +1247 -4511
  83. package/dist-lib/detox/jest-preset.cjs +1 -3
  84. package/dist-lib/detox/jest-transform.cjs +4 -0
  85. package/dist-lib/dev-bundle-resolution.cjs +28 -24
  86. package/dist-lib/expo-swift-bundle.cjs +35243 -13172
  87. package/dist-lib/expo-swift-metadata.cjs +1 -1
  88. package/dist-lib/expo-swift-metadata.mjs +1 -1
  89. package/dist-lib/home-paths.cjs +1 -1
  90. package/dist-lib/host/bridge-host.cjs +45285 -63163
  91. package/dist-lib/host/fetch-proxy-handler.cjs +3544 -11
  92. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  93. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  94. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  95. package/dist-lib/host/websocket-proxy.cjs +1 -1
  96. package/dist-lib/index.cjs +1997 -2069
  97. package/dist-lib/jump-to-source-babel.cjs +1 -1
  98. package/dist-lib/jump-to-source-native.cjs +1 -1
  99. package/dist-lib/kotlin-host.cjs +2 -2
  100. package/dist-lib/menu.cjs +14 -6
  101. package/dist-lib/menu.mjs +14 -6
  102. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  103. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  104. package/dist-lib/metro-production-bundle.cjs +1 -1
  105. package/dist-lib/metro-production-bundle.mjs +1 -1
  106. package/dist-lib/metro.cjs +468 -563
  107. package/dist-lib/native-app-identity-project.cjs +128 -292
  108. package/dist-lib/native-app-identity-project.mjs +1262 -51
  109. package/dist-lib/native-app-identity.cjs +8 -3
  110. package/dist-lib/native-app-identity.mjs +8 -3
  111. package/dist-lib/native-firebase-metadata.cjs +1 -1
  112. package/dist-lib/native-firebase-metadata.mjs +1 -1
  113. package/dist-lib/plist.cjs +2 -244
  114. package/dist-lib/plist.mjs +1 -1
  115. package/dist-lib/profiles.cjs +1 -1
  116. package/dist-lib/public-brand.cjs +1 -1
  117. package/dist-lib/public-origins-lib-esm.json +290 -0
  118. package/dist-lib/public-origins-lib-static.json +1 -0
  119. package/dist-lib/public-origins-lib.json +1852 -0
  120. package/dist-lib/react-native-host-modules.cjs +1 -1
  121. package/dist-lib/react-native-host-modules.mjs +1 -1
  122. package/dist-lib/scripts/dev-server-scanner.cjs +14 -253
  123. package/dist-lib/sdk.cjs +84 -16
  124. package/dist-lib/sdk.mjs +82 -15
  125. package/dist-lib/skills.cjs +51248 -75450
  126. package/dist-lib/swift-compile.cjs +26154 -1245
  127. package/dist-lib/swift-compile.mjs +26151 -1230
  128. package/dist-lib/swift-package.cjs +79 -1
  129. package/dist-lib/swift-package.mjs +75 -1
  130. package/dist-lib/swift-submit.cjs +1 -1
  131. package/dist-lib/swift-submit.mjs +1 -1
  132. package/dist-lib/swift-toolchain.cjs +1 -1
  133. package/dist-lib/swift.cjs +1 -1
  134. package/dist-lib/vite-swift.cjs +34394 -12323
  135. package/dist-lib/vite.cjs +373 -298
  136. package/dist-lib/worklet-executable.cjs +1 -1
  137. package/dist-lib/worklet-executable.mjs +1 -1
  138. package/dist-types/packages/peach-compat/src/engine-config.d.ts +2 -0
  139. package/dist-types/packages/peach-compat/src/stubs/form-sheet-spring.d.ts +9 -0
  140. package/dist-types/packages/peach-compat/src/stubs/native-evaluation-lease.d.ts +47 -0
  141. package/dist-types/packages/peach-compat/src/stubs/native-seams/react-native-cookies.d.ts +113 -0
  142. package/dist-types/packages/peach-compat/src/stubs/native-seams/react-native-gesture-handler.d.ts +154 -0
  143. package/dist-types/packages/peach-compat/src/stubs/screen-transition-math.d.ts +756 -0
  144. package/dist-types/packages/peach-compat/src/stubs/transition-scalar.d.ts +25 -0
  145. package/dist-types/packages/peach-engine/src/billing/plans.d.ts +64 -0
  146. package/dist-types/packages/peach-engine/src/browser-page-target.d.ts +2 -0
  147. package/dist-types/packages/peach-engine/src/bundle-platform-url.d.ts +3 -0
  148. package/dist-types/packages/peach-engine/src/capture/browser-accessibility-host.d.ts +3 -0
  149. package/dist-types/packages/peach-engine/src/capture/browser-composite.d.ts +55 -0
  150. package/dist-types/packages/peach-engine/src/capture/browserAccessibilityContract.d.ts +27 -0
  151. package/dist-types/packages/peach-engine/src/capture/nativeScreenCaptureContract.d.ts +22 -0
  152. package/dist-types/packages/peach-engine/src/cli-companion.d.ts +36 -0
  153. package/dist-types/packages/peach-engine/src/components/native-ui/webview-frame-bridge.d.ts +34 -0
  154. package/dist-types/packages/peach-engine/src/config.d.ts +5 -0
  155. package/dist-types/packages/peach-engine/src/engine/android-stretch-effect.d.ts +57 -0
  156. package/dist-types/packages/peach-engine/src/engine/animated-driven-style.d.ts +47 -0
  157. package/dist-types/packages/peach-engine/src/engine/animated-value.d.ts +5 -0
  158. package/dist-types/packages/peach-engine/src/engine/animated.d.ts +195 -0
  159. package/dist-types/packages/peach-engine/src/engine/animation-clockContract.d.ts +15 -0
  160. package/dist-types/packages/peach-engine/src/engine/animation-graph.d.ts +148 -0
  161. package/dist-types/packages/peach-engine/src/engine/app-catalog-wire.d.ts +10 -0
  162. package/dist-types/packages/peach-engine/src/engine/app-font-registry.d.ts +87 -0
  163. package/dist-types/packages/peach-engine/src/engine/attributed-paragraph-paint.d.ts +7 -0
  164. package/dist-types/packages/peach-engine/src/engine/attributed-paragraph.d.ts +123 -0
  165. package/dist-types/packages/peach-engine/src/engine/audioContract.d.ts +16 -0
  166. package/dist-types/packages/peach-engine/src/engine/canvaskit-api.d.ts +93 -0
  167. package/dist-types/packages/peach-engine/src/engine/canvaskit-renderer.d.ts +216 -0
  168. package/dist-types/packages/peach-engine/src/engine/config-plugin-fonts.d.ts +40 -0
  169. package/dist-types/packages/peach-engine/src/engine/config-plugin-splash.d.ts +25 -0
  170. package/dist-types/packages/peach-engine/src/engine/cull-visibility.d.ts +44 -0
  171. package/dist-types/packages/peach-engine/src/engine/damage-rect.d.ts +19 -0
  172. package/dist-types/packages/peach-engine/src/engine/engine-resource.d.ts +6 -0
  173. package/dist-types/packages/peach-engine/src/engine/expo-manifest.d.ts +5 -0
  174. package/dist-types/packages/peach-engine/src/engine/fiber-debug-metadata.d.ts +30 -0
  175. package/dist-types/packages/peach-engine/src/engine/font-config.d.ts +139 -0
  176. package/dist-types/packages/peach-engine/src/engine/generated/sf-pro-font.d.ts +1 -0
  177. package/dist-types/packages/peach-engine/src/engine/glass-material.d.ts +31 -0
  178. package/dist-types/packages/peach-engine/src/engine/host-composite.d.ts +100 -0
  179. package/dist-types/packages/peach-engine/src/engine/hosted-semantics.d.ts +49 -0
  180. package/dist-types/packages/peach-engine/src/engine/image-audit.d.ts +70 -0
  181. package/dist-types/packages/peach-engine/src/engine/image-loader.d.ts +350 -0
  182. package/dist-types/packages/peach-engine/src/engine/inspect-info.d.ts +27 -0
  183. package/dist-types/packages/peach-engine/src/engine/inspect-outline.d.ts +14 -0
  184. package/dist-types/packages/peach-engine/src/engine/inspect-visibility.d.ts +33 -0
  185. package/dist-types/packages/peach-engine/src/engine/ios-fast-scroll.d.ts +16 -0
  186. package/dist-types/packages/peach-engine/src/engine/layout-sab.d.ts +43 -0
  187. package/dist-types/packages/peach-engine/src/engine/liquid-glass-rect.d.ts +23 -0
  188. package/dist-types/packages/peach-engine/src/engine/liquid-glass-shaders.d.ts +9 -0
  189. package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +283 -0
  190. package/dist-types/packages/peach-engine/src/engine/live-object-counts.d.ts +6 -0
  191. package/dist-types/packages/peach-engine/src/engine/lottie-runtime.d.ts +32 -0
  192. package/dist-types/packages/peach-engine/src/engine/lottie-types.d.ts +138 -0
  193. package/dist-types/packages/peach-engine/src/engine/memory-counts.d.ts +27 -0
  194. package/dist-types/packages/peach-engine/src/engine/metalDirectContract.d.ts +108 -0
  195. package/dist-types/packages/peach-engine/src/engine/metalShaderContract.d.ts +217 -0
  196. package/dist-types/packages/peach-engine/src/engine/native-animation-driver.d.ts +112 -0
  197. package/dist-types/packages/peach-engine/src/engine/native-animation-graph.d.ts +62 -0
  198. package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +133 -0
  199. package/dist-types/packages/peach-engine/src/engine/native-resources.d.ts +26 -0
  200. package/dist-types/packages/peach-engine/src/engine/nativeReanimatedContract.d.ts +25 -0
  201. package/dist-types/packages/peach-engine/src/engine/nativeReplayContract.d.ts +64 -0
  202. package/dist-types/packages/peach-engine/src/engine/node.d.ts +589 -0
  203. package/dist-types/packages/peach-engine/src/engine/paint-boundary-types.d.ts +112 -0
  204. package/dist-types/packages/peach-engine/src/engine/paint-boundary.d.ts +57 -0
  205. package/dist-types/packages/peach-engine/src/engine/portalContract.d.ts +21 -0
  206. package/dist-types/packages/peach-engine/src/engine/portals.d.ts +20 -0
  207. package/dist-types/packages/peach-engine/src/engine/render-damage.d.ts +107 -0
  208. package/dist-types/packages/peach-engine/src/engine/riveContract.d.ts +420 -0
  209. package/dist-types/packages/peach-engine/src/engine/rn-spring.d.ts +51 -0
  210. package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +379 -0
  211. package/dist-types/packages/peach-engine/src/engine/scroll-momentum-math.d.ts +152 -0
  212. package/dist-types/packages/peach-engine/src/engine/scroll-pan-contacts.d.ts +10 -0
  213. package/dist-types/packages/peach-engine/src/engine/scroll-platform.d.ts +75 -0
  214. package/dist-types/packages/peach-engine/src/engine/scroll-range.d.ts +14 -0
  215. package/dist-types/packages/peach-engine/src/engine/scroll-velocity.d.ts +14 -0
  216. package/dist-types/packages/peach-engine/src/engine/scroll.d.ts +320 -0
  217. package/dist-types/packages/peach-engine/src/engine/signal.d.ts +7 -0
  218. package/dist-types/packages/peach-engine/src/engine/snapshot-cache-policy.d.ts +6 -0
  219. package/dist-types/packages/peach-engine/src/engine/svg-geometry.d.ts +41 -0
  220. package/dist-types/packages/peach-engine/src/engine/text-attachment-paragraphs.d.ts +10 -0
  221. package/dist-types/packages/peach-engine/src/engine/text-decoration.d.ts +11 -0
  222. package/dist-types/packages/peach-engine/src/engine/text-line-break.d.ts +22 -0
  223. package/dist-types/packages/peach-engine/src/engine/text-paint-receipt.d.ts +98 -0
  224. package/dist-types/packages/peach-engine/src/engine/text-paragraph.d.ts +11 -0
  225. package/dist-types/packages/peach-engine/src/engine/text-paragraphContract.d.ts +34 -0
  226. package/dist-types/packages/peach-engine/src/engine/text-transform.d.ts +1 -0
  227. package/dist-types/packages/peach-engine/src/engine/types.d.ts +657 -0
  228. package/dist-types/packages/peach-engine/src/engine/visible-frame.d.ts +54 -0
  229. package/dist-types/packages/peach-engine/src/engine/webrtcContract.d.ts +74 -0
  230. package/dist-types/packages/peach-engine/src/graphite-stats-fields.d.ts +184 -0
  231. package/dist-types/packages/peach-engine/src/guest-import-meta.d.ts +12 -0
  232. package/dist-types/packages/peach-engine/src/guest-module-overrides.d.ts +7 -0
  233. package/dist-types/packages/peach-engine/src/ios/app-card-types.d.ts +7 -0
  234. package/dist-types/packages/peach-engine/src/ios/apps/canvas-map-data.d.ts +177 -0
  235. package/dist-types/packages/peach-engine/src/ios/aux-home-scene.d.ts +54 -0
  236. package/dist-types/packages/peach-engine/src/ios/chrome-metrics.d.ts +47 -0
  237. package/dist-types/packages/peach-engine/src/ios/constants.d.ts +21 -0
  238. package/dist-types/packages/peach-engine/src/ios/duo-housing.d.ts +37 -0
  239. package/dist-types/packages/peach-engine/src/ios/home/types.d.ts +29 -0
  240. package/dist-types/packages/peach-engine/src/ios/home-app-catalog.d.ts +43 -0
  241. package/dist-types/packages/peach-engine/src/ios/photo-store.d.ts +73 -0
  242. package/dist-types/packages/peach-engine/src/ios/photoLibraryContract.d.ts +166 -0
  243. package/dist-types/packages/peach-engine/src/ios/shell-controller-types.d.ts +21 -0
  244. package/dist-types/packages/peach-engine/src/ios/shell-transition-debug.d.ts +18 -0
  245. package/dist-types/packages/peach-engine/src/metro-asset-path.d.ts +21 -0
  246. package/dist-types/packages/peach-engine/src/metro-fingerprint-registry-client.d.ts +11 -0
  247. package/dist-types/packages/peach-engine/src/metro-fingerprint.d.ts +38 -0
  248. package/dist-types/packages/peach-engine/src/native-preview-bundle.d.ts +44 -0
  249. package/dist-types/packages/peach-engine/src/observability/types.d.ts +74 -0
  250. package/dist-types/packages/peach-engine/src/peach-warm-manifest.d.ts +32 -0
  251. package/dist-types/packages/peach-engine/src/permissions/app-settings-client.d.ts +25 -0
  252. package/dist-types/packages/peach-engine/src/permissions/system-permission-types.d.ts +20 -0
  253. package/dist-types/packages/peach-engine/src/platform/android-back-panel.d.ts +131 -0
  254. package/dist-types/packages/peach-engine/src/platform/android-gesture-exclusion.d.ts +28 -0
  255. package/dist-types/packages/peach-engine/src/platform/android-predictive-back.d.ts +33 -0
  256. package/dist-types/packages/peach-engine/src/platform/system-bars-state.d.ts +14 -0
  257. package/dist-types/packages/peach-engine/src/playwright-sim-host.d.ts +1 -0
  258. package/dist-types/packages/peach-engine/src/preview/bundle-layout.d.ts +8 -0
  259. package/dist-types/packages/peach-engine/src/preview/bundle-variantContract.d.ts +24 -0
  260. package/dist-types/packages/peach-engine/src/preview/capture-bundle.d.ts +26 -0
  261. package/dist-types/packages/peach-engine/src/preview/compress-node.d.ts +2 -0
  262. package/dist-types/packages/peach-engine/src/preview/compress.d.ts +2 -0
  263. package/dist-types/packages/peach-engine/src/preview/presigned-upload.d.ts +60 -0
  264. package/dist-types/packages/peach-engine/src/preview/trace.d.ts +144 -0
  265. package/dist-types/packages/peach-engine/src/preview/upload-protocol.d.ts +152 -0
  266. package/dist-types/packages/peach-engine/src/profiler/animation-recording-loader.d.ts +1 -0
  267. package/dist-types/packages/peach-engine/src/profiler/profile-trace.d.ts +4 -0
  268. package/dist-types/packages/peach-engine/src/react-bridge.d.ts +3 -0
  269. package/dist-types/packages/peach-engine/src/react-native/AppState.d.ts +45 -0
  270. package/dist-types/packages/peach-engine/src/react-native/Appearance.d.ts +34 -0
  271. package/dist-types/packages/peach-engine/src/react-native/framework-colors-data.d.ts +2 -0
  272. package/dist-types/packages/peach-engine/src/react-native/host-services.d.ts +42 -0
  273. package/dist-types/packages/peach-engine/src/react-native/layout-animation.d.ts +22 -0
  274. package/dist-types/packages/peach-engine/src/react-native/platform-colors.d.ts +17 -0
  275. package/dist-types/packages/peach-engine/src/remote-stream/client-config.d.ts +10 -0
  276. package/dist-types/packages/peach-engine/src/remote-stream/cloud-display.d.ts +58 -0
  277. package/dist-types/packages/peach-engine/src/remote-stream/scene-recording.d.ts +45 -0
  278. package/dist-types/packages/peach-engine/src/render-worker/animated-drive-output.d.ts +35 -0
  279. package/dist-types/packages/peach-engine/src/render-worker/app-load.d.ts +16 -0
  280. package/dist-types/packages/peach-engine/src/render-worker/aux-surface-types.d.ts +2 -0
  281. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-shared.d.ts +42 -0
  282. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-webgpu.d.ts +434 -0
  283. package/dist-types/packages/peach-engine/src/render-worker/canvaskit-worker-init.d.ts +12 -0
  284. package/dist-types/packages/peach-engine/src/render-worker/compositor-backend.d.ts +31 -0
  285. package/dist-types/packages/peach-engine/src/render-worker/compositor-gpu.d.ts +202 -0
  286. package/dist-types/packages/peach-engine/src/render-worker/compositor-protocol.d.ts +1945 -0
  287. package/dist-types/packages/peach-engine/src/render-worker/compositor-runtime/scroll-drag-resample.d.ts +44 -0
  288. package/dist-types/packages/peach-engine/src/render-worker/css-keyframes-drive.d.ts +36 -0
  289. package/dist-types/packages/peach-engine/src/render-worker/edit-menu-geometry.d.ts +8 -0
  290. package/dist-types/packages/peach-engine/src/render-worker/engine-resource-relay.d.ts +21 -0
  291. package/dist-types/packages/peach-engine/src/render-worker/expo-widgetContract.d.ts +16 -0
  292. package/dist-types/packages/peach-engine/src/render-worker/gesture-seam-protocol.d.ts +152 -0
  293. package/dist-types/packages/peach-engine/src/render-worker/graph-linked-value.d.ts +29 -0
  294. package/dist-types/packages/peach-engine/src/render-worker/graphite-pipeline-compiler-contract.d.ts +49 -0
  295. package/dist-types/packages/peach-engine/src/render-worker/graphite-pipeline-compiler.d.ts +12 -0
  296. package/dist-types/packages/peach-engine/src/render-worker/host-service-protocol.d.ts +756 -0
  297. package/dist-types/packages/peach-engine/src/render-worker/image-lifecycle-event.d.ts +22 -0
  298. package/dist-types/packages/peach-engine/src/render-worker/image-pixel-contract.d.ts +48 -0
  299. package/dist-types/packages/peach-engine/src/render-worker/live-frame-mirror.d.ts +34 -0
  300. package/dist-types/packages/peach-engine/src/render-worker/map-command-channel.d.ts +189 -0
  301. package/dist-types/packages/peach-engine/src/render-worker/mapNativeContract.d.ts +101 -0
  302. package/dist-types/packages/peach-engine/src/render-worker/native-dynamic-synchronizable.d.ts +22 -0
  303. package/dist-types/packages/peach-engine/src/render-worker/native-menu-gesture.d.ts +9 -0
  304. package/dist-types/packages/peach-engine/src/render-worker/native-ui-commandContract.d.ts +23 -0
  305. package/dist-types/packages/peach-engine/src/render-worker/native-ui-protocol.d.ts +1087 -0
  306. package/dist-types/packages/peach-engine/src/render-worker/native-widgetContract.d.ts +100 -0
  307. package/dist-types/packages/peach-engine/src/render-worker/nativeAnimMirrorContract.d.ts +174 -0
  308. package/dist-types/packages/peach-engine/src/render-worker/nativeSyncReplyContract.d.ts +11 -0
  309. package/dist-types/packages/peach-engine/src/render-worker/one-native-contentContract.d.ts +54 -0
  310. package/dist-types/packages/peach-engine/src/render-worker/pointerSampleContract.d.ts +14 -0
  311. package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +880 -0
  312. package/dist-types/packages/peach-engine/src/render-worker/reanimated-css-contract.d.ts +63 -0
  313. package/dist-types/packages/peach-engine/src/render-worker/reanimated-readiness.d.ts +29 -0
  314. package/dist-types/packages/peach-engine/src/render-worker/resilient-frame-clock.d.ts +22 -0
  315. package/dist-types/packages/peach-engine/src/render-worker/retained-app-load.d.ts +20 -0
  316. package/dist-types/packages/peach-engine/src/render-worker/screen-edge-swipe-commit-protocol.d.ts +1 -0
  317. package/dist-types/packages/peach-engine/src/render-worker/screen-form-sheet-commit-protocol.d.ts +26 -0
  318. package/dist-types/packages/peach-engine/src/render-worker/scroll-mirror-tenant.d.ts +37 -0
  319. package/dist-types/packages/peach-engine/src/render-worker/scroll-mirror.d.ts +164 -0
  320. package/dist-types/packages/peach-engine/src/render-worker/shell-event-registry.d.ts +119 -0
  321. package/dist-types/packages/peach-engine/src/render-worker/shell-gesture-regions.d.ts +41 -0
  322. package/dist-types/packages/peach-engine/src/render-worker/shell-protocol.d.ts +603 -0
  323. package/dist-types/packages/peach-engine/src/render-worker/shell-scene-schema.d.ts +101 -0
  324. package/dist-types/packages/peach-engine/src/render-worker/shell-tree-inline-sources.d.ts +13 -0
  325. package/dist-types/packages/peach-engine/src/render-worker/shell-tree-wire.d.ts +87 -0
  326. package/dist-types/packages/peach-engine/src/render-worker/test-bridge-protocol.d.ts +47 -0
  327. package/dist-types/packages/peach-engine/src/render-worker/text-inputContract.d.ts +93 -0
  328. package/dist-types/packages/peach-engine/src/render-worker/tree-sync-port.d.ts +102 -0
  329. package/dist-types/packages/peach-engine/src/render-worker/webgpu-frame-transaction.d.ts +292 -0
  330. package/dist-types/packages/peach-engine/src/render-worker/webgpu-readback-scheduler.d.ts +107 -0
  331. package/dist-types/packages/peach-engine/src/render-worker/webview-capture-protocol.d.ts +16 -0
  332. package/dist-types/packages/peach-engine/src/render-worker/worker-input-runtime.d.ts +211 -0
  333. package/dist-types/packages/peach-engine/src/render-worker/worker-storage.d.ts +33 -0
  334. package/dist-types/packages/peach-engine/src/render-worker/worklet-runtime.d.ts +987 -0
  335. package/dist-types/packages/peach-engine/src/render-worker/worklet-sab.d.ts +24 -0
  336. package/dist-types/packages/peach-engine/src/rolldown-bundle-inventory.d.ts +84 -0
  337. package/dist-types/packages/peach-engine/src/rolldown-production-fingerprint.d.ts +31 -0
  338. package/dist-types/packages/peach-engine/src/screenshots/timeline-assets.d.ts +10 -0
  339. package/dist-types/packages/peach-engine/src/screenshots/tokens.d.ts +9 -0
  340. package/dist-types/packages/peach-engine/src/settings/devices.d.ts +70 -0
  341. package/dist-types/packages/peach-engine/src/settings/duo-fold-bus.d.ts +87 -0
  342. package/dist-types/packages/peach-engine/src/settings/interface-rotation.d.ts +30 -0
  343. package/dist-types/packages/peach-engine/src/settings/react-native-configuration.d.ts +12 -0
  344. package/dist-types/packages/peach-engine/src/settings/scene-geometryContract.d.ts +40 -0
  345. package/dist-types/packages/peach-engine/src/settings/store.d.ts +37 -0
  346. package/dist-types/packages/peach-engine/src/shell-events.d.ts +203 -0
  347. package/dist-types/packages/peach-engine/src/shell-intent.d.ts +68 -0
  348. package/dist-types/packages/peach-engine/src/sootsim-event.d.ts +35 -0
  349. package/dist-types/packages/peach-engine/src/top-overlay-state.d.ts +5 -0
  350. package/dist-types/packages/peach-engine/src/web-authentication-automation-host.d.ts +2 -0
  351. package/dist-types/packages/peach-engine/src/webAuthenticationContract.d.ts +34 -0
  352. package/dist-types/packages/peach-engine/src/webview-automation-host.d.ts +180 -0
  353. package/dist-types/packages/peach-engine/src/wireframe-mode.d.ts +16 -0
  354. package/dist-types/packages/peach-globals/src/frameBreakdownContract.d.ts +16 -0
  355. package/dist-types/packages/peach-globals/src/index.d.ts +3311 -0
  356. package/dist-types/packages/peach-globals/src/nativeSurfaceContract.d.ts +76 -0
  357. package/dist-types/packages/peach-globals/src/pointerSourceEventContract.d.ts +8 -0
  358. package/dist-types/packages/peach-globals/src/profileTrace.d.ts +11 -0
  359. package/dist-types/packages/peach-globals/src/profilerContract.d.ts +223 -0
  360. package/dist-types/packages/peach-kit/src/capabilities.d.ts +721 -0
  361. package/dist-types/packages/peach-kit/src/internal.d.ts +4 -0
  362. package/dist-types/packages/peach-kit/src/materials/types.d.ts +27 -0
  363. package/dist-types/packages/peach-kit/src/materials/uikit-blur-material.d.ts +14 -0
  364. package/dist-types/packages/peach-kit/src/navigation-types.d.ts +11 -0
  365. package/dist-types/packages/peach-kit/src/react-bridge.d.ts +53 -0
  366. package/dist-types/packages/peach-kit/src/runtime.d.ts +26 -0
  367. package/dist-types/packages/peach-kit/src/ui/hosting-safe-area.d.ts +24 -0
  368. package/dist-types/packages/peach-kit/src/ui/popover-placement.d.ts +53 -0
  369. package/dist-types/packages/peach-kit/src/ui/presentationContract.d.ts +17 -0
  370. package/kotlin/ComposeSources/PeachComposeHost.kt +1 -1
  371. package/kotlin/JniSources/com/facebook/jni/HybridData.kt +0 -2
  372. package/kotlin/JniSources/dev/peach/jni/NativeBindings.kt +0 -2
  373. package/kotlin/JniTransportSources/dev/peach/jni/integration/JniTransport.kt +0 -2
  374. package/kotlin/README.md +6 -0
  375. package/package.json +22 -2
  376. package/runtime-companion.json +1 -0
  377. package/skills/contrast/SKILL.md +1 -0
  378. package/src/appBundleResourcesContract.ts +51 -0
  379. package/src/assetCatalogContract.ts +21 -0
  380. package/src/backend-origin.ts +3 -1
  381. package/src/bridge-contract-input.ts +84 -0
  382. package/src/bridge-contract.ts +35 -3
  383. package/src/browser-launch-policy.ts +1 -0
  384. package/src/bundle-channel.mjs +4 -2
  385. package/src/cli-runtime.ts +55 -0
  386. package/src/crash-fingerprint.ts +26 -0
  387. package/src/dev-bundle-resolution.ts +50 -23
  388. package/src/device-catalog.ts +1159 -0
  389. package/src/host/bridge-host.ts +20 -37
  390. package/src/host/browser-pointer.ts +71 -0
  391. package/src/host/dev-server-package-versions.ts +23 -0
  392. package/src/host/fetch-proxy-handler.ts +17 -4
  393. package/src/host/staged-host-files.ts +28 -4
  394. package/src/installed-package-versions.ts +142 -38
  395. package/src/kotlin-host.ts +1 -1
  396. package/src/launchMetadataContract.ts +1 -0
  397. package/src/menu.ts +12 -4
  398. package/src/metro-plugin.ts +4 -4
  399. package/src/metro-project-root.ts +68 -0
  400. package/src/native-app-identity-project.ts +47 -38
  401. package/src/nitro-adapter.lock.json +26 -0
  402. package/src/nitro-adapter.ts +103 -0
  403. package/src/nitro-bundle.ts +24 -10
  404. package/src/nitro-compile.ts +33 -51
  405. package/src/nitro-source.ts +177 -96
  406. package/src/nitroAdapterContract.ts +217 -0
  407. package/src/nitroContract.ts +24 -11
  408. package/src/process-group.ts +41 -34
  409. package/src/react-bridge-importers.ts +28 -0
  410. package/src/reactNativeConfigurationContract.ts +36 -0
  411. package/src/runtime-assets.ts +7 -2
  412. package/src/runtime-delivery.ts +8 -7
  413. package/src/runtimePlatformContract.ts +70 -0
  414. package/src/screenshots/frame-compose.ts +42 -43
  415. package/src/screenshots/org-deck.ts +9 -4
  416. package/src/screenshots/preset-names.ts +29 -0
  417. package/src/screenshots/registry.ts +5 -5
  418. package/src/screenshots/schema.ts +1 -1
  419. package/src/screenshots/screenshotContract.ts +971 -0
  420. package/src/settings-flags.ts +107 -0
  421. package/src/settingsContract.ts +609 -0
  422. package/src/storageSnapshotContract.ts +344 -0
  423. package/src/stub-pattern-matcher.ts +550 -0
  424. package/src/swift-compile.ts +926 -47
  425. package/src/swift-compiler-digest.ts +17 -3
  426. package/src/swift-distribution.lock.json +49 -22
  427. package/src/swift-host.ts +167 -52
  428. package/src/swift-objc-compile.ts +86 -26
  429. package/src/swift-objc-export.ts +532 -0
  430. package/src/swift-objc-import.ts +769 -0
  431. package/src/swift-objc-metadata.ts +285 -10
  432. package/src/swift-objc-sdk.ts +13970 -158
  433. package/src/swift-objc-standin.ts +137 -1
  434. package/src/swift-package.ts +94 -0
  435. package/src/swift-packages.ts +5 -5
  436. package/src/swift-root-lock.ts +241 -92
  437. package/src/swift-submit.ts +6 -0
  438. package/src/swiftContract.ts +99 -0
  439. package/src/target-matcher.ts +6 -1
  440. package/src/vite-plugin.ts +14 -40
  441. package/src/worker-system-chunks.ts +1 -1
  442. package/src/workerChunkContract.ts +5 -0
  443. package/src/worklets-babel.ts +24 -5
  444. package/src/xcode-project.ts +103 -11
  445. package/src/xcode-target-members.ts +10 -3
  446. package/cli/drivers/playwright-sim-host.ts +0 -825
  447. package/kotlin/fixtures/counter/Counter.d.kt.ts +0 -17
  448. package/kotlin/fixtures/counter/Counter.kt +0 -51
  449. package/kotlin/fixtures/counter/CounterApp.native.tsx +0 -61
  450. package/kotlin/fixtures/counter/CounterApp.tsx +0 -3
  451. package/kotlin/fixtures/counter/CounterScreen.d.kt.ts +0 -8
  452. package/kotlin/fixtures/counter/CounterScreen.kt +0 -56
  453. package/kotlin/fixtures/counter/app/_layout.tsx +0 -4
  454. package/kotlin/fixtures/counter/app/index+spa.tsx +0 -1
  455. package/kotlin/fixtures/counter/app/routes.d.ts +0 -18
  456. package/kotlin/fixtures/counter/package.json +0 -20
  457. package/kotlin/fixtures/counter/tsconfig.json +0 -19
  458. package/kotlin/fixtures/counter/vite.config.ts +0 -20
  459. package/kotlin/fixtures/headless-counter/Headless.kt +0 -234
  460. package/kotlin/fixtures/import-animation/Animation.d.kt.ts +0 -7
  461. package/kotlin/fixtures/import-animation/Animation.kt +0 -80
  462. package/kotlin/fixtures/import-animation/ImportAnimation.native.tsx +0 -13
  463. package/kotlin/fixtures/import-animation/README.md +0 -24
  464. package/kotlin/fixtures/import-animation/app/_layout.tsx +0 -4
  465. package/kotlin/fixtures/import-animation/app/index+spa.tsx +0 -1
  466. package/kotlin/fixtures/import-animation/app/routes.d.ts +0 -18
  467. package/kotlin/fixtures/import-animation/package.json +0 -23
  468. package/kotlin/fixtures/import-animation/tsconfig.json +0 -20
  469. package/kotlin/fixtures/import-animation/vite.config.ts +0 -20
  470. package/kotlin/fixtures/import-drawing/Drawing.d.kt.ts +0 -7
  471. package/kotlin/fixtures/import-drawing/Drawing.kt +0 -101
  472. package/kotlin/fixtures/import-drawing/ImportDrawing.native.tsx +0 -18
  473. package/kotlin/fixtures/import-drawing/README.md +0 -34
  474. package/kotlin/fixtures/import-drawing/app/_layout.tsx +0 -4
  475. package/kotlin/fixtures/import-drawing/app/index+spa.tsx +0 -1
  476. package/kotlin/fixtures/import-drawing/package.json +0 -23
  477. package/kotlin/fixtures/import-drawing/tsconfig.json +0 -20
  478. package/kotlin/fixtures/import-drawing/vite.config.ts +0 -20
  479. package/kotlin/fixtures/import-editor/Editor.d.kt.ts +0 -7
  480. package/kotlin/fixtures/import-editor/Editor.kt +0 -59
  481. package/kotlin/fixtures/import-editor/ImportEditor.native.tsx +0 -23
  482. package/kotlin/fixtures/import-editor/README.md +0 -27
  483. package/kotlin/fixtures/import-editor/app/_layout.tsx +0 -4
  484. package/kotlin/fixtures/import-editor/app/index+spa.tsx +0 -1
  485. package/kotlin/fixtures/import-editor/package.json +0 -23
  486. package/kotlin/fixtures/import-editor/tsconfig.json +0 -20
  487. package/kotlin/fixtures/import-editor/vite.config.ts +0 -20
  488. package/kotlin/fixtures/import-effects/Effects.d.kt.ts +0 -7
  489. package/kotlin/fixtures/import-effects/Effects.kt +0 -87
  490. package/kotlin/fixtures/import-effects/ImportEffects.native.tsx +0 -13
  491. package/kotlin/fixtures/import-effects/README.md +0 -19
  492. package/kotlin/fixtures/import-effects/app/_layout.tsx +0 -4
  493. package/kotlin/fixtures/import-effects/app/index+spa.tsx +0 -1
  494. package/kotlin/fixtures/import-effects/package.json +0 -23
  495. package/kotlin/fixtures/import-effects/tsconfig.json +0 -20
  496. package/kotlin/fixtures/import-effects/vite.config.ts +0 -20
  497. package/kotlin/fixtures/import-layout/ImportLayout.native.tsx +0 -13
  498. package/kotlin/fixtures/import-layout/Layout.d.kt.ts +0 -7
  499. package/kotlin/fixtures/import-layout/Layout.kt +0 -72
  500. package/kotlin/fixtures/import-layout/README.md +0 -24
  501. package/kotlin/fixtures/import-layout/app/_layout.tsx +0 -4
  502. package/kotlin/fixtures/import-layout/app/index+spa.tsx +0 -1
  503. package/kotlin/fixtures/import-layout/package.json +0 -23
  504. package/kotlin/fixtures/import-layout/tsconfig.json +0 -20
  505. package/kotlin/fixtures/import-layout/vite.config.ts +0 -20
  506. package/kotlin/fixtures/import-navigation/ImportNavigation.native.tsx +0 -18
  507. package/kotlin/fixtures/import-navigation/Navigation.d.kt.ts +0 -7
  508. package/kotlin/fixtures/import-navigation/Navigation.kt +0 -104
  509. package/kotlin/fixtures/import-navigation/README.md +0 -31
  510. package/kotlin/fixtures/import-navigation/app/_layout.tsx +0 -4
  511. package/kotlin/fixtures/import-navigation/app/index+spa.tsx +0 -1
  512. package/kotlin/fixtures/import-navigation/package.json +0 -23
  513. package/kotlin/fixtures/import-navigation/tsconfig.json +0 -20
  514. package/kotlin/fixtures/import-navigation/vite.config.ts +0 -20
  515. package/kotlin/fixtures/import-overlays/ImportOverlays.native.tsx +0 -29
  516. package/kotlin/fixtures/import-overlays/Overlays.d.kt.ts +0 -7
  517. package/kotlin/fixtures/import-overlays/Overlays.kt +0 -93
  518. package/kotlin/fixtures/import-overlays/README.md +0 -34
  519. package/kotlin/fixtures/import-overlays/app/_layout.tsx +0 -4
  520. package/kotlin/fixtures/import-overlays/app/index+spa.tsx +0 -1
  521. package/kotlin/fixtures/import-overlays/package.json +0 -23
  522. package/kotlin/fixtures/import-overlays/tsconfig.json +0 -20
  523. package/kotlin/fixtures/import-overlays/vite.config.ts +0 -20
  524. package/kotlin/fixtures/import-resources/ImportResources.native.tsx +0 -18
  525. package/kotlin/fixtures/import-resources/README.md +0 -26
  526. package/kotlin/fixtures/import-resources/Resources.d.kt.ts +0 -6
  527. package/kotlin/fixtures/import-resources/Resources.kt +0 -72
  528. package/kotlin/fixtures/import-resources/app/_layout.tsx +0 -4
  529. package/kotlin/fixtures/import-resources/app/index+spa.tsx +0 -1
  530. package/kotlin/fixtures/import-resources/package.json +0 -23
  531. package/kotlin/fixtures/import-resources/tsconfig.json +0 -20
  532. package/kotlin/fixtures/import-resources/vite.config.ts +0 -20
  533. package/kotlin/fixtures/import-scroll/ImportNested.native.tsx +0 -10
  534. package/kotlin/fixtures/import-scroll/ImportScroll.native.tsx +0 -13
  535. package/kotlin/fixtures/import-scroll/Nested.d.kt.ts +0 -4
  536. package/kotlin/fixtures/import-scroll/Nested.kt +0 -64
  537. package/kotlin/fixtures/import-scroll/README.md +0 -38
  538. package/kotlin/fixtures/import-scroll/Scroll.d.kt.ts +0 -7
  539. package/kotlin/fixtures/import-scroll/Scroll.kt +0 -91
  540. package/kotlin/fixtures/import-scroll/app/_layout.tsx +0 -4
  541. package/kotlin/fixtures/import-scroll/app/index+spa.tsx +0 -1
  542. package/kotlin/fixtures/import-scroll/app/nested+spa.tsx +0 -1
  543. package/kotlin/fixtures/import-scroll/package.json +0 -23
  544. package/kotlin/fixtures/import-scroll/tsconfig.json +0 -20
  545. package/kotlin/fixtures/import-scroll/vite.config.ts +0 -20
  546. package/kotlin/fixtures/import-selection/ImportSelection.native.tsx +0 -44
  547. package/kotlin/fixtures/import-selection/README.md +0 -32
  548. package/kotlin/fixtures/import-selection/Selection.d.kt.ts +0 -8
  549. package/kotlin/fixtures/import-selection/Selection.kt +0 -78
  550. package/kotlin/fixtures/import-selection/app/_layout.tsx +0 -4
  551. package/kotlin/fixtures/import-selection/app/index+spa.tsx +0 -1
  552. package/kotlin/fixtures/import-selection/package.json +0 -23
  553. package/kotlin/fixtures/import-selection/tsconfig.json +0 -20
  554. package/kotlin/fixtures/import-selection/vite.config.ts +0 -20
  555. package/kotlin/fixtures/import-surfaces/ImportSurfaces.native.tsx +0 -13
  556. package/kotlin/fixtures/import-surfaces/README.md +0 -22
  557. package/kotlin/fixtures/import-surfaces/Surfaces.d.kt.ts +0 -7
  558. package/kotlin/fixtures/import-surfaces/Surfaces.kt +0 -64
  559. package/kotlin/fixtures/import-surfaces/app/_layout.tsx +0 -4
  560. package/kotlin/fixtures/import-surfaces/app/index+spa.tsx +0 -1
  561. package/kotlin/fixtures/import-surfaces/package.json +0 -23
  562. package/kotlin/fixtures/import-surfaces/tsconfig.json +0 -20
  563. package/kotlin/fixtures/import-surfaces/vite.config.ts +0 -20
  564. package/kotlin/fixtures/import-values/ImportValues.native.tsx +0 -61
  565. package/kotlin/fixtures/import-values/README.md +0 -28
  566. package/kotlin/fixtures/import-values/Values.d.kt.ts +0 -15
  567. package/kotlin/fixtures/import-values/Values.kt +0 -84
  568. package/kotlin/fixtures/import-values/app/_layout.tsx +0 -4
  569. package/kotlin/fixtures/import-values/app/index+spa.tsx +0 -1
  570. package/kotlin/fixtures/import-values/package.json +0 -23
  571. package/kotlin/fixtures/import-values/tsconfig.json +0 -20
  572. package/kotlin/fixtures/import-values/vite.config.ts +0 -20
  573. package/kotlin/fixtures/kotlin-app/app/build.gradle.kts +0 -30
  574. package/kotlin/fixtures/kotlin-app/app/src/main/AndroidManifest.xml +0 -13
  575. package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/MainActivity.kt +0 -60
  576. package/kotlin/fixtures/kotlin-app/app/src/main/java/dev/contrast/kotlinapp/ProbeApplication.kt +0 -18
  577. package/kotlin/fixtures/kotlin-app/build.gradle.kts +0 -5
  578. package/kotlin/fixtures/kotlin-app/gradle.properties +0 -4
  579. package/kotlin/fixtures/kotlin-app/settings.gradle.kts +0 -4
  580. package/kotlin/fixtures/kotlin-app-variants/Anim.kt +0 -62
  581. package/kotlin/fixtures/kotlin-app-variants/BarBehavior.kt +0 -38
  582. package/kotlin/fixtures/kotlin-app-variants/BarVisibility.kt +0 -36
  583. package/kotlin/fixtures/kotlin-app-variants/Bitmaps.kt +0 -50
  584. package/kotlin/fixtures/kotlin-app-variants/Browse.kt +0 -73
  585. package/kotlin/fixtures/kotlin-app-variants/Colors.kt +0 -41
  586. package/kotlin/fixtures/kotlin-app-variants/Controls.kt +0 -62
  587. package/kotlin/fixtures/kotlin-app-variants/Drag.kt +0 -56
  588. package/kotlin/fixtures/kotlin-app-variants/Draw.kt +0 -74
  589. package/kotlin/fixtures/kotlin-app-variants/Drawables.kt +0 -53
  590. package/kotlin/fixtures/kotlin-app-variants/Focus.kt +0 -62
  591. package/kotlin/fixtures/kotlin-app-variants/Form.kt +0 -47
  592. package/kotlin/fixtures/kotlin-app-variants/Icons.kt +0 -59
  593. package/kotlin/fixtures/kotlin-app-variants/Ime.kt +0 -53
  594. package/kotlin/fixtures/kotlin-app-variants/Lists.kt +0 -57
  595. package/kotlin/fixtures/kotlin-app-variants/Nav.kt +0 -47
  596. package/kotlin/fixtures/kotlin-app-variants/Note.kt +0 -40
  597. package/kotlin/fixtures/kotlin-app-variants/Overlays.kt +0 -56
  598. package/kotlin/fixtures/kotlin-app-variants/Pan.kt +0 -38
  599. package/kotlin/fixtures/kotlin-app-variants/Pickers.kt +0 -44
  600. package/kotlin/fixtures/kotlin-app-variants/Press.kt +0 -43
  601. package/kotlin/fixtures/kotlin-app-variants/Scroll.kt +0 -63
  602. package/kotlin/fixtures/kotlin-app-variants/Sheet.kt +0 -43
  603. package/kotlin/fixtures/kotlin-app-variants/Strings.kt +0 -49
  604. package/kotlin/fixtures/kotlin-app-variants/Tabs.kt +0 -47
  605. package/kotlin/fixtures/kotlin-app-variants/TextWidth.kt +0 -45
  606. package/kotlin/fixtures/kotlin-app-variants/TransientInsets.kt +0 -50
  607. package/kotlin/fixtures/kotlin-app-variants/Transition.kt +0 -69
  608. package/kotlin/fixtures/kotlin-app-variants/ViewConfig.kt +0 -22
  609. package/kotlin/fixtures/kotlin-app-variants/Widgets.kt +0 -67
  610. package/kotlin/fixtures/runtime-state/RuntimeState.kt +0 -200
  611. package/kotlin/fork/README.md +0 -97
  612. package/kotlin/fork/build.sh +0 -176
  613. package/kotlin/fork/compose-worker-globals.patch +0 -1247
  614. package/kotlin/fork/fork.json +0 -46
  615. package/kotlin/fork/publish.ts +0 -99
  616. package/kotlin/fork/skia-android-shaping.patch +0 -189
  617. package/kotlin/fork/skiko-local.init.gradle +0 -10
  618. package/kotlin/fork/skiko-worker-clock.patch +0 -122
@@ -1,4 +1,1141 @@
1
- /*! peach v0.1.1641 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.1653 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJS = (cb, mod) => function __require() {
9
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+
28
+ // ../../node_modules/json5/lib/unicode.js
29
+ var require_unicode = __commonJS({
30
+ "../../node_modules/json5/lib/unicode.js"(exports, module) {
31
+ module.exports.Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
32
+ module.exports.ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;
33
+ module.exports.ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
34
+ }
35
+ });
36
+
37
+ // ../../node_modules/json5/lib/util.js
38
+ var require_util = __commonJS({
39
+ "../../node_modules/json5/lib/util.js"(exports, module) {
40
+ var unicode = require_unicode();
41
+ module.exports = {
42
+ isSpaceSeparator(c) {
43
+ return typeof c === "string" && unicode.Space_Separator.test(c);
44
+ },
45
+ isIdStartChar(c) {
46
+ return typeof c === "string" && (c >= "a" && c <= "z" || c >= "A" && c <= "Z" || c === "$" || c === "_" || unicode.ID_Start.test(c));
47
+ },
48
+ isIdContinueChar(c) {
49
+ return typeof c === "string" && (c >= "a" && c <= "z" || c >= "A" && c <= "Z" || c >= "0" && c <= "9" || c === "$" || c === "_" || c === "\u200C" || c === "\u200D" || unicode.ID_Continue.test(c));
50
+ },
51
+ isDigit(c) {
52
+ return typeof c === "string" && /[0-9]/.test(c);
53
+ },
54
+ isHexDigit(c) {
55
+ return typeof c === "string" && /[0-9A-Fa-f]/.test(c);
56
+ }
57
+ };
58
+ }
59
+ });
60
+
61
+ // ../../node_modules/json5/lib/parse.js
62
+ var require_parse = __commonJS({
63
+ "../../node_modules/json5/lib/parse.js"(exports, module) {
64
+ var util = require_util();
65
+ var source;
66
+ var parseState;
67
+ var stack;
68
+ var pos;
69
+ var line;
70
+ var column;
71
+ var token;
72
+ var key;
73
+ var root;
74
+ module.exports = function parse(text2, reviver) {
75
+ source = String(text2);
76
+ parseState = "start";
77
+ stack = [];
78
+ pos = 0;
79
+ line = 1;
80
+ column = 0;
81
+ token = void 0;
82
+ key = void 0;
83
+ root = void 0;
84
+ do {
85
+ token = lex();
86
+ parseStates[parseState]();
87
+ } while (token.type !== "eof");
88
+ if (typeof reviver === "function") {
89
+ return internalize({ "": root }, "", reviver);
90
+ }
91
+ return root;
92
+ };
93
+ function internalize(holder, name, reviver) {
94
+ const value = holder[name];
95
+ if (value != null && typeof value === "object") {
96
+ if (Array.isArray(value)) {
97
+ for (let i = 0; i < value.length; i++) {
98
+ const key2 = String(i);
99
+ const replacement = internalize(value, key2, reviver);
100
+ if (replacement === void 0) {
101
+ delete value[key2];
102
+ } else {
103
+ Object.defineProperty(value, key2, {
104
+ value: replacement,
105
+ writable: true,
106
+ enumerable: true,
107
+ configurable: true
108
+ });
109
+ }
110
+ }
111
+ } else {
112
+ for (const key2 in value) {
113
+ const replacement = internalize(value, key2, reviver);
114
+ if (replacement === void 0) {
115
+ delete value[key2];
116
+ } else {
117
+ Object.defineProperty(value, key2, {
118
+ value: replacement,
119
+ writable: true,
120
+ enumerable: true,
121
+ configurable: true
122
+ });
123
+ }
124
+ }
125
+ }
126
+ }
127
+ return reviver.call(holder, name, value);
128
+ }
129
+ var lexState;
130
+ var buffer;
131
+ var doubleQuote;
132
+ var sign;
133
+ var c;
134
+ function lex() {
135
+ lexState = "default";
136
+ buffer = "";
137
+ doubleQuote = false;
138
+ sign = 1;
139
+ for (; ; ) {
140
+ c = peek();
141
+ const token2 = lexStates[lexState]();
142
+ if (token2) {
143
+ return token2;
144
+ }
145
+ }
146
+ }
147
+ function peek() {
148
+ if (source[pos]) {
149
+ return String.fromCodePoint(source.codePointAt(pos));
150
+ }
151
+ }
152
+ function read() {
153
+ const c2 = peek();
154
+ if (c2 === "\n") {
155
+ line++;
156
+ column = 0;
157
+ } else if (c2) {
158
+ column += c2.length;
159
+ } else {
160
+ column++;
161
+ }
162
+ if (c2) {
163
+ pos += c2.length;
164
+ }
165
+ return c2;
166
+ }
167
+ var lexStates = {
168
+ default() {
169
+ switch (c) {
170
+ case " ":
171
+ case "\v":
172
+ case "\f":
173
+ case " ":
174
+ case "\xA0":
175
+ case "\uFEFF":
176
+ case "\n":
177
+ case "\r":
178
+ case "\u2028":
179
+ case "\u2029":
180
+ read();
181
+ return;
182
+ case "/":
183
+ read();
184
+ lexState = "comment";
185
+ return;
186
+ case void 0:
187
+ read();
188
+ return newToken("eof");
189
+ }
190
+ if (util.isSpaceSeparator(c)) {
191
+ read();
192
+ return;
193
+ }
194
+ return lexStates[parseState]();
195
+ },
196
+ comment() {
197
+ switch (c) {
198
+ case "*":
199
+ read();
200
+ lexState = "multiLineComment";
201
+ return;
202
+ case "/":
203
+ read();
204
+ lexState = "singleLineComment";
205
+ return;
206
+ }
207
+ throw invalidChar(read());
208
+ },
209
+ multiLineComment() {
210
+ switch (c) {
211
+ case "*":
212
+ read();
213
+ lexState = "multiLineCommentAsterisk";
214
+ return;
215
+ case void 0:
216
+ throw invalidChar(read());
217
+ }
218
+ read();
219
+ },
220
+ multiLineCommentAsterisk() {
221
+ switch (c) {
222
+ case "*":
223
+ read();
224
+ return;
225
+ case "/":
226
+ read();
227
+ lexState = "default";
228
+ return;
229
+ case void 0:
230
+ throw invalidChar(read());
231
+ }
232
+ read();
233
+ lexState = "multiLineComment";
234
+ },
235
+ singleLineComment() {
236
+ switch (c) {
237
+ case "\n":
238
+ case "\r":
239
+ case "\u2028":
240
+ case "\u2029":
241
+ read();
242
+ lexState = "default";
243
+ return;
244
+ case void 0:
245
+ read();
246
+ return newToken("eof");
247
+ }
248
+ read();
249
+ },
250
+ value() {
251
+ switch (c) {
252
+ case "{":
253
+ case "[":
254
+ return newToken("punctuator", read());
255
+ case "n":
256
+ read();
257
+ literal("ull");
258
+ return newToken("null", null);
259
+ case "t":
260
+ read();
261
+ literal("rue");
262
+ return newToken("boolean", true);
263
+ case "f":
264
+ read();
265
+ literal("alse");
266
+ return newToken("boolean", false);
267
+ case "-":
268
+ case "+":
269
+ if (read() === "-") {
270
+ sign = -1;
271
+ }
272
+ lexState = "sign";
273
+ return;
274
+ case ".":
275
+ buffer = read();
276
+ lexState = "decimalPointLeading";
277
+ return;
278
+ case "0":
279
+ buffer = read();
280
+ lexState = "zero";
281
+ return;
282
+ case "1":
283
+ case "2":
284
+ case "3":
285
+ case "4":
286
+ case "5":
287
+ case "6":
288
+ case "7":
289
+ case "8":
290
+ case "9":
291
+ buffer = read();
292
+ lexState = "decimalInteger";
293
+ return;
294
+ case "I":
295
+ read();
296
+ literal("nfinity");
297
+ return newToken("numeric", Infinity);
298
+ case "N":
299
+ read();
300
+ literal("aN");
301
+ return newToken("numeric", NaN);
302
+ case '"':
303
+ case "'":
304
+ doubleQuote = read() === '"';
305
+ buffer = "";
306
+ lexState = "string";
307
+ return;
308
+ }
309
+ throw invalidChar(read());
310
+ },
311
+ identifierNameStartEscape() {
312
+ if (c !== "u") {
313
+ throw invalidChar(read());
314
+ }
315
+ read();
316
+ const u = unicodeEscape();
317
+ switch (u) {
318
+ case "$":
319
+ case "_":
320
+ break;
321
+ default:
322
+ if (!util.isIdStartChar(u)) {
323
+ throw invalidIdentifier();
324
+ }
325
+ break;
326
+ }
327
+ buffer += u;
328
+ lexState = "identifierName";
329
+ },
330
+ identifierName() {
331
+ switch (c) {
332
+ case "$":
333
+ case "_":
334
+ case "\u200C":
335
+ case "\u200D":
336
+ buffer += read();
337
+ return;
338
+ case "\\":
339
+ read();
340
+ lexState = "identifierNameEscape";
341
+ return;
342
+ }
343
+ if (util.isIdContinueChar(c)) {
344
+ buffer += read();
345
+ return;
346
+ }
347
+ return newToken("identifier", buffer);
348
+ },
349
+ identifierNameEscape() {
350
+ if (c !== "u") {
351
+ throw invalidChar(read());
352
+ }
353
+ read();
354
+ const u = unicodeEscape();
355
+ switch (u) {
356
+ case "$":
357
+ case "_":
358
+ case "\u200C":
359
+ case "\u200D":
360
+ break;
361
+ default:
362
+ if (!util.isIdContinueChar(u)) {
363
+ throw invalidIdentifier();
364
+ }
365
+ break;
366
+ }
367
+ buffer += u;
368
+ lexState = "identifierName";
369
+ },
370
+ sign() {
371
+ switch (c) {
372
+ case ".":
373
+ buffer = read();
374
+ lexState = "decimalPointLeading";
375
+ return;
376
+ case "0":
377
+ buffer = read();
378
+ lexState = "zero";
379
+ return;
380
+ case "1":
381
+ case "2":
382
+ case "3":
383
+ case "4":
384
+ case "5":
385
+ case "6":
386
+ case "7":
387
+ case "8":
388
+ case "9":
389
+ buffer = read();
390
+ lexState = "decimalInteger";
391
+ return;
392
+ case "I":
393
+ read();
394
+ literal("nfinity");
395
+ return newToken("numeric", sign * Infinity);
396
+ case "N":
397
+ read();
398
+ literal("aN");
399
+ return newToken("numeric", NaN);
400
+ }
401
+ throw invalidChar(read());
402
+ },
403
+ zero() {
404
+ switch (c) {
405
+ case ".":
406
+ buffer += read();
407
+ lexState = "decimalPoint";
408
+ return;
409
+ case "e":
410
+ case "E":
411
+ buffer += read();
412
+ lexState = "decimalExponent";
413
+ return;
414
+ case "x":
415
+ case "X":
416
+ buffer += read();
417
+ lexState = "hexadecimal";
418
+ return;
419
+ }
420
+ return newToken("numeric", sign * 0);
421
+ },
422
+ decimalInteger() {
423
+ switch (c) {
424
+ case ".":
425
+ buffer += read();
426
+ lexState = "decimalPoint";
427
+ return;
428
+ case "e":
429
+ case "E":
430
+ buffer += read();
431
+ lexState = "decimalExponent";
432
+ return;
433
+ }
434
+ if (util.isDigit(c)) {
435
+ buffer += read();
436
+ return;
437
+ }
438
+ return newToken("numeric", sign * Number(buffer));
439
+ },
440
+ decimalPointLeading() {
441
+ if (util.isDigit(c)) {
442
+ buffer += read();
443
+ lexState = "decimalFraction";
444
+ return;
445
+ }
446
+ throw invalidChar(read());
447
+ },
448
+ decimalPoint() {
449
+ switch (c) {
450
+ case "e":
451
+ case "E":
452
+ buffer += read();
453
+ lexState = "decimalExponent";
454
+ return;
455
+ }
456
+ if (util.isDigit(c)) {
457
+ buffer += read();
458
+ lexState = "decimalFraction";
459
+ return;
460
+ }
461
+ return newToken("numeric", sign * Number(buffer));
462
+ },
463
+ decimalFraction() {
464
+ switch (c) {
465
+ case "e":
466
+ case "E":
467
+ buffer += read();
468
+ lexState = "decimalExponent";
469
+ return;
470
+ }
471
+ if (util.isDigit(c)) {
472
+ buffer += read();
473
+ return;
474
+ }
475
+ return newToken("numeric", sign * Number(buffer));
476
+ },
477
+ decimalExponent() {
478
+ switch (c) {
479
+ case "+":
480
+ case "-":
481
+ buffer += read();
482
+ lexState = "decimalExponentSign";
483
+ return;
484
+ }
485
+ if (util.isDigit(c)) {
486
+ buffer += read();
487
+ lexState = "decimalExponentInteger";
488
+ return;
489
+ }
490
+ throw invalidChar(read());
491
+ },
492
+ decimalExponentSign() {
493
+ if (util.isDigit(c)) {
494
+ buffer += read();
495
+ lexState = "decimalExponentInteger";
496
+ return;
497
+ }
498
+ throw invalidChar(read());
499
+ },
500
+ decimalExponentInteger() {
501
+ if (util.isDigit(c)) {
502
+ buffer += read();
503
+ return;
504
+ }
505
+ return newToken("numeric", sign * Number(buffer));
506
+ },
507
+ hexadecimal() {
508
+ if (util.isHexDigit(c)) {
509
+ buffer += read();
510
+ lexState = "hexadecimalInteger";
511
+ return;
512
+ }
513
+ throw invalidChar(read());
514
+ },
515
+ hexadecimalInteger() {
516
+ if (util.isHexDigit(c)) {
517
+ buffer += read();
518
+ return;
519
+ }
520
+ return newToken("numeric", sign * Number(buffer));
521
+ },
522
+ string() {
523
+ switch (c) {
524
+ case "\\":
525
+ read();
526
+ buffer += escape();
527
+ return;
528
+ case '"':
529
+ if (doubleQuote) {
530
+ read();
531
+ return newToken("string", buffer);
532
+ }
533
+ buffer += read();
534
+ return;
535
+ case "'":
536
+ if (!doubleQuote) {
537
+ read();
538
+ return newToken("string", buffer);
539
+ }
540
+ buffer += read();
541
+ return;
542
+ case "\n":
543
+ case "\r":
544
+ throw invalidChar(read());
545
+ case "\u2028":
546
+ case "\u2029":
547
+ separatorChar(c);
548
+ break;
549
+ case void 0:
550
+ throw invalidChar(read());
551
+ }
552
+ buffer += read();
553
+ },
554
+ start() {
555
+ switch (c) {
556
+ case "{":
557
+ case "[":
558
+ return newToken("punctuator", read());
559
+ }
560
+ lexState = "value";
561
+ },
562
+ beforePropertyName() {
563
+ switch (c) {
564
+ case "$":
565
+ case "_":
566
+ buffer = read();
567
+ lexState = "identifierName";
568
+ return;
569
+ case "\\":
570
+ read();
571
+ lexState = "identifierNameStartEscape";
572
+ return;
573
+ case "}":
574
+ return newToken("punctuator", read());
575
+ case '"':
576
+ case "'":
577
+ doubleQuote = read() === '"';
578
+ lexState = "string";
579
+ return;
580
+ }
581
+ if (util.isIdStartChar(c)) {
582
+ buffer += read();
583
+ lexState = "identifierName";
584
+ return;
585
+ }
586
+ throw invalidChar(read());
587
+ },
588
+ afterPropertyName() {
589
+ if (c === ":") {
590
+ return newToken("punctuator", read());
591
+ }
592
+ throw invalidChar(read());
593
+ },
594
+ beforePropertyValue() {
595
+ lexState = "value";
596
+ },
597
+ afterPropertyValue() {
598
+ switch (c) {
599
+ case ",":
600
+ case "}":
601
+ return newToken("punctuator", read());
602
+ }
603
+ throw invalidChar(read());
604
+ },
605
+ beforeArrayValue() {
606
+ if (c === "]") {
607
+ return newToken("punctuator", read());
608
+ }
609
+ lexState = "value";
610
+ },
611
+ afterArrayValue() {
612
+ switch (c) {
613
+ case ",":
614
+ case "]":
615
+ return newToken("punctuator", read());
616
+ }
617
+ throw invalidChar(read());
618
+ },
619
+ end() {
620
+ throw invalidChar(read());
621
+ }
622
+ };
623
+ function newToken(type, value) {
624
+ return {
625
+ type,
626
+ value,
627
+ line,
628
+ column
629
+ };
630
+ }
631
+ function literal(s) {
632
+ for (const c2 of s) {
633
+ const p = peek();
634
+ if (p !== c2) {
635
+ throw invalidChar(read());
636
+ }
637
+ read();
638
+ }
639
+ }
640
+ function escape() {
641
+ const c2 = peek();
642
+ switch (c2) {
643
+ case "b":
644
+ read();
645
+ return "\b";
646
+ case "f":
647
+ read();
648
+ return "\f";
649
+ case "n":
650
+ read();
651
+ return "\n";
652
+ case "r":
653
+ read();
654
+ return "\r";
655
+ case "t":
656
+ read();
657
+ return " ";
658
+ case "v":
659
+ read();
660
+ return "\v";
661
+ case "0":
662
+ read();
663
+ if (util.isDigit(peek())) {
664
+ throw invalidChar(read());
665
+ }
666
+ return "\0";
667
+ case "x":
668
+ read();
669
+ return hexEscape();
670
+ case "u":
671
+ read();
672
+ return unicodeEscape();
673
+ case "\n":
674
+ case "\u2028":
675
+ case "\u2029":
676
+ read();
677
+ return "";
678
+ case "\r":
679
+ read();
680
+ if (peek() === "\n") {
681
+ read();
682
+ }
683
+ return "";
684
+ case "1":
685
+ case "2":
686
+ case "3":
687
+ case "4":
688
+ case "5":
689
+ case "6":
690
+ case "7":
691
+ case "8":
692
+ case "9":
693
+ throw invalidChar(read());
694
+ case void 0:
695
+ throw invalidChar(read());
696
+ }
697
+ return read();
698
+ }
699
+ function hexEscape() {
700
+ let buffer2 = "";
701
+ let c2 = peek();
702
+ if (!util.isHexDigit(c2)) {
703
+ throw invalidChar(read());
704
+ }
705
+ buffer2 += read();
706
+ c2 = peek();
707
+ if (!util.isHexDigit(c2)) {
708
+ throw invalidChar(read());
709
+ }
710
+ buffer2 += read();
711
+ return String.fromCodePoint(parseInt(buffer2, 16));
712
+ }
713
+ function unicodeEscape() {
714
+ let buffer2 = "";
715
+ let count = 4;
716
+ while (count-- > 0) {
717
+ const c2 = peek();
718
+ if (!util.isHexDigit(c2)) {
719
+ throw invalidChar(read());
720
+ }
721
+ buffer2 += read();
722
+ }
723
+ return String.fromCodePoint(parseInt(buffer2, 16));
724
+ }
725
+ var parseStates = {
726
+ start() {
727
+ if (token.type === "eof") {
728
+ throw invalidEOF();
729
+ }
730
+ push();
731
+ },
732
+ beforePropertyName() {
733
+ switch (token.type) {
734
+ case "identifier":
735
+ case "string":
736
+ key = token.value;
737
+ parseState = "afterPropertyName";
738
+ return;
739
+ case "punctuator":
740
+ pop();
741
+ return;
742
+ case "eof":
743
+ throw invalidEOF();
744
+ }
745
+ },
746
+ afterPropertyName() {
747
+ if (token.type === "eof") {
748
+ throw invalidEOF();
749
+ }
750
+ parseState = "beforePropertyValue";
751
+ },
752
+ beforePropertyValue() {
753
+ if (token.type === "eof") {
754
+ throw invalidEOF();
755
+ }
756
+ push();
757
+ },
758
+ beforeArrayValue() {
759
+ if (token.type === "eof") {
760
+ throw invalidEOF();
761
+ }
762
+ if (token.type === "punctuator" && token.value === "]") {
763
+ pop();
764
+ return;
765
+ }
766
+ push();
767
+ },
768
+ afterPropertyValue() {
769
+ if (token.type === "eof") {
770
+ throw invalidEOF();
771
+ }
772
+ switch (token.value) {
773
+ case ",":
774
+ parseState = "beforePropertyName";
775
+ return;
776
+ case "}":
777
+ pop();
778
+ }
779
+ },
780
+ afterArrayValue() {
781
+ if (token.type === "eof") {
782
+ throw invalidEOF();
783
+ }
784
+ switch (token.value) {
785
+ case ",":
786
+ parseState = "beforeArrayValue";
787
+ return;
788
+ case "]":
789
+ pop();
790
+ }
791
+ },
792
+ end() {
793
+ }
794
+ };
795
+ function push() {
796
+ let value;
797
+ switch (token.type) {
798
+ case "punctuator":
799
+ switch (token.value) {
800
+ case "{":
801
+ value = {};
802
+ break;
803
+ case "[":
804
+ value = [];
805
+ break;
806
+ }
807
+ break;
808
+ case "null":
809
+ case "boolean":
810
+ case "numeric":
811
+ case "string":
812
+ value = token.value;
813
+ break;
814
+ }
815
+ if (root === void 0) {
816
+ root = value;
817
+ } else {
818
+ const parent = stack[stack.length - 1];
819
+ if (Array.isArray(parent)) {
820
+ parent.push(value);
821
+ } else {
822
+ Object.defineProperty(parent, key, {
823
+ value,
824
+ writable: true,
825
+ enumerable: true,
826
+ configurable: true
827
+ });
828
+ }
829
+ }
830
+ if (value !== null && typeof value === "object") {
831
+ stack.push(value);
832
+ if (Array.isArray(value)) {
833
+ parseState = "beforeArrayValue";
834
+ } else {
835
+ parseState = "beforePropertyName";
836
+ }
837
+ } else {
838
+ const current = stack[stack.length - 1];
839
+ if (current == null) {
840
+ parseState = "end";
841
+ } else if (Array.isArray(current)) {
842
+ parseState = "afterArrayValue";
843
+ } else {
844
+ parseState = "afterPropertyValue";
845
+ }
846
+ }
847
+ }
848
+ function pop() {
849
+ stack.pop();
850
+ const current = stack[stack.length - 1];
851
+ if (current == null) {
852
+ parseState = "end";
853
+ } else if (Array.isArray(current)) {
854
+ parseState = "afterArrayValue";
855
+ } else {
856
+ parseState = "afterPropertyValue";
857
+ }
858
+ }
859
+ function invalidChar(c2) {
860
+ if (c2 === void 0) {
861
+ return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
862
+ }
863
+ return syntaxError(`JSON5: invalid character '${formatChar(c2)}' at ${line}:${column}`);
864
+ }
865
+ function invalidEOF() {
866
+ return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
867
+ }
868
+ function invalidIdentifier() {
869
+ column -= 5;
870
+ return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`);
871
+ }
872
+ function separatorChar(c2) {
873
+ console.warn(`JSON5: '${formatChar(c2)}' in strings is not valid ECMAScript; consider escaping`);
874
+ }
875
+ function formatChar(c2) {
876
+ const replacements = {
877
+ "'": "\\'",
878
+ '"': '\\"',
879
+ "\\": "\\\\",
880
+ "\b": "\\b",
881
+ "\f": "\\f",
882
+ "\n": "\\n",
883
+ "\r": "\\r",
884
+ " ": "\\t",
885
+ "\v": "\\v",
886
+ "\0": "\\0",
887
+ "\u2028": "\\u2028",
888
+ "\u2029": "\\u2029"
889
+ };
890
+ if (replacements[c2]) {
891
+ return replacements[c2];
892
+ }
893
+ if (c2 < " ") {
894
+ const hexString = c2.charCodeAt(0).toString(16);
895
+ return "\\x" + ("00" + hexString).substring(hexString.length);
896
+ }
897
+ return c2;
898
+ }
899
+ function syntaxError(message) {
900
+ const err = new SyntaxError(message);
901
+ err.lineNumber = line;
902
+ err.columnNumber = column;
903
+ return err;
904
+ }
905
+ }
906
+ });
907
+
908
+ // ../../node_modules/json5/lib/stringify.js
909
+ var require_stringify = __commonJS({
910
+ "../../node_modules/json5/lib/stringify.js"(exports, module) {
911
+ var util = require_util();
912
+ module.exports = function stringify(value, replacer, space) {
913
+ const stack = [];
914
+ let indent = "";
915
+ let propertyList;
916
+ let replacerFunc;
917
+ let gap = "";
918
+ let quote;
919
+ if (replacer != null && typeof replacer === "object" && !Array.isArray(replacer)) {
920
+ space = replacer.space;
921
+ quote = replacer.quote;
922
+ replacer = replacer.replacer;
923
+ }
924
+ if (typeof replacer === "function") {
925
+ replacerFunc = replacer;
926
+ } else if (Array.isArray(replacer)) {
927
+ propertyList = [];
928
+ for (const v of replacer) {
929
+ let item;
930
+ if (typeof v === "string") {
931
+ item = v;
932
+ } else if (typeof v === "number" || v instanceof String || v instanceof Number) {
933
+ item = String(v);
934
+ }
935
+ if (item !== void 0 && propertyList.indexOf(item) < 0) {
936
+ propertyList.push(item);
937
+ }
938
+ }
939
+ }
940
+ if (space instanceof Number) {
941
+ space = Number(space);
942
+ } else if (space instanceof String) {
943
+ space = String(space);
944
+ }
945
+ if (typeof space === "number") {
946
+ if (space > 0) {
947
+ space = Math.min(10, Math.floor(space));
948
+ gap = " ".substr(0, space);
949
+ }
950
+ } else if (typeof space === "string") {
951
+ gap = space.substr(0, 10);
952
+ }
953
+ return serializeProperty("", { "": value });
954
+ function serializeProperty(key, holder) {
955
+ let value2 = holder[key];
956
+ if (value2 != null) {
957
+ if (typeof value2.toJSON5 === "function") {
958
+ value2 = value2.toJSON5(key);
959
+ } else if (typeof value2.toJSON === "function") {
960
+ value2 = value2.toJSON(key);
961
+ }
962
+ }
963
+ if (replacerFunc) {
964
+ value2 = replacerFunc.call(holder, key, value2);
965
+ }
966
+ if (value2 instanceof Number) {
967
+ value2 = Number(value2);
968
+ } else if (value2 instanceof String) {
969
+ value2 = String(value2);
970
+ } else if (value2 instanceof Boolean) {
971
+ value2 = value2.valueOf();
972
+ }
973
+ switch (value2) {
974
+ case null:
975
+ return "null";
976
+ case true:
977
+ return "true";
978
+ case false:
979
+ return "false";
980
+ }
981
+ if (typeof value2 === "string") {
982
+ return quoteString(value2, false);
983
+ }
984
+ if (typeof value2 === "number") {
985
+ return String(value2);
986
+ }
987
+ if (typeof value2 === "object") {
988
+ return Array.isArray(value2) ? serializeArray(value2) : serializeObject(value2);
989
+ }
990
+ return void 0;
991
+ }
992
+ function quoteString(value2) {
993
+ const quotes = {
994
+ "'": 0.1,
995
+ '"': 0.2
996
+ };
997
+ const replacements = {
998
+ "'": "\\'",
999
+ '"': '\\"',
1000
+ "\\": "\\\\",
1001
+ "\b": "\\b",
1002
+ "\f": "\\f",
1003
+ "\n": "\\n",
1004
+ "\r": "\\r",
1005
+ " ": "\\t",
1006
+ "\v": "\\v",
1007
+ "\0": "\\0",
1008
+ "\u2028": "\\u2028",
1009
+ "\u2029": "\\u2029"
1010
+ };
1011
+ let product = "";
1012
+ for (let i = 0; i < value2.length; i++) {
1013
+ const c = value2[i];
1014
+ switch (c) {
1015
+ case "'":
1016
+ case '"':
1017
+ quotes[c]++;
1018
+ product += c;
1019
+ continue;
1020
+ case "\0":
1021
+ if (util.isDigit(value2[i + 1])) {
1022
+ product += "\\x00";
1023
+ continue;
1024
+ }
1025
+ }
1026
+ if (replacements[c]) {
1027
+ product += replacements[c];
1028
+ continue;
1029
+ }
1030
+ if (c < " ") {
1031
+ let hexString = c.charCodeAt(0).toString(16);
1032
+ product += "\\x" + ("00" + hexString).substring(hexString.length);
1033
+ continue;
1034
+ }
1035
+ product += c;
1036
+ }
1037
+ const quoteChar = quote || Object.keys(quotes).reduce((a, b) => quotes[a] < quotes[b] ? a : b);
1038
+ product = product.replace(new RegExp(quoteChar, "g"), replacements[quoteChar]);
1039
+ return quoteChar + product + quoteChar;
1040
+ }
1041
+ function serializeObject(value2) {
1042
+ if (stack.indexOf(value2) >= 0) {
1043
+ throw TypeError("Converting circular structure to JSON5");
1044
+ }
1045
+ stack.push(value2);
1046
+ let stepback = indent;
1047
+ indent = indent + gap;
1048
+ let keys = propertyList || Object.keys(value2);
1049
+ let partial = [];
1050
+ for (const key of keys) {
1051
+ const propertyString = serializeProperty(key, value2);
1052
+ if (propertyString !== void 0) {
1053
+ let member = serializeKey(key) + ":";
1054
+ if (gap !== "") {
1055
+ member += " ";
1056
+ }
1057
+ member += propertyString;
1058
+ partial.push(member);
1059
+ }
1060
+ }
1061
+ let final;
1062
+ if (partial.length === 0) {
1063
+ final = "{}";
1064
+ } else {
1065
+ let properties;
1066
+ if (gap === "") {
1067
+ properties = partial.join(",");
1068
+ final = "{" + properties + "}";
1069
+ } else {
1070
+ let separator = ",\n" + indent;
1071
+ properties = partial.join(separator);
1072
+ final = "{\n" + indent + properties + ",\n" + stepback + "}";
1073
+ }
1074
+ }
1075
+ stack.pop();
1076
+ indent = stepback;
1077
+ return final;
1078
+ }
1079
+ function serializeKey(key) {
1080
+ if (key.length === 0) {
1081
+ return quoteString(key, true);
1082
+ }
1083
+ const firstChar = String.fromCodePoint(key.codePointAt(0));
1084
+ if (!util.isIdStartChar(firstChar)) {
1085
+ return quoteString(key, true);
1086
+ }
1087
+ for (let i = firstChar.length; i < key.length; i++) {
1088
+ if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {
1089
+ return quoteString(key, true);
1090
+ }
1091
+ }
1092
+ return key;
1093
+ }
1094
+ function serializeArray(value2) {
1095
+ if (stack.indexOf(value2) >= 0) {
1096
+ throw TypeError("Converting circular structure to JSON5");
1097
+ }
1098
+ stack.push(value2);
1099
+ let stepback = indent;
1100
+ indent = indent + gap;
1101
+ let partial = [];
1102
+ for (let i = 0; i < value2.length; i++) {
1103
+ const propertyString = serializeProperty(String(i), value2);
1104
+ partial.push(propertyString !== void 0 ? propertyString : "null");
1105
+ }
1106
+ let final;
1107
+ if (partial.length === 0) {
1108
+ final = "[]";
1109
+ } else {
1110
+ if (gap === "") {
1111
+ let properties = partial.join(",");
1112
+ final = "[" + properties + "]";
1113
+ } else {
1114
+ let separator = ",\n" + indent;
1115
+ let properties = partial.join(separator);
1116
+ final = "[\n" + indent + properties + ",\n" + stepback + "]";
1117
+ }
1118
+ }
1119
+ stack.pop();
1120
+ indent = stepback;
1121
+ return final;
1122
+ }
1123
+ };
1124
+ }
1125
+ });
1126
+
1127
+ // ../../node_modules/json5/lib/index.js
1128
+ var require_lib = __commonJS({
1129
+ "../../node_modules/json5/lib/index.js"(exports, module) {
1130
+ var parse = require_parse();
1131
+ var stringify = require_stringify();
1132
+ var JSON52 = {
1133
+ parse,
1134
+ stringify
1135
+ };
1136
+ module.exports = JSON52;
1137
+ }
1138
+ });
2
1139
 
3
1140
  // src/native-app-identity-project.ts
4
1141
  import fs2 from "node:fs";
@@ -438,8 +1575,13 @@ function visitXcodeTargetMembers(objects, targetId, resolvePath, filesUnder, joi
438
1575
  if (file.endsWith(".swift")) {
439
1576
  if (!relative.split("/").some((segment) => BUNDLE_DIR.test(segment)))
440
1577
  visit(file, "source");
441
- } else if (/\.(h|m|mm|c|cpp|metal)$/.test(file)) {
442
- if (!file.endsWith(".h")) visit(file, "source");
1578
+ } else if (/\.(h|hh|hpp|hxx|pch)$/.test(file)) {
1579
+ visit(
1580
+ file,
1581
+ relative.split("/").some((segment) => BUNDLE_DIR.test(segment)) ? "resource" : "header"
1582
+ );
1583
+ } else if (/\.(m|mm|c|cc|cpp|cxx|metal)$/.test(file)) {
1584
+ visit(file, "source");
443
1585
  } else visit(file, "resource");
444
1586
  }
445
1587
  }
@@ -934,8 +2076,8 @@ import path2 from "node:path";
934
2076
  import plist2 from "plist";
935
2077
 
936
2078
  // src/xcode-json-project.ts
2079
+ var import_json5 = __toESM(require_lib(), 1);
937
2080
  import path from "node:path";
938
- import JSON5 from "json5";
939
2081
  var isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
940
2082
  var text = (value) => typeof value === "string" ? value : void 0;
941
2083
  var items = (value) => Array.isArray(value) ? value : [];
@@ -948,7 +2090,7 @@ var PHASE_ISA = {
948
2090
  script: "PBXShellScriptBuildPhase"
949
2091
  };
950
2092
  function readXcodeJsonProject(xcodeproj, source) {
951
- const json = JSON5.parse(source);
2093
+ const json = import_json5.default.parse(source);
952
2094
  if (!isJsonObject(json)) throw new Error(`${xcodeproj}/project.xcproj is not an object`);
953
2095
  const projectDir = path.dirname(xcodeproj);
954
2096
  const objects = {};
@@ -1495,6 +2637,9 @@ function targetSettings(ref, configuration, builtins, options = {}) {
1495
2637
  return applyOperator(get("PRODUCT_NAME"), "c99extidentifier");
1496
2638
  case "EXECUTABLE_NAME":
1497
2639
  return get("PRODUCT_NAME");
2640
+ // the native default of CoreBuildSystem.xcspec
2641
+ case "EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES":
2642
+ return "*.nib *.lproj *.framework *.gch *.xcode* *.xcassets *.icon (*) .DS_Store CVS .svn .git .hg *.pbproj *.pbxproj";
1498
2643
  case "AppIdentifierPrefix":
1499
2644
  case "TeamIdentifierPrefix": {
1500
2645
  const team = get("DEVELOPMENT_TEAM");
@@ -1517,6 +2662,45 @@ function settingList(value) {
1517
2662
  items2.push((quoted ?? plain).replace(/\\(.)/g, "$1"));
1518
2663
  return items2;
1519
2664
  }
2665
+ function expandSearchPath(directory, rules) {
2666
+ if (path2.basename(directory) !== "**") return [directory];
2667
+ const expanded = [];
2668
+ const seen = /* @__PURE__ */ new Set();
2669
+ const queue = [path2.dirname(directory)];
2670
+ for (let at = 0; at < queue.length; at++) {
2671
+ const current = queue[at];
2672
+ let real;
2673
+ try {
2674
+ real = fs.realpathSync(current);
2675
+ } catch {
2676
+ continue;
2677
+ }
2678
+ if (!fs.statSync(real).isDirectory() || seen.has(real)) continue;
2679
+ seen.add(real);
2680
+ expanded.push(current);
2681
+ for (const entry of fs.readdirSync(real, { withFileTypes: true }).sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)) {
2682
+ if (entry.isSymbolicLink() ? !rules.followLinks : !entry.isDirectory()) continue;
2683
+ if (rules.excluded.some((pattern) => pattern.test(entry.name)) && !rules.included.some((pattern) => pattern.test(entry.name)))
2684
+ continue;
2685
+ queue.push(path2.join(current, entry.name));
2686
+ }
2687
+ }
2688
+ return expanded;
2689
+ }
2690
+ function recursiveSearchRules(settings) {
2691
+ const glob = (pattern) => new RegExp(
2692
+ `^${pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&").replaceAll("*", ".*").replaceAll("?", ".")}$`
2693
+ );
2694
+ return {
2695
+ excluded: settingList(settings("EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES")).map(
2696
+ glob
2697
+ ),
2698
+ included: settingList(settings("INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES")).map(
2699
+ glob
2700
+ ),
2701
+ followLinks: settings("RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS") !== "NO"
2702
+ };
2703
+ }
1520
2704
  function compilationConditions(settings) {
1521
2705
  const flags = settingList(settings("OTHER_SWIFT_FLAGS"));
1522
2706
  const defined = flags.flatMap(
@@ -1545,6 +2729,7 @@ function targetMembers(ref, settings, options, settingKeys, projectInputs) {
1545
2729
  const targetName = str(target.name) ?? targetId;
1546
2730
  const sources = /* @__PURE__ */ new Set();
1547
2731
  const allSources = /* @__PURE__ */ new Set();
2732
+ const headers = /* @__PURE__ */ new Set();
1548
2733
  const resources = /* @__PURE__ */ new Set();
1549
2734
  const scriptForOutput = /* @__PURE__ */ new Map();
1550
2735
  for (const phaseId of list(target.buildPhases)) {
@@ -1673,6 +2858,10 @@ ${output}`
1673
2858
  (file) => isDirectory(file) ? walkFiles(file) : fs.existsSync(file) ? [file] : [],
1674
2859
  path2.join,
1675
2860
  (file, kind) => {
2861
+ if (kind === "header") {
2862
+ headers.add(file);
2863
+ return;
2864
+ }
1676
2865
  if (kind === "resource") {
1677
2866
  resources.add(file);
1678
2867
  return;
@@ -1702,7 +2891,8 @@ ${output}`
1702
2891
  return {
1703
2892
  sources: [...sources].sort(),
1704
2893
  resources: [...resources].sort(),
1705
- allSources: [...allSources].sort()
2894
+ allSources: [...allSources].sort(),
2895
+ headers: [...headers].sort()
1706
2896
  };
1707
2897
  }
1708
2898
  function commonAncestor(dirs) {
@@ -1878,7 +3068,8 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
1878
3068
  );
1879
3069
  for (const file of read) xcconfigs.add(file);
1880
3070
  const swiftVersion = Number.parseFloat(settings2("SWIFT_VERSION") || "5");
1881
- const members = targetMembers(ref, settings2, options, keys, xcconfigs);
3071
+ const { headers, ...members } = targetMembers(ref, settings2, options, keys, xcconfigs);
3072
+ const searchRules = recursiveSearchRules(settings2);
1882
3073
  const implementations = members.allSources.filter(
1883
3074
  (file) => /\.(c|cc|cpp|cxx|m|mm)$/.test(file)
1884
3075
  );
@@ -1912,21 +3103,36 @@ function readXcodeAppTarget(input, targetName, configurationName, options = {})
1912
3103
  iosDeploymentTarget: settings2("IPHONEOS_DEPLOYMENT_TARGET") || null,
1913
3104
  ...implementations.some((file) => /\.mm?$/.test(file)) ? {
1914
3105
  objc: {
1915
- headers: Object.keys(ref.project.objects).flatMap((id) => {
1916
- const file = ref.project.resolvePath(id);
1917
- return file && /\.(h|hh|hpp|hxx|pch)$/.test(file) && fs.existsSync(file) ? [file] : [];
3106
+ publicHeaders: list(ref.target.buildPhases).flatMap((phaseId) => {
3107
+ const phase = ref.project.object(phaseId);
3108
+ if (phase?.isa !== "PBXHeadersBuildPhase") return [];
3109
+ return list(phase.files).flatMap((id) => {
3110
+ const file = ref.project.object(id);
3111
+ const attributes = isDict(file?.settings) ? list(file.settings.ATTRIBUTES) : [];
3112
+ const resolved = ref.project.resolvePath(str(file?.fileRef) ?? "");
3113
+ return attributes.includes("Public") && resolved ? [resolved] : [];
3114
+ });
1918
3115
  }),
3116
+ headers: [
3117
+ .../* @__PURE__ */ new Set([
3118
+ ...headers,
3119
+ ...Object.keys(ref.project.objects).flatMap((id) => {
3120
+ const file = ref.project.resolvePath(id);
3121
+ return file && /\.(h|hh|hpp|hxx|pch)$/.test(file) && fs.existsSync(file) ? [file] : [];
3122
+ })
3123
+ ])
3124
+ ],
1919
3125
  prefixHeader: settings2("GCC_PREFIX_HEADER") ? absolute(settings2("GCC_PREFIX_HEADER")) : null,
1920
3126
  bridgingHeader: settings2("SWIFT_OBJC_BRIDGING_HEADER") ? absolute(settings2("SWIFT_OBJC_BRIDGING_HEADER")) : null,
1921
3127
  headerSearchPaths: [
1922
3128
  ...settingList(settings2("HEADER_SEARCH_PATHS")),
1923
3129
  ...settingList(settings2("USER_HEADER_SEARCH_PATHS"))
1924
- ].map(absolute),
1925
- frameworkSearchPaths: settingList(settings2("FRAMEWORK_SEARCH_PATHS")).map(
1926
- absolute
1927
- ),
3130
+ ].flatMap((raw) => expandSearchPath(absolute(raw), searchRules)),
3131
+ frameworkSearchPaths: settingList(
3132
+ settings2("FRAMEWORK_SEARCH_PATHS")
3133
+ ).flatMap((raw) => expandSearchPath(absolute(raw), searchRules)),
1928
3134
  flags: [
1929
- ...settings2("CLANG_ENABLE_OBJC_ARC") === "YES" ? ["-fobjc-arc"] : [],
3135
+ settings2("CLANG_ENABLE_OBJC_ARC") === "YES" ? "-fobjc-arc" : "-fno-objc-arc",
1930
3136
  ...settings2("CLANG_ENABLE_OBJC_WEAK") === "YES" ? ["-fobjc-weak"] : [],
1931
3137
  ...settings2("CLANG_ENABLE_MODULES") === "YES" ? ["-fmodules"] : [],
1932
3138
  ...settings2("GCC_C_LANGUAGE_STANDARD") ? [`-std=${settings2("GCC_C_LANGUAGE_STANDARD")}`] : [],
@@ -2297,42 +3503,8 @@ function readAndroidNativeAppIdentity(projectRoot, androidMergedManifest) {
2297
3503
  );
2298
3504
  }
2299
3505
  function readIosNativeAppIdentity(projectRoot, parseInfoPlist, iosTarget) {
2300
- const iosRoot = path3.join(projectRoot, "ios");
2301
- if (!fs2.existsSync(iosRoot)) return null;
2302
- const projects = fs2.readdirSync(iosRoot, { withFileTypes: true }).filter((entry) => entry.isDirectory() && entry.name.endsWith(".xcodeproj"));
2303
- if (projects.length === 0) return null;
2304
- if (projects.length > 1 && !iosTarget) {
2305
- throw new NativeAppTargetSelectionError(
2306
- `native app identity requires a selected Xcode project; set withPeach's iosTarget to an app target in one of: ${projects.map((entry) => entry.name).join(", ")}`
2307
- );
2308
- }
2309
- let project = projects[0];
2310
- if (iosTarget && projects.length > 1) {
2311
- const matches = projects.filter(
2312
- (entry) => listXcodeAppTargets(path3.join(iosRoot, entry.name), {
2313
- requireSources: false
2314
- }).includes(iosTarget)
2315
- );
2316
- if (matches.length === 0) {
2317
- throw new Error(`native app identity has no application target ${iosTarget}`);
2318
- }
2319
- if (matches.length > 1) {
2320
- throw new Error(
2321
- `native app identity target ${iosTarget} is ambiguous across ${matches.map((entry) => entry.name).join(", ")}`
2322
- );
2323
- }
2324
- project = matches[0];
2325
- }
2326
- const xcodeproj = path3.join(iosRoot, project.name);
2327
- const appTargets = listXcodeAppTargets(xcodeproj, { requireSources: false });
2328
- if (!iosTarget && appTargets.length > 1) {
2329
- throw new NativeAppTargetSelectionError(
2330
- `native app identity requires a selected app target; set withPeach's iosTarget to one of: ${appTargets.join(", ")}`
2331
- );
2332
- }
2333
- const app = readXcodeAppTarget(xcodeproj, iosTarget ?? appTargets[0], "Release", {
2334
- requireSources: false
2335
- });
3506
+ const app = readIosAppTarget(projectRoot, iosTarget);
3507
+ if (!app) return null;
2336
3508
  const identity = readNativeAppIdentityFromXcodeTarget(app, parseInfoPlist);
2337
3509
  const projectManifestPath = path3.join(projectRoot, "package.json");
2338
3510
  const projectRequire = createRequire(projectManifestPath);
@@ -2385,8 +3557,47 @@ function readIosNativeAppIdentity(projectRoot, parseInfoPlist, iosTarget) {
2385
3557
  }
2386
3558
  return { ...identity, reanimatedStaticFeatureFlags: flags };
2387
3559
  }
3560
+ function readIosAppTarget(projectRoot, iosTarget) {
3561
+ const iosRoot = path3.join(projectRoot, "ios");
3562
+ if (!fs2.existsSync(iosRoot)) return null;
3563
+ const projects = fs2.readdirSync(iosRoot, { withFileTypes: true }).filter((entry) => entry.isDirectory() && entry.name.endsWith(".xcodeproj"));
3564
+ if (projects.length === 0) return null;
3565
+ if (projects.length > 1 && !iosTarget) {
3566
+ throw new NativeAppTargetSelectionError(
3567
+ `native app identity requires a selected Xcode project; set withPeach's iosTarget to an app target in one of: ${projects.map((entry) => entry.name).join(", ")}`
3568
+ );
3569
+ }
3570
+ let project = projects[0];
3571
+ if (iosTarget && projects.length > 1) {
3572
+ const matches = projects.filter(
3573
+ (entry) => listXcodeAppTargets(path3.join(iosRoot, entry.name), {
3574
+ requireSources: false
3575
+ }).includes(iosTarget)
3576
+ );
3577
+ if (matches.length === 0) {
3578
+ throw new Error(`native app identity has no application target ${iosTarget}`);
3579
+ }
3580
+ if (matches.length > 1) {
3581
+ throw new Error(
3582
+ `native app identity target ${iosTarget} is ambiguous across ${matches.map((entry) => entry.name).join(", ")}`
3583
+ );
3584
+ }
3585
+ project = matches[0];
3586
+ }
3587
+ const xcodeproj = path3.join(iosRoot, project.name);
3588
+ const appTargets = listXcodeAppTargets(xcodeproj, { requireSources: false });
3589
+ if (!iosTarget && appTargets.length > 1) {
3590
+ throw new NativeAppTargetSelectionError(
3591
+ `native app identity requires a selected app target; set withPeach's iosTarget to one of: ${appTargets.join(", ")}`
3592
+ );
3593
+ }
3594
+ return readXcodeAppTarget(xcodeproj, iosTarget ?? appTargets[0], "Release", {
3595
+ requireSources: false
3596
+ });
3597
+ }
2388
3598
  export {
2389
3599
  NativeAppTargetSelectionError,
3600
+ readIosAppTarget,
2390
3601
  readNativeAppIdentityFromProject,
2391
3602
  readNativeAppIdentityFromSources,
2392
3603
  readNativeAppIdentityFromXcodeTarget