one 1.2.53 → 1.2.55

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 (463) hide show
  1. package/dist/cjs/cli/build.cjs +11 -5
  2. package/dist/cjs/cli/build.js +11 -4
  3. package/dist/cjs/cli/build.js.map +1 -1
  4. package/dist/cjs/cli/build.native.js +9 -2
  5. package/dist/cjs/cli/build.native.js.map +1 -1
  6. package/dist/cjs/cli/generateSitemap.test.js.map +1 -1
  7. package/dist/cjs/cli/generateSitemap.test.native.js.map +1 -1
  8. package/dist/cjs/createApp.cjs +11 -11
  9. package/dist/cjs/createApp.js +5 -4
  10. package/dist/cjs/createApp.js.map +1 -1
  11. package/dist/cjs/getDevServer.native.js.map +1 -1
  12. package/dist/cjs/image/getImageData.cjs +91 -0
  13. package/dist/cjs/image/getImageData.js +64 -0
  14. package/dist/cjs/image/getImageData.js.map +6 -0
  15. package/dist/cjs/image/getImageData.native.js +95 -0
  16. package/dist/cjs/image/getImageData.native.js.map +1 -0
  17. package/dist/cjs/image.cjs +26 -0
  18. package/dist/cjs/image.js +21 -0
  19. package/dist/cjs/image.js.map +6 -0
  20. package/dist/cjs/image.native.js +29 -0
  21. package/dist/cjs/image.native.js.map +1 -0
  22. package/dist/cjs/index.cjs +3 -0
  23. package/dist/cjs/index.js +3 -1
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/index.native.js +3 -0
  26. package/dist/cjs/index.native.js.map +1 -1
  27. package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +2 -2
  28. package/dist/cjs/metro-config/getViteMetroPluginOptions.js +1 -1
  29. package/dist/cjs/metro-config/getViteMetroPluginOptions.js.map +1 -1
  30. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +2 -2
  31. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  32. package/dist/cjs/router/Route.js.map +1 -1
  33. package/dist/cjs/router/Route.native.js.map +1 -1
  34. package/dist/cjs/router/getRoutes.cjs +2 -2
  35. package/dist/cjs/router/getRoutes.js +1 -2
  36. package/dist/cjs/router/getRoutes.js.map +1 -1
  37. package/dist/cjs/router/getRoutes.native.js.map +1 -1
  38. package/dist/cjs/router/matchers.test.js +7 -1
  39. package/dist/cjs/router/matchers.test.js.map +1 -1
  40. package/dist/cjs/router/matchers.test.native.js.map +1 -1
  41. package/dist/cjs/router/useScreens.js +25 -5
  42. package/dist/cjs/router/useScreens.js.map +1 -1
  43. package/dist/cjs/router/useScreens.native.js.map +1 -1
  44. package/dist/cjs/router/useViteRoutes.cjs +1 -1
  45. package/dist/cjs/router/useViteRoutes.js +1 -1
  46. package/dist/cjs/router/useViteRoutes.js.map +1 -1
  47. package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
  48. package/dist/cjs/server/getServerManifest.js +3 -1
  49. package/dist/cjs/server/getServerManifest.js.map +1 -1
  50. package/dist/cjs/server/getServerManifest.native.js.map +1 -1
  51. package/dist/cjs/server/oneServe.js +7 -2
  52. package/dist/cjs/server/oneServe.js.map +1 -1
  53. package/dist/cjs/server/oneServe.native.js.map +1 -1
  54. package/dist/cjs/typed-routes/generateRouteTypes.cjs +2 -2
  55. package/dist/cjs/typed-routes/generateRouteTypes.js +1 -1
  56. package/dist/cjs/typed-routes/generateRouteTypes.js.map +1 -1
  57. package/dist/cjs/typed-routes/generateRouteTypes.native.js +2 -2
  58. package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
  59. package/dist/cjs/typed-routes/injectRouteHelpers.cjs +2 -2
  60. package/dist/cjs/typed-routes/injectRouteHelpers.js +1 -1
  61. package/dist/cjs/typed-routes/injectRouteHelpers.js.map +1 -1
  62. package/dist/cjs/typed-routes/injectRouteHelpers.native.js +2 -2
  63. package/dist/cjs/typed-routes/injectRouteHelpers.native.js.map +1 -1
  64. package/dist/cjs/ui/TabSlot.cjs +1 -1
  65. package/dist/cjs/ui/TabSlot.js +1 -1
  66. package/dist/cjs/ui/TabSlot.js.map +1 -1
  67. package/dist/cjs/ui/TabSlot.native.js +2 -2
  68. package/dist/cjs/ui/TabSlot.native.js.map +1 -1
  69. package/dist/cjs/ui/TabTrigger.cjs +1 -1
  70. package/dist/cjs/ui/TabTrigger.js +1 -1
  71. package/dist/cjs/ui/TabTrigger.js.map +1 -1
  72. package/dist/cjs/ui/TabTrigger.native.js +1 -1
  73. package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
  74. package/dist/cjs/ui/Tabs.cjs +7 -7
  75. package/dist/cjs/ui/Tabs.js +5 -2
  76. package/dist/cjs/ui/Tabs.js.map +1 -1
  77. package/dist/cjs/ui/Tabs.native.js +7 -7
  78. package/dist/cjs/ui/Tabs.native.js.map +1 -1
  79. package/dist/cjs/ui/common.cjs +1 -1
  80. package/dist/cjs/ui/common.js +1 -1
  81. package/dist/cjs/ui/common.js.map +1 -1
  82. package/dist/cjs/ui/common.native.js +1 -1
  83. package/dist/cjs/ui/common.native.js.map +1 -1
  84. package/dist/cjs/useLoader.cjs +1 -0
  85. package/dist/cjs/useLoader.js +1 -0
  86. package/dist/cjs/useLoader.js.map +1 -1
  87. package/dist/cjs/useLoader.native.js +1 -0
  88. package/dist/cjs/useLoader.native.js.map +1 -1
  89. package/dist/cjs/utils/promiseWithResolvers.cjs +4 -5
  90. package/dist/cjs/utils/promiseWithResolvers.js +2 -1
  91. package/dist/cjs/utils/promiseWithResolvers.js.map +1 -1
  92. package/dist/cjs/utils/promiseWithResolvers.native.js.map +1 -1
  93. package/dist/cjs/utils/trackLoaderDependencies.cjs +51 -0
  94. package/dist/cjs/utils/trackLoaderDependencies.js +40 -0
  95. package/dist/cjs/utils/trackLoaderDependencies.js.map +6 -0
  96. package/dist/cjs/utils/trackLoaderDependencies.native.js +57 -0
  97. package/dist/cjs/utils/trackLoaderDependencies.native.js.map +1 -0
  98. package/dist/cjs/utils/watchFile.cjs +35 -0
  99. package/dist/cjs/utils/watchFile.js +30 -0
  100. package/dist/cjs/utils/watchFile.js.map +6 -0
  101. package/dist/cjs/utils/watchFile.native.js +39 -0
  102. package/dist/cjs/utils/watchFile.native.js.map +1 -0
  103. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  104. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  105. package/dist/cjs/vercel/build/config/vc-build-output-config-base.cjs +2 -4
  106. package/dist/cjs/vercel/build/config/vc-build-output-config-base.js +2 -4
  107. package/dist/cjs/vercel/build/config/vc-build-output-config-base.js.map +1 -1
  108. package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js +2 -4
  109. package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js.map +1 -1
  110. package/dist/cjs/vite/DevHead.cjs +22 -0
  111. package/dist/cjs/vite/DevHead.js +26 -0
  112. package/dist/cjs/vite/DevHead.js.map +1 -1
  113. package/dist/cjs/vite/one.cjs +5 -4
  114. package/dist/cjs/vite/one.js +2 -1
  115. package/dist/cjs/vite/one.js.map +1 -1
  116. package/dist/cjs/vite/one.native.js +5 -4
  117. package/dist/cjs/vite/one.native.js.map +1 -1
  118. package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +7 -7
  119. package/dist/cjs/vite/plugins/SSRCSSPlugin.js +2 -3
  120. package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
  121. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  122. package/dist/cjs/vite/plugins/clientTreeShakePlugin.js +4 -1
  123. package/dist/cjs/vite/plugins/clientTreeShakePlugin.js.map +1 -1
  124. package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
  125. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +34 -7
  126. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +43 -7
  127. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +2 -2
  128. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +82 -21
  129. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  130. package/dist/cjs/vite/plugins/imageDataPlugin.cjs +70 -0
  131. package/dist/cjs/vite/plugins/imageDataPlugin.js +55 -0
  132. package/dist/cjs/vite/plugins/imageDataPlugin.js.map +6 -0
  133. package/dist/cjs/vite/plugins/imageDataPlugin.native.js +77 -0
  134. package/dist/cjs/vite/plugins/imageDataPlugin.native.js.map +1 -0
  135. package/dist/cjs/vite/plugins/imageDataPlugin.test.cjs +214 -0
  136. package/dist/cjs/vite/plugins/imageDataPlugin.test.js +184 -0
  137. package/dist/cjs/vite/plugins/imageDataPlugin.test.js.map +6 -0
  138. package/dist/cjs/vite/plugins/imageDataPlugin.test.native.js +228 -0
  139. package/dist/cjs/vite/plugins/imageDataPlugin.test.native.js.map +1 -0
  140. package/dist/cjs/zero/useQuery.cjs +2 -2
  141. package/dist/cjs/zero/useQuery.js +1 -2
  142. package/dist/cjs/zero/useQuery.js.map +1 -1
  143. package/dist/cjs/zero/useQuery.native.js.map +1 -1
  144. package/dist/esm/cli/build.js +11 -4
  145. package/dist/esm/cli/build.js.map +1 -1
  146. package/dist/esm/cli/build.mjs +10 -4
  147. package/dist/esm/cli/build.mjs.map +1 -1
  148. package/dist/esm/cli/build.native.js +8 -1
  149. package/dist/esm/cli/build.native.js.map +1 -1
  150. package/dist/esm/cli/buildPage.js +1 -1
  151. package/dist/esm/cli/buildPage.js.map +1 -1
  152. package/dist/esm/cli/buildPage.mjs +1 -1
  153. package/dist/esm/cli/buildPage.mjs.map +1 -1
  154. package/dist/esm/cli/buildPage.native.js +1 -1
  155. package/dist/esm/cli/buildPage.native.js.map +1 -1
  156. package/dist/esm/cli/generateSitemap.test.js +1 -1
  157. package/dist/esm/cli/generateSitemap.test.js.map +1 -1
  158. package/dist/esm/cli/generateSitemap.test.mjs +1 -1
  159. package/dist/esm/cli/generateSitemap.test.mjs.map +1 -1
  160. package/dist/esm/cli/generateSitemap.test.native.js +1 -1
  161. package/dist/esm/cli/generateSitemap.test.native.js.map +1 -1
  162. package/dist/esm/createApp.js +5 -4
  163. package/dist/esm/createApp.js.map +1 -1
  164. package/dist/esm/createApp.mjs +11 -11
  165. package/dist/esm/createApp.mjs.map +1 -1
  166. package/dist/esm/getDevServer.native.js.map +1 -1
  167. package/dist/esm/image/getImageData.js +41 -0
  168. package/dist/esm/image/getImageData.js.map +6 -0
  169. package/dist/esm/image/getImageData.mjs +55 -0
  170. package/dist/esm/image/getImageData.mjs.map +1 -0
  171. package/dist/esm/image/getImageData.native.js +56 -0
  172. package/dist/esm/image/getImageData.native.js.map +1 -0
  173. package/dist/esm/image.js +5 -0
  174. package/dist/esm/image.js.map +6 -0
  175. package/dist/esm/image.mjs +3 -0
  176. package/dist/esm/image.mjs.map +1 -0
  177. package/dist/esm/image.native.js +3 -0
  178. package/dist/esm/image.native.js.map +1 -0
  179. package/dist/esm/index.js +4 -1
  180. package/dist/esm/index.js.map +1 -1
  181. package/dist/esm/index.mjs +3 -2
  182. package/dist/esm/index.mjs.map +1 -1
  183. package/dist/esm/index.native.js +3 -2
  184. package/dist/esm/index.native.js.map +1 -1
  185. package/dist/esm/metro-config/getViteMetroPluginOptions.js +1 -1
  186. package/dist/esm/metro-config/getViteMetroPluginOptions.js.map +1 -1
  187. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +1 -1
  188. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
  189. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +1 -1
  190. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  191. package/dist/esm/router/Route.js.map +1 -1
  192. package/dist/esm/router/Route.mjs.map +1 -1
  193. package/dist/esm/router/Route.native.js.map +1 -1
  194. package/dist/esm/router/getRoutes.js +1 -2
  195. package/dist/esm/router/getRoutes.js.map +1 -1
  196. package/dist/esm/router/getRoutes.mjs +2 -2
  197. package/dist/esm/router/getRoutes.mjs.map +1 -1
  198. package/dist/esm/router/getRoutes.native.js.map +1 -1
  199. package/dist/esm/router/matchers.test.js +7 -1
  200. package/dist/esm/router/matchers.test.js.map +1 -1
  201. package/dist/esm/router/matchers.test.mjs.map +1 -1
  202. package/dist/esm/router/matchers.test.native.js.map +1 -1
  203. package/dist/esm/router/router.js +1 -1
  204. package/dist/esm/router/router.js.map +1 -1
  205. package/dist/esm/router/router.mjs +1 -1
  206. package/dist/esm/router/router.mjs.map +1 -1
  207. package/dist/esm/router/router.native.js +1 -1
  208. package/dist/esm/router/router.native.js.map +1 -1
  209. package/dist/esm/router/useScreens.js +25 -5
  210. package/dist/esm/router/useScreens.js.map +1 -1
  211. package/dist/esm/router/useScreens.mjs.map +1 -1
  212. package/dist/esm/router/useScreens.native.js.map +1 -1
  213. package/dist/esm/router/useViteRoutes.js +1 -1
  214. package/dist/esm/router/useViteRoutes.js.map +1 -1
  215. package/dist/esm/router/useViteRoutes.mjs +1 -1
  216. package/dist/esm/router/useViteRoutes.mjs.map +1 -1
  217. package/dist/esm/router/useViteRoutes.native.js.map +1 -1
  218. package/dist/esm/serve-worker.js +1 -1
  219. package/dist/esm/serve-worker.mjs +1 -1
  220. package/dist/esm/serve-worker.mjs.map +1 -1
  221. package/dist/esm/serve-worker.native.js +1 -1
  222. package/dist/esm/serve-worker.native.js.map +1 -1
  223. package/dist/esm/server/getServerManifest.js +3 -1
  224. package/dist/esm/server/getServerManifest.js.map +1 -1
  225. package/dist/esm/server/getServerManifest.mjs.map +1 -1
  226. package/dist/esm/server/getServerManifest.native.js.map +1 -1
  227. package/dist/esm/server/oneServe.js +7 -2
  228. package/dist/esm/server/oneServe.js.map +1 -1
  229. package/dist/esm/server/oneServe.mjs.map +1 -1
  230. package/dist/esm/server/oneServe.native.js.map +1 -1
  231. package/dist/esm/typed-routes/generateRouteTypes.js +1 -1
  232. package/dist/esm/typed-routes/generateRouteTypes.js.map +1 -1
  233. package/dist/esm/typed-routes/generateRouteTypes.mjs +1 -1
  234. package/dist/esm/typed-routes/generateRouteTypes.mjs.map +1 -1
  235. package/dist/esm/typed-routes/generateRouteTypes.native.js +1 -1
  236. package/dist/esm/typed-routes/generateRouteTypes.native.js.map +1 -1
  237. package/dist/esm/typed-routes/injectRouteHelpers.js +1 -1
  238. package/dist/esm/typed-routes/injectRouteHelpers.js.map +1 -1
  239. package/dist/esm/typed-routes/injectRouteHelpers.mjs +1 -1
  240. package/dist/esm/typed-routes/injectRouteHelpers.mjs.map +1 -1
  241. package/dist/esm/typed-routes/injectRouteHelpers.native.js +1 -1
  242. package/dist/esm/typed-routes/injectRouteHelpers.native.js.map +1 -1
  243. package/dist/esm/ui/Slot.js.map +1 -1
  244. package/dist/esm/ui/Slot.mjs.map +1 -1
  245. package/dist/esm/ui/Slot.native.js.map +1 -1
  246. package/dist/esm/ui/TabList.js +1 -1
  247. package/dist/esm/ui/TabList.js.map +1 -1
  248. package/dist/esm/ui/TabList.mjs +1 -1
  249. package/dist/esm/ui/TabList.mjs.map +1 -1
  250. package/dist/esm/ui/TabList.native.js +1 -1
  251. package/dist/esm/ui/TabList.native.js.map +1 -1
  252. package/dist/esm/ui/TabRouter.js.map +1 -1
  253. package/dist/esm/ui/TabRouter.mjs.map +1 -1
  254. package/dist/esm/ui/TabRouter.native.js.map +1 -1
  255. package/dist/esm/ui/TabSlot.js +2 -2
  256. package/dist/esm/ui/TabSlot.js.map +1 -1
  257. package/dist/esm/ui/TabSlot.mjs +2 -2
  258. package/dist/esm/ui/TabSlot.mjs.map +1 -1
  259. package/dist/esm/ui/TabSlot.native.js +2 -2
  260. package/dist/esm/ui/TabSlot.native.js.map +1 -1
  261. package/dist/esm/ui/TabTrigger.js +3 -3
  262. package/dist/esm/ui/TabTrigger.js.map +1 -1
  263. package/dist/esm/ui/TabTrigger.mjs +2 -2
  264. package/dist/esm/ui/TabTrigger.mjs.map +1 -1
  265. package/dist/esm/ui/TabTrigger.native.js +2 -2
  266. package/dist/esm/ui/TabTrigger.native.js.map +1 -1
  267. package/dist/esm/ui/Tabs.js +10 -7
  268. package/dist/esm/ui/Tabs.js.map +1 -1
  269. package/dist/esm/ui/Tabs.mjs +6 -6
  270. package/dist/esm/ui/Tabs.mjs.map +1 -1
  271. package/dist/esm/ui/Tabs.native.js +6 -6
  272. package/dist/esm/ui/Tabs.native.js.map +1 -1
  273. package/dist/esm/ui/common.js +3 -3
  274. package/dist/esm/ui/common.js.map +1 -1
  275. package/dist/esm/ui/common.mjs +1 -1
  276. package/dist/esm/ui/common.mjs.map +1 -1
  277. package/dist/esm/ui/common.native.js +1 -1
  278. package/dist/esm/ui/common.native.js.map +1 -1
  279. package/dist/esm/ui/useComponent.js +1 -1
  280. package/dist/esm/ui/useComponent.js.map +1 -1
  281. package/dist/esm/ui/useComponent.mjs +1 -1
  282. package/dist/esm/ui/useComponent.mjs.map +1 -1
  283. package/dist/esm/ui/useComponent.native.js +1 -1
  284. package/dist/esm/ui/useComponent.native.js.map +1 -1
  285. package/dist/esm/useLoader.js +1 -0
  286. package/dist/esm/useLoader.js.map +1 -1
  287. package/dist/esm/useLoader.mjs +1 -0
  288. package/dist/esm/useLoader.mjs.map +1 -1
  289. package/dist/esm/useLoader.native.js +1 -0
  290. package/dist/esm/useLoader.native.js.map +1 -1
  291. package/dist/esm/utils/cleanUrl.js +1 -1
  292. package/dist/esm/utils/cleanUrl.mjs +1 -1
  293. package/dist/esm/utils/cleanUrl.mjs.map +1 -1
  294. package/dist/esm/utils/cleanUrl.native.js +1 -1
  295. package/dist/esm/utils/cleanUrl.native.js.map +1 -1
  296. package/dist/esm/utils/promiseWithResolvers.js +2 -1
  297. package/dist/esm/utils/promiseWithResolvers.js.map +1 -1
  298. package/dist/esm/utils/promiseWithResolvers.mjs +4 -5
  299. package/dist/esm/utils/promiseWithResolvers.mjs.map +1 -1
  300. package/dist/esm/utils/promiseWithResolvers.native.js.map +1 -1
  301. package/dist/esm/utils/trackLoaderDependencies.js +25 -0
  302. package/dist/esm/utils/trackLoaderDependencies.js.map +6 -0
  303. package/dist/esm/utils/trackLoaderDependencies.mjs +28 -0
  304. package/dist/esm/utils/trackLoaderDependencies.mjs.map +1 -0
  305. package/dist/esm/utils/trackLoaderDependencies.native.js +31 -0
  306. package/dist/esm/utils/trackLoaderDependencies.native.js.map +1 -0
  307. package/dist/esm/utils/watchFile.js +14 -0
  308. package/dist/esm/utils/watchFile.js.map +6 -0
  309. package/dist/esm/utils/watchFile.mjs +11 -0
  310. package/dist/esm/utils/watchFile.mjs.map +1 -0
  311. package/dist/esm/utils/watchFile.native.js +12 -0
  312. package/dist/esm/utils/watchFile.native.js.map +1 -0
  313. package/dist/esm/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  314. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -1
  315. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  316. package/dist/esm/vercel/build/config/vc-build-output-config-base.js +2 -4
  317. package/dist/esm/vercel/build/config/vc-build-output-config-base.js.map +1 -1
  318. package/dist/esm/vercel/build/config/vc-build-output-config-base.mjs +2 -4
  319. package/dist/esm/vercel/build/config/vc-build-output-config-base.mjs.map +1 -1
  320. package/dist/esm/vercel/build/config/vc-build-output-config-base.native.js +2 -4
  321. package/dist/esm/vercel/build/config/vc-build-output-config-base.native.js.map +1 -1
  322. package/dist/esm/vite/DevHead.js +26 -0
  323. package/dist/esm/vite/DevHead.js.map +1 -1
  324. package/dist/esm/vite/DevHead.mjs +22 -0
  325. package/dist/esm/vite/DevHead.mjs.map +1 -1
  326. package/dist/esm/vite/one.js +4 -2
  327. package/dist/esm/vite/one.js.map +1 -1
  328. package/dist/esm/vite/one.mjs +4 -3
  329. package/dist/esm/vite/one.mjs.map +1 -1
  330. package/dist/esm/vite/one.native.js +4 -3
  331. package/dist/esm/vite/one.native.js.map +1 -1
  332. package/dist/esm/vite/plugins/SSRCSSPlugin.js +2 -3
  333. package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
  334. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +7 -7
  335. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  336. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  337. package/dist/esm/vite/plugins/clientTreeShakePlugin.js +4 -1
  338. package/dist/esm/vite/plugins/clientTreeShakePlugin.js.map +1 -1
  339. package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs.map +1 -1
  340. package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
  341. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +43 -6
  342. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +2 -2
  343. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +34 -7
  344. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  345. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +82 -21
  346. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  347. package/dist/esm/vite/plugins/imageDataPlugin.js +41 -0
  348. package/dist/esm/vite/plugins/imageDataPlugin.js.map +6 -0
  349. package/dist/esm/vite/plugins/imageDataPlugin.mjs +47 -0
  350. package/dist/esm/vite/plugins/imageDataPlugin.mjs.map +1 -0
  351. package/dist/esm/vite/plugins/imageDataPlugin.native.js +51 -0
  352. package/dist/esm/vite/plugins/imageDataPlugin.native.js.map +1 -0
  353. package/dist/esm/vite/plugins/imageDataPlugin.test.js +165 -0
  354. package/dist/esm/vite/plugins/imageDataPlugin.test.js.map +6 -0
  355. package/dist/esm/vite/plugins/imageDataPlugin.test.mjs +193 -0
  356. package/dist/esm/vite/plugins/imageDataPlugin.test.mjs.map +1 -0
  357. package/dist/esm/vite/plugins/imageDataPlugin.test.native.js +204 -0
  358. package/dist/esm/vite/plugins/imageDataPlugin.test.native.js.map +1 -0
  359. package/dist/esm/zero/useQuery.js +1 -2
  360. package/dist/esm/zero/useQuery.js.map +1 -1
  361. package/dist/esm/zero/useQuery.mjs +2 -2
  362. package/dist/esm/zero/useQuery.mjs.map +1 -1
  363. package/dist/esm/zero/useQuery.native.js.map +1 -1
  364. package/package.json +19 -10
  365. package/src/cli/build.ts +18 -3
  366. package/src/cli/buildPage.ts +1 -1
  367. package/src/cli/generateSitemap.test.ts +2 -2
  368. package/src/createApp.native.tsx +1 -1
  369. package/src/createApp.tsx +5 -3
  370. package/src/createMiddleware.ts +1 -1
  371. package/src/getDevServer.native.ts +0 -2
  372. package/src/image/getImageData.ts +104 -0
  373. package/src/image.ts +1 -0
  374. package/src/index.ts +20 -1
  375. package/src/interfaces/router.ts +6 -2
  376. package/src/metro-config/getViteMetroPluginOptions.ts +2 -2
  377. package/src/router/Route.tsx +5 -1
  378. package/src/router/getRoutes.ts +1 -1
  379. package/src/router/matchers.test.ts +8 -2
  380. package/src/router/router.ts +1 -1
  381. package/src/router/useScreens.tsx +19 -3
  382. package/src/router/useViteRoutes.tsx +1 -1
  383. package/src/serve-worker.ts +1 -1
  384. package/src/server/getServerManifest.ts +3 -1
  385. package/src/server/oneServe.ts +9 -4
  386. package/src/typed-routes/generateRouteTypes.ts +2 -2
  387. package/src/typed-routes/injectRouteHelpers.ts +1 -1
  388. package/src/ui/Slot.tsx +3 -3
  389. package/src/ui/TabList.tsx +2 -2
  390. package/src/ui/TabRouter.tsx +2 -2
  391. package/src/ui/TabSlot.tsx +2 -3
  392. package/src/ui/TabTrigger.tsx +8 -9
  393. package/src/ui/Tabs.tsx +15 -13
  394. package/src/ui/common.tsx +5 -6
  395. package/src/ui/useComponent.tsx +1 -1
  396. package/src/useLoader.ts +4 -0
  397. package/src/utils/cleanUrl.ts +1 -1
  398. package/src/utils/promiseWithResolvers.ts +1 -1
  399. package/src/utils/trackLoaderDependencies.ts +53 -0
  400. package/src/utils/watchFile.ts +19 -0
  401. package/src/vercel/build/buildVercelOutputDirectory.ts +1 -1
  402. package/src/vercel/build/config/vc-build-output-config-base.ts +2 -4
  403. package/src/vite/DevHead.tsx +23 -0
  404. package/src/vite/one.ts +5 -2
  405. package/src/vite/plugins/SSRCSSPlugin.ts +2 -2
  406. package/src/vite/plugins/clientTreeShakePlugin.ts +4 -1
  407. package/src/vite/plugins/fileSystemRouterPlugin.tsx +76 -3
  408. package/src/vite/plugins/imageDataPlugin.test.ts +316 -0
  409. package/src/vite/plugins/imageDataPlugin.ts +89 -0
  410. package/src/vite/types.ts +1 -1
  411. package/src/zero/useQuery.ts +1 -1
  412. package/types/cli/build.d.ts.map +1 -1
  413. package/types/createApp.d.ts.map +1 -1
  414. package/types/createMiddleware.d.ts +1 -2
  415. package/types/createMiddleware.d.ts.map +1 -1
  416. package/types/env.d.ts +23 -0
  417. package/types/getDevServer.native.d.ts.map +1 -1
  418. package/types/image/getImageData.d.ts +34 -0
  419. package/types/image/getImageData.d.ts.map +1 -0
  420. package/types/image.d.ts +2 -0
  421. package/types/image.d.ts.map +1 -0
  422. package/types/index.d.ts +19 -1
  423. package/types/index.d.ts.map +1 -1
  424. package/types/interfaces/router.d.ts.map +1 -1
  425. package/types/layouts/Drawer.d.ts +2 -2
  426. package/types/layouts/Stack.d.ts +2 -2
  427. package/types/layouts/Tabs.d.ts +2 -2
  428. package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
  429. package/types/router/Route.d.ts.map +1 -1
  430. package/types/serve-worker.d.ts +1 -1
  431. package/types/server/getServerManifest.d.ts.map +1 -1
  432. package/types/server/oneServe.d.ts.map +1 -1
  433. package/types/ui/Slot.d.ts +1 -1
  434. package/types/ui/Slot.d.ts.map +1 -1
  435. package/types/ui/TabList.d.ts +1 -1
  436. package/types/ui/TabList.d.ts.map +1 -1
  437. package/types/ui/TabRouter.d.ts +1 -1
  438. package/types/ui/TabRouter.d.ts.map +1 -1
  439. package/types/ui/TabSlot.d.ts.map +1 -1
  440. package/types/ui/TabTrigger.d.ts +3 -3
  441. package/types/ui/TabTrigger.d.ts.map +1 -1
  442. package/types/ui/Tabs.d.ts +17 -2
  443. package/types/ui/Tabs.d.ts.map +1 -1
  444. package/types/ui/common.d.ts +2 -2
  445. package/types/ui/common.d.ts.map +1 -1
  446. package/types/ui/useComponent.d.ts.map +1 -1
  447. package/types/useLoader.d.ts.map +1 -1
  448. package/types/utils/trackLoaderDependencies.d.ts +6 -0
  449. package/types/utils/trackLoaderDependencies.d.ts.map +1 -0
  450. package/types/utils/watchFile.d.ts +8 -0
  451. package/types/utils/watchFile.d.ts.map +1 -0
  452. package/types/vercel/build/config/vc-build-output-config-base.d.ts +0 -1
  453. package/types/vercel/build/config/vc-build-output-config-base.d.ts.map +1 -1
  454. package/types/vite/DevHead.d.ts.map +1 -1
  455. package/types/vite/one.d.ts.map +1 -1
  456. package/types/vite/plugins/clientTreeShakePlugin.d.ts.map +1 -1
  457. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  458. package/types/vite/plugins/imageDataPlugin.d.ts +3 -0
  459. package/types/vite/plugins/imageDataPlugin.d.ts.map +1 -0
  460. package/types/vite/plugins/imageDataPlugin.test.d.ts +2 -0
  461. package/types/vite/plugins/imageDataPlugin.test.d.ts.map +1 -0
  462. package/types/vite/types.d.ts +1 -1
  463. package/types/vite/types.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","getServerContext","getQueryKey","resolveZeroQuery","useQuery","useQueryZero","clientInitialData","postRenderData","serverQueryData","globalThis","__vxrnServerData__","promises","WeakMap","query","enable","snapshot","queryIdRef","current","queryId","window","promise","get","value","promise2","Promise","res","rej","then","val","catch","err","set"],"sources":["../../../src/zero/useQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AACvB,SAASC,gBAAA,QAAwB;AACjC,SAASC,WAAA,QAAmB;AAC5B,SAASC,gBAAA,QAAwB;AACjC,SAASC,QAAA,IAAYC,YAAA,QAAoB;AAEzC,IAAIC,iBAAA,GAAmCL,gBAAA,CAAiB,GAAGM,cAAA;AAG3D,MAAMC,eAAA,GAAkB,CAAC;AAGzBC,UAAA,CAAWC,kBAAA,GAAwBF,eAAA;AAEnC,MAAMG,QAAA,GAAW,mBAAIC,OAAA,CAAQ;EAMhBR,QAAA,GAAYA,CAACS,KAAA,EAAYC,MAAA,GAAS,OAAS;IACtD,MAAMC,QAAA,GAAWV,YAAA,CAAaQ,KAAA,EAAOC,MAAM;MAErCE,UAAA,GAAahB,MAAA,CAA2B,MAAS;IACnDa,KAAA,IAAS,CAACG,UAAA,CAAWC,OAAA,KACvBD,UAAA,CAAWC,OAAA,GAAUf,WAAA,CAAYW,KAAK;IAExC,MAAMK,OAAA,GAAUF,UAAA,CAAWC,OAAA,IAAW;IAKtC,IAA+C,OAAOE,MAAA,GAAW,KAAa;MAC5E,IAAI,CAACN,KAAA,EAAO,OAAO,EAAC;MACpB,MAAMO,OAAA,GAAUT,QAAA,CAASU,GAAA,CAAIR,KAAK;QAC5BS,KAAA,GAAQd,eAAA,CAAgBU,OAAO;MACrC,IAAII,KAAA,EAAO,OAAOA,KAAA;MAElB,IAAI,CAACF,OAAA,EAAS;QACZ,MAAMG,QAAA,GAAU,IAAIC,OAAA,CAAc,CAACC,GAAA,EAAKC,GAAA,KAAQ;UAC9CvB,gBAAA,CAAiBU,KAAK,EACnBc,IAAA,CAAMC,GAAA,IAAQ;YACbpB,eAAA,CAAgBU,OAAO,IAAIU,GAAA,EAC3BH,GAAA,CAAI;UACN,CAAC,EACAI,KAAA,CAAOC,GAAA,IAAQ;YACdnB,QAAA,CAASoB,GAAA,CAAIlB,KAAA,EAAO,IAAI,GACxBa,GAAA,CAAII,GAAG;UACT,CAAC;QACL,CAAC;QACD,MAAAnB,QAAA,CAASoB,GAAA,CAAIlB,KAAA,EAAOU,QAAO,GACrBA,QAAA;MACR;MAEA,IAAIH,OAAA,EAAS,MAAMA,OAAA;MAEnB,OAAO,EAAC;IACV;IAEA,OAAId,iBAAA,IAAqB,CAACS,QAAA,GACjBT,iBAAA,CAAkBY,OAAO,KAAK,EAAC,GAGjCH,QAAA,IAAY,EAAC;EACtB","ignoreList":[]}
1
+ {"version":3,"names":["useRef","getServerContext","getQueryKey","resolveZeroQuery","useQuery","useQueryZero","clientInitialData","postRenderData","serverQueryData","globalThis","__vxrnServerData__","promises","WeakMap","query","enable","snapshot","queryIdRef","current","queryId","window","promise","get","value","promise2","Promise","res","rej","then","val","catch","err","set"],"sources":["../../../src/zero/useQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AACvB,SAASC,gBAAA,QAAwB;AACjC,SAASC,WAAA,QAAmB;AAC5B,SAASC,gBAAA,QAAwB;AACjC,SAASC,QAAA,IAAYC,YAAA,QAAoB;AAEzC,MAAMC,iBAAA,GAAmCL,gBAAA,CAAiB,GAAGM,cAAA;EAGvDC,eAAA,GAAkB,CAAC;AAGzBC,UAAA,CAAWC,kBAAA,GAAwBF,eAAA;AAEnC,MAAMG,QAAA,GAAW,mBAAIC,OAAA,CAAQ;EAMhBR,QAAA,GAAYA,CAACS,KAAA,EAAYC,MAAA,GAAS,OAAS;IACtD,MAAMC,QAAA,GAAWV,YAAA,CAAaQ,KAAA,EAAOC,MAAM;MAErCE,UAAA,GAAahB,MAAA,CAA2B,MAAS;IACnDa,KAAA,IAAS,CAACG,UAAA,CAAWC,OAAA,KACvBD,UAAA,CAAWC,OAAA,GAAUf,WAAA,CAAYW,KAAK;IAExC,MAAMK,OAAA,GAAUF,UAAA,CAAWC,OAAA,IAAW;IAKtC,IAA+C,OAAOE,MAAA,GAAW,KAAa;MAC5E,IAAI,CAACN,KAAA,EAAO,OAAO,EAAC;MACpB,MAAMO,OAAA,GAAUT,QAAA,CAASU,GAAA,CAAIR,KAAK;QAC5BS,KAAA,GAAQd,eAAA,CAAgBU,OAAO;MACrC,IAAII,KAAA,EAAO,OAAOA,KAAA;MAElB,IAAI,CAACF,OAAA,EAAS;QACZ,MAAMG,QAAA,GAAU,IAAIC,OAAA,CAAc,CAACC,GAAA,EAAKC,GAAA,KAAQ;UAC9CvB,gBAAA,CAAiBU,KAAK,EACnBc,IAAA,CAAMC,GAAA,IAAQ;YACbpB,eAAA,CAAgBU,OAAO,IAAIU,GAAA,EAC3BH,GAAA,CAAI;UACN,CAAC,EACAI,KAAA,CAAOC,GAAA,IAAQ;YACdnB,QAAA,CAASoB,GAAA,CAAIlB,KAAA,EAAO,IAAI,GACxBa,GAAA,CAAII,GAAG;UACT,CAAC;QACL,CAAC;QACD,MAAAnB,QAAA,CAASoB,GAAA,CAAIlB,KAAA,EAAOU,QAAO,GACrBA,QAAA;MACR;MAEA,IAAIH,OAAA,EAAS,MAAMA,OAAA;MAEnB,OAAO,EAAC;IACV;IAEA,OAAId,iBAAA,IAAqB,CAACS,QAAA,GACjBT,iBAAA,CAAkBY,OAAO,KAAK,EAAC,GAGjCH,QAAA,IAAY,EAAC;EACtB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","getServerContext","getQueryKey","useQuery","useQueryZero","_getServerContext","clientInitialData","postRenderData","serverQueryData","globalThis","__vxrnServerData__","query","enable","arguments","length","snapshot","queryIdRef","current","queryId","promise","value","promise1"],"sources":["../../../src/zero/useQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AACvB,SAASC,gBAAA,QAAwB;AACjC,SAASC,WAAA,QAAmB;AAC5B,iCAAS;AACT,SAASC,QAAA,IAAYC,YAAA,QAAoB;AAEzC,IAAIC,iBAAA;EAAAC,iBAAmC,GAAiB,CAAGD,iBAAA,GAAAJ,gBAAA,gBAAAI,iBAAA,uBAAAA,iBAAA,CAAAE,cAAA;EAAAC,eAAA;AAG3DC,UAAM,CAAAC,kBAAmB,GAAAF,eAAA;AAGzB,IAAAL,QAAW,YAAAA,CAAAQ,KAAA;EAEX,IAAMC,MAAA,GAAAC,SAAW,CAAAC,MAAA,QAAID,SAMR,aAAa,IAAAA,SAAY,GAAS;IAASE,QAAA,GAAAX,YAAA,CAAAO,KAAA,EAAAC,MAAA;IAAAI,UAAA,GAAAhB,MAAA;EACtDW,KAAA,IAAM,CAAAK,UAAW,CAAAC,OAAA,KAAaD,UAAa,CAAAC,OAErC,GAAAf,WAAa,CAA2BS,KAAA,CAAS;EACnD,IAAAO,OAAU,GAAAF,UAAW,CAAAC,OAAA,IACvB;EAEF,OAAM;IAKN,IAA+CE,OAAO,EAAAC,KAAW;IAC/D,IAAI,CAACD,OAAO,EACZ,IAAME,QAAA;EAEN;EAEA,OAAKf,iBAAS,KAAAS,QAAA,GAAAT,iBAAA,CAAAY,OAAA,UAAAH,QAAA;AACZ;AACE,SAEIZ,QAAA","ignoreList":[]}
1
+ {"version":3,"names":["useRef","getServerContext","getQueryKey","useQuery","useQueryZero","_getServerContext","clientInitialData","postRenderData","serverQueryData","globalThis","__vxrnServerData__","query","enable","arguments","length","snapshot","queryIdRef","current","queryId","promise","value","promise1"],"sources":["../../../src/zero/useQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AACvB,SAASC,gBAAA,QAAwB;AACjC,SAASC,WAAA,QAAmB;AAC5B,iCAAS;AACT,SAASC,QAAA,IAAYC,YAAA,QAAoB;AAEzC,IAAAC,iBAAM;EAAAC,iBAAmC,GAAiB,CAAAD,iBAAG,GAGvDJ,gBAAkB,CAAC,eAAAI,iBAAA,uBAAAA,iBAAA,CAAAE,cAAA;EAAAC,eAAA;AAGzBC,UAAA,CAAWC,kBAAA,GAAwBF,eAAA;AAEnC,IAAAL,QAAM,YAAAA,CAAWQ,KAAA;EAOf,IAAAC,MAAM,GAAAC,SAAW,CAAAC,MAAA,GAAa,KAAOD,SAE/B,aAAa,IAAAA,SAAoC;IAAAE,QAAA,GAAAX,YAAA,CAAAO,KAAA,EAAAC,MAAA;IAAAI,UAAA,GAAAhB,MAAA;EACnDW,KAAA,IAAS,CAACK,UAAA,CAAWC,OAAA,KACvBD,UAAA,CAAWC,OAAA,GAAUf,WAAA,CAAYS,KAAK;EAExC,IAAAO,OAAM,GAAAF,UAAU,CAAAC,OAAW,MAAW;EAKtC,IAA+C;IAC7C,IAAIE,OAAQ,EAAAC,KAAA;IACZ,KAAAD,OAAM,EAEN,IAAIE,QAAO;EAEX;EACE,OAAAf,iBAAgB,IAAI,CAAAS,QAAe,GAAKT,iBAAQ,CAAAY,OAAA,UAAAH,QAAA;AAC9C;AAEI,SACIZ,QACL","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one",
3
- "version": "1.2.53",
3
+ "version": "1.2.55",
4
4
  "license": "BSD-3-Clause",
5
5
  "sideEffects": [
6
6
  "setup.mjs",
@@ -86,6 +86,11 @@
86
86
  },
87
87
  "./env": {
88
88
  "types": "./types/env.d.ts"
89
+ },
90
+ "./image": {
91
+ "types": "./types/image.d.ts",
92
+ "import": "./dist/esm/image.mjs",
93
+ "require": "./dist/cjs/image.js"
89
94
  }
90
95
  },
91
96
  "main": "dist/cjs",
@@ -130,17 +135,17 @@
130
135
  "@react-navigation/routers": "~7.5.1",
131
136
  "@swc/core": "^1.14.0",
132
137
  "@ungap/structured-clone": "^1.2.0",
133
- "@vxrn/color-scheme": "1.2.53",
134
- "@vxrn/compiler": "1.2.53",
135
- "@vxrn/resolve": "1.2.53",
136
- "@vxrn/tslib-lite": "1.2.53",
137
- "@vxrn/use-isomorphic-layout-effect": "1.2.53",
138
- "@vxrn/vite-plugin-metro": "1.2.53",
138
+ "@vxrn/color-scheme": "1.2.55",
139
+ "@vxrn/compiler": "1.2.55",
140
+ "@vxrn/resolve": "1.2.55",
141
+ "@vxrn/tslib-lite": "1.2.55",
142
+ "@vxrn/use-isomorphic-layout-effect": "1.2.55",
143
+ "@vxrn/vite-plugin-metro": "1.2.55",
139
144
  "babel-dead-code-elimination": "^1.0.10",
140
145
  "babel-plugin-module-resolver": "^5.0.2",
141
146
  "citty": "^0.1.6",
142
147
  "core-js": "^3.38.1",
143
- "create-vxrn": "1.2.53",
148
+ "create-vxrn": "1.2.55",
144
149
  "escape-string-regexp": "^5.0.0",
145
150
  "expo-linking": "~8.0.8",
146
151
  "expo-modules-core": "~3.0.24",
@@ -166,7 +171,7 @@
166
171
  "vite": "^7.1.12",
167
172
  "vite-plugin-barrel": "^0.4.1",
168
173
  "vite-tsconfig-paths": "^5.1.4",
169
- "vxrn": "1.2.53",
174
+ "vxrn": "1.2.55",
170
175
  "ws": "^8.18.0",
171
176
  "xxhashjs": "^0.2.2"
172
177
  },
@@ -174,11 +179,15 @@
174
179
  "@react-navigation/native": "~7.1.0",
175
180
  "react-native": "*",
176
181
  "react-native-safe-area-context": "~5.6.1",
177
- "react-native-screens": "~4.16.0"
182
+ "react-native-screens": "~4.16.0",
183
+ "sharp": ">=0.33.0"
178
184
  },
179
185
  "peerDependenciesMeta": {
180
186
  "react-native": {
181
187
  "optional": true
188
+ },
189
+ "sharp": {
190
+ "optional": true
182
191
  }
183
192
  },
184
193
  "devDependencies": {
package/src/cli/build.ts CHANGED
@@ -17,6 +17,7 @@ import * as constants from '../constants'
17
17
  import { setServerGlobals } from '../server/setServerGlobals'
18
18
  import { getPathnameFromFilePath } from '../utils/getPathnameFromFilePath'
19
19
  import { getRouterRootFromOneOptions } from '../utils/getRouterRootFromOneOptions'
20
+ import { isRolldown } from '../utils/isRolldown'
20
21
  import { toAbsolute } from '../utils/toAbsolute'
21
22
  import { buildVercelOutputDirectory } from '../vercel/build/buildVercelOutputDirectory'
22
23
  import { getManifest } from '../vite/getManifest'
@@ -27,7 +28,6 @@ import { buildPage } from './buildPage'
27
28
  import { checkNodeVersion } from './checkNodeVersion'
28
29
  import { generateSitemap, type RouteSitemapData } from './generateSitemap'
29
30
  import { labelProcess } from './label-process'
30
- import { isRolldown } from '../utils/isRolldown'
31
31
 
32
32
  const { ensureDir, writeJSON } = FSExtra
33
33
 
@@ -616,7 +616,7 @@ export async function build(args: {
616
616
  } = route
617
617
 
618
618
  routeToBuildInfo[route.routeFile] = rest
619
- for (let p of getCleanPaths([route.path, route.cleanPath])) {
619
+ for (const p of getCleanPaths([route.path, route.cleanPath])) {
620
620
  pathToRoute[p] = route.routeFile
621
621
  }
622
622
  preloads[route.preloadPath] = true
@@ -675,7 +675,7 @@ export async function build(args: {
675
675
  console.info(`\n 📄 generated sitemap.xml (${sitemapData.length} URLs)\n`)
676
676
  }
677
677
 
678
- let postBuildLogs: string[] = []
678
+ const postBuildLogs: string[] = []
679
679
 
680
680
  const platform = oneOptions.web?.deploy
681
681
 
@@ -685,6 +685,21 @@ export async function build(args: {
685
685
 
686
686
  switch (platform) {
687
687
  case 'vercel': {
688
+ // Check for cleanUrls in vercel.json - required for SSG direct URL access
689
+ const vercelJsonPath = join(options.root, 'vercel.json')
690
+ if (FSExtra.existsSync(vercelJsonPath)) {
691
+ try {
692
+ const vercelConfig = JSON.parse(FSExtra.readFileSync(vercelJsonPath, 'utf-8'))
693
+ if (!vercelConfig.cleanUrls) {
694
+ console.warn(`\n ⚠️ Warning: Your vercel.json is missing "cleanUrls": true`)
695
+ console.warn(` Without this, direct navigation to SSG pages will 404.`)
696
+ console.warn(` Add "cleanUrls": true to your vercel.json to fix this.\n`)
697
+ }
698
+ } catch {
699
+ // ignore parse errors
700
+ }
701
+ }
702
+
688
703
  await buildVercelOutputDirectory({
689
704
  apiOutput,
690
705
  buildInfoForWriting,
@@ -2,7 +2,7 @@ import { join } from 'node:path'
2
2
  import FSExtra from 'fs-extra'
3
3
  import * as constants from '../constants'
4
4
  import type { LoaderProps, RenderApp } from '../types'
5
- import { getLoaderPath, getPreloadPath, getPreloadCSSPath } from '../utils/cleanUrl'
5
+ import { getLoaderPath, getPreloadCSSPath, getPreloadPath } from '../utils/cleanUrl'
6
6
  import { isResponse } from '../utils/isResponse'
7
7
  import { toAbsolute } from '../utils/toAbsolute'
8
8
  import { replaceLoader } from '../vite/replaceLoader'
@@ -1,6 +1,6 @@
1
- import { describe, expect, it, beforeEach, afterEach } from 'vitest'
2
- import { generateSitemap, type RouteSitemapData } from './generateSitemap'
1
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest'
3
2
  import type { One } from '../vite/types'
3
+ import { generateSitemap, type RouteSitemapData } from './generateSitemap'
4
4
 
5
5
  describe('generateSitemap', () => {
6
6
  let originalEnv: string | undefined
@@ -10,7 +10,7 @@ LogBox.ignoreLogs([/Sending .* with no listeners registered/])
10
10
 
11
11
  export function createApp(options: CreateAppProps): void {
12
12
  const App = () => {
13
- let contents = (
13
+ const contents = (
14
14
  <Root
15
15
  isClient
16
16
  flags={options.flags}
package/src/createApp.tsx CHANGED
@@ -3,8 +3,8 @@ import './setup'
3
3
  import { cloneElement } from 'react'
4
4
  import { AppRegistry } from 'react-native'
5
5
  import { resolveClientLoader } from './clientLoaderResolver'
6
- import { render } from './render'
7
6
  import { Root } from './Root'
7
+ import { render } from './render'
8
8
  import { registerPreloadedRoute } from './router/useViteRoutes'
9
9
  import type { RenderAppProps } from './types'
10
10
  import { getServerHeadInsertions } from './useServerHeadInsertion'
@@ -36,7 +36,7 @@ export function createApp(options: CreateAppProps) {
36
36
  ReactDOMServer.default?.renderToStaticMarkup
37
37
  const renderToString = serverRender.renderToString
38
38
 
39
- let {
39
+ const {
40
40
  loaderData,
41
41
  loaderProps,
42
42
  css,
@@ -88,7 +88,9 @@ export function createApp(options: CreateAppProps) {
88
88
  try {
89
89
  const extraHeadElements: React.ReactElement[] = []
90
90
 
91
- const styleTag = Application.getStyleElement({ nonce: process.env.ONE_NONCE })
91
+ const styleTag = Application.getStyleElement({
92
+ nonce: process.env.ONE_NONCE,
93
+ })
92
94
  if (styleTag) {
93
95
  extraHeadElements.push(styleTag)
94
96
  }
@@ -1,7 +1,7 @@
1
1
  type MaybeResponse = Response | void | null
2
2
  type RequestResponse = MaybeResponse | Promise<MaybeResponse>
3
3
 
4
- export interface MiddlewareContext {}
4
+ export type MiddlewareContext = {}
5
5
 
6
6
  export type Middleware = (props: {
7
7
  request: Request
@@ -1,5 +1,3 @@
1
1
  // Isolated to suppress deprecation warning for deep import
2
2
  // React Native 0.81+ discourages deep imports but doesn't provide official alternative yet
3
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
4
- // @ts-ignore - Types not exported from react-native
5
3
  export { default as getDevServer } from 'react-native/Libraries/Core/Devtools/getDevServer'
@@ -0,0 +1,104 @@
1
+ import { existsSync } from 'node:fs'
2
+ import { resolve } from 'node:path'
3
+
4
+ export type ImageData = {
5
+ src: string
6
+ width: number
7
+ height: number
8
+ blurDataURL: string
9
+ }
10
+
11
+ export type ImageMeta = {
12
+ width: number
13
+ height: number
14
+ blurDataURL: string
15
+ }
16
+
17
+ let sharpWarned = false
18
+
19
+ export async function getSharp(): Promise<typeof import('sharp') | null> {
20
+ try {
21
+ const sharpModule = await import('sharp')
22
+ return (sharpModule as any).default || sharpModule
23
+ } catch (e) {
24
+ if (!sharpWarned) {
25
+ sharpWarned = true
26
+ console.warn(`\n[one] To use getImageData, install sharp:\n\n npm install sharp\n`)
27
+ }
28
+ return null
29
+ }
30
+ }
31
+
32
+ /**
33
+ * Process an image file and return its metadata.
34
+ * Internal helper used by both getImageData and imageDataPlugin.
35
+ */
36
+ export async function processImageMeta(filePath: string): Promise<ImageMeta | null> {
37
+ const sharp = await getSharp()
38
+ if (!sharp) {
39
+ return null
40
+ }
41
+
42
+ try {
43
+ const image = sharp(filePath)
44
+ const metadata = await image.metadata()
45
+ const { width = 0, height = 0 } = metadata
46
+
47
+ // Generate blur placeholder (10px wide, maintains aspect ratio)
48
+ const blurBuffer = await image.resize(10).blur(1).jpeg({ quality: 40 }).toBuffer()
49
+ const blurDataURL = `data:image/jpeg;base64,${blurBuffer.toString('base64')}`
50
+
51
+ return { width, height, blurDataURL }
52
+ } catch (e) {
53
+ console.warn(`[one] processImageMeta: Failed to process ${filePath}:`, e)
54
+ return null
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Get image metadata (dimensions and blur placeholder) for an image file.
60
+ *
61
+ * @param filePath - Path to the image file. Paths starting with "/" are resolved
62
+ * relative to ./public (e.g., "/images/hero.jpg" -> "./public/images/hero.jpg")
63
+ * @returns ImageData with src, width, height, and blurDataURL
64
+ *
65
+ * @example
66
+ * // From a loader or build script
67
+ * const data = await getImageData('/images/hero.jpg')
68
+ * // { src: '/images/hero.jpg', width: 1920, height: 1080, blurDataURL: '...' }
69
+ *
70
+ * // Or with a relative path
71
+ * const data = await getImageData('../public/images/hero.jpg')
72
+ */
73
+ export async function getImageData(filePath: string): Promise<ImageData> {
74
+ let resolvedPath: string
75
+ let src: string
76
+
77
+ if (filePath.startsWith('/')) {
78
+ // Paths starting with / are web paths, resolve from ./public
79
+ resolvedPath = resolve('./public', filePath.slice(1))
80
+ src = filePath
81
+ } else {
82
+ // Relative or absolute file paths
83
+ resolvedPath = resolve(filePath)
84
+ // Generate src by stripping leading ./ and ensuring starts with /
85
+ src = filePath.replace(/^\.\.?\//, '').replace(/^public\//, '')
86
+ if (!src.startsWith('/')) {
87
+ src = '/' + src
88
+ }
89
+ }
90
+
91
+ const defaultResult: ImageData = { src, width: 0, height: 0, blurDataURL: '' }
92
+
93
+ if (!existsSync(resolvedPath)) {
94
+ console.warn(`[one] getImageData: File not found: ${resolvedPath}`)
95
+ return defaultResult
96
+ }
97
+
98
+ const meta = await processImageMeta(resolvedPath)
99
+ if (!meta) {
100
+ return defaultResult
101
+ }
102
+
103
+ return { src, ...meta }
104
+ }
package/src/image.ts ADDED
@@ -0,0 +1 @@
1
+ export { getImageData, type ImageData, type ImageMeta } from './image/getImageData'
package/src/index.ts CHANGED
@@ -2,6 +2,24 @@ export { createApp } from './createApp'
2
2
 
3
3
  export type { One, OneRouter } from './interfaces/router'
4
4
 
5
+ /**
6
+ * Image data returned by ?imagedata imports.
7
+ * Install `sharp` to enable this feature: `npm install sharp`
8
+ *
9
+ * NOTE: This interface is also declared in types/env.d.ts for Vite module augmentation.
10
+ * Keep both definitions in sync.
11
+ */
12
+ export interface ImageData {
13
+ /** URL path to the image */
14
+ src: string
15
+ /** Image width in pixels */
16
+ width: number
17
+ /** Image height in pixels */
18
+ height: number
19
+ /** Base64 blur placeholder (10px wide) */
20
+ blurDataURL: string
21
+ }
22
+
5
23
  import type { OneRouter } from './interfaces/router'
6
24
 
7
25
  // if not overridden keep it as just string
@@ -70,13 +88,14 @@ export { registerPreloadedRoute } from './router/useViteRoutes'
70
88
  export type { Endpoint, LoaderProps } from './types'
71
89
  // React Navigation
72
90
  export { useFocusEffect } from './useFocusEffect'
73
- export { useLoader, useLoaderState } from './useLoader'
91
+ export { refetchLoader, useLoader, useLoaderState } from './useLoader'
74
92
  export {
75
93
  type ServerHeadInsertionCallback,
76
94
  useServerHeadInsertion,
77
95
  } from './useServerHeadInsertion'
78
96
  export { isResponse } from './utils/isResponse'
79
97
  export { redirect } from './utils/redirect'
98
+ export { watchFile } from './utils/watchFile'
80
99
  export { ErrorBoundary } from './views/ErrorBoundary'
81
100
  export { LoadProgressBar } from './views/LoadProgressBar'
82
101
  export { Navigator, Slot } from './views/Navigator'
@@ -40,13 +40,17 @@ export namespace OneRouter {
40
40
  : string
41
41
 
42
42
  type DynamicRoutes<T extends string> =
43
- __routes<T> extends { DynamicRoutes: any }
43
+ __routes<T> extends {
44
+ DynamicRoutes: any
45
+ }
44
46
  ? T extends __routes<infer _>['DynamicRoutes']
45
47
  ? T
46
48
  : never
47
49
  : string
48
50
 
49
- export type DynamicRouteTemplate = __routes extends { DynamicRouteTemplate: string }
51
+ export type DynamicRouteTemplate = __routes extends {
52
+ DynamicRouteTemplate: string
53
+ }
50
54
  ? __routes['DynamicRouteTemplate']
51
55
  : string
52
56
 
@@ -1,7 +1,7 @@
1
- import type { metroPlugin } from '@vxrn/vite-plugin-metro'
2
- import mm from 'micromatch'
3
1
  import module from 'node:module'
4
2
  import path from 'node:path'
3
+ import type { metroPlugin } from '@vxrn/vite-plugin-metro'
4
+ import mm from 'micromatch'
5
5
  import tsconfigPaths from 'tsconfig-paths'
6
6
  import {
7
7
  API_ROUTE_GLOB_PATTERN,
@@ -4,7 +4,11 @@ import type { One } from '../vite/types'
4
4
  import { getContextKey } from './matchers'
5
5
  import { RouteInfoContextProvider } from './RouteInfoContext'
6
6
 
7
- export type DynamicConvention = { name: string; deep: boolean; notFound?: boolean }
7
+ export type DynamicConvention = {
8
+ name: string
9
+ deep: boolean
10
+ notFound?: boolean
11
+ }
8
12
 
9
13
  export type LoadedRoute = {
10
14
  ErrorBoundary?: React.ComponentType<ErrorBoundaryProps>
@@ -550,7 +550,7 @@ function getLayoutNode(node: RouteNode, options: Options) {
550
550
  const childMatchingGroup = node.children.find((child) => {
551
551
  return child.route.replace(/\/index$/, '') === groupName
552
552
  })
553
- let initialRouteName = childMatchingGroup?.route
553
+ const initialRouteName = childMatchingGroup?.route
554
554
  // const loaded = node.loadRoute()
555
555
  // if (loaded?.unstable_settings) {
556
556
  // // Allow unstable_settings={ initialRouteName: '...' } to override the default initial route name.
@@ -46,8 +46,14 @@ describe(matchDynamicName, () => {
46
46
  it(`matches`, () => {
47
47
  expect(matchDynamicName('[[...foobar]]')).toEqual(undefined)
48
48
  expect(matchDynamicName('[[foobar]]')).toEqual(undefined)
49
- expect(matchDynamicName('[...foobar]')).toEqual({ name: 'foobar', deep: true })
50
- expect(matchDynamicName('[foobar]')).toEqual({ name: 'foobar', deep: false })
49
+ expect(matchDynamicName('[...foobar]')).toEqual({
50
+ name: 'foobar',
51
+ deep: true,
52
+ })
53
+ expect(matchDynamicName('[foobar]')).toEqual({
54
+ name: 'foobar',
55
+ deep: false,
56
+ })
51
57
  expect(matchDynamicName('foobar')).toEqual(undefined)
52
58
  })
53
59
  })
@@ -21,7 +21,7 @@ import type { OneRouter } from '../interfaces/router'
21
21
  import { resolveHref } from '../link/href'
22
22
  import { resolve } from '../link/path'
23
23
  import { assertIsReady } from '../utils/assertIsReady'
24
- import { getLoaderPath, getPreloadPath, getPreloadCSSPath } from '../utils/cleanUrl'
24
+ import { getLoaderPath, getPreloadCSSPath, getPreloadPath } from '../utils/cleanUrl'
25
25
  import { dynamicImport } from '../utils/dynamicImport'
26
26
  import { shouldLinkExternally } from '../utils/url'
27
27
  import type { One } from '../vite/types'
@@ -457,7 +457,11 @@ function routeToScreen(
457
457
  )
458
458
  }
459
459
 
460
- type RouteErrorBoundaryState = { hasError: boolean; error: any; errorInfo: any }
460
+ type RouteErrorBoundaryState = {
461
+ hasError: boolean
462
+ error: any
463
+ errorInfo: any
464
+ }
461
465
 
462
466
  const ROUTE_ERROR_BOUNDARY_INITIAL_STATE = {
463
467
  hasError: false,
@@ -530,12 +534,24 @@ class RouteErrorBoundary extends React.Component<
530
534
  </TouchableOpacity>
531
535
  <ScrollView contentContainerStyle={{ gap: 12 }}>
532
536
  {error instanceof Error ? (
533
- <Text style={{ color: 'white', fontSize: 12, fontFamily: 'monospace' }}>
537
+ <Text
538
+ style={{
539
+ color: 'white',
540
+ fontSize: 12,
541
+ fontFamily: 'monospace',
542
+ }}
543
+ >
534
544
  {error.stack}
535
545
  </Text>
536
546
  ) : null}
537
547
  {errorInfo?.componentStack ? (
538
- <Text style={{ color: 'white', fontSize: 12, fontFamily: 'monospace' }}>
548
+ <Text
549
+ style={{
550
+ color: 'white',
551
+ fontSize: 12,
552
+ fontFamily: 'monospace',
553
+ }}
554
+ >
539
555
  Component Stack: {errorInfo.componentStack}
540
556
  </Text>
541
557
  ) : null}
@@ -28,7 +28,7 @@ export function useViteRoutes(
28
28
  }
29
29
 
30
30
  // store preloaded modules so resolve() can use them synchronously
31
- let preloadedModules: Record<string, any> = {}
31
+ const preloadedModules: Record<string, any> = {}
32
32
 
33
33
  export function registerPreloadedRoute(key: string, module: any): void {
34
34
  preloadedModules[key] = module
@@ -5,7 +5,7 @@ import { ensureExists } from './utils/ensureExists'
5
5
  import type { One } from './vite/types'
6
6
 
7
7
  // Re-export static HTML fetcher utilities for worker use
8
- export { setFetchStaticHtml, getFetchStaticHtml } from './server/staticHtmlFetcher'
8
+ export { getFetchStaticHtml, setFetchStaticHtml } from './server/staticHtmlFetcher'
9
9
 
10
10
  /**
11
11
  * Lazy import functions for route modules.
@@ -237,7 +237,9 @@ function getPathMeta(route: string) {
237
237
  cleanedKey = getSafeRouteKey()
238
238
  }
239
239
 
240
- urlPathParts.push({ content: repeat ? '/*' : `/:${name}${optional ? '?' : ''}` })
240
+ urlPathParts.push({
241
+ content: repeat ? '/*' : `/:${name}${optional ? '?' : ''}`,
242
+ })
241
243
  routeKeys[cleanedKey] = name
242
244
 
243
245
  return repeat
@@ -1,7 +1,7 @@
1
- import type { Hono, MiddlewareHandler } from 'hono'
2
- import type { BlankEnv } from 'hono/types'
3
1
  import { readFile } from 'node:fs/promises'
4
2
  import { extname, join, resolve } from 'node:path'
3
+ import type { Hono, MiddlewareHandler } from 'hono'
4
+ import type { BlankEnv } from 'hono/types'
5
5
  import {
6
6
  CSS_PRELOAD_JS_POSTFIX,
7
7
  LOADER_JS_POSTFIX_UNCACHED,
@@ -232,7 +232,10 @@ url: ${url}`)
232
232
  if (html) {
233
233
  const headers = new Headers()
234
234
  headers.set('content-type', 'text/html')
235
- return new Response(html, { headers, status: route.isNotFound ? 404 : 200 })
235
+ return new Response(html, {
236
+ headers,
237
+ status: route.isNotFound ? 404 : 200,
238
+ })
236
239
  }
237
240
  }
238
241
  }
@@ -256,7 +259,9 @@ url: ${url}`)
256
259
  // If there's no matching not-found or dynamic route, it's very likely that One won't handle it and will fallback to VxRN serving the static asset so it will also work.
257
260
  // Note: serveStaticAssets is optional - workers handle static assets via platform config
258
261
  if (options?.serveStaticAssets) {
259
- const staticAssetResponse = await options.serveStaticAssets({ context })
262
+ const staticAssetResponse = await options.serveStaticAssets({
263
+ context,
264
+ })
260
265
  if (staticAssetResponse) {
261
266
  return await runMiddlewares(
262
267
  requestHandlers,
@@ -2,12 +2,12 @@ import { writeFile } from 'node:fs/promises'
2
2
  import { dirname, join } from 'node:path'
3
3
  import FSExtra from 'fs-extra'
4
4
  import micromatch from 'micromatch'
5
+ import { removeSupportedExtensions } from '../router/matchers'
5
6
  import { globbedRoutesToRouteContext } from '../router/useViteRoutes'
6
7
  import { globDir } from '../utils/globDir'
7
8
  import type { One } from '../vite/types'
8
9
  import { getTypedRoutesDeclarationFile } from './getTypedRoutesDeclarationFile'
9
- import { injectRouteHelpers, type InjectMode } from './injectRouteHelpers'
10
- import { removeSupportedExtensions } from '../router/matchers'
10
+ import { type InjectMode, injectRouteHelpers } from './injectRouteHelpers'
11
11
 
12
12
  export async function generateRouteTypes(
13
13
  outFile: string,
@@ -1,5 +1,5 @@
1
- import { readFile, writeFile } from 'node:fs/promises'
2
1
  import { existsSync } from 'node:fs'
2
+ import { readFile, writeFile } from 'node:fs/promises'
3
3
 
4
4
  export type InjectMode = 'type' | 'runtime'
5
5
 
package/src/ui/Slot.tsx CHANGED
@@ -1,10 +1,10 @@
1
1
  import { Slot as RUISlot } from '@radix-ui/react-slot'
2
2
  import {
3
- forwardRef,
4
- useMemo,
5
- type ForwardRefExoticComponent,
6
3
  type Component,
4
+ type ForwardRefExoticComponent,
5
+ forwardRef,
7
6
  type RefAttributes,
7
+ useMemo,
8
8
  } from 'react'
9
9
  import { StyleSheet, type ViewProps } from 'react-native'
10
10
 
@@ -1,5 +1,5 @@
1
- import type { ReactElement, ComponentProps } from 'react'
2
- import { View, StyleSheet, type ViewProps } from 'react-native'
1
+ import type { ComponentProps, ReactElement } from 'react'
2
+ import { StyleSheet, View, type ViewProps } from 'react-native'
3
3
 
4
4
  import { ViewSlot } from './common'
5
5
 
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  type CommonNavigationAction,
3
3
  type ParamListBase,
4
+ type TabActionType as RNTabActionType,
4
5
  TabRouter as RNTabRouter,
6
+ type TabRouterOptions as RNTabRouterOptions,
5
7
  type Router,
6
- type TabActionType as RNTabActionType,
7
8
  type TabNavigationState,
8
- type TabRouterOptions as RNTabRouterOptions,
9
9
  } from '@react-navigation/native'
10
10
 
11
11
  import type { TriggerMap } from './common'
@@ -1,10 +1,9 @@
1
1
  import { type ComponentProps, type ReactElement, useState } from 'react'
2
2
  import { Platform, StyleSheet } from 'react-native'
3
- import { ScreenContainer, Screen } from 'react-native-screens'
4
-
3
+ import { Screen, ScreenContainer } from 'react-native-screens'
4
+ import { useNavigatorContext } from '../views/Navigator'
5
5
  import { TabContext, type TabsDescriptor } from './TabContext'
6
6
  import type { TabListProps } from './TabList'
7
- import { useNavigatorContext } from '../views/Navigator'
8
7
 
9
8
  export type TabSlotProps = ComponentProps<typeof ScreenContainer> & {
10
9
  /**