one 1.2.41 → 1.2.43

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 (332) hide show
  1. package/dist/cjs/Root.cjs +1 -1
  2. package/dist/cjs/Root.js +1 -1
  3. package/dist/cjs/Root.js.map +1 -1
  4. package/dist/cjs/Root.native.js +1 -1
  5. package/dist/cjs/Root.native.js.map +1 -1
  6. package/dist/cjs/cli/build.cjs +172 -6
  7. package/dist/cjs/cli/build.js +174 -6
  8. package/dist/cjs/cli/build.js.map +1 -1
  9. package/dist/cjs/cli/build.native.js +237 -24
  10. package/dist/cjs/cli/build.native.js.map +1 -1
  11. package/dist/cjs/createHandleRequest.cjs +21 -20
  12. package/dist/cjs/createHandleRequest.js +25 -24
  13. package/dist/cjs/createHandleRequest.js.map +1 -1
  14. package/dist/cjs/createHandleRequest.native.js +23 -22
  15. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  16. package/dist/cjs/serve-worker.cjs +28 -12
  17. package/dist/cjs/serve-worker.js +17 -7
  18. package/dist/cjs/serve-worker.js.map +1 -1
  19. package/dist/cjs/serve-worker.native.js +28 -12
  20. package/dist/cjs/serve-worker.native.js.map +1 -1
  21. package/dist/cjs/serve.cjs +5 -2
  22. package/dist/cjs/serve.js +2 -2
  23. package/dist/cjs/serve.js.map +1 -1
  24. package/dist/cjs/serve.native.js +5 -2
  25. package/dist/cjs/serve.native.js.map +1 -1
  26. package/dist/cjs/server/oneServe.cjs +79 -70
  27. package/dist/cjs/server/oneServe.js +33 -12
  28. package/dist/cjs/server/oneServe.js.map +2 -2
  29. package/dist/cjs/server/oneServe.native.js +105 -81
  30. package/dist/cjs/server/oneServe.native.js.map +1 -1
  31. package/dist/cjs/{__mocks__/@react-navigation/native-stack.cjs → server/staticHtmlFetcher.cjs} +12 -8
  32. package/dist/cjs/{utils/style.js → server/staticHtmlFetcher.js} +12 -8
  33. package/dist/cjs/server/staticHtmlFetcher.js.map +6 -0
  34. package/dist/cjs/{utils/style.native.js → server/staticHtmlFetcher.native.js} +12 -7
  35. package/dist/cjs/server/staticHtmlFetcher.native.js.map +1 -0
  36. package/dist/cjs/vercel/build/buildVercelOutputDirectory.cjs +19 -2
  37. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js +13 -1
  38. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  39. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js +38 -2
  40. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  41. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.cjs +63 -3
  42. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js +63 -3
  43. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  44. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js +63 -3
  45. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
  46. package/dist/cjs/vite/one-server-only.cjs +8 -4
  47. package/dist/cjs/vite/one-server-only.js +6 -3
  48. package/dist/cjs/vite/one-server-only.js.map +1 -1
  49. package/dist/esm/Root.js +1 -1
  50. package/dist/esm/Root.js.map +1 -1
  51. package/dist/esm/Root.mjs +1 -1
  52. package/dist/esm/Root.mjs.map +1 -1
  53. package/dist/esm/Root.native.js +1 -1
  54. package/dist/esm/Root.native.js.map +1 -1
  55. package/dist/esm/cli/build.js +174 -5
  56. package/dist/esm/cli/build.js.map +1 -1
  57. package/dist/esm/cli/build.mjs +171 -5
  58. package/dist/esm/cli/build.mjs.map +1 -1
  59. package/dist/esm/cli/build.native.js +236 -23
  60. package/dist/esm/cli/build.native.js.map +1 -1
  61. package/dist/esm/createHandleRequest.js +25 -24
  62. package/dist/esm/createHandleRequest.js.map +1 -1
  63. package/dist/esm/createHandleRequest.mjs +21 -20
  64. package/dist/esm/createHandleRequest.mjs.map +1 -1
  65. package/dist/esm/createHandleRequest.native.js +23 -22
  66. package/dist/esm/createHandleRequest.native.js.map +1 -1
  67. package/dist/esm/serve-worker.js +7 -6
  68. package/dist/esm/serve-worker.js.map +1 -1
  69. package/dist/esm/serve-worker.mjs +10 -7
  70. package/dist/esm/serve-worker.mjs.map +1 -1
  71. package/dist/esm/serve-worker.native.js +10 -7
  72. package/dist/esm/serve-worker.native.js.map +1 -1
  73. package/dist/esm/serve.js +2 -2
  74. package/dist/esm/serve.js.map +1 -1
  75. package/dist/esm/serve.mjs +5 -2
  76. package/dist/esm/serve.mjs.map +1 -1
  77. package/dist/esm/serve.native.js +5 -2
  78. package/dist/esm/serve.native.js.map +1 -1
  79. package/dist/esm/server/oneServe.js +35 -16
  80. package/dist/esm/server/oneServe.js.map +1 -1
  81. package/dist/esm/server/oneServe.mjs +79 -70
  82. package/dist/esm/server/oneServe.mjs.map +1 -1
  83. package/dist/esm/server/oneServe.native.js +105 -81
  84. package/dist/esm/server/oneServe.native.js.map +1 -1
  85. package/dist/esm/server/staticHtmlFetcher.js +12 -0
  86. package/dist/esm/server/staticHtmlFetcher.js.map +6 -0
  87. package/dist/esm/server/staticHtmlFetcher.mjs +9 -0
  88. package/dist/esm/server/staticHtmlFetcher.mjs.map +1 -0
  89. package/dist/esm/server/staticHtmlFetcher.native.js +9 -0
  90. package/dist/esm/server/staticHtmlFetcher.native.js.map +1 -0
  91. package/dist/esm/vercel/build/buildVercelOutputDirectory.js +13 -1
  92. package/dist/esm/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  93. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs +19 -2
  94. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -1
  95. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js +38 -2
  96. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  97. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js +63 -3
  98. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  99. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs +63 -3
  100. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs.map +1 -1
  101. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js +63 -3
  102. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
  103. package/dist/esm/vite/one-server-only.js +6 -3
  104. package/dist/esm/vite/one-server-only.js.map +1 -1
  105. package/dist/esm/vite/one-server-only.mjs +8 -4
  106. package/dist/esm/vite/one-server-only.mjs.map +1 -1
  107. package/package.json +10 -10
  108. package/src/Root.tsx +4 -1
  109. package/src/cli/build.ts +211 -30
  110. package/src/createHandleRequest.ts +31 -29
  111. package/src/serve-worker.ts +25 -8
  112. package/src/serve.ts +2 -2
  113. package/src/server/oneServe.ts +100 -29
  114. package/src/server/staticHtmlFetcher.ts +10 -0
  115. package/src/useLoader.ts +1 -1
  116. package/src/vercel/build/buildVercelOutputDirectory.ts +36 -0
  117. package/src/vercel/build/generate/createSsrServerlessFunction.ts +63 -3
  118. package/src/vite/one-server-only.tsx +13 -2
  119. package/src/vite/types.ts +7 -3
  120. package/types/Root.d.ts.map +1 -1
  121. package/types/cli/build.d.ts.map +1 -1
  122. package/types/createHandleRequest.d.ts.map +1 -1
  123. package/types/serve-worker.d.ts +24 -1
  124. package/types/serve-worker.d.ts.map +1 -1
  125. package/types/server/oneServe.d.ts +21 -1
  126. package/types/server/oneServe.d.ts.map +1 -1
  127. package/types/server/staticHtmlFetcher.d.ts +3 -0
  128. package/types/server/staticHtmlFetcher.d.ts.map +1 -0
  129. package/types/vercel/build/buildVercelOutputDirectory.d.ts.map +1 -1
  130. package/types/vercel/build/generate/createSsrServerlessFunction.d.ts.map +1 -1
  131. package/types/vite/one-server-only.d.ts.map +1 -1
  132. package/types/vite/types.d.ts +6 -3
  133. package/types/vite/types.d.ts.map +1 -1
  134. package/dist/cjs/__mocks__/@react-navigation/native-stack.js +0 -24
  135. package/dist/cjs/__mocks__/@react-navigation/native-stack.js.map +0 -6
  136. package/dist/cjs/__mocks__/@react-navigation/native-stack.native.js +0 -38
  137. package/dist/cjs/__mocks__/@react-navigation/native-stack.native.js.map +0 -1
  138. package/dist/cjs/__mocks__/@react-navigation/native.js +0 -45
  139. package/dist/cjs/__mocks__/@react-navigation/native.js.map +0 -1
  140. package/dist/cjs/__mocks__/expo-linking.cjs +0 -36
  141. package/dist/cjs/__mocks__/expo-linking.js +0 -25
  142. package/dist/cjs/__mocks__/expo-linking.js.map +0 -6
  143. package/dist/cjs/__mocks__/expo-linking.native.js +0 -47
  144. package/dist/cjs/__mocks__/expo-linking.native.js.map +0 -1
  145. package/dist/cjs/__mocks__/expo-modules-core.cjs +0 -36
  146. package/dist/cjs/__mocks__/expo-modules-core.js +0 -31
  147. package/dist/cjs/__mocks__/expo-modules-core.js.map +0 -6
  148. package/dist/cjs/__mocks__/expo-modules-core.native.js +0 -67
  149. package/dist/cjs/__mocks__/expo-modules-core.native.js.map +0 -1
  150. package/dist/cjs/__mocks__/react-native-screens.cjs +0 -28
  151. package/dist/cjs/__mocks__/react-native-screens.js +0 -22
  152. package/dist/cjs/__mocks__/react-native-screens.js.map +0 -6
  153. package/dist/cjs/__mocks__/react-native-screens.native.js +0 -31
  154. package/dist/cjs/__mocks__/react-native-screens.native.js.map +0 -1
  155. package/dist/cjs/__mocks__/react-native.js +0 -49
  156. package/dist/cjs/__mocks__/react-native.js.map +0 -1
  157. package/dist/cjs/experimental-useLoaderState.cjs +0 -64
  158. package/dist/cjs/experimental-useLoaderState.js +0 -44
  159. package/dist/cjs/experimental-useLoaderState.js.map +0 -6
  160. package/dist/cjs/experimental-useLoaderState.native.js +0 -69
  161. package/dist/cjs/experimental-useLoaderState.native.js.map +0 -1
  162. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.cjs +0 -40
  163. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.js +0 -35
  164. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.js.map +0 -6
  165. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js +0 -43
  166. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js.map +0 -1
  167. package/dist/cjs/layouts/stack-utils/StackHeaderComponent.cjs +0 -69
  168. package/dist/cjs/layouts/stack-utils/StackHeaderComponent.js +0 -54
  169. package/dist/cjs/layouts/stack-utils/StackHeaderComponent.js.map +0 -6
  170. package/dist/cjs/layouts/stack-utils/StackHeaderComponent.native.js +0 -78
  171. package/dist/cjs/layouts/stack-utils/StackHeaderComponent.native.js.map +0 -1
  172. package/dist/cjs/layouts/stack-utils/StackHeaderLeft.cjs +0 -35
  173. package/dist/cjs/layouts/stack-utils/StackHeaderLeft.js +0 -30
  174. package/dist/cjs/layouts/stack-utils/StackHeaderLeft.js.map +0 -6
  175. package/dist/cjs/layouts/stack-utils/StackHeaderLeft.native.js +0 -40
  176. package/dist/cjs/layouts/stack-utils/StackHeaderLeft.native.js.map +0 -1
  177. package/dist/cjs/layouts/stack-utils/StackHeaderRight.cjs +0 -35
  178. package/dist/cjs/layouts/stack-utils/StackHeaderRight.js +0 -30
  179. package/dist/cjs/layouts/stack-utils/StackHeaderRight.js.map +0 -6
  180. package/dist/cjs/layouts/stack-utils/StackHeaderRight.native.js +0 -40
  181. package/dist/cjs/layouts/stack-utils/StackHeaderRight.native.js.map +0 -1
  182. package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.cjs +0 -35
  183. package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.js +0 -30
  184. package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.js.map +0 -6
  185. package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.native.js +0 -38
  186. package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.native.js.map +0 -1
  187. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.cjs +0 -53
  188. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.js +0 -46
  189. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.js.map +0 -6
  190. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js +0 -56
  191. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js.map +0 -1
  192. package/dist/cjs/layouts/stack-utils/StackScreen.cjs +0 -57
  193. package/dist/cjs/layouts/stack-utils/StackScreen.js +0 -43
  194. package/dist/cjs/layouts/stack-utils/StackScreen.js.map +0 -6
  195. package/dist/cjs/layouts/stack-utils/StackScreen.native.js +0 -64
  196. package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +0 -1
  197. package/dist/cjs/layouts/stack-utils/index.cjs +0 -47
  198. package/dist/cjs/layouts/stack-utils/index.js +0 -36
  199. package/dist/cjs/layouts/stack-utils/index.js.map +0 -6
  200. package/dist/cjs/layouts/stack-utils/index.native.js +0 -50
  201. package/dist/cjs/layouts/stack-utils/index.native.js.map +0 -1
  202. package/dist/cjs/utils/children.cjs +0 -38
  203. package/dist/cjs/utils/children.js +0 -37
  204. package/dist/cjs/utils/children.js.map +0 -6
  205. package/dist/cjs/utils/children.native.js +0 -60
  206. package/dist/cjs/utils/children.native.js.map +0 -1
  207. package/dist/cjs/utils/safeWrite.cjs +0 -56
  208. package/dist/cjs/utils/safeWrite.js +0 -51
  209. package/dist/cjs/utils/safeWrite.js.map +0 -6
  210. package/dist/cjs/utils/safeWrite.native.js +0 -63
  211. package/dist/cjs/utils/safeWrite.native.js.map +0 -1
  212. package/dist/cjs/utils/style.cjs +0 -28
  213. package/dist/cjs/utils/style.js.map +0 -6
  214. package/dist/cjs/utils/style.native.js.map +0 -1
  215. package/dist/esm/__mocks__/@react-navigation/native-stack.js +0 -8
  216. package/dist/esm/__mocks__/@react-navigation/native-stack.js.map +0 -6
  217. package/dist/esm/__mocks__/@react-navigation/native-stack.mjs +0 -6
  218. package/dist/esm/__mocks__/@react-navigation/native-stack.mjs.map +0 -1
  219. package/dist/esm/__mocks__/@react-navigation/native-stack.native.js +0 -12
  220. package/dist/esm/__mocks__/@react-navigation/native-stack.native.js.map +0 -1
  221. package/dist/esm/__mocks__/@react-navigation/native.js +0 -18
  222. package/dist/esm/__mocks__/@react-navigation/native.js.map +0 -1
  223. package/dist/esm/__mocks__/expo-linking.js +0 -9
  224. package/dist/esm/__mocks__/expo-linking.js.map +0 -6
  225. package/dist/esm/__mocks__/expo-linking.mjs +0 -10
  226. package/dist/esm/__mocks__/expo-linking.mjs.map +0 -1
  227. package/dist/esm/__mocks__/expo-linking.native.js +0 -18
  228. package/dist/esm/__mocks__/expo-linking.native.js.map +0 -1
  229. package/dist/esm/__mocks__/expo-modules-core.js +0 -15
  230. package/dist/esm/__mocks__/expo-modules-core.js.map +0 -6
  231. package/dist/esm/__mocks__/expo-modules-core.mjs +0 -10
  232. package/dist/esm/__mocks__/expo-modules-core.mjs.map +0 -1
  233. package/dist/esm/__mocks__/expo-modules-core.native.js +0 -38
  234. package/dist/esm/__mocks__/expo-modules-core.native.js.map +0 -1
  235. package/dist/esm/__mocks__/react-native-screens.js +0 -6
  236. package/dist/esm/__mocks__/react-native-screens.js.map +0 -6
  237. package/dist/esm/__mocks__/react-native-screens.mjs +0 -4
  238. package/dist/esm/__mocks__/react-native-screens.mjs.map +0 -1
  239. package/dist/esm/__mocks__/react-native-screens.native.js +0 -4
  240. package/dist/esm/__mocks__/react-native-screens.native.js.map +0 -1
  241. package/dist/esm/__mocks__/react-native.js +0 -19
  242. package/dist/esm/__mocks__/react-native.js.map +0 -1
  243. package/dist/esm/experimental-useLoaderState.js +0 -32
  244. package/dist/esm/experimental-useLoaderState.js.map +0 -6
  245. package/dist/esm/experimental-useLoaderState.mjs +0 -41
  246. package/dist/esm/experimental-useLoaderState.mjs.map +0 -1
  247. package/dist/esm/experimental-useLoaderState.native.js +0 -43
  248. package/dist/esm/experimental-useLoaderState.native.js.map +0 -1
  249. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.js +0 -19
  250. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.js.map +0 -6
  251. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.mjs +0 -16
  252. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.mjs.map +0 -1
  253. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.native.js +0 -16
  254. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.native.js.map +0 -1
  255. package/dist/esm/layouts/stack-utils/StackHeaderComponent.js +0 -51
  256. package/dist/esm/layouts/stack-utils/StackHeaderComponent.js.map +0 -6
  257. package/dist/esm/layouts/stack-utils/StackHeaderComponent.mjs +0 -45
  258. package/dist/esm/layouts/stack-utils/StackHeaderComponent.mjs.map +0 -1
  259. package/dist/esm/layouts/stack-utils/StackHeaderComponent.native.js +0 -51
  260. package/dist/esm/layouts/stack-utils/StackHeaderComponent.native.js.map +0 -1
  261. package/dist/esm/layouts/stack-utils/StackHeaderLeft.js +0 -14
  262. package/dist/esm/layouts/stack-utils/StackHeaderLeft.js.map +0 -6
  263. package/dist/esm/layouts/stack-utils/StackHeaderLeft.mjs +0 -11
  264. package/dist/esm/layouts/stack-utils/StackHeaderLeft.mjs.map +0 -1
  265. package/dist/esm/layouts/stack-utils/StackHeaderLeft.native.js +0 -13
  266. package/dist/esm/layouts/stack-utils/StackHeaderLeft.native.js.map +0 -1
  267. package/dist/esm/layouts/stack-utils/StackHeaderRight.js +0 -14
  268. package/dist/esm/layouts/stack-utils/StackHeaderRight.js.map +0 -6
  269. package/dist/esm/layouts/stack-utils/StackHeaderRight.mjs +0 -11
  270. package/dist/esm/layouts/stack-utils/StackHeaderRight.mjs.map +0 -1
  271. package/dist/esm/layouts/stack-utils/StackHeaderRight.native.js +0 -13
  272. package/dist/esm/layouts/stack-utils/StackHeaderRight.native.js.map +0 -1
  273. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.js +0 -14
  274. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.js.map +0 -6
  275. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.mjs +0 -11
  276. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.mjs.map +0 -1
  277. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.native.js +0 -11
  278. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.native.js.map +0 -1
  279. package/dist/esm/layouts/stack-utils/StackHeaderTitle.js +0 -31
  280. package/dist/esm/layouts/stack-utils/StackHeaderTitle.js.map +0 -6
  281. package/dist/esm/layouts/stack-utils/StackHeaderTitle.mjs +0 -29
  282. package/dist/esm/layouts/stack-utils/StackHeaderTitle.mjs.map +0 -1
  283. package/dist/esm/layouts/stack-utils/StackHeaderTitle.native.js +0 -29
  284. package/dist/esm/layouts/stack-utils/StackHeaderTitle.native.js.map +0 -1
  285. package/dist/esm/layouts/stack-utils/StackScreen.js +0 -33
  286. package/dist/esm/layouts/stack-utils/StackScreen.js.map +0 -6
  287. package/dist/esm/layouts/stack-utils/StackScreen.mjs +0 -33
  288. package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +0 -1
  289. package/dist/esm/layouts/stack-utils/StackScreen.native.js +0 -38
  290. package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +0 -1
  291. package/dist/esm/layouts/stack-utils/index.js +0 -26
  292. package/dist/esm/layouts/stack-utils/index.js.map +0 -6
  293. package/dist/esm/layouts/stack-utils/index.mjs +0 -16
  294. package/dist/esm/layouts/stack-utils/index.mjs.map +0 -1
  295. package/dist/esm/layouts/stack-utils/index.native.js +0 -16
  296. package/dist/esm/layouts/stack-utils/index.native.js.map +0 -1
  297. package/dist/esm/utils/children.js +0 -23
  298. package/dist/esm/utils/children.js.map +0 -6
  299. package/dist/esm/utils/children.mjs +0 -13
  300. package/dist/esm/utils/children.mjs.map +0 -1
  301. package/dist/esm/utils/children.native.js +0 -32
  302. package/dist/esm/utils/children.native.js.map +0 -1
  303. package/dist/esm/utils/safeWrite.js +0 -29
  304. package/dist/esm/utils/safeWrite.js.map +0 -6
  305. package/dist/esm/utils/safeWrite.mjs +0 -21
  306. package/dist/esm/utils/safeWrite.mjs.map +0 -1
  307. package/dist/esm/utils/safeWrite.native.js +0 -25
  308. package/dist/esm/utils/safeWrite.native.js.map +0 -1
  309. package/dist/esm/utils/style.js +0 -8
  310. package/dist/esm/utils/style.js.map +0 -6
  311. package/dist/esm/utils/style.mjs +0 -5
  312. package/dist/esm/utils/style.mjs.map +0 -1
  313. package/dist/esm/utils/style.native.js +0 -5
  314. package/dist/esm/utils/style.native.js.map +0 -1
  315. package/types/__mocks__/@react-navigation/native-stack.d.ts.map +0 -1
  316. package/types/__mocks__/@react-navigation/native.d.ts.map +0 -1
  317. package/types/__mocks__/expo-linking.d.ts.map +0 -1
  318. package/types/__mocks__/expo-modules-core.d.ts.map +0 -1
  319. package/types/__mocks__/react-native-screens.d.ts.map +0 -1
  320. package/types/__mocks__/react-native.d.ts.map +0 -1
  321. package/types/experimental-useLoaderState.d.ts.map +0 -1
  322. package/types/layouts/stack-utils/StackHeaderBackButton.d.ts.map +0 -1
  323. package/types/layouts/stack-utils/StackHeaderComponent.d.ts.map +0 -1
  324. package/types/layouts/stack-utils/StackHeaderLeft.d.ts.map +0 -1
  325. package/types/layouts/stack-utils/StackHeaderRight.d.ts.map +0 -1
  326. package/types/layouts/stack-utils/StackHeaderSearchBar.d.ts.map +0 -1
  327. package/types/layouts/stack-utils/StackHeaderTitle.d.ts.map +0 -1
  328. package/types/layouts/stack-utils/StackScreen.d.ts.map +0 -1
  329. package/types/layouts/stack-utils/index.d.ts.map +0 -1
  330. package/types/utils/children.d.ts.map +0 -1
  331. package/types/utils/safeWrite.d.ts.map +0 -1
  332. package/types/utils/style.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one",
3
- "version": "1.2.41",
3
+ "version": "1.2.43",
4
4
  "license": "BSD-3-Clause",
5
5
  "sideEffects": [
6
6
  "setup.mjs",
@@ -124,17 +124,17 @@
124
124
  "@react-navigation/routers": "~7.5.1",
125
125
  "@swc/core": "^1.14.0",
126
126
  "@ungap/structured-clone": "^1.2.0",
127
- "@vxrn/color-scheme": "1.2.41",
128
- "@vxrn/compiler": "1.2.41",
129
- "@vxrn/resolve": "1.2.41",
130
- "@vxrn/tslib-lite": "1.2.41",
131
- "@vxrn/use-isomorphic-layout-effect": "1.2.41",
132
- "@vxrn/vite-plugin-metro": "1.2.41",
127
+ "@vxrn/color-scheme": "1.2.43",
128
+ "@vxrn/compiler": "1.2.43",
129
+ "@vxrn/resolve": "1.2.43",
130
+ "@vxrn/tslib-lite": "1.2.43",
131
+ "@vxrn/use-isomorphic-layout-effect": "1.2.43",
132
+ "@vxrn/vite-plugin-metro": "1.2.43",
133
133
  "babel-dead-code-elimination": "^1.0.10",
134
134
  "babel-plugin-module-resolver": "^5.0.2",
135
135
  "citty": "^0.1.6",
136
136
  "core-js": "^3.38.1",
137
- "create-vxrn": "1.2.41",
137
+ "create-vxrn": "1.2.43",
138
138
  "escape-string-regexp": "^5.0.0",
139
139
  "expo-linking": "~8.0.8",
140
140
  "expo-modules-core": "~3.0.24",
@@ -160,7 +160,7 @@
160
160
  "vite": "^7.1.12",
161
161
  "vite-plugin-barrel": "^0.4.1",
162
162
  "vite-tsconfig-paths": "^5.1.4",
163
- "vxrn": "1.2.41",
163
+ "vxrn": "1.2.43",
164
164
  "ws": "^8.18.0",
165
165
  "xxhashjs": "^0.2.2"
166
166
  },
@@ -178,7 +178,7 @@
178
178
  "devDependencies": {
179
179
  "@react-navigation/core": "^7.13.0",
180
180
  "@react-navigation/native": "~7.1.19",
181
- "@tamagui/build": "^1.141.4",
181
+ "@tamagui/build": "^1.142.0",
182
182
  "@types/node": "^24.10.0",
183
183
  "@types/react-dom": "^19.2.2",
184
184
  "@types/xxhashjs": "^0.2.4",
package/src/Root.tsx CHANGED
@@ -88,7 +88,10 @@ export function Root(props: RootProps) {
88
88
 
89
89
  onRenderId?.(id)
90
90
 
91
- const value = globalThis['__vxrnrequestAsyncLocalStore']?.getStore() || null
91
+ // Use Vercel's global ID if available, otherwise use AsyncLocalStorage
92
+ const value = process.env.VERCEL
93
+ ? globalThis['__oneGlobalContextId']
94
+ : globalThis['__vxrnrequestAsyncLocalStore']?.getStore() || null
92
95
 
93
96
  let contents = (
94
97
  <ServerAsyncLocalIDContext.Provider value={value}>
package/src/cli/build.ts CHANGED
@@ -27,6 +27,7 @@ import { buildPage } from './buildPage'
27
27
  import { checkNodeVersion } from './checkNodeVersion'
28
28
  import { generateSitemap, type RouteSitemapData } from './generateSitemap'
29
29
  import { labelProcess } from './label-process'
30
+ import { isRolldown } from '../utils/isRolldown'
30
31
 
31
32
  const { ensureDir, writeJSON } = FSExtra
32
33
 
@@ -264,28 +265,40 @@ export async function build(args: {
264
265
  }
265
266
  }
266
267
 
267
- // gather the initial import.meta.glob js parts:
268
- const clientManifestKey =
268
+ // Match route by server output id against manifest.pageRoutes
269
+ const foundRoute = manifest.pageRoutes.find((route: RouteInfo<string>) => {
270
+ if (!route.file) return false
271
+ const routePath = `${routerRoot}${route.file.slice(1)}`
272
+ return id.endsWith(routePath)
273
+ })
274
+
275
+ if (!foundRoute) {
276
+ continue
277
+ }
278
+
279
+ // Find client manifest entry - first by exact key match, then by src property
280
+ let clientManifestKey =
269
281
  Object.keys(vxrnOutput.clientManifest).find((key) => {
270
282
  return id.endsWith(key)
271
283
  }) || ''
272
284
 
285
+ // If not found by key, search by src property (handles shared chunks)
273
286
  if (!clientManifestKey) {
274
- // this is something that has /app in it but isnt actually in our manifest, ignore
275
- continue
287
+ const expectedSrc = `${routerRoot}${foundRoute.file.slice(1)}`
288
+ clientManifestKey =
289
+ Object.keys(vxrnOutput.clientManifest).find((key) => {
290
+ const entry = vxrnOutput.clientManifest[key]
291
+ return entry.src === expectedSrc
292
+ }) || ''
276
293
  }
277
294
 
278
- const clientManifestEntry = vxrnOutput.clientManifest[clientManifestKey]
279
-
280
- const foundRoute = manifest.pageRoutes.find((route: RouteInfo<string>) => {
281
- return route.file && clientManifestKey.replace(routerRootRegexp, '') === route.file.slice(1)
282
- })
283
-
284
- if (!foundRoute) {
285
- // should probably error?
295
+ if (!clientManifestKey) {
296
+ console.warn(`No client manifest entry found for route: ${id}`)
286
297
  continue
287
298
  }
288
299
 
300
+ const clientManifestEntry = vxrnOutput.clientManifest[clientManifestKey]
301
+
289
302
  foundRoute.loaderServerPath = output.fileName
290
303
 
291
304
  function collectImports(
@@ -625,6 +638,7 @@ export async function build(args: {
625
638
  preloads,
626
639
  cssPreloads,
627
640
  loaders,
641
+ useRolldown: await isRolldown(),
628
642
  }
629
643
 
630
644
  await writeJSON(toAbsolute(`dist/buildInfo.json`), buildInfoForWriting)
@@ -662,29 +676,196 @@ export async function build(args: {
662
676
  break
663
677
  }
664
678
 
665
- // case 'cloudflare': {
666
- // await FSExtra.writeFile(
667
- // join(options.root, 'dist', 'worker.js'),
668
- // `import { serve } from 'one/serve-worker'
679
+ case 'cloudflare': {
680
+ // Generate lazy import functions - modules load on-demand, not all upfront
681
+ // Uses find_additional_modules in wrangler config to keep modules separate
682
+ const pageRouteMap: string[] = []
683
+ const apiRouteMap: string[] = []
684
+ const middlewareRouteMap: string[] = []
685
+
686
+ // Generate lazy imports for SSR/SSG page server bundles
687
+ for (const [routeFile, info] of Object.entries(buildInfoForWriting.routeToBuildInfo)) {
688
+ if (info.serverJsPath) {
689
+ const importPath = './' + info.serverJsPath.replace(/^dist\//, '')
690
+ pageRouteMap.push(` '${routeFile}': () => import('${importPath}')`)
691
+ }
692
+ }
693
+
694
+ // Generate lazy imports for API routes
695
+ for (const route of buildInfoForWriting.manifest.apiRoutes) {
696
+ if (route.file) {
697
+ // API files are built to dist/api/
698
+ // route.page is like "/api/hello", files are at "dist/api/api/hello.js"
699
+ // rolldown preserves brackets, esbuild replaces them with underscores
700
+ const apiFileName = buildInfoForWriting.useRolldown
701
+ ? route.page.slice(1)
702
+ : route.page.slice(1).replace(/\[/g, '_').replace(/\]/g, '_')
703
+ const importPath = `./api/${apiFileName}.js`
704
+ apiRouteMap.push(` '${route.page}': () => import('${importPath}')`)
705
+ }
706
+ }
707
+
708
+ // Generate lazy imports for middlewares
709
+ // The key must match the contextKey used to look up the middleware (e.g., "dist/middlewares/_middleware.js")
710
+ for (const [middlewareFile, builtPath] of Object.entries(builtMiddlewares)) {
711
+ const importPath = './' + builtPath.replace(/^dist\//, '')
712
+ middlewareRouteMap.push(` '${builtPath}': () => import('${importPath}')`)
713
+ }
714
+
715
+ const workerSrcPath = join(options.root, 'dist', '_worker-src.js')
716
+ const workerCode = `// Polyfill MessageChannel for React SSR (not available in Cloudflare Workers by default)
717
+ if (typeof MessageChannel === 'undefined') {
718
+ globalThis.MessageChannel = class MessageChannel {
719
+ constructor() {
720
+ this.port1 = { postMessage: () => {}, onmessage: null, close: () => {} }
721
+ this.port2 = { postMessage: () => {}, onmessage: null, close: () => {} }
722
+ }
723
+ }
724
+ }
725
+
726
+ import { serve, setFetchStaticHtml } from 'one/serve-worker'
727
+
728
+ // Lazy import map - modules load on-demand when route is matched
729
+ const lazyRoutes = {
730
+ serverEntry: () => import('./server/_virtual_one-entry.js'),
731
+ pages: {
732
+ ${pageRouteMap.join(',\n')}
733
+ },
734
+ api: {
735
+ ${apiRouteMap.join(',\n')}
736
+ },
737
+ middlewares: {
738
+ ${middlewareRouteMap.join(',\n')}
739
+ }
740
+ }
741
+
742
+ const buildInfo = ${JSON.stringify(buildInfoForWriting)}
743
+
744
+ let app
745
+
746
+ export default {
747
+ async fetch(request, env, ctx) {
748
+ if (!app) {
749
+ app = await serve(buildInfo, lazyRoutes)
750
+ }
751
+
752
+ // Set up static HTML fetcher for this request (uses ASSETS binding)
753
+ if (env.ASSETS) {
754
+ setFetchStaticHtml(async (path) => {
755
+ try {
756
+ const url = new URL(request.url)
757
+ url.pathname = path
758
+ const assetResponse = await env.ASSETS.fetch(new Request(url))
759
+ if (assetResponse && assetResponse.ok) {
760
+ return await assetResponse.text()
761
+ }
762
+ } catch (e) {
763
+ // Asset not found
764
+ }
765
+ return null
766
+ })
767
+ }
669
768
 
670
- // const buildInfo = ${JSON.stringify(buildInfoForWriting)}
769
+ try {
770
+ // Try the app first
771
+ const response = await app.fetch(request, env, ctx)
671
772
 
672
- // const handler = await serve(buildInfo)
773
+ // If no route matched (404) or no response, try serving static assets
774
+ if (!response || response.status === 404) {
775
+ if (env.ASSETS) {
776
+ try {
777
+ const assetResponse = await env.ASSETS.fetch(request)
778
+ // If asset exists, return it
779
+ if (assetResponse && assetResponse.status !== 404) {
780
+ return assetResponse
781
+ }
782
+ } catch (e) {
783
+ // Asset not found, continue with original response
784
+ }
785
+ }
786
+ }
787
+
788
+ return response
789
+ } finally {
790
+ // Clean up per-request state
791
+ setFetchStaticHtml(null)
792
+ }
793
+ }
794
+ }
795
+ `
796
+ await FSExtra.writeFile(workerSrcPath, workerCode)
797
+
798
+ // Bundle the worker using Vite/esbuild
799
+ // Cloudflare Workers with nodejs_compat supports Node.js built-ins
800
+ console.info('\n [cloudflare] Bundling worker...')
801
+ await viteBuild({
802
+ root: options.root,
803
+ logLevel: 'warn',
804
+ build: {
805
+ outDir: 'dist',
806
+ emptyOutDir: false,
807
+ // Use SSR mode with node target for proper Node.js module resolution
808
+ ssr: workerSrcPath,
809
+ rollupOptions: {
810
+ external: [
811
+ // React Native dev tools - not needed in production
812
+ '@react-native/dev-middleware',
813
+ '@react-native/debugger-shell',
814
+ 'metro',
815
+ 'metro-core',
816
+ 'metro-runtime',
817
+ // Native modules that can't run in workers
818
+ /\.node$/,
819
+ ],
820
+ output: {
821
+ entryFileNames: 'worker.js',
822
+ format: 'es',
823
+ // Keep dynamic imports separate for lazy loading
824
+ inlineDynamicImports: false,
825
+ },
826
+ },
827
+ minify: true,
828
+ target: 'esnext',
829
+ },
830
+ define: {
831
+ 'process.env.NODE_ENV': JSON.stringify('production'),
832
+ 'process.env.VITE_ENVIRONMENT': JSON.stringify('ssr'),
833
+ },
834
+ resolve: {
835
+ conditions: ['workerd', 'worker', 'node', 'module', 'default'],
836
+ },
837
+ ssr: {
838
+ target: 'node',
839
+ noExternal: true,
840
+ },
841
+ })
673
842
 
674
- // export default {
675
- // fetch: handler.fetch,
676
- // }`
677
- // )
843
+ // Clean up temp file
844
+ await FSExtra.remove(workerSrcPath)
845
+
846
+ // Use jsonc for wrangler config (recommended for new projects)
847
+ // Use assets with run_worker_first so all requests go through worker (enables middleware on SSG pages)
848
+ const wranglerConfig = `{
849
+ "name": "one-app",
850
+ "main": "worker.js",
851
+ "compatibility_date": "2024-12-05",
852
+ "compatibility_flags": ["nodejs_compat"],
853
+ "find_additional_modules": true,
854
+ "rules": [
855
+ { "type": "ESModule", "globs": ["./server/**/*.js"], "fallthrough": true },
856
+ { "type": "ESModule", "globs": ["./api/**/*.js"], "fallthrough": true },
857
+ { "type": "ESModule", "globs": ["./middlewares/**/*.js"], "fallthrough": true }
858
+ ],
859
+ "assets": { "directory": "client", "binding": "ASSETS", "run_worker_first": true }
860
+ }
861
+ `
862
+ await FSExtra.writeFile(join(options.root, 'dist', 'wrangler.jsonc'), wranglerConfig)
678
863
 
679
- // await FSExtra.writeFile(
680
- // join(options.root, 'dist', 'wrangler.toml'),
681
- // `assets = { directory = "client" }
682
- // compatibility_date = "2024-12-05"
683
- // `
684
- // )
864
+ postBuildLogs.push(`Cloudflare worker bundled at dist/worker.js`)
865
+ postBuildLogs.push(`To deploy: cd dist && wrangler deploy`)
685
866
 
686
- // break
687
- // }
867
+ break
868
+ }
688
869
  }
689
870
 
690
871
  if (process.env.VXRN_ANALYZE_BUNDLE) {
@@ -107,39 +107,41 @@ export async function resolveAPIRoute(
107
107
  console.info(`[one] 📡 API ${request.method} ${pathname} → ${route.file}`, params)
108
108
  }
109
109
 
110
- try {
111
- return resolveAPIEndpoint(
112
- () =>
113
- handlers.handleAPI!({
114
- request,
115
- route,
116
- url,
117
- loaderProps: {
118
- path: pathname,
119
- search: url.search,
120
- params,
121
- },
122
- }),
123
- request,
124
- params || {}
125
- )
126
- } catch (err) {
127
- if (isResponse(err)) {
128
- return err
129
- }
110
+ return await runMiddlewares(handlers, request, route, async () => {
111
+ try {
112
+ return resolveAPIEndpoint(
113
+ () =>
114
+ handlers.handleAPI!({
115
+ request,
116
+ route,
117
+ url,
118
+ loaderProps: {
119
+ path: pathname,
120
+ search: url.search,
121
+ params,
122
+ },
123
+ }),
124
+ request,
125
+ params || {}
126
+ )
127
+ } catch (err) {
128
+ if (isResponse(err)) {
129
+ return err
130
+ }
130
131
 
131
- if (process.env.NODE_ENV === 'development') {
132
- console.error(`\n [one] Error importing API route at ${pathname}:
132
+ if (process.env.NODE_ENV === 'development') {
133
+ console.error(`\n [one] Error importing API route at ${pathname}:
133
134
 
134
- ${err}
135
+ ${err}
135
136
 
136
- If this is an import error, you can likely fix this by adding this dependency to
137
- the "optimizeDeps.include" array in your vite.config.ts.
138
- `)
139
- }
137
+ If this is an import error, you can likely fix this by adding this dependency to
138
+ the "optimizeDeps.include" array in your vite.config.ts.
139
+ `)
140
+ }
140
141
 
141
- throw err
142
- }
142
+ throw err
143
+ }
144
+ })
143
145
  }
144
146
 
145
147
  export async function resolveLoaderRoute(
@@ -1,23 +1,40 @@
1
1
  import { Hono } from 'hono'
2
- import { createProdServer } from 'vxrn/serve'
3
- import { oneServe } from './server/oneServe'
4
2
  import { setServerGlobals } from './server/setServerGlobals'
5
3
  import { setupBuildInfo } from './server/setupBuildOptions'
6
4
  import { ensureExists } from './utils/ensureExists'
7
5
  import type { One } from './vite/types'
8
6
 
9
- export async function serve(buildInfo: One.BuildInfo) {
7
+ // Re-export static HTML fetcher utilities for worker use
8
+ export { setFetchStaticHtml, getFetchStaticHtml } from './server/staticHtmlFetcher'
9
+
10
+ /**
11
+ * Lazy import functions for route modules.
12
+ * Modules are loaded on-demand when a route is matched, not all upfront.
13
+ */
14
+ export type LazyRoutes = {
15
+ serverEntry: () => Promise<{ default: { render: (props: any) => any } }>
16
+ pages: Record<string, () => Promise<any>>
17
+ api: Record<string, () => Promise<any>>
18
+ middlewares: Record<string, () => Promise<any>>
19
+ }
20
+
21
+ /**
22
+ * Creates a Hono app for edge/worker environments (Cloudflare Workers, etc.)
23
+ * Static assets should be handled by the platform (e.g., wrangler's [assets] config)
24
+ * This only sets up the dynamic routes (SSR, API, loaders)
25
+ *
26
+ * @param buildInfo - Build configuration and route metadata
27
+ * @param lazyRoutes - Lazy import functions for route modules (loaded on-demand)
28
+ */
29
+ export async function serve(buildInfo: One.BuildInfo, lazyRoutes?: LazyRoutes) {
10
30
  setupBuildInfo(buildInfo)
11
31
  ensureExists(buildInfo.oneOptions)
12
32
  setServerGlobals()
13
33
 
14
- const serverOptions = buildInfo.oneOptions.server || {}
15
-
16
34
  const app = new Hono()
17
35
 
18
- await createProdServer(app, serverOptions)
19
-
20
- await oneServe(buildInfo.oneOptions, buildInfo, app)
36
+ const { oneServe } = await import('./server/oneServe')
37
+ await oneServe(buildInfo.oneOptions, buildInfo, app, { lazyRoutes })
21
38
 
22
39
  return app
23
40
  }
package/src/serve.ts CHANGED
@@ -23,7 +23,7 @@ export async function serve(args: VXRNOptions['server'] & { app?: Hono } = {}) {
23
23
  // to avoid loading the CACHE_KEY before we set it use async imports:
24
24
  const { labelProcess } = await import('./cli/label-process')
25
25
  const { removeUndefined } = await import('./utils/removeUndefined')
26
- const { loadEnv, serve: vxrnServe } = await import('vxrn/serve')
26
+ const { loadEnv, serve: vxrnServe, serveStaticAssets } = await import('vxrn/serve')
27
27
  const { oneServe } = await import('./server/oneServe')
28
28
 
29
29
  labelProcess('serve')
@@ -44,7 +44,7 @@ export async function serve(args: VXRNOptions['server'] & { app?: Hono } = {}) {
44
44
  }),
45
45
 
46
46
  async beforeRegisterRoutes(options, app) {
47
- await oneServe(oneOptions, buildInfo, app)
47
+ await oneServe(oneOptions, buildInfo, app, { serveStaticAssets })
48
48
  },
49
49
 
50
50
  async afterRegisterRoutes(options, app) {},