one 2.7.7 → 2.8.0

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 (223) hide show
  1. package/One.podspec +3 -0
  2. package/android/build.gradle +8 -1
  3. package/android/consumer-rules.pro +6 -0
  4. package/dist/cjs/cli/build.cjs +1 -1
  5. package/dist/cjs/cli/build.native.cjs +1 -1
  6. package/dist/cjs/cli/build.native.js +1 -1
  7. package/dist/cjs/cli/build.native.js.map +1 -1
  8. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.cjs +1 -1
  9. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.cjs +1 -1
  10. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js +1 -1
  11. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -1
  12. package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +10 -4
  13. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.cjs +10 -4
  14. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +10 -4
  15. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  16. package/dist/cjs/metro-config/withOne.cjs +2 -2
  17. package/dist/cjs/metro-config/withOne.native.cjs +2 -2
  18. package/dist/cjs/metro-config/withOne.native.js +2 -2
  19. package/dist/cjs/metro-config/withOne.native.js.map +1 -1
  20. package/dist/cjs/vite/one.cjs +5 -5
  21. package/dist/cjs/vite/one.native.cjs +5 -5
  22. package/dist/cjs/vite/one.native.js +5 -5
  23. package/dist/cjs/vite/one.native.js.map +1 -1
  24. package/dist/cjs/vite/plugins/workerdDevPlugin.cjs +3 -3
  25. package/dist/cjs/vite/plugins/workerdDevPlugin.native.cjs +3 -3
  26. package/dist/cjs/vite/plugins/workerdDevPlugin.native.js +3 -3
  27. package/dist/cjs/vite/plugins/workerdDevPlugin.native.js.map +1 -1
  28. package/dist/esm/cli/build.mjs +1 -1
  29. package/dist/esm/cli/build.mjs.map +1 -1
  30. package/dist/esm/cli/build.native.js +1 -1
  31. package/dist/esm/cli/build.native.js.map +1 -1
  32. package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs +1 -1
  33. package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs.map +1 -1
  34. package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js +1 -1
  35. package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -1
  36. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +10 -4
  37. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
  38. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +10 -4
  39. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  40. package/dist/esm/metro-config/withOne.mjs +1 -1
  41. package/dist/esm/metro-config/withOne.mjs.map +1 -1
  42. package/dist/esm/metro-config/withOne.native.js +1 -1
  43. package/dist/esm/metro-config/withOne.native.js.map +1 -1
  44. package/dist/esm/vite/one.mjs +1 -1
  45. package/dist/esm/vite/one.mjs.map +1 -1
  46. package/dist/esm/vite/one.native.js +1 -1
  47. package/dist/esm/vite/one.native.js.map +1 -1
  48. package/dist/esm/vite/plugins/workerdDevPlugin.mjs +2 -2
  49. package/dist/esm/vite/plugins/workerdDevPlugin.mjs.map +1 -1
  50. package/dist/esm/vite/plugins/workerdDevPlugin.native.js +2 -2
  51. package/dist/esm/vite/plugins/workerdDevPlugin.native.js.map +1 -1
  52. package/ios/PrivacyInfo.xcprivacy +52 -0
  53. package/metro-entry.js +1 -1
  54. package/package.json +79 -42
  55. package/src/__tests__/polyfills-mobile-metro.test.ts +2 -2
  56. package/src/cli/build.ts +1 -1
  57. package/src/metro-config/buildOneMetroResolverOverrides.ts +1 -1
  58. package/src/metro-config/getViteMetroPluginOptions.integration.test.ts +5 -3
  59. package/src/metro-config/getViteMetroPluginOptions.ts +10 -4
  60. package/src/metro-config/withOne.ts +3 -1
  61. package/src/native/packedClosure.test.ts +68 -6
  62. package/src/native/shippedAndroid.test.ts +21 -0
  63. package/src/native/shippedArtifacts.test.ts +81 -0
  64. package/src/vite/one.ts +2 -1
  65. package/src/vite/plugins/workerdDevPlugin.ts +2 -2
  66. package/types/Frozen.d.ts +1 -1
  67. package/types/Frozen.d.ts.map +1 -1
  68. package/types/Frozen.native.d.ts +1 -1
  69. package/types/Frozen.native.d.ts.map +1 -1
  70. package/types/Root.d.ts +1 -1
  71. package/types/Root.d.ts.map +1 -1
  72. package/types/fallbackViews/Sitemap.d.ts +1 -1
  73. package/types/fallbackViews/Sitemap.d.ts.map +1 -1
  74. package/types/fallbackViews/Sitemap.web.d.ts +2 -1
  75. package/types/fallbackViews/Sitemap.web.d.ts.map +1 -1
  76. package/types/fallbackViews/Unmatched.d.ts +2 -1
  77. package/types/fallbackViews/Unmatched.d.ts.map +1 -1
  78. package/types/fallbackViews/Unmatched.web.d.ts +2 -1
  79. package/types/fallbackViews/Unmatched.web.d.ts.map +1 -1
  80. package/types/headless/Presentations.d.ts +1 -1
  81. package/types/headless/Presentations.d.ts.map +1 -1
  82. package/types/headless/keepMounted.d.ts +1 -1
  83. package/types/headless/keepMounted.d.ts.map +1 -1
  84. package/types/headless/useDrawer.d.ts +1 -1
  85. package/types/headless/useDrawer.d.ts.map +1 -1
  86. package/types/layouts/stack-utils/StackScreen.d.ts +1 -1
  87. package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
  88. package/types/layouts/stack-utils/StackToolbar.d.ts +1 -1
  89. package/types/layouts/stack-utils/StackToolbar.d.ts.map +1 -1
  90. package/types/layouts/stack-utils/StackToolbarBottomHost.d.ts +1 -1
  91. package/types/layouts/stack-utils/StackToolbarBottomHost.d.ts.map +1 -1
  92. package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
  93. package/types/metro-config/withOne.d.ts.map +1 -1
  94. package/types/platform/AndroidMenu.d.ts +2 -2
  95. package/types/platform/AndroidMenu.d.ts.map +1 -1
  96. package/types/platform/Animators.native.d.ts +2 -2
  97. package/types/platform/Animators.native.d.ts.map +1 -1
  98. package/types/platform/ArrangementView.d.ts +1 -1
  99. package/types/platform/ArrangementView.d.ts.map +1 -1
  100. package/types/platform/ArrangementView.native.d.ts +1 -1
  101. package/types/platform/ArrangementView.native.d.ts.map +1 -1
  102. package/types/platform/Containers.native.d.ts +34 -34
  103. package/types/platform/Containers.native.d.ts.map +1 -1
  104. package/types/platform/Menu.native.d.ts +2 -2
  105. package/types/platform/Menu.native.d.ts.map +1 -1
  106. package/types/platform/NavigationSplitView.native.d.ts +1 -1
  107. package/types/platform/NavigationSplitView.native.d.ts.map +1 -1
  108. package/types/platform/NavigationStack.native.d.ts +2 -2
  109. package/types/platform/NavigationStack.native.d.ts.map +1 -1
  110. package/types/platform/Pager.native.d.ts +1 -1
  111. package/types/platform/Pager.native.d.ts.map +1 -1
  112. package/types/platform/Popover.native.d.ts +1 -1
  113. package/types/platform/Popover.native.d.ts.map +1 -1
  114. package/types/platform/Sheet.native.d.ts +2 -2
  115. package/types/platform/Sheet.native.d.ts.map +1 -1
  116. package/types/platform/Tabs.native.d.ts +1 -1
  117. package/types/platform/Tabs.native.d.ts.map +1 -1
  118. package/types/platform/adaptive/ReservedRegions.d.ts +1 -1
  119. package/types/platform/adaptive/ReservedRegions.d.ts.map +1 -1
  120. package/types/platform/adaptive/ReservedRegions.native.d.ts +1 -1
  121. package/types/platform/adaptive/ReservedRegions.native.d.ts.map +1 -1
  122. package/types/platform/compose.android.d.ts +101 -101
  123. package/types/platform/compose.android.d.ts.map +1 -1
  124. package/types/platform/effects/Blur.d.ts +1 -1
  125. package/types/platform/effects/Blur.d.ts.map +1 -1
  126. package/types/platform/effects/Blur.native.d.ts +1 -1
  127. package/types/platform/effects/Blur.native.d.ts.map +1 -1
  128. package/types/platform/effects/EdgeFade.d.ts +1 -1
  129. package/types/platform/effects/EdgeFade.d.ts.map +1 -1
  130. package/types/platform/effects/EdgeFade.native.d.ts +1 -1
  131. package/types/platform/effects/EdgeFade.native.d.ts.map +1 -1
  132. package/types/platform/effects/Mask.d.ts +1 -1
  133. package/types/platform/effects/Mask.d.ts.map +1 -1
  134. package/types/platform/effects/Mask.native.d.ts +1 -1
  135. package/types/platform/effects/Mask.native.d.ts.map +1 -1
  136. package/types/platform/generated/Controls.native.d.ts +55 -55
  137. package/types/platform/generated/Controls.native.d.ts.map +1 -1
  138. package/types/platform/index.native.d.ts +58 -58
  139. package/types/platform/menu/index.native.d.ts +1 -1
  140. package/types/platform/menu/index.native.d.ts.map +1 -1
  141. package/types/platform/native-source/view.native.d.ts +1 -1
  142. package/types/platform/native-source/view.native.d.ts.map +1 -1
  143. package/types/platform/split-view/split-view.d.ts +2 -2
  144. package/types/platform/split-view/split-view.d.ts.map +1 -1
  145. package/types/platform/split-view/split-view.native.d.ts +3 -3
  146. package/types/platform/split-view/split-view.native.d.ts.map +1 -1
  147. package/types/platform/swift/index.native.d.ts +1 -1
  148. package/types/platform/swift/index.native.d.ts.map +1 -1
  149. package/types/platform/toolbar/index.native.d.ts +2 -2
  150. package/types/platform/toolbar/index.native.d.ts.map +1 -1
  151. package/types/platform/ui/Icon.android.d.ts +1 -1
  152. package/types/platform/ui/Icon.android.d.ts.map +1 -1
  153. package/types/platform/ui/Image.d.ts +1 -1
  154. package/types/platform/ui/Image.d.ts.map +1 -1
  155. package/types/platform/ui/Image.native.d.ts +1 -1
  156. package/types/platform/ui/Image.native.d.ts.map +1 -1
  157. package/types/platform/ui/Map.android.d.ts +1 -1
  158. package/types/platform/ui/Map.android.d.ts.map +1 -1
  159. package/types/platform/ui/Map.ios.d.ts +1 -1
  160. package/types/platform/ui/Map.ios.d.ts.map +1 -1
  161. package/types/platform/ui/PictureInPicture.d.ts +1 -1
  162. package/types/platform/ui/PictureInPicture.d.ts.map +1 -1
  163. package/types/platform/ui/PictureInPicture.native.d.ts +1 -1
  164. package/types/platform/ui/PictureInPicture.native.d.ts.map +1 -1
  165. package/types/platform/ui/Portal.d.ts +2 -2
  166. package/types/platform/ui/Portal.d.ts.map +1 -1
  167. package/types/platform/ui/Portal.native.d.ts +2 -2
  168. package/types/platform/ui/Portal.native.d.ts.map +1 -1
  169. package/types/platform/universal/TextInput/index.android.d.ts +1 -1
  170. package/types/platform/universal/TextInput/index.android.d.ts.map +1 -1
  171. package/types/platform/universal/TextInput/index.d.ts +1 -1
  172. package/types/platform/universal/TextInput/index.d.ts.map +1 -1
  173. package/types/platform/universal/TextInput/index.ios.d.ts +1 -1
  174. package/types/platform/universal/TextInput/index.ios.d.ts.map +1 -1
  175. package/types/platform/web/DomView.d.ts +1 -1
  176. package/types/platform/web/DomView.d.ts.map +1 -1
  177. package/types/platform/zoom/index.native.d.ts +3 -3
  178. package/types/platform/zoom/index.native.d.ts.map +1 -1
  179. package/types/router/Route.d.ts +1 -1
  180. package/types/router/Route.d.ts.map +1 -1
  181. package/types/router/RouteInfoContext.d.ts +1 -1
  182. package/types/router/RouteInfoContext.d.ts.map +1 -1
  183. package/types/router/web/WebStackView.d.ts +1 -1
  184. package/types/router/web/WebStackView.d.ts.map +1 -1
  185. package/types/safe-area-context/NativeSafeAreaProvider.d.ts +1 -1
  186. package/types/safe-area-context/NativeSafeAreaProvider.d.ts.map +1 -1
  187. package/types/safe-area-context/NativeSafeAreaProvider.native.d.ts +2 -1
  188. package/types/safe-area-context/NativeSafeAreaProvider.native.d.ts.map +1 -1
  189. package/types/safe-area-context/SafeAreaContext.d.ts +1 -1
  190. package/types/safe-area-context/SafeAreaContext.d.ts.map +1 -1
  191. package/types/server/ServerContextScript.d.ts +1 -1
  192. package/types/server/ServerContextScript.d.ts.map +1 -1
  193. package/types/ui/TabList.d.ts +1 -1
  194. package/types/ui/TabList.d.ts.map +1 -1
  195. package/types/ui/TabSlot.d.ts +3 -3
  196. package/types/ui/TabSlot.d.ts.map +1 -1
  197. package/types/ui/TabTrigger.d.ts +1 -1
  198. package/types/ui/TabTrigger.d.ts.map +1 -1
  199. package/types/ui/Tabs.d.ts +1 -1
  200. package/types/ui/Tabs.d.ts.map +1 -1
  201. package/types/views/ErrorBoundary.d.ts +2 -1
  202. package/types/views/ErrorBoundary.d.ts.map +1 -1
  203. package/types/views/ErrorBoundary.web.d.ts +2 -1
  204. package/types/views/ErrorBoundary.web.d.ts.map +1 -1
  205. package/types/views/LoadProgressBar.d.ts +1 -1
  206. package/types/views/LoadProgressBar.d.ts.map +1 -1
  207. package/types/views/LoadProgressBar.web.d.ts +2 -1
  208. package/types/views/LoadProgressBar.web.d.ts.map +1 -1
  209. package/types/views/Navigator.d.ts +6 -6
  210. package/types/views/Navigator.d.ts.map +1 -1
  211. package/types/views/RootErrorBoundary.d.ts +1 -1
  212. package/types/views/RootErrorBoundary.d.ts.map +1 -1
  213. package/types/views/RootErrorBoundary.web.d.ts +1 -1
  214. package/types/views/RootErrorBoundary.web.d.ts.map +1 -1
  215. package/types/views/RouteErrorView.d.ts +1 -1
  216. package/types/views/RouteErrorView.d.ts.map +1 -1
  217. package/types/views/RouteErrorView.web.d.ts +1 -1
  218. package/types/views/RouteErrorView.web.d.ts.map +1 -1
  219. package/types/views/Try.d.ts +1 -1
  220. package/types/views/Try.d.ts.map +1 -1
  221. package/types/vite/DevHead.d.ts +1 -1
  222. package/types/vite/DevHead.d.ts.map +1 -1
  223. package/types/vite/one.d.ts.map +1 -1
package/metro-entry.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // initialize globals before configured setup, whose side-effect import is eager
2
2
  // even when metro defers the named createApp import.
3
- import 'react-native/Libraries/Core/InitializeCore'
3
+ import 'react-native/setup-env'
4
4
  import './dist/esm/polyfills-mobile.native.js'
5
5
 
6
6
  // configured setup is injected after these imports by one-router-metro.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one",
3
- "version": "2.7.7",
3
+ "version": "2.8.0",
4
4
  "description": "One is a React framework for web, iOS, and Android apps.",
5
5
  "license": "BSD-3-Clause",
6
6
  "sideEffects": [
@@ -192,6 +192,7 @@
192
192
  "README.md",
193
193
  "ios",
194
194
  "android/build.gradle",
195
+ "android/consumer-rules.pro",
195
196
  "android/CMakeLists.txt",
196
197
  "android/portal",
197
198
  "android/src",
@@ -219,12 +220,6 @@
219
220
  },
220
221
  "dependencies": {
221
222
  "@azure/core-asynciterator-polyfill": "^1.0.2",
222
- "@babel/core": "^7.28.5",
223
- "@babel/generator": "7.29.7",
224
- "@babel/parser": "^7.28.5",
225
- "@babel/plugin-transform-export-namespace-from": "^7.27.1",
226
- "@babel/traverse": "^7.28.5",
227
- "@babel/types": "^7.28.5",
228
223
  "@bacons/text-decoder": "^0.0.0",
229
224
  "@cloudflare/vite-plugin": "^1.33.1",
230
225
  "@op-engineering/op-sqlite": "18.2.5",
@@ -236,18 +231,15 @@
236
231
  "@react-navigation/native-stack": "8.0.0-alpha.59",
237
232
  "@react-navigation/routers": "8.0.0-alpha.21",
238
233
  "@ungap/structured-clone": "^1.2.0",
239
- "@vxrn/color-scheme": "2.7.7",
240
- "@vxrn/compiler": "2.7.7",
241
- "@vxrn/resolve": "2.7.7",
242
- "@vxrn/tslib-lite": "2.7.7",
243
- "@vxrn/use-isomorphic-layout-effect": "2.7.7",
244
- "@vxrn/utils": "2.7.7",
245
- "@vxrn/vite-plugin-metro": "2.7.7",
246
- "babel-dead-code-elimination": "1.0.10",
247
- "babel-plugin-module-resolver": "^5.0.2",
234
+ "@vxrn/color-scheme": "2.8.0",
235
+ "@vxrn/compiler": "2.8.0",
236
+ "@vxrn/resolve": "2.8.0",
237
+ "@vxrn/tslib-lite": "2.8.0",
238
+ "@vxrn/use-isomorphic-layout-effect": "2.8.0",
239
+ "@vxrn/utils": "2.8.0",
248
240
  "citty": "^0.1.6",
249
241
  "core-js": "^3.38.1",
250
- "create-vxrn": "2.7.7",
242
+ "create-vxrn": "2.8.0",
251
243
  "escape-string-regexp": "^5.0.0",
252
244
  "fast-deep-equal": "^3.1.3",
253
245
  "fast-glob": "^3.3.3",
@@ -260,37 +252,46 @@
260
252
  "oxc-parser": "^0.112.0",
261
253
  "perfect-debounce": "^1.0.0",
262
254
  "picocolors": "^1.0.0",
263
- "react-compiler-runtime": "^19.0.0-beta-201e55d-20241215",
255
+ "react-compiler-runtime": "^1.0.0",
264
256
  "react-native-css-interop": "^0.2.6",
265
257
  "react-native-nitro-image": "0.15.2",
266
258
  "react-native-nitro-modules": "0.37.1",
267
259
  "react-native-nitro-web-image": "0.15.2",
268
260
  "ts-pattern": "^5.6.2",
269
261
  "tsconfig-paths": "^4",
270
- "use-latest-callback": "^0.2.3",
262
+ "use-latest-callback": "^0.3.5",
271
263
  "vite": "^8.2.2",
272
- "vxrn": "2.7.7",
264
+ "vxrn": "2.8.0",
273
265
  "web-streams-polyfill": "^4.3.0",
274
266
  "ws": "^8.21.0",
275
267
  "xxhashjs": "^0.2.2"
276
268
  },
277
269
  "peerDependencies": {
278
270
  "@callstack/liquid-glass": ">=0.6.0",
279
- "@react-native/babel-preset": "^0.87.1",
271
+ "@react-native/babel-preset": "^0.88.0",
280
272
  "@react-navigation/core": "8.0.0-alpha.41",
281
273
  "@react-navigation/drawer": "8.0.0-alpha.58",
282
274
  "@react-navigation/native": "8.0.0-alpha.51",
283
- "react": "^19.2.3",
284
- "react-dom": "^19.2.3",
285
- "react-native": "^0.87.0",
275
+ "react": "^19.3.0",
276
+ "react-dom": "^19.3.0",
277
+ "react-native": "^0.88.0",
286
278
  "react-native-gesture-handler": ">=3.0.0",
287
- "react-native-reanimated": ">=4.0.0",
279
+ "react-native-reanimated": ">=4.7.1",
288
280
  "react-native-screens": ">=4.30.0",
289
281
  "react-native-web": "^0.21.2",
290
- "react-native-worklets": ">=0.12.2",
282
+ "react-native-worklets": ">=0.13.0",
291
283
  "sharp": "^0.35.5",
292
284
  "@tamagui/sheet": ">=3.0.0-beta.1537.1 <4 || >=3.0.0-0.canary <3.0.0-1",
293
- "@tamagui/web": ">=3.0.0-beta.1537.1 <4 || >=3.0.0-0.canary <3.0.0-1"
285
+ "@tamagui/web": ">=3.0.0-beta.1537.1 <4 || >=3.0.0-0.canary <3.0.0-1",
286
+ "@babel/core": "^7.28.5",
287
+ "@babel/generator": "7.29.7",
288
+ "@babel/parser": "^7.28.5",
289
+ "@babel/plugin-transform-export-namespace-from": "^7.27.1",
290
+ "@babel/traverse": "^7.28.5",
291
+ "@babel/types": "^7.28.5",
292
+ "babel-dead-code-elimination": "1.0.10",
293
+ "babel-plugin-module-resolver": "^5.0.2",
294
+ "@vxrn/vite-plugin-metro": "2.8.0"
294
295
  },
295
296
  "peerDependenciesMeta": {
296
297
  "@react-native/babel-preset": {
@@ -322,41 +323,77 @@
322
323
  },
323
324
  "@tamagui/web": {
324
325
  "optional": true
326
+ },
327
+ "@babel/core": {
328
+ "optional": true
329
+ },
330
+ "@babel/generator": {
331
+ "optional": true
332
+ },
333
+ "@babel/parser": {
334
+ "optional": true
335
+ },
336
+ "@babel/plugin-transform-export-namespace-from": {
337
+ "optional": true
338
+ },
339
+ "@babel/traverse": {
340
+ "optional": true
341
+ },
342
+ "@babel/types": {
343
+ "optional": true
344
+ },
345
+ "babel-dead-code-elimination": {
346
+ "optional": true
347
+ },
348
+ "babel-plugin-module-resolver": {
349
+ "optional": true
350
+ },
351
+ "@vxrn/vite-plugin-metro": {
352
+ "optional": true
325
353
  }
326
354
  },
327
355
  "devDependencies": {
328
- "@tamagui/sheet": "3.0.17",
356
+ "@tamagui/sheet": "3.0.18",
329
357
  "@callstack/liquid-glass": "^0.8.1",
330
- "@react-native/babel-plugin-codegen": "0.87.1",
331
- "@react-native/codegen": "^0.87.1",
358
+ "@react-native/babel-plugin-codegen": "0.88.0",
359
+ "@react-native/codegen": "^0.88.0",
332
360
  "@react-navigation/core": "8.0.0-alpha.41",
333
361
  "@react-navigation/drawer": "8.0.0-alpha.58",
334
362
  "@react-navigation/native": "8.0.0-alpha.51",
335
- "@tamagui/build": "3.0.17",
363
+ "@tamagui/build": "3.0.18",
336
364
  "@types/node": "^24.10.0",
337
- "@types/react-dom": "^19.2.2",
365
+ "@types/react-dom": "^19.3.0",
338
366
  "@types/react-test-renderer": "^19.1.0",
339
367
  "@types/xxhashjs": "^0.2.4",
340
- "@vxrn/emitter": "2.7.7",
368
+ "@vxrn/emitter": "2.8.0",
341
369
  "depcheck": "^1.4.7",
342
370
  "esbuild": "^0.25.12",
343
371
  "immer": "^10.1.1",
344
372
  "nitrogen": "0.37.1",
345
- "react": "19.2.3",
346
- "react-dom": "19.2.3",
347
- "react-native": "0.87.1",
348
- "react-native-gesture-handler": "~3.3.0",
349
- "react-native-reanimated": "~4.6.0",
373
+ "react": "19.3.0",
374
+ "react-dom": "19.3.0",
375
+ "react-native": "0.88.0",
376
+ "react-native-gesture-handler": "~3.4.0",
377
+ "react-native-reanimated": "~4.7.1",
350
378
  "react-native-screens": "~4.30.0",
351
379
  "react-native-web": "^0.21.2",
352
- "react-native-worklets": "~0.12.2",
353
- "react-test-renderer": "^19.2.0",
380
+ "react-native-worklets": "~0.13.0",
381
+ "react-test-renderer": "19.3.0",
354
382
  "rolldown": "^1.2.8",
355
383
  "sharp": "^0.35.5",
356
384
  "typescript": "7.0.2",
357
385
  "vitest": "^4.1.0",
358
386
  "yoga-layout": "^3.2.1",
359
- "@tamagui/web": "3.0.17"
387
+ "@tamagui/web": "3.0.18",
388
+ "@babel/core": "^7.28.5",
389
+ "@babel/generator": "7.29.7",
390
+ "@babel/parser": "^7.28.5",
391
+ "@babel/plugin-transform-export-namespace-from": "^7.27.1",
392
+ "@babel/traverse": "^7.28.5",
393
+ "@babel/types": "^7.28.5",
394
+ "babel-dead-code-elimination": "1.0.10",
395
+ "babel-plugin-module-resolver": "^5.0.2",
396
+ "@vxrn/vite-plugin-metro": "2.8.0"
360
397
  },
361
398
  "publishConfig": {
362
399
  "access": "public"
@@ -513,7 +550,7 @@
513
550
  }
514
551
  }
515
552
  },
516
- "releaseSourceCommit": "2335a80d570e794536b7bb62b023bb73ec1e4d59",
553
+ "releaseSourceCommit": "9435b113ae773ceebeef9e0a7144d5401b2c986f",
517
554
  "repository": {
518
555
  "type": "git",
519
556
  "url": "git+https://github.com/onejs/one.git",
@@ -72,7 +72,7 @@ function evaluateCoreJs(imports: string[], entry?: string) {
72
72
  if (entry) {
73
73
  const factory = vm.runInContext(`(function(require) { ${entry}\n })`, context)
74
74
  factory((specifier: string) => {
75
- if (specifier === 'react-native/Libraries/Core/InitializeCore') {
75
+ if (specifier === 'react-native/setup-env') {
76
76
  context.nativeInitialized = true
77
77
  return {}
78
78
  }
@@ -139,7 +139,7 @@ const metroEntrySource = readFileSync(new URL('../../metro-entry.js', import.met
139
139
  const compiledMetroEntry = compileMetroEntry(metroEntrySource)
140
140
  const compiledControlEntry = compileMetroEntry(
141
141
  metroEntrySource
142
- .replace("import 'react-native/Libraries/Core/InitializeCore'", '')
142
+ .replace("import 'react-native/setup-env'", '')
143
143
  .replace("import './dist/esm/polyfills-mobile.native.js'", '')
144
144
  )
145
145
 
package/src/cli/build.ts CHANGED
@@ -1426,7 +1426,7 @@ export default {
1426
1426
  // rolldown can't parse react-native's Flow syntax; alias to react-native-web for ssr
1427
1427
  {
1428
1428
  find: /^react-native\/Libraries\/.*/,
1429
- replacement: resolvePath('@vxrn/vite-plugin-metro/empty', options.root),
1429
+ replacement: resolvePath('@vxrn/utils/empty', options.root),
1430
1430
  },
1431
1431
  {
1432
1432
  // react native 0.87 removed @react-native/assets-registry, but libraries
@@ -27,7 +27,7 @@ export function buildOneMetroResolverOverrides({
27
27
  defaultConfig: T
28
28
  ) => T {
29
29
  const require = module.createRequire(projectRoot + '/')
30
- const emptyPath = require.resolve('@vxrn/vite-plugin-metro/empty', {
30
+ const emptyPath = require.resolve('@vxrn/utils/empty', {
31
31
  paths: [projectRoot],
32
32
  })
33
33
  const projectPackagePath = path.join(projectRoot, 'package.json')
@@ -15,7 +15,7 @@ describe('getViteMetroPluginOptions babel-config coexistence', () => {
15
15
 
16
16
  beforeAll(() => {
17
17
  // place the fixture under the workspace root so Node can walk up to
18
- // node_modules and resolve `one/metro-entry` + `@vxrn/vite-plugin-metro/empty`
18
+ // node_modules and resolve `one/metro-entry` + `@vxrn/utils/empty`
19
19
  const workspaceRoot = path.resolve(__dirname, '../../../../')
20
20
  tmpDir = fs.mkdtempSync(path.join(workspaceRoot, '.tmp-one-vite-metro-test-'))
21
21
  fs.writeFileSync(
@@ -29,7 +29,7 @@ describe('getViteMetroPluginOptions babel-config coexistence', () => {
29
29
  fs.rmSync(tmpDir, { recursive: true, force: true })
30
30
  })
31
31
 
32
- it('explains the missing Metro preset in an isolated app', () => {
32
+ it('explains the missing Metro plugin in an isolated app', () => {
33
33
  const isolatedApp = fs.mkdtempSync(path.join(os.tmpdir(), 'one-metro-no-preset-'))
34
34
  try {
35
35
  expect(() =>
@@ -37,7 +37,9 @@ describe('getViteMetroPluginOptions babel-config coexistence', () => {
37
37
  projectRoot: isolatedApp,
38
38
  relativeRouterRoot: 'app',
39
39
  })
40
- ).toThrow(/Metro requires babel-preset-expo.*Install it/)
40
+ ).toThrow(
41
+ /Metro requires @vxrn\/vite-plugin-metro and babel-preset-expo in the app.*Install with/
42
+ )
41
43
  } finally {
42
44
  fs.rmSync(isolatedApp, { recursive: true, force: true })
43
45
  }
@@ -21,11 +21,17 @@ export function getViteMetroPluginOptions({
21
21
  setupFile?: string | { native?: string; ios?: string; android?: string }
22
22
  }): Parameters<typeof metroPlugin>[0] {
23
23
  const require = createRequire(projectRoot + '/')
24
- try {
25
- require.resolve('babel-preset-expo')
26
- } catch {
24
+ const missing = ['@vxrn/vite-plugin-metro', 'babel-preset-expo'].filter((name) => {
25
+ try {
26
+ require.resolve(name)
27
+ return false
28
+ } catch {
29
+ return true
30
+ }
31
+ })
32
+ if (missing.length) {
27
33
  throw new Error(
28
- `[one] Metro requires babel-preset-expo in the app at ${projectRoot}. Install it with your package manager, or remove native.bundler: 'metro' to use One's default native bundler.`
34
+ `[one] Metro requires ${missing.join(' and ')} in the app at ${projectRoot}. Install with your package manager, or remove native.bundler: 'metro' to use One's default native bundler.`
29
35
  )
30
36
  }
31
37
 
@@ -1,5 +1,4 @@
1
1
  import path from 'node:path'
2
- import { buildMetroConfigInputFromViteConfig } from '@vxrn/vite-plugin-metro'
3
2
  import { getViteMetroPluginOptions } from './getViteMetroPluginOptions'
4
3
  import { loadUserOneOptions } from '../vite/loadConfig'
5
4
 
@@ -93,6 +92,9 @@ export async function withOne(
93
92
  root: path.resolve(loaded?.config?.config?.root ?? projectRoot),
94
93
  } as any
95
94
 
95
+ // imported after getViteMetroPluginOptions so a missing optional peer gets its
96
+ // install message instead of a bare module-not-found
97
+ const { buildMetroConfigInputFromViteConfig } = await import('@vxrn/vite-plugin-metro')
96
98
  const { defaultConfig } = await buildMetroConfigInputFromViteConfig(viteConfig, {
97
99
  ...metroPluginOptions,
98
100
  mainModuleName: 'one/metro-entry',
@@ -13,7 +13,7 @@ import {
13
13
  writeFileSync,
14
14
  } from 'node:fs'
15
15
  import { tmpdir } from 'node:os'
16
- import { dirname, join, resolve } from 'node:path'
16
+ import { dirname, join, relative, resolve } from 'node:path'
17
17
  import { fileURLToPath } from 'node:url'
18
18
  import { describe, expect, it } from 'vitest'
19
19
  import { auditUnpackedManifest, findForbiddenDependencies } from './closure'
@@ -235,6 +235,15 @@ console.log('one/native ok ' + url);
235
235
  const appDir = join(tmp, 'app')
236
236
  mkdirSync(join(appDir, 'app'), { recursive: true })
237
237
  writeFileSync(join(appDir, '.watchmanconfig'), '{}\n')
238
+ // the ejected babel config runs one/babel-preset, whose babel packages are
239
+ // optional peers the app installs (docs/metro-mode)
240
+ const onePeers = JSON.parse(readFileSync(join(oneDir, 'package.json'), 'utf8'))
241
+ .peerDependencies as Record<string, string>
242
+ const babelPresetPeers = Object.fromEntries(
243
+ Object.entries(onePeers).filter(
244
+ ([name]) => name.startsWith('@babel/') || name.startsWith('babel-')
245
+ )
246
+ )
238
247
 
239
248
  writeFileSync(
240
249
  join(appDir, 'package.json'),
@@ -247,12 +256,13 @@ console.log('one/native ok ' + url);
247
256
  vxrn: `file:${packedClosure.vxrn}`,
248
257
  '@vxrn/vite-plugin-metro': `file:${packedClosure['@vxrn/vite-plugin-metro']}`,
249
258
  '@vxrn/utils': `file:${packedClosure['@vxrn/utils']}`,
250
- react: '19.2.3',
251
- 'react-native': '0.87.1',
259
+ react: '19.3.0',
260
+ 'react-native': '0.88.0',
252
261
  'react-native-web': '^0.21.2',
253
262
  vite: '^8.2.2',
254
- metro: '^0.87.0',
255
- 'metro-config': '^0.87.0',
263
+ metro: '^0.87.1',
264
+ 'metro-config': '^0.87.1',
265
+ ...babelPresetPeers,
256
266
  },
257
267
  overrides: Object.fromEntries(
258
268
  Object.entries(packedClosure).map(([name, tarball]) => [
@@ -379,7 +389,7 @@ if (!config.dependencies['react-native-nitro-modules']) {
379
389
  ['-e', "require('./metro.config.cjs').catch((error) => { console.error(error.message); process.exitCode = 1 })"],
380
390
  { cwd: appDir, encoding: 'utf8' }
381
391
  )
382
- ).toThrow(/Metro requires babel-preset-expo.*Install it/)
392
+ ).toThrow(/Metro requires babel-preset-expo in the app.*Install with/)
383
393
 
384
394
  const expoPresetVersion = JSON.parse(
385
395
  readFileSync(join(workspaceRoot, '../node_modules/babel-preset-expo/package.json'), 'utf8')
@@ -440,4 +450,56 @@ if (!config.dependencies['react-native-nitro-modules']) {
440
450
  process.chdir(previousCwd)
441
451
  }
442
452
  })
453
+
454
+ it('packs every files entry and non-dist export target of each published package', () => {
455
+ const tmp = realpathSync(mkdtempSync(join(tmpdir(), 'one-packed-files-')))
456
+ // workspaceRoot here is the packages directory (see packWorkspaceClosure).
457
+ for (const entry of readdirSync(workspaceRoot, { withFileTypes: true })) {
458
+ if (!entry.isDirectory()) continue
459
+ const packageDir = join(workspaceRoot, entry.name)
460
+ const manifestPath = join(packageDir, 'package.json')
461
+ if (!existsSync(manifestPath)) continue
462
+ const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'))
463
+ if (manifest.private) continue
464
+ const extracted = unpack(packToDir(packageDir, tmp), join(tmp, entry.name))
465
+ const packed: string[] = []
466
+ const collect = (dir: string) => {
467
+ for (const child of readdirSync(dir, { withFileTypes: true })) {
468
+ if (child.isDirectory()) collect(join(dir, child.name))
469
+ else packed.push(relative(extracted, join(dir, child.name)))
470
+ }
471
+ }
472
+ collect(extracted)
473
+ // npm silently ignores files entries that match nothing, so a stale
474
+ // entry looks packed until something references the missing path.
475
+ for (const pattern of manifest.files ?? []) {
476
+ // dist and types only exist after the release build; everything
477
+ // else must already match at least one packed path.
478
+ if (pattern === 'dist' || pattern === 'types') continue
479
+ expect(
480
+ packed.some((file) => file === pattern || file.startsWith(`${pattern}/`)),
481
+ `${manifest.name}: files entry ${pattern} packs nothing`
482
+ ).toBe(true)
483
+ }
484
+ const targets = new Set<string>()
485
+ const walk = (value: unknown) => {
486
+ if (typeof value === 'string' && value.startsWith('./') && !value.includes('*')) {
487
+ if (value !== './') targets.add(value.slice(2))
488
+ } else if (value && typeof value === 'object') {
489
+ // comment keys (// ...) carry placeholder values, not targets.
490
+ Object.entries(value).forEach(([key, entry]) => {
491
+ if (!key.startsWith('//')) walk(entry)
492
+ })
493
+ }
494
+ }
495
+ walk(manifest.exports)
496
+ walk(manifest.bin)
497
+ for (const target of targets) {
498
+ if (target.startsWith('dist/') || target.startsWith('types/')) continue
499
+ expect(packed, `${manifest.name}: export target ${target} is missing`).toContain(
500
+ target
501
+ )
502
+ }
503
+ }
504
+ })
443
505
  }, 180000)
@@ -0,0 +1,21 @@
1
+ // guards for what one ships into real android app builds: the native
2
+ // library must stay 16 kb page aligned.
3
+ import { readFileSync } from 'node:fs'
4
+ import { dirname, join, resolve } from 'node:path'
5
+ import { fileURLToPath } from 'node:url'
6
+ import { describe, expect, it } from 'vitest'
7
+
8
+ const here = dirname(fileURLToPath(import.meta.url))
9
+ const oneDir = resolve(here, '../..')
10
+
11
+ describe('shipped android artifacts', () => {
12
+ it('builds the native library 16 kb page aligned', () => {
13
+ // google play requires 16 kb page support for targetSdk 35+, and the
14
+ // pinned ndk 27 defaults to 4 kb. react native's gradle plugin injects
15
+ // this flag into app modules only, never libraries, so the library
16
+ // must pass it to cmake itself or libOne.so fails to load on 16 kb
17
+ // page devices.
18
+ const gradle = readFileSync(join(oneDir, 'android/build.gradle'), 'utf8')
19
+ expect(gradle).toContain('-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON')
20
+ })
21
+ })
@@ -0,0 +1,81 @@
1
+ // guards for what one ships into real ios app builds: the pod must
2
+ // carry a privacy manifest covering the required-reason apis its
3
+ // sources use, and reference only resources that exist.
4
+ import { existsSync, readFileSync, readdirSync } from 'node:fs'
5
+ import { dirname, join, resolve } from 'node:path'
6
+ import { fileURLToPath } from 'node:url'
7
+ import { describe, expect, it } from 'vitest'
8
+
9
+ const here = dirname(fileURLToPath(import.meta.url))
10
+ const oneDir = resolve(here, '../..')
11
+
12
+ function readSources(dir: string): string[] {
13
+ const out: string[] = []
14
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
15
+ if (entry.name === 'Tests') continue
16
+ const full = join(dir, entry.name)
17
+ if (entry.isDirectory()) out.push(...readSources(full))
18
+ else if (/\.(swift|m|mm|h|cpp)$/.test(entry.name)) out.push(readFileSync(full, 'utf8'))
19
+ }
20
+ return out
21
+ }
22
+
23
+ describe('shipped ios artifacts', () => {
24
+ it('ships a privacy manifest covering the required-reason apis in use', () => {
25
+ const manifestPath = join(oneDir, 'ios/PrivacyInfo.xcprivacy')
26
+ expect(existsSync(manifestPath)).toBe(true)
27
+ const manifest = readFileSync(manifestPath, 'utf8')
28
+ expect(manifest).toContain('<plist version="1.0">')
29
+ // reasons mirror expo's shipped manifests for the same api surface:
30
+ // user defaults (expo-constants), boot time (expo-device), file
31
+ // timestamps and disk space (expo-file-system).
32
+ const expected: Record<string, string[]> = {
33
+ NSPrivacyAccessedAPICategoryUserDefaults: ['CA92.1'],
34
+ NSPrivacyAccessedAPICategorySystemBootTime: ['35F9.1'],
35
+ NSPrivacyAccessedAPICategoryFileTimestamp: ['0A2A.1', '3B52.1'],
36
+ NSPrivacyAccessedAPICategoryDiskSpace: ['E174.1', '85F4.1'],
37
+ }
38
+ for (const [category, reasons] of Object.entries(expected)) {
39
+ expect(manifest).toContain(category)
40
+ for (const reason of reasons) expect(manifest).toContain(reason)
41
+ }
42
+ // every declared category must have a use in the shipped sources, and
43
+ // no other required-reason category may appear without one.
44
+ const sources = readSources(join(oneDir, 'ios'))
45
+ const uses: Record<string, RegExp> = {
46
+ NSPrivacyAccessedAPICategoryUserDefaults: /UserDefaults|AppStorage/,
47
+ NSPrivacyAccessedAPICategorySystemBootTime: /systemUptime|kern\.boottime/,
48
+ NSPrivacyAccessedAPICategoryFileTimestamp:
49
+ /attributesOfItem|\.modificationDate|\.creationDate|\.fileCreationDate/,
50
+ NSPrivacyAccessedAPICategoryDiskSpace:
51
+ /attributesOfFileSystem|systemFreeSize|systemSize|volumeAvailableCapacity/,
52
+ }
53
+ for (const [category, pattern] of Object.entries(uses)) {
54
+ expect(sources.some((source) => pattern.test(source))).toBe(true)
55
+ }
56
+ expect(sources.some((source) => /activeKeyboards/.test(source))).toBe(false)
57
+ // the pod must bundle the manifest, and the npm tarball must include it.
58
+ const podspec = readFileSync(join(oneDir, 'One.podspec'), 'utf8')
59
+ expect(podspec).toContain('PrivacyInfo.xcprivacy')
60
+ const files: string[] = JSON.parse(
61
+ readFileSync(join(oneDir, 'package.json'), 'utf8')
62
+ ).files
63
+ expect(files).toContain('ios')
64
+ })
65
+
66
+ it('references only podspec headers that exist', () => {
67
+ const podspec = readFileSync(join(oneDir, 'One.podspec'), 'utf8')
68
+ const headers = podspec.match(/'ios\/[^']+\.h'/g) ?? []
69
+ expect(headers.length).toBeGreaterThan(0)
70
+ for (const quoted of headers) {
71
+ expect(existsSync(join(oneDir, quoted.slice(1, -1)))).toBe(true)
72
+ }
73
+ for (const generated of [
74
+ 'nitrogen/generated/ios/One+autolinking.rb',
75
+ 'nitrogen/generated/ios/One-Swift-Cxx-Bridge.hpp',
76
+ 'schema.json',
77
+ ]) {
78
+ expect(existsSync(join(oneDir, generated))).toBe(true)
79
+ }
80
+ })
81
+ })
package/src/vite/one.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { configureVXRNCompilerPlugin } from '@vxrn/compiler'
2
2
  import { resolvePath } from '@vxrn/resolve'
3
- import { type MetroPluginOptions, getPlatformEnvDefine } from '@vxrn/vite-plugin-metro'
3
+ import type { MetroPluginOptions } from '@vxrn/vite-plugin-metro'
4
+ import { getPlatformEnvDefine } from '@vxrn/utils'
4
5
  import events from 'node:events'
5
6
  import { existsSync, readFileSync } from 'node:fs'
6
7
  import path from 'node:path'
@@ -3,7 +3,7 @@ import { join, resolve } from 'node:path'
3
3
  import { pathToFileURL } from 'node:url'
4
4
  import { resolvePath } from '@vxrn/resolve'
5
5
  import { cloudflare } from '@cloudflare/vite-plugin'
6
- import { getPlatformEnvDefine } from '@vxrn/vite-plugin-metro'
6
+ import { getPlatformEnvDefine } from '@vxrn/utils'
7
7
  import { exactRegex } from 'rolldown/filter'
8
8
  import { type Plugin, type PluginOption } from 'vite'
9
9
  import { CACHE_KEY } from '../../constants'
@@ -285,7 +285,7 @@ export function createWorkerdDevPlugins(
285
285
  ? ['/bundledDevClient.mjs', '/assets/_virtual_one-entry.js']
286
286
  : ['/@vite/client', virtalEntryIdClient]
287
287
 
288
- const empty = resolvePath('@vxrn/vite-plugin-metro/empty', root)
288
+ const empty = resolvePath('@vxrn/utils/empty', root)
289
289
  const absorbed = absorbedPackageAliases(root, 'web')
290
290
 
291
291
  const preparePlugin: Plugin = {
package/types/Frozen.d.ts CHANGED
@@ -2,5 +2,5 @@ import { type ReactNode } from 'react';
2
2
  export declare function Frozen({ on, children }: {
3
3
  on?: boolean;
4
4
  children: ReactNode;
5
- }): import("react/jsx-runtime").JSX.Element;
5
+ }): import("react").JSX.Element;
6
6
  //# sourceMappingURL=Frozen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Frozen.d.ts","sourceRoot":"","sources":["../src/Frozen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,wBAAgB,MAAM,CAAC,EAAE,EAAU,EAAE,QAAQ,EAAE,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,2CASrF"}
1
+ {"version":3,"file":"Frozen.d.ts","sourceRoot":"","sources":["../src/Frozen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,wBAAgB,MAAM,CAAC,EAAE,EAAU,EAAE,QAAQ,EAAE,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BASrF"}
@@ -2,5 +2,5 @@ import { type ReactNode } from 'react';
2
2
  export declare function Frozen({ on, children }: {
3
3
  on?: boolean;
4
4
  children: ReactNode;
5
- }): import("react/jsx-runtime").JSX.Element;
5
+ }): import("react").JSX.Element;
6
6
  //# sourceMappingURL=Frozen.native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Frozen.native.d.ts","sourceRoot":"","sources":["../src/Frozen.native.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,wBAAgB,MAAM,CAAC,EAAE,EAAU,EAAE,QAAQ,EAAE,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAGrF"}
1
+ {"version":3,"file":"Frozen.native.d.ts","sourceRoot":"","sources":["../src/Frozen.native.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,wBAAgB,MAAM,CAAC,EAAE,EAAU,EAAE,QAAQ,EAAE,EAAE;IAAE,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAGrF"}
package/types/Root.d.ts CHANGED
@@ -34,6 +34,6 @@ type InnerProps = {
34
34
  };
35
35
  };
36
36
  };
37
- export declare function Root(props: RootProps): import("react/jsx-runtime").JSX.Element | null;
37
+ export declare function Root(props: RootProps): import("react").JSX.Element | null;
38
38
  export {};
39
39
  //# sourceMappingURL=Root.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../src/Root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAG1F,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAA;AAMd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAOzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAOlD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAcvC,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG;IAC7C,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,mBAAmB,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC,YAAY,CAAA;IAC/B,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAA;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,GAAG,CAAC,YAAY,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;IACpD,wBAAwB,CAAC,EAAE,wBAAwB,GAAG;QACpD,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,OAAO,CAAA;YACb,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAA;gBACf,UAAU,EAAE,MAAM,CAAA;gBAClB,IAAI,EAAE,MAAM,CAAA;gBACZ,IAAI,EAAE,MAAM,CAAA;gBACZ,MAAM,EAAE,MAAM,CAAA;gBACd,YAAY,EAAE,MAAM,CAAA;aACrB,CAAA;SACF,CAAA;KACF,CAAA;CACF,CAAA;AAKD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,kDA8KpC"}
1
+ {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../src/Root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAG1F,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAA;AAMd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAOzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAOlD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAcvC,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG;IAC7C,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,mBAAmB,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC,YAAY,CAAA;IAC/B,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAA;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,GAAG,CAAC,YAAY,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;IACpD,wBAAwB,CAAC,EAAE,wBAAwB,GAAG;QACpD,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,OAAO,CAAA;YACb,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAA;gBACf,UAAU,EAAE,MAAM,CAAA;gBAClB,IAAI,EAAE,MAAM,CAAA;gBACZ,IAAI,EAAE,MAAM,CAAA;gBACZ,MAAM,EAAE,MAAM,CAAA;gBACd,YAAY,EAAE,MAAM,CAAA;aACrB,CAAA;SACF,CAAA;KACF,CAAA;CACF,CAAA;AAKD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,sCA8KpC"}
@@ -1,4 +1,4 @@
1
1
  import type { NativeStackNavigationOptions } from '@react-navigation/native-stack';
2
2
  export declare function getNavOptions(): NativeStackNavigationOptions;
3
- export declare function Sitemap(): import("react/jsx-runtime").JSX.Element;
3
+ export declare function Sitemap(): import("react").JSX.Element;
4
4
  //# sourceMappingURL=Sitemap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sitemap.d.ts","sourceRoot":"","sources":["../../src/fallbackViews/Sitemap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAelF,wBAAgB,aAAa,IAAI,4BAA4B,CAoB5D;AAED,wBAAgB,OAAO,4CA6JtB"}
1
+ {"version":3,"file":"Sitemap.d.ts","sourceRoot":"","sources":["../../src/fallbackViews/Sitemap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAelF,wBAAgB,aAAa,IAAI,4BAA4B,CAoB5D;AAED,wBAAgB,OAAO,gCA6JtB"}
@@ -1,4 +1,5 @@
1
1
  import type { NativeStackNavigationOptions } from '@react-navigation/native-stack';
2
+ import * as React from 'react';
2
3
  export declare function getNavOptions(): NativeStackNavigationOptions;
3
- export declare function Sitemap(): import("react/jsx-runtime").JSX.Element;
4
+ export declare function Sitemap(): React.JSX.Element;
4
5
  //# sourceMappingURL=Sitemap.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sitemap.web.d.ts","sourceRoot":"","sources":["../../src/fallbackViews/Sitemap.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AASlF,wBAAgB,aAAa,IAAI,4BAA4B,CAY5D;AAED,wBAAgB,OAAO,4CA6BtB"}
1
+ {"version":3,"file":"Sitemap.web.d.ts","sourceRoot":"","sources":["../../src/fallbackViews/Sitemap.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,wBAAgB,aAAa,IAAI,4BAA4B,CAY5D;AAED,wBAAgB,OAAO,sBA6BtB"}