one 1.2.57 → 1.2.59

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 (612) hide show
  1. package/dist/cjs/cli/build.cjs +3 -1
  2. package/dist/cjs/cli/build.js +1 -1
  3. package/dist/cjs/cli/build.js.map +1 -1
  4. package/dist/cjs/cli/build.native.js +13 -12
  5. package/dist/cjs/cli/build.native.js.map +1 -1
  6. package/dist/cjs/cli/buildPage.cjs +1 -1
  7. package/dist/cjs/cli/buildPage.js +1 -1
  8. package/dist/cjs/cli/buildPage.native.js +2 -2
  9. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  10. package/dist/cjs/cli/dev.cjs +4 -4
  11. package/dist/cjs/cli/dev.js +4 -4
  12. package/dist/cjs/cli/dev.js.map +1 -1
  13. package/dist/cjs/cli/dev.native.js +4 -4
  14. package/dist/cjs/cli/dev.native.js.map +1 -1
  15. package/dist/cjs/cli/generateRoutes.cjs +1 -1
  16. package/dist/cjs/cli/generateRoutes.js +1 -1
  17. package/dist/cjs/cli/generateRoutes.native.js +1 -1
  18. package/dist/cjs/cli/generateRoutes.native.js.map +1 -1
  19. package/dist/cjs/cli/generateSitemap.native.js +7 -7
  20. package/dist/cjs/cli/generateSitemap.native.js.map +1 -1
  21. package/dist/cjs/config.native.js +2 -2
  22. package/dist/cjs/config.native.js.map +1 -1
  23. package/dist/cjs/constants.native.js +1 -1
  24. package/dist/cjs/constants.native.js.map +1 -1
  25. package/dist/cjs/createApp.cjs +2 -1
  26. package/dist/cjs/createApp.js +2 -2
  27. package/dist/cjs/createApp.js.map +1 -1
  28. package/dist/cjs/createHandleRequest.test.js +3 -1
  29. package/dist/cjs/createHandleRequest.test.js.map +1 -1
  30. package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
  31. package/dist/cjs/devtools/registry.cjs +30 -0
  32. package/dist/cjs/devtools/registry.js +25 -0
  33. package/dist/cjs/devtools/registry.js.map +6 -0
  34. package/dist/cjs/devtools/registry.native.js +33 -0
  35. package/dist/cjs/devtools/registry.native.js.map +1 -0
  36. package/dist/cjs/fork/NavigationContainer.native.js +5 -5
  37. package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
  38. package/dist/cjs/fork/createMemoryHistory.cjs +20 -9
  39. package/dist/cjs/fork/createMemoryHistory.js +22 -4
  40. package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
  41. package/dist/cjs/fork/createMemoryHistory.native.js +22 -11
  42. package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
  43. package/dist/cjs/fork/extractPathFromURL.native.js +8 -8
  44. package/dist/cjs/fork/extractPathFromURL.native.js.map +1 -1
  45. package/dist/cjs/fork/findFocusedRoute.native.js +2 -3
  46. package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
  47. package/dist/cjs/fork/getPathFromState-mods.native.js +2 -3
  48. package/dist/cjs/fork/getPathFromState-mods.native.js.map +1 -1
  49. package/dist/cjs/fork/getStateFromPath-mods.native.js +3 -3
  50. package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
  51. package/dist/cjs/fork/useLinking.cjs +11 -5
  52. package/dist/cjs/fork/useLinking.js +6 -6
  53. package/dist/cjs/fork/useLinking.js.map +1 -1
  54. package/dist/cjs/fork/useLinking.native.js.map +1 -1
  55. package/dist/cjs/head/url.native.js +2 -3
  56. package/dist/cjs/head/url.native.js.map +1 -1
  57. package/dist/cjs/hooks.js.map +1 -1
  58. package/dist/cjs/hooks.native.js.map +1 -1
  59. package/dist/cjs/index.cjs +17 -1
  60. package/dist/cjs/index.js +12 -2
  61. package/dist/cjs/index.js.map +1 -1
  62. package/dist/cjs/index.native.js +17 -1
  63. package/dist/cjs/index.native.js.map +1 -1
  64. package/dist/cjs/layouts/withLayoutContext.cjs +34 -15
  65. package/dist/cjs/layouts/withLayoutContext.js +29 -13
  66. package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
  67. package/dist/cjs/layouts/withLayoutContext.native.js +42 -19
  68. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  69. package/dist/cjs/link/Link.cjs +5 -2
  70. package/dist/cjs/link/Link.js +3 -2
  71. package/dist/cjs/link/Link.js.map +1 -1
  72. package/dist/cjs/link/Link.native.js +6 -1
  73. package/dist/cjs/link/Link.native.js.map +1 -1
  74. package/dist/cjs/link/href.native.js +2 -2
  75. package/dist/cjs/link/href.native.js.map +1 -1
  76. package/dist/cjs/link/useLinkTo.cjs +11 -3
  77. package/dist/cjs/link/useLinkTo.js +6 -3
  78. package/dist/cjs/link/useLinkTo.js.map +1 -1
  79. package/dist/cjs/link/useLinkTo.native.js +11 -3
  80. package/dist/cjs/link/useLinkTo.native.js.map +1 -1
  81. package/dist/cjs/router/Route.js.map +1 -1
  82. package/dist/cjs/router/Route.native.js.map +1 -1
  83. package/dist/cjs/router/findRouteNode.cjs +70 -0
  84. package/dist/cjs/router/findRouteNode.js +72 -0
  85. package/dist/cjs/router/findRouteNode.js.map +6 -0
  86. package/dist/cjs/router/findRouteNode.native.js +104 -0
  87. package/dist/cjs/router/findRouteNode.native.js.map +1 -0
  88. package/dist/cjs/router/getRoutes.native.js +3 -3
  89. package/dist/cjs/router/getRoutes.native.js.map +1 -1
  90. package/dist/cjs/router/router.cjs +160 -11
  91. package/dist/cjs/router/router.js +142 -7
  92. package/dist/cjs/router/router.js.map +2 -2
  93. package/dist/cjs/router/router.native.js +247 -67
  94. package/dist/cjs/router/router.native.js.map +1 -1
  95. package/dist/cjs/router/useNavigation.js.map +1 -1
  96. package/dist/cjs/router/useNavigation.native.js.map +1 -1
  97. package/dist/cjs/router/useScreens.cjs +1 -1
  98. package/dist/cjs/router/useScreens.js +1 -1
  99. package/dist/cjs/router/useScreens.js.map +1 -1
  100. package/dist/cjs/router/useScreens.native.js +6 -3
  101. package/dist/cjs/router/useScreens.native.js.map +1 -1
  102. package/dist/cjs/router/utils/getNavigateAction.native.js +2 -4
  103. package/dist/cjs/router/utils/getNavigateAction.native.js.map +1 -1
  104. package/dist/cjs/server/oneServe.js.map +1 -1
  105. package/dist/cjs/server/oneServe.native.js +4 -4
  106. package/dist/cjs/server/oneServe.native.js.map +1 -1
  107. package/dist/cjs/server/setupBuildOptions.native.js +1 -1
  108. package/dist/cjs/server/setupBuildOptions.native.js.map +1 -1
  109. package/dist/cjs/ui/common.native.js +6 -5
  110. package/dist/cjs/ui/common.native.js.map +1 -1
  111. package/dist/cjs/useBlocker.cjs +158 -0
  112. package/dist/cjs/useBlocker.js +145 -0
  113. package/dist/cjs/useBlocker.js.map +6 -0
  114. package/dist/cjs/useBlocker.native.js +89 -0
  115. package/dist/cjs/useBlocker.native.js.map +1 -0
  116. package/dist/cjs/useFocusEffect.cjs +2 -2
  117. package/dist/cjs/useFocusEffect.js +2 -2
  118. package/dist/cjs/useFocusEffect.js.map +1 -1
  119. package/dist/cjs/useFocusEffect.native.js +2 -2
  120. package/dist/cjs/useFocusEffect.native.js.map +1 -1
  121. package/dist/cjs/useLoader.cjs +69 -3
  122. package/dist/cjs/useLoader.js +57 -4
  123. package/dist/cjs/useLoader.js.map +2 -2
  124. package/dist/cjs/useLoader.native.js +90 -6
  125. package/dist/cjs/useLoader.native.js.map +1 -1
  126. package/dist/cjs/useScrollGroup.cjs +37 -0
  127. package/dist/cjs/useScrollGroup.js +30 -0
  128. package/dist/cjs/useScrollGroup.js.map +6 -0
  129. package/dist/cjs/useScrollGroup.native.js +29 -0
  130. package/dist/cjs/useScrollGroup.native.js.map +1 -0
  131. package/dist/cjs/validateParams.cjs +80 -0
  132. package/dist/cjs/validateParams.js +84 -0
  133. package/dist/cjs/validateParams.js.map +6 -0
  134. package/dist/cjs/validateParams.native.js +180 -0
  135. package/dist/cjs/validateParams.native.js.map +1 -0
  136. package/dist/cjs/validateSearch.cjs +104 -0
  137. package/dist/cjs/validateSearch.js +99 -0
  138. package/dist/cjs/validateSearch.js.map +6 -0
  139. package/dist/cjs/validateSearch.native.js +202 -0
  140. package/dist/cjs/validateSearch.native.js.map +1 -0
  141. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js +2 -2
  142. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  143. package/dist/cjs/views/ErrorBoundary.cjs +293 -10
  144. package/dist/cjs/views/ErrorBoundary.js +328 -8
  145. package/dist/cjs/views/ErrorBoundary.js.map +2 -2
  146. package/dist/cjs/views/ErrorBoundary.native.js +159 -4
  147. package/dist/cjs/views/ErrorBoundary.native.js.map +1 -1
  148. package/dist/cjs/views/Navigator.cjs +10 -3
  149. package/dist/cjs/views/Navigator.js +11 -3
  150. package/dist/cjs/views/Navigator.js.map +1 -1
  151. package/dist/cjs/views/Navigator.native.js +15 -6
  152. package/dist/cjs/views/Navigator.native.js.map +1 -1
  153. package/dist/cjs/views/Protected.cjs +36 -0
  154. package/dist/cjs/views/Protected.js +27 -0
  155. package/dist/cjs/views/Protected.js.map +6 -0
  156. package/dist/cjs/views/Protected.native.js +44 -0
  157. package/dist/cjs/views/Protected.native.js.map +1 -0
  158. package/dist/cjs/views/RootErrorBoundary.cjs +193 -8
  159. package/dist/cjs/views/RootErrorBoundary.js +213 -8
  160. package/dist/cjs/views/RootErrorBoundary.js.map +1 -1
  161. package/dist/cjs/views/RootErrorBoundary.native.js +192 -8
  162. package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
  163. package/dist/cjs/views/ScrollBehavior.cjs +49 -11
  164. package/dist/cjs/views/ScrollBehavior.js +47 -11
  165. package/dist/cjs/views/ScrollBehavior.js.map +1 -1
  166. package/dist/cjs/views/ScrollBehavior.native.js +68 -10
  167. package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
  168. package/dist/cjs/views/SourceInspector.cjs +28 -0
  169. package/dist/cjs/views/SourceInspector.js +23 -0
  170. package/dist/cjs/views/SourceInspector.js.map +6 -0
  171. package/dist/cjs/views/SourceInspector.native.js +32 -0
  172. package/dist/cjs/views/SourceInspector.native.js.map +1 -0
  173. package/dist/cjs/views/Try.cjs +40 -7
  174. package/dist/cjs/views/Try.js +38 -4
  175. package/dist/cjs/views/Try.js.map +1 -1
  176. package/dist/cjs/views/Try.native.js +42 -7
  177. package/dist/cjs/views/Try.native.js.map +1 -1
  178. package/dist/cjs/vite/DevHead.cjs +797 -43
  179. package/dist/cjs/vite/DevHead.js +802 -51
  180. package/dist/cjs/vite/DevHead.js.map +1 -1
  181. package/dist/cjs/vite/DevHead.native.js +783 -1
  182. package/dist/cjs/vite/DevHead.native.js.map +1 -1
  183. package/dist/cjs/vite/one.cjs +7 -1
  184. package/dist/cjs/vite/one.js +7 -2
  185. package/dist/cjs/vite/one.js.map +1 -1
  186. package/dist/cjs/vite/one.native.js +17 -7
  187. package/dist/cjs/vite/one.native.js.map +1 -1
  188. package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +44 -4
  189. package/dist/cjs/vite/plugins/SSRCSSPlugin.js +48 -4
  190. package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
  191. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +62 -5
  192. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  193. package/dist/cjs/vite/plugins/clientTreeShakePlugin.cjs +34 -15
  194. package/dist/cjs/vite/plugins/clientTreeShakePlugin.js +24 -3
  195. package/dist/cjs/vite/plugins/clientTreeShakePlugin.js.map +1 -1
  196. package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js +55 -19
  197. package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
  198. package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.cjs +129 -0
  199. package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.js +129 -0
  200. package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.js.map +6 -0
  201. package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.native.js +140 -0
  202. package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.native.js.map +1 -0
  203. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +6 -3
  204. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  205. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +3 -3
  206. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  207. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +5 -1
  208. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js +11 -6
  209. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  210. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +1 -0
  211. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  212. package/dist/cjs/vite/plugins/sourceInspectorPlugin.cjs +155 -0
  213. package/dist/cjs/vite/plugins/sourceInspectorPlugin.js +148 -0
  214. package/dist/cjs/vite/plugins/sourceInspectorPlugin.js.map +6 -0
  215. package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js +231 -0
  216. package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js.map +1 -0
  217. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +25 -6
  218. package/dist/cjs/vite/plugins/virtualEntryPlugin.js +16 -6
  219. package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
  220. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +26 -7
  221. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  222. package/dist/esm/cli/build.js +1 -1
  223. package/dist/esm/cli/build.js.map +1 -1
  224. package/dist/esm/cli/build.mjs +3 -1
  225. package/dist/esm/cli/build.mjs.map +1 -1
  226. package/dist/esm/cli/build.native.js +13 -12
  227. package/dist/esm/cli/build.native.js.map +1 -1
  228. package/dist/esm/cli/buildPage.js +1 -1
  229. package/dist/esm/cli/buildPage.mjs +1 -1
  230. package/dist/esm/cli/buildPage.mjs.map +1 -1
  231. package/dist/esm/cli/buildPage.native.js +2 -2
  232. package/dist/esm/cli/buildPage.native.js.map +1 -1
  233. package/dist/esm/cli/dev.js +4 -4
  234. package/dist/esm/cli/dev.js.map +1 -1
  235. package/dist/esm/cli/dev.mjs +4 -4
  236. package/dist/esm/cli/dev.mjs.map +1 -1
  237. package/dist/esm/cli/dev.native.js +4 -4
  238. package/dist/esm/cli/dev.native.js.map +1 -1
  239. package/dist/esm/cli/generateRoutes.js +1 -1
  240. package/dist/esm/cli/generateRoutes.mjs +1 -1
  241. package/dist/esm/cli/generateRoutes.mjs.map +1 -1
  242. package/dist/esm/cli/generateRoutes.native.js +1 -1
  243. package/dist/esm/cli/generateRoutes.native.js.map +1 -1
  244. package/dist/esm/cli/generateSitemap.native.js +7 -7
  245. package/dist/esm/cli/generateSitemap.native.js.map +1 -1
  246. package/dist/esm/config.native.js +2 -2
  247. package/dist/esm/config.native.js.map +1 -1
  248. package/dist/esm/constants.native.js +2 -2
  249. package/dist/esm/constants.native.js.map +1 -1
  250. package/dist/esm/createApp.js +2 -2
  251. package/dist/esm/createApp.js.map +1 -1
  252. package/dist/esm/createApp.mjs +2 -1
  253. package/dist/esm/createApp.mjs.map +1 -1
  254. package/dist/esm/createHandleRequest.test.js +3 -1
  255. package/dist/esm/createHandleRequest.test.js.map +1 -1
  256. package/dist/esm/createHandleRequest.test.mjs.map +1 -1
  257. package/dist/esm/createHandleRequest.test.native.js.map +1 -1
  258. package/dist/esm/devtools/registry.js +9 -0
  259. package/dist/esm/devtools/registry.js.map +6 -0
  260. package/dist/esm/devtools/registry.mjs +6 -0
  261. package/dist/esm/devtools/registry.mjs.map +1 -0
  262. package/dist/esm/devtools/registry.native.js +6 -0
  263. package/dist/esm/devtools/registry.native.js.map +1 -0
  264. package/dist/esm/fork/NavigationContainer.native.js +5 -5
  265. package/dist/esm/fork/NavigationContainer.native.js.map +1 -1
  266. package/dist/esm/fork/createMemoryHistory.js +22 -4
  267. package/dist/esm/fork/createMemoryHistory.js.map +1 -1
  268. package/dist/esm/fork/createMemoryHistory.mjs +20 -9
  269. package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
  270. package/dist/esm/fork/createMemoryHistory.native.js +22 -11
  271. package/dist/esm/fork/createMemoryHistory.native.js.map +1 -1
  272. package/dist/esm/fork/extractPathFromURL.native.js +8 -8
  273. package/dist/esm/fork/extractPathFromURL.native.js.map +1 -1
  274. package/dist/esm/fork/findFocusedRoute.native.js +2 -3
  275. package/dist/esm/fork/findFocusedRoute.native.js.map +1 -1
  276. package/dist/esm/fork/getPathFromState-mods.native.js +2 -3
  277. package/dist/esm/fork/getPathFromState-mods.native.js.map +1 -1
  278. package/dist/esm/fork/getStateFromPath-mods.native.js +3 -3
  279. package/dist/esm/fork/getStateFromPath-mods.native.js.map +1 -1
  280. package/dist/esm/fork/useLinking.js +6 -5
  281. package/dist/esm/fork/useLinking.js.map +1 -1
  282. package/dist/esm/fork/useLinking.mjs +11 -5
  283. package/dist/esm/fork/useLinking.mjs.map +1 -1
  284. package/dist/esm/fork/useLinking.native.js.map +1 -1
  285. package/dist/esm/head/url.native.js +2 -3
  286. package/dist/esm/head/url.native.js.map +1 -1
  287. package/dist/esm/hooks.js.map +1 -1
  288. package/dist/esm/hooks.mjs.map +1 -1
  289. package/dist/esm/hooks.native.js.map +1 -1
  290. package/dist/esm/index.js +30 -2
  291. package/dist/esm/index.js.map +1 -1
  292. package/dist/esm/index.mjs +8 -2
  293. package/dist/esm/index.mjs.map +1 -1
  294. package/dist/esm/index.native.js +8 -2
  295. package/dist/esm/index.native.js.map +1 -1
  296. package/dist/esm/layouts/withLayoutContext.js +30 -12
  297. package/dist/esm/layouts/withLayoutContext.js.map +1 -1
  298. package/dist/esm/layouts/withLayoutContext.mjs +34 -15
  299. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  300. package/dist/esm/layouts/withLayoutContext.native.js +42 -19
  301. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  302. package/dist/esm/link/Link.js +3 -2
  303. package/dist/esm/link/Link.js.map +1 -1
  304. package/dist/esm/link/Link.mjs +5 -2
  305. package/dist/esm/link/Link.mjs.map +1 -1
  306. package/dist/esm/link/Link.native.js +6 -1
  307. package/dist/esm/link/Link.native.js.map +1 -1
  308. package/dist/esm/link/href.native.js +2 -2
  309. package/dist/esm/link/href.native.js.map +1 -1
  310. package/dist/esm/link/useLinkTo.js +6 -3
  311. package/dist/esm/link/useLinkTo.js.map +1 -1
  312. package/dist/esm/link/useLinkTo.mjs +11 -3
  313. package/dist/esm/link/useLinkTo.mjs.map +1 -1
  314. package/dist/esm/link/useLinkTo.native.js +11 -3
  315. package/dist/esm/link/useLinkTo.native.js.map +1 -1
  316. package/dist/esm/router/Route.js.map +1 -1
  317. package/dist/esm/router/Route.mjs.map +1 -1
  318. package/dist/esm/router/Route.native.js.map +1 -1
  319. package/dist/esm/router/findRouteNode.js +56 -0
  320. package/dist/esm/router/findRouteNode.js.map +6 -0
  321. package/dist/esm/router/findRouteNode.mjs +44 -0
  322. package/dist/esm/router/findRouteNode.mjs.map +1 -0
  323. package/dist/esm/router/findRouteNode.native.js +75 -0
  324. package/dist/esm/router/findRouteNode.native.js.map +1 -0
  325. package/dist/esm/router/getRoutes.native.js +3 -3
  326. package/dist/esm/router/getRoutes.native.js.map +1 -1
  327. package/dist/esm/router/router.js +154 -6
  328. package/dist/esm/router/router.js.map +1 -1
  329. package/dist/esm/router/router.mjs +151 -10
  330. package/dist/esm/router/router.mjs.map +1 -1
  331. package/dist/esm/router/router.native.js +238 -66
  332. package/dist/esm/router/router.native.js.map +1 -1
  333. package/dist/esm/router/useNavigation.js.map +1 -1
  334. package/dist/esm/router/useNavigation.mjs.map +1 -1
  335. package/dist/esm/router/useNavigation.native.js.map +1 -1
  336. package/dist/esm/router/useScreens.js +1 -1
  337. package/dist/esm/router/useScreens.js.map +1 -1
  338. package/dist/esm/router/useScreens.mjs +1 -1
  339. package/dist/esm/router/useScreens.mjs.map +1 -1
  340. package/dist/esm/router/useScreens.native.js +6 -3
  341. package/dist/esm/router/useScreens.native.js.map +1 -1
  342. package/dist/esm/router/utils/getNavigateAction.native.js +2 -4
  343. package/dist/esm/router/utils/getNavigateAction.native.js.map +1 -1
  344. package/dist/esm/server/oneServe.js.map +1 -1
  345. package/dist/esm/server/oneServe.mjs.map +1 -1
  346. package/dist/esm/server/oneServe.native.js +4 -4
  347. package/dist/esm/server/oneServe.native.js.map +1 -1
  348. package/dist/esm/server/setupBuildOptions.native.js +1 -1
  349. package/dist/esm/server/setupBuildOptions.native.js.map +1 -1
  350. package/dist/esm/ui/common.native.js +6 -5
  351. package/dist/esm/ui/common.native.js.map +1 -1
  352. package/dist/esm/useBlocker.js +122 -0
  353. package/dist/esm/useBlocker.js.map +6 -0
  354. package/dist/esm/useBlocker.mjs +123 -0
  355. package/dist/esm/useBlocker.mjs.map +1 -0
  356. package/dist/esm/useBlocker.native.js +51 -0
  357. package/dist/esm/useBlocker.native.js.map +1 -0
  358. package/dist/esm/useFocusEffect.js +2 -2
  359. package/dist/esm/useFocusEffect.js.map +1 -1
  360. package/dist/esm/useFocusEffect.mjs +2 -2
  361. package/dist/esm/useFocusEffect.mjs.map +1 -1
  362. package/dist/esm/useFocusEffect.native.js +2 -2
  363. package/dist/esm/useFocusEffect.native.js.map +1 -1
  364. package/dist/esm/useLoader.js +57 -3
  365. package/dist/esm/useLoader.js.map +2 -2
  366. package/dist/esm/useLoader.mjs +69 -4
  367. package/dist/esm/useLoader.mjs.map +1 -1
  368. package/dist/esm/useLoader.native.js +90 -7
  369. package/dist/esm/useLoader.native.js.map +1 -1
  370. package/dist/esm/useScrollGroup.js +16 -0
  371. package/dist/esm/useScrollGroup.js.map +6 -0
  372. package/dist/esm/useScrollGroup.mjs +14 -0
  373. package/dist/esm/useScrollGroup.mjs.map +1 -0
  374. package/dist/esm/useScrollGroup.native.js +3 -0
  375. package/dist/esm/useScrollGroup.native.js.map +1 -0
  376. package/dist/esm/validateParams.js +68 -0
  377. package/dist/esm/validateParams.js.map +6 -0
  378. package/dist/esm/validateParams.mjs +54 -0
  379. package/dist/esm/validateParams.mjs.map +1 -0
  380. package/dist/esm/validateParams.native.js +151 -0
  381. package/dist/esm/validateParams.native.js.map +1 -0
  382. package/dist/esm/validateSearch.js +83 -0
  383. package/dist/esm/validateSearch.js.map +6 -0
  384. package/dist/esm/validateSearch.mjs +77 -0
  385. package/dist/esm/validateSearch.mjs.map +1 -0
  386. package/dist/esm/validateSearch.native.js +172 -0
  387. package/dist/esm/validateSearch.native.js.map +1 -0
  388. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js +2 -2
  389. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  390. package/dist/esm/views/ErrorBoundary.js +325 -7
  391. package/dist/esm/views/ErrorBoundary.js.map +2 -2
  392. package/dist/esm/views/ErrorBoundary.mjs +289 -6
  393. package/dist/esm/views/ErrorBoundary.mjs.map +1 -1
  394. package/dist/esm/views/ErrorBoundary.native.js +159 -4
  395. package/dist/esm/views/ErrorBoundary.native.js.map +1 -1
  396. package/dist/esm/views/Navigator.js +11 -2
  397. package/dist/esm/views/Navigator.js.map +1 -1
  398. package/dist/esm/views/Navigator.mjs +10 -3
  399. package/dist/esm/views/Navigator.mjs.map +1 -1
  400. package/dist/esm/views/Navigator.native.js +15 -6
  401. package/dist/esm/views/Navigator.native.js.map +1 -1
  402. package/dist/esm/views/Protected.js +14 -0
  403. package/dist/esm/views/Protected.js.map +6 -0
  404. package/dist/esm/views/Protected.mjs +11 -0
  405. package/dist/esm/views/Protected.mjs.map +1 -0
  406. package/dist/esm/views/Protected.native.js +16 -0
  407. package/dist/esm/views/Protected.native.js.map +1 -0
  408. package/dist/esm/views/RootErrorBoundary.js +214 -7
  409. package/dist/esm/views/RootErrorBoundary.js.map +1 -1
  410. package/dist/esm/views/RootErrorBoundary.mjs +192 -7
  411. package/dist/esm/views/RootErrorBoundary.mjs.map +1 -1
  412. package/dist/esm/views/RootErrorBoundary.native.js +191 -7
  413. package/dist/esm/views/RootErrorBoundary.native.js.map +1 -1
  414. package/dist/esm/views/ScrollBehavior.js +47 -11
  415. package/dist/esm/views/ScrollBehavior.js.map +1 -1
  416. package/dist/esm/views/ScrollBehavior.mjs +48 -11
  417. package/dist/esm/views/ScrollBehavior.mjs.map +1 -1
  418. package/dist/esm/views/ScrollBehavior.native.js +67 -10
  419. package/dist/esm/views/ScrollBehavior.native.js.map +1 -1
  420. package/dist/esm/views/SourceInspector.js +7 -0
  421. package/dist/esm/views/SourceInspector.js.map +6 -0
  422. package/dist/esm/views/SourceInspector.mjs +5 -0
  423. package/dist/esm/views/SourceInspector.mjs.map +1 -0
  424. package/dist/esm/views/SourceInspector.native.js +6 -0
  425. package/dist/esm/views/SourceInspector.native.js.map +1 -0
  426. package/dist/esm/views/Try.js +38 -4
  427. package/dist/esm/views/Try.js.map +1 -1
  428. package/dist/esm/views/Try.mjs +40 -7
  429. package/dist/esm/views/Try.mjs.map +1 -1
  430. package/dist/esm/views/Try.native.js +42 -7
  431. package/dist/esm/views/Try.native.js.map +1 -1
  432. package/dist/esm/vite/DevHead.js +802 -51
  433. package/dist/esm/vite/DevHead.js.map +1 -1
  434. package/dist/esm/vite/DevHead.mjs +797 -43
  435. package/dist/esm/vite/DevHead.mjs.map +1 -1
  436. package/dist/esm/vite/DevHead.native.js +782 -0
  437. package/dist/esm/vite/DevHead.native.js.map +1 -1
  438. package/dist/esm/vite/one.js +7 -1
  439. package/dist/esm/vite/one.js.map +1 -1
  440. package/dist/esm/vite/one.mjs +7 -1
  441. package/dist/esm/vite/one.mjs.map +1 -1
  442. package/dist/esm/vite/one.native.js +17 -7
  443. package/dist/esm/vite/one.native.js.map +1 -1
  444. package/dist/esm/vite/plugins/SSRCSSPlugin.js +48 -4
  445. package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
  446. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +44 -4
  447. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  448. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +61 -4
  449. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  450. package/dist/esm/vite/plugins/clientTreeShakePlugin.js +24 -3
  451. package/dist/esm/vite/plugins/clientTreeShakePlugin.js.map +1 -1
  452. package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs +34 -15
  453. package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs.map +1 -1
  454. package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js +55 -19
  455. package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
  456. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.js +130 -0
  457. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.js.map +6 -0
  458. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.mjs +130 -0
  459. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.mjs.map +1 -0
  460. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.native.js +138 -0
  461. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.native.js.map +1 -0
  462. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +6 -3
  463. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  464. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  465. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +3 -3
  466. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  467. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js +11 -6
  468. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  469. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +5 -1
  470. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
  471. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +1 -0
  472. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  473. package/dist/esm/vite/plugins/sourceInspectorPlugin.js +126 -0
  474. package/dist/esm/vite/plugins/sourceInspectorPlugin.js.map +6 -0
  475. package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs +121 -0
  476. package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs.map +1 -0
  477. package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js +194 -0
  478. package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js.map +1 -0
  479. package/dist/esm/vite/plugins/virtualEntryPlugin.js +16 -6
  480. package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
  481. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +25 -6
  482. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  483. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +26 -7
  484. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  485. package/package.json +16 -14
  486. package/src/cli/build.ts +1 -1
  487. package/src/cli/buildPage.ts +1 -1
  488. package/src/cli/dev.ts +4 -4
  489. package/src/cli/generateRoutes.ts +1 -1
  490. package/src/createApp.tsx +11 -1
  491. package/src/createHandleRequest.test.ts +3 -1
  492. package/src/devtools/registry.ts +21 -0
  493. package/src/fork/createMemoryHistory.tsx +43 -11
  494. package/src/fork/useLinking.ts +14 -4
  495. package/src/hooks.tsx +71 -21
  496. package/src/index.ts +34 -1
  497. package/src/interfaces/router.ts +48 -0
  498. package/src/layouts/withLayoutContext.tsx +48 -8
  499. package/src/link/Link.tsx +7 -2
  500. package/src/link/useLinkTo.tsx +7 -3
  501. package/src/router/Route.tsx +32 -3
  502. package/src/router/findRouteNode.ts +127 -0
  503. package/src/router/router.ts +291 -2
  504. package/src/router/useNavigation.ts +12 -3
  505. package/src/router/useScreens.tsx +9 -3
  506. package/src/useBlocker.native.ts +153 -0
  507. package/src/useBlocker.ts +340 -0
  508. package/src/useFocusEffect.ts +18 -5
  509. package/src/useLoader.ts +193 -2
  510. package/src/useScrollGroup.native.ts +7 -0
  511. package/src/useScrollGroup.ts +35 -0
  512. package/src/validateParams.ts +196 -0
  513. package/src/validateSearch.ts +241 -0
  514. package/src/views/ErrorBoundary.tsx +154 -156
  515. package/src/views/ErrorBoundary.web.tsx +321 -0
  516. package/src/views/Navigator.tsx +18 -2
  517. package/src/views/Protected.tsx +62 -0
  518. package/src/views/RootErrorBoundary.tsx +214 -17
  519. package/src/views/ScrollBehavior.tsx +82 -3
  520. package/src/views/SourceInspector.tsx +39 -0
  521. package/src/views/Try.tsx +81 -12
  522. package/src/vite/DevHead.tsx +819 -54
  523. package/src/vite/one.ts +13 -0
  524. package/src/vite/plugins/SSRCSSPlugin.ts +104 -0
  525. package/src/vite/plugins/clientTreeShakePlugin.test.ts +174 -0
  526. package/src/vite/plugins/clientTreeShakePlugin.ts +50 -4
  527. package/src/vite/plugins/fileSystemRouterPlugin.tsx +11 -8
  528. package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +4 -0
  529. package/src/vite/plugins/sourceInspectorPlugin.ts +246 -0
  530. package/src/vite/plugins/virtualEntryPlugin.ts +36 -10
  531. package/src/vite/types.ts +28 -0
  532. package/types/createApp.d.ts +5 -0
  533. package/types/createApp.d.ts.map +1 -1
  534. package/types/devtools/registry.d.ts +15 -0
  535. package/types/devtools/registry.d.ts.map +1 -0
  536. package/types/fork/createMemoryHistory.d.ts +8 -3
  537. package/types/fork/createMemoryHistory.d.ts.map +1 -1
  538. package/types/fork/useLinking.d.ts.map +1 -1
  539. package/types/hooks.d.ts +71 -20
  540. package/types/hooks.d.ts.map +1 -1
  541. package/types/index.d.ts +8 -1
  542. package/types/index.d.ts.map +1 -1
  543. package/types/interfaces/router.d.ts +47 -0
  544. package/types/interfaces/router.d.ts.map +1 -1
  545. package/types/layouts/Drawer.d.ts +15 -11
  546. package/types/layouts/Drawer.d.ts.map +1 -1
  547. package/types/layouts/withLayoutContext.d.ts +2 -1
  548. package/types/layouts/withLayoutContext.d.ts.map +1 -1
  549. package/types/link/Link.d.ts.map +1 -1
  550. package/types/link/useLinkTo.d.ts +1 -0
  551. package/types/link/useLinkTo.d.ts.map +1 -1
  552. package/types/router/Route.d.ts +32 -3
  553. package/types/router/Route.d.ts.map +1 -1
  554. package/types/router/findRouteNode.d.ts +31 -0
  555. package/types/router/findRouteNode.d.ts.map +1 -0
  556. package/types/router/router.d.ts +35 -0
  557. package/types/router/router.d.ts.map +1 -1
  558. package/types/router/useNavigation.d.ts +12 -3
  559. package/types/router/useNavigation.d.ts.map +1 -1
  560. package/types/router/useScreens.d.ts +2 -0
  561. package/types/router/useScreens.d.ts.map +1 -1
  562. package/types/server/oneServe.d.ts.map +1 -1
  563. package/types/ui/TabContext.d.ts +1 -1
  564. package/types/ui/TabContext.d.ts.map +1 -1
  565. package/types/ui/Tabs.d.ts +2 -2
  566. package/types/ui/Tabs.d.ts.map +1 -1
  567. package/types/useBlocker.d.ts +72 -0
  568. package/types/useBlocker.d.ts.map +1 -0
  569. package/types/useBlocker.native.d.ts +60 -0
  570. package/types/useBlocker.native.d.ts.map +1 -0
  571. package/types/useFocusEffect.d.ts +17 -4
  572. package/types/useFocusEffect.d.ts.map +1 -1
  573. package/types/useLoader.d.ts +63 -0
  574. package/types/useLoader.d.ts.map +1 -1
  575. package/types/useScrollGroup.d.ts +18 -0
  576. package/types/useScrollGroup.d.ts.map +1 -0
  577. package/types/useScrollGroup.native.d.ts +6 -0
  578. package/types/useScrollGroup.native.d.ts.map +1 -0
  579. package/types/validateParams.d.ts +85 -0
  580. package/types/validateParams.d.ts.map +1 -0
  581. package/types/validateSearch.d.ts +107 -0
  582. package/types/validateSearch.d.ts.map +1 -0
  583. package/types/views/ErrorBoundary.d.ts +11 -1
  584. package/types/views/ErrorBoundary.d.ts.map +1 -1
  585. package/types/views/ErrorBoundary.web.d.ts +13 -0
  586. package/types/views/ErrorBoundary.web.d.ts.map +1 -0
  587. package/types/views/Navigator.d.ts.map +1 -1
  588. package/types/views/Protected.d.ts +39 -0
  589. package/types/views/Protected.d.ts.map +1 -0
  590. package/types/views/RootErrorBoundary.d.ts +14 -8
  591. package/types/views/RootErrorBoundary.d.ts.map +1 -1
  592. package/types/views/ScrollBehavior.d.ts +8 -0
  593. package/types/views/ScrollBehavior.d.ts.map +1 -1
  594. package/types/views/SourceInspector.d.ts +35 -0
  595. package/types/views/SourceInspector.d.ts.map +1 -0
  596. package/types/views/Try.d.ts +29 -6
  597. package/types/views/Try.d.ts.map +1 -1
  598. package/types/vite/DevHead.d.ts.map +1 -1
  599. package/types/vite/one.d.ts.map +1 -1
  600. package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
  601. package/types/vite/plugins/clientTreeShakePlugin.d.ts.map +1 -1
  602. package/types/vite/plugins/clientTreeShakePlugin.test.d.ts +2 -0
  603. package/types/vite/plugins/clientTreeShakePlugin.test.d.ts.map +1 -0
  604. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  605. package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
  606. package/types/vite/plugins/sourceInspectorPlugin.d.ts +3 -0
  607. package/types/vite/plugins/sourceInspectorPlugin.d.ts.map +1 -0
  608. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  609. package/types/vite/types.d.ts +24 -0
  610. package/types/vite/types.d.ts.map +1 -1
  611. package/types/env.d.ts +0 -66
  612. /package/types/vercel/build/generate/{createSSRServerlessFunction.d.ts → createSsrServerlessFunction.d.ts} +0 -0
@@ -27,7 +27,27 @@ __export(clientTreeShakePlugin_exports, {
27
27
  });
28
28
  module.exports = __toCommonJS(clientTreeShakePlugin_exports);
29
29
  var import_node_path = require("node:path"), import_generator = __toESM(require("@babel/generator"), 1), import_parser = require("@babel/parser"), import_traverse = __toESM(require("@babel/traverse"), 1), import_babel_dead_code_elimination = require("babel-dead-code-elimination"), import_constants = require("../constants");
30
- const traverse = import_traverse.default.default, generate = import_generator.default.default, clientTreeShakePlugin = () => ({
30
+ const traverse = import_traverse.default.default || import_traverse.default, generate = import_generator.default.default || import_generator.default;
31
+ function collectTypeImports(ast) {
32
+ const typeImports = [];
33
+ return traverse(ast, {
34
+ ImportDeclaration(path) {
35
+ path.node.importKind === "type" && typeImports.push(path.node);
36
+ }
37
+ }), typeImports;
38
+ }
39
+ function restoreTypeImports(ast, typeImports) {
40
+ if (typeImports.length === 0) return;
41
+ const existingSources = /* @__PURE__ */ new Set();
42
+ traverse(ast, {
43
+ ImportDeclaration(path) {
44
+ path.node.importKind === "type" && existingSources.add(path.node.source.value);
45
+ }
46
+ });
47
+ for (const typeImport of typeImports)
48
+ existingSources.has(typeImport.source.value) || ast.program.body.unshift(typeImport);
49
+ }
50
+ const clientTreeShakePlugin = () => ({
31
51
  name: "one-client-tree-shake",
32
52
  enforce: "pre",
33
53
  applyToEnvironment(env) {
@@ -82,7 +102,7 @@ async function transformTreeShakeClient(code, id) {
82
102
  } else path.node.declaration && path.node.declaration.type === "VariableDeclaration" && path.node.declaration.declarations.forEach((declarator, index) => {
83
103
  if (declarator.id.type === "Identifier" && (declarator.id.name === "loader" || declarator.id.name === "generateStaticParams")) {
84
104
  const declaration = path.get("declaration.declarations." + index);
85
- Array.isArray(declaration) || (declaration.remove(), removed[declarator.id.name] = !0);
105
+ !Array.isArray(declaration) && declaration && (declaration.remove(), removed[declarator.id.name] = !0);
86
106
  }
87
107
  });
88
108
  }
@@ -98,7 +118,8 @@ async function transformTreeShakeClient(code, id) {
98
118
  const removedFunctions = Object.keys(removed).filter((key) => removed[key]);
99
119
  if (removedFunctions.length)
100
120
  try {
101
- (0, import_babel_dead_code_elimination.deadCodeElimination)(ast, referenced);
121
+ const typeImports = collectTypeImports(ast);
122
+ (0, import_babel_dead_code_elimination.deadCodeElimination)(ast, referenced), restoreTypeImports(ast, typeImports);
102
123
  const out = generate(ast), codeOut = out.code + `
103
124
 
104
125
  ` + removedFunctions.map((key) => key === "loader" ? import_constants.EMPTY_LOADER_STRING : "export function generateStaticParams() {};").join(`
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/vite/plugins/clientTreeShakePlugin.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["BabelTraverse", "BabelGenerate"]
6
6
  }
@@ -46,26 +46,61 @@ var import_path = require("path"),
46
46
  function _instanceof(left, right) {
47
47
  return right != null && typeof Symbol < "u" && right[Symbol.hasInstance] ? !!right[Symbol.hasInstance](left) : left instanceof right;
48
48
  }
49
- var traverse = import_traverse.default.default,
50
- generate = import_generator.default.default,
51
- clientTreeShakePlugin = function () {
52
- return {
53
- name: "one-client-tree-shake",
54
- enforce: "pre",
55
- applyToEnvironment(env) {
56
- return env.name === "client" || env.name === "ios" || env.name === "android";
57
- },
58
- transform: {
59
- order: "pre",
60
- async handler(code, id, settings) {
61
- if (this.environment.name !== "ssr" && /\.(js|jsx|ts|tsx)/.test((0, import_path.extname)(id)) && !/node_modules/.test(id)) {
62
- var out = await transformTreeShakeClient(code, id);
63
- return out;
64
- }
49
+ var traverse = import_traverse.default.default || import_traverse.default,
50
+ generate = import_generator.default.default || import_generator.default;
51
+ function collectTypeImports(ast) {
52
+ var typeImports = [];
53
+ return traverse(ast, {
54
+ ImportDeclaration(path) {
55
+ path.node.importKind === "type" && typeImports.push(path.node);
56
+ }
57
+ }), typeImports;
58
+ }
59
+ function restoreTypeImports(ast, typeImports) {
60
+ if (typeImports.length !== 0) {
61
+ var existingSources = /* @__PURE__ */new Set();
62
+ traverse(ast, {
63
+ ImportDeclaration(path) {
64
+ path.node.importKind === "type" && existingSources.add(path.node.source.value);
65
+ }
66
+ });
67
+ var _iteratorNormalCompletion = !0,
68
+ _didIteratorError = !1,
69
+ _iteratorError = void 0;
70
+ try {
71
+ for (var _iterator = typeImports[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
72
+ var typeImport = _step.value;
73
+ existingSources.has(typeImport.source.value) || ast.program.body.unshift(typeImport);
74
+ }
75
+ } catch (err) {
76
+ _didIteratorError = !0, _iteratorError = err;
77
+ } finally {
78
+ try {
79
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
80
+ } finally {
81
+ if (_didIteratorError) throw _iteratorError;
82
+ }
83
+ }
84
+ }
85
+ }
86
+ var clientTreeShakePlugin = function () {
87
+ return {
88
+ name: "one-client-tree-shake",
89
+ enforce: "pre",
90
+ applyToEnvironment(env) {
91
+ return env.name === "client" || env.name === "ios" || env.name === "android";
92
+ },
93
+ transform: {
94
+ order: "pre",
95
+ async handler(code, id, settings) {
96
+ if (this.environment.name !== "ssr" && /\.(js|jsx|ts|tsx)/.test((0, import_path.extname)(id)) && !/node_modules/.test(id)) {
97
+ var out = await transformTreeShakeClient(code, id);
98
+ return out;
65
99
  }
66
100
  }
67
- };
101
+ }
68
102
  };
103
+ };
69
104
  async function transformTreeShakeClient(code, id) {
70
105
  if (/generateStaticParams|loader/.test(code)) {
71
106
  var ast;
@@ -101,7 +136,7 @@ async function transformTreeShakeClient(code, id) {
101
136
  } else path.node.declaration && path.node.declaration.type === "VariableDeclaration" && path.node.declaration.declarations.forEach(function (declarator, index) {
102
137
  if (declarator.id.type === "Identifier" && (declarator.id.name === "loader" || declarator.id.name === "generateStaticParams")) {
103
138
  var declaration = path.get("declaration.declarations." + index);
104
- Array.isArray(declaration) || (declaration.remove(), removed[declarator.id.name] = !0);
139
+ !Array.isArray(declaration) && declaration && (declaration.remove(), removed[declarator.id.name] = !0);
105
140
  }
106
141
  });
107
142
  }
@@ -115,7 +150,8 @@ async function transformTreeShakeClient(code, id) {
115
150
  return removed[key];
116
151
  });
117
152
  if (removedFunctions.length) try {
118
- (0, import_babel_dead_code_elimination.deadCodeElimination)(ast, referenced);
153
+ var typeImports = collectTypeImports(ast);
154
+ (0, import_babel_dead_code_elimination.deadCodeElimination)(ast, referenced), restoreTypeImports(ast, typeImports);
119
155
  var out = generate(ast),
120
156
  codeOut = out.code + `
121
157
 
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","clientTreeShakePlugin_exports","__export","clientTreeShakePlugin","transformTreeShakeClient","module","exports","import_path","require","import_generator","__toESM","import_parser","import_traverse","import_babel_dead_code_elimination","import_constants","_instanceof","left","right","Symbol","hasInstance","traverse","default","generate","name","enforce","applyToEnvironment","env","transform","order","handler","code","id","settings","environment","test","extname","out","ast","parse","sourceType","plugins","error","errorMessage","Error","message","String","console","warn","referenced","findReferencedIdentifiers","errorMessage1","removed","loader","generateStaticParams","ExportNamedDeclaration","path","node","declaration","type","functionName","remove","declarations","forEach","declarator","index","get","Array","isArray","errorMessage2","removedFunctions","Object","keys","filter","key","length","deadCodeElimination","codeOut","map","EMPTY_LOADER_STRING","join","info","relative","process","cwd","errorMessage3"],"sources":["../../../../src/vite/plugins/clientTreeShakePlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","clientTreeShakePlugin_exports","__export","clientTreeShakePlugin","transformTreeShakeClient","module","exports","import_path","require","import_generator","__toESM","import_parser","import_traverse","import_babel_dead_code_elimination","import_constants","_instanceof","left","right","Symbol","hasInstance","traverse","default","generate","collectTypeImports","ast","typeImports","ImportDeclaration","path","node","importKind","push","restoreTypeImports","length","existingSources","Set","add","source","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","typeImport","has","program","body","unshift","err","return","name","enforce","applyToEnvironment","env","transform","order","handler","code","id","settings","environment","test","extname","out","parse","sourceType","plugins","error","errorMessage","Error","message","String","console","warn","referenced","findReferencedIdentifiers","errorMessage1","removed","loader","generateStaticParams","ExportNamedDeclaration","declaration","type","functionName","remove","declarations","forEach","declarator","index","get","Array","isArray","errorMessage2","removedFunctions","Object","keys","filter","key","deadCodeElimination"],"sources":["../../../../src/vite/plugins/clientTreeShakePlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,129 @@
1
+ var import_vitest = require("vitest"),
2
+ import_clientTreeShakePlugin = require("./clientTreeShakePlugin.cjs");
3
+ (0, import_vitest.describe)("clientTreeShakePlugin", () => {
4
+ (0, import_vitest.describe)("transformTreeShakeClient", () => {
5
+ (0, import_vitest.it)("should remove loader export and its imports", async () => {
6
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
7
+ import { serverOnlyModule } from 'server-only-pkg'
8
+ import { Text } from 'react-native'
9
+ import { useLoader } from 'one'
10
+
11
+ export function loader() {
12
+ return serverOnlyModule()
13
+ }
14
+
15
+ export default function Page() {
16
+ const data = useLoader(loader)
17
+ return <Text>{data}</Text>
18
+ }
19
+ `, "/app/index.tsx");
20
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg"), (0, import_vitest.expect)(result.code).toContain("react-native"), (0, import_vitest.expect)(result.code).toContain("one");
21
+ }), (0, import_vitest.it)("should remove loader export with dynamic import", async () => {
22
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
23
+ import { Text } from 'react-native'
24
+ import { useLoader } from 'one'
25
+
26
+ export async function loader() {
27
+ const { serverFn } = await import('server-only-pkg')
28
+ return serverFn()
29
+ }
30
+
31
+ export default function Page() {
32
+ const data = useLoader(loader)
33
+ return <Text>{data}</Text>
34
+ }
35
+ `, "/app/index.tsx");
36
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
37
+ }), (0, import_vitest.it)("should remove loader with const arrow function export", async () => {
38
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
39
+ import { serverOnlyModule } from 'server-only-pkg'
40
+ import { Text } from 'react-native'
41
+ import { useLoader } from 'one'
42
+
43
+ export const loader = async () => {
44
+ return serverOnlyModule()
45
+ }
46
+
47
+ export default function Page() {
48
+ const data = useLoader(loader)
49
+ return <Text>{data}</Text>
50
+ }
51
+ `, "/app/index.tsx");
52
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
53
+ }), (0, import_vitest.it)("should handle multiple imports where only some are used in loader", async () => {
54
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
55
+ import { serverFn } from 'server-only-pkg'
56
+ import { sharedUtil } from 'shared-pkg'
57
+ import { Text } from 'react-native'
58
+ import { useLoader } from 'one'
59
+
60
+ export function loader() {
61
+ return serverFn()
62
+ }
63
+
64
+ export default function Page() {
65
+ const data = useLoader(loader)
66
+ return <Text>{sharedUtil(data)}</Text>
67
+ }
68
+ `, "/app/index.tsx");
69
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg"), (0, import_vitest.expect)(result.code).toContain("shared-pkg");
70
+ }), (0, import_vitest.it)("should remove generateStaticParams and its imports", async () => {
71
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
72
+ import { getRoutes } from 'server-only-pkg'
73
+ import { Text } from 'react-native'
74
+
75
+ export function generateStaticParams() {
76
+ return getRoutes()
77
+ }
78
+
79
+ export default function Page() {
80
+ return <Text>Hello</Text>
81
+ }
82
+ `, "/app/[slug].tsx");
83
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
84
+ }), (0, import_vitest.it)("should not transform files without loader or generateStaticParams", async () => {
85
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
86
+ import { Text } from 'react-native'
87
+
88
+ export default function Page() {
89
+ return <Text>Hello</Text>
90
+ }
91
+ `, "/app/index.tsx");
92
+ (0, import_vitest.expect)(result).toBeUndefined();
93
+ }), (0, import_vitest.it)("should preserve type-only imports during tree shaking", async () => {
94
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
95
+ import type { SomeType } from 'types-pkg'
96
+ import { serverFn } from 'server-only-pkg'
97
+ import { Text } from 'react-native'
98
+ import { useLoader } from 'one'
99
+
100
+ export function loader(): SomeType {
101
+ return serverFn()
102
+ }
103
+
104
+ export default function Page() {
105
+ const data = useLoader(loader)
106
+ return <Text>{data}</Text>
107
+ }
108
+ `, "/app/index.tsx");
109
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).toContain("types-pkg"), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
110
+ }), (0, import_vitest.it)("should preserve type imports even when used only in loader", async () => {
111
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
112
+ import type { APIGuildMember } from '@discordjs/core'
113
+ import { getClient } from 'discord-client'
114
+ import { Text } from 'react-native'
115
+ import { useLoader } from 'one'
116
+
117
+ export function loader(): APIGuildMember {
118
+ return getClient()
119
+ }
120
+
121
+ export default function Page() {
122
+ const data = useLoader(loader)
123
+ return <Text>{JSON.stringify(data)}</Text>
124
+ }
125
+ `, "/app/index.tsx");
126
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).toContain("@discordjs/core"), (0, import_vitest.expect)(result.code).not.toContain("discord-client");
127
+ });
128
+ });
129
+ });
@@ -0,0 +1,129 @@
1
+ var import_vitest = require("vitest"), import_clientTreeShakePlugin = require("./clientTreeShakePlugin");
2
+ (0, import_vitest.describe)("clientTreeShakePlugin", () => {
3
+ (0, import_vitest.describe)("transformTreeShakeClient", () => {
4
+ (0, import_vitest.it)("should remove loader export and its imports", async () => {
5
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
6
+ import { serverOnlyModule } from 'server-only-pkg'
7
+ import { Text } from 'react-native'
8
+ import { useLoader } from 'one'
9
+
10
+ export function loader() {
11
+ return serverOnlyModule()
12
+ }
13
+
14
+ export default function Page() {
15
+ const data = useLoader(loader)
16
+ return <Text>{data}</Text>
17
+ }
18
+ `, "/app/index.tsx");
19
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg"), (0, import_vitest.expect)(result.code).toContain("react-native"), (0, import_vitest.expect)(result.code).toContain("one");
20
+ }), (0, import_vitest.it)("should remove loader export with dynamic import", async () => {
21
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
22
+ import { Text } from 'react-native'
23
+ import { useLoader } from 'one'
24
+
25
+ export async function loader() {
26
+ const { serverFn } = await import('server-only-pkg')
27
+ return serverFn()
28
+ }
29
+
30
+ export default function Page() {
31
+ const data = useLoader(loader)
32
+ return <Text>{data}</Text>
33
+ }
34
+ `, "/app/index.tsx");
35
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
36
+ }), (0, import_vitest.it)("should remove loader with const arrow function export", async () => {
37
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
38
+ import { serverOnlyModule } from 'server-only-pkg'
39
+ import { Text } from 'react-native'
40
+ import { useLoader } from 'one'
41
+
42
+ export const loader = async () => {
43
+ return serverOnlyModule()
44
+ }
45
+
46
+ export default function Page() {
47
+ const data = useLoader(loader)
48
+ return <Text>{data}</Text>
49
+ }
50
+ `, "/app/index.tsx");
51
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
52
+ }), (0, import_vitest.it)("should handle multiple imports where only some are used in loader", async () => {
53
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
54
+ import { serverFn } from 'server-only-pkg'
55
+ import { sharedUtil } from 'shared-pkg'
56
+ import { Text } from 'react-native'
57
+ import { useLoader } from 'one'
58
+
59
+ export function loader() {
60
+ return serverFn()
61
+ }
62
+
63
+ export default function Page() {
64
+ const data = useLoader(loader)
65
+ return <Text>{sharedUtil(data)}</Text>
66
+ }
67
+ `, "/app/index.tsx");
68
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg"), (0, import_vitest.expect)(result.code).toContain("shared-pkg");
69
+ }), (0, import_vitest.it)("should remove generateStaticParams and its imports", async () => {
70
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
71
+ import { getRoutes } from 'server-only-pkg'
72
+ import { Text } from 'react-native'
73
+
74
+ export function generateStaticParams() {
75
+ return getRoutes()
76
+ }
77
+
78
+ export default function Page() {
79
+ return <Text>Hello</Text>
80
+ }
81
+ `, "/app/[slug].tsx");
82
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
83
+ }), (0, import_vitest.it)("should not transform files without loader or generateStaticParams", async () => {
84
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
85
+ import { Text } from 'react-native'
86
+
87
+ export default function Page() {
88
+ return <Text>Hello</Text>
89
+ }
90
+ `, "/app/index.tsx");
91
+ (0, import_vitest.expect)(result).toBeUndefined();
92
+ }), (0, import_vitest.it)("should preserve type-only imports during tree shaking", async () => {
93
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
94
+ import type { SomeType } from 'types-pkg'
95
+ import { serverFn } from 'server-only-pkg'
96
+ import { Text } from 'react-native'
97
+ import { useLoader } from 'one'
98
+
99
+ export function loader(): SomeType {
100
+ return serverFn()
101
+ }
102
+
103
+ export default function Page() {
104
+ const data = useLoader(loader)
105
+ return <Text>{data}</Text>
106
+ }
107
+ `, "/app/index.tsx");
108
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).toContain("types-pkg"), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
109
+ }), (0, import_vitest.it)("should preserve type imports even when used only in loader", async () => {
110
+ const result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(`
111
+ import type { APIGuildMember } from '@discordjs/core'
112
+ import { getClient } from 'discord-client'
113
+ import { Text } from 'react-native'
114
+ import { useLoader } from 'one'
115
+
116
+ export function loader(): APIGuildMember {
117
+ return getClient()
118
+ }
119
+
120
+ export default function Page() {
121
+ const data = useLoader(loader)
122
+ return <Text>{JSON.stringify(data)}</Text>
123
+ }
124
+ `, "/app/index.tsx");
125
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).toContain("@discordjs/core"), (0, import_vitest.expect)(result.code).not.toContain("discord-client");
126
+ });
127
+ });
128
+ });
129
+ //# sourceMappingURL=clientTreeShakePlugin.test.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/vite/plugins/clientTreeShakePlugin.test.ts"],
4
+ "mappings": "AAAA,oBAAqC,mBACrC,+BAAyC;AAAA,IAEzC,wBAAS,yBAAyB,MAAM;AACtC,8BAAS,4BAA4B,MAAM;AACzC,0BAAG,+CAA+C,YAAY;AAe5D,YAAM,SAAS,UAAM,uDAdR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAcuC,gBAAgB;AACpE,gCAAO,MAAM,EAAE,YAAY,OAE3B,sBAAO,OAAQ,IAAI,EAAE,IAAI,UAAU,iBAAiB,OAEpD,sBAAO,OAAQ,IAAI,EAAE,UAAU,cAAc,OAC7C,sBAAO,OAAQ,IAAI,EAAE,UAAU,KAAK;AAAA,IACtC,CAAC,OAED,kBAAG,mDAAmD,YAAY;AAehE,YAAM,SAAS,UAAM,uDAdR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAcuC,gBAAgB;AACpE,gCAAO,MAAM,EAAE,YAAY,OAE3B,sBAAO,OAAQ,IAAI,EAAE,IAAI,UAAU,iBAAiB;AAAA,IACtD,CAAC,OAED,kBAAG,yDAAyD,YAAY;AAetE,YAAM,SAAS,UAAM,uDAdR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAcuC,gBAAgB;AACpE,gCAAO,MAAM,EAAE,YAAY,OAE3B,sBAAO,OAAQ,IAAI,EAAE,IAAI,UAAU,iBAAiB;AAAA,IACtD,CAAC,OAED,kBAAG,qEAAqE,YAAY;AAgBlF,YAAM,SAAS,UAAM,uDAfR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAeuC,gBAAgB;AACpE,gCAAO,MAAM,EAAE,YAAY,OAE3B,sBAAO,OAAQ,IAAI,EAAE,IAAI,UAAU,iBAAiB,OAEpD,sBAAO,OAAQ,IAAI,EAAE,UAAU,YAAY;AAAA,IAC7C,CAAC,OAED,kBAAG,sDAAsD,YAAY;AAanE,YAAM,SAAS,UAAM,uDAZR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYuC,iBAAiB;AACrE,gCAAO,MAAM,EAAE,YAAY,OAC3B,sBAAO,OAAQ,IAAI,EAAE,IAAI,UAAU,iBAAiB;AAAA,IACtD,CAAC,OAED,kBAAG,qEAAqE,YAAY;AAQlF,YAAM,SAAS,UAAM,uDAPR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOuC,gBAAgB;AACpE,gCAAO,MAAM,EAAE,cAAc;AAAA,IAC/B,CAAC,OAED,kBAAG,yDAAyD,YAAY;AAgBtE,YAAM,SAAS,UAAM,uDAfR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAeuC,gBAAgB;AACpE,gCAAO,MAAM,EAAE,YAAY,OAE3B,sBAAO,OAAQ,IAAI,EAAE,UAAU,WAAW,OAE1C,sBAAO,OAAQ,IAAI,EAAE,IAAI,UAAU,iBAAiB;AAAA,IACtD,CAAC,OAED,kBAAG,8DAA8D,YAAY;AAgB3E,YAAM,SAAS,UAAM,uDAfR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAeuC,gBAAgB;AACpE,gCAAO,MAAM,EAAE,YAAY,OAE3B,sBAAO,OAAQ,IAAI,EAAE,UAAU,iBAAiB,OAEhD,sBAAO,OAAQ,IAAI,EAAE,IAAI,UAAU,gBAAgB;AAAA,IACrD,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ var import_vitest = require("vitest"),
4
+ import_clientTreeShakePlugin = require("./clientTreeShakePlugin.native.js");
5
+ (0, import_vitest.describe)("clientTreeShakePlugin", function () {
6
+ (0, import_vitest.describe)("transformTreeShakeClient", function () {
7
+ (0, import_vitest.it)("should remove loader export and its imports", async function () {
8
+ var code = `
9
+ import { serverOnlyModule } from 'server-only-pkg'
10
+ import { Text } from 'react-native'
11
+ import { useLoader } from 'one'
12
+
13
+ export function loader() {
14
+ return serverOnlyModule()
15
+ }
16
+
17
+ export default function Page() {
18
+ const data = useLoader(loader)
19
+ return <Text>{data}</Text>
20
+ }
21
+ `,
22
+ result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(code, "/app/index.tsx");
23
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg"), (0, import_vitest.expect)(result.code).toContain("react-native"), (0, import_vitest.expect)(result.code).toContain("one");
24
+ }), (0, import_vitest.it)("should remove loader export with dynamic import", async function () {
25
+ var code = `
26
+ import { Text } from 'react-native'
27
+ import { useLoader } from 'one'
28
+
29
+ export async function loader() {
30
+ const { serverFn } = await import('server-only-pkg')
31
+ return serverFn()
32
+ }
33
+
34
+ export default function Page() {
35
+ const data = useLoader(loader)
36
+ return <Text>{data}</Text>
37
+ }
38
+ `,
39
+ result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(code, "/app/index.tsx");
40
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
41
+ }), (0, import_vitest.it)("should remove loader with const arrow function export", async function () {
42
+ var code = `
43
+ import { serverOnlyModule } from 'server-only-pkg'
44
+ import { Text } from 'react-native'
45
+ import { useLoader } from 'one'
46
+
47
+ export const loader = async () => {
48
+ return serverOnlyModule()
49
+ }
50
+
51
+ export default function Page() {
52
+ const data = useLoader(loader)
53
+ return <Text>{data}</Text>
54
+ }
55
+ `,
56
+ result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(code, "/app/index.tsx");
57
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
58
+ }), (0, import_vitest.it)("should handle multiple imports where only some are used in loader", async function () {
59
+ var code = `
60
+ import { serverFn } from 'server-only-pkg'
61
+ import { sharedUtil } from 'shared-pkg'
62
+ import { Text } from 'react-native'
63
+ import { useLoader } from 'one'
64
+
65
+ export function loader() {
66
+ return serverFn()
67
+ }
68
+
69
+ export default function Page() {
70
+ const data = useLoader(loader)
71
+ return <Text>{sharedUtil(data)}</Text>
72
+ }
73
+ `,
74
+ result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(code, "/app/index.tsx");
75
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg"), (0, import_vitest.expect)(result.code).toContain("shared-pkg");
76
+ }), (0, import_vitest.it)("should remove generateStaticParams and its imports", async function () {
77
+ var code = `
78
+ import { getRoutes } from 'server-only-pkg'
79
+ import { Text } from 'react-native'
80
+
81
+ export function generateStaticParams() {
82
+ return getRoutes()
83
+ }
84
+
85
+ export default function Page() {
86
+ return <Text>Hello</Text>
87
+ }
88
+ `,
89
+ result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(code, "/app/[slug].tsx");
90
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
91
+ }), (0, import_vitest.it)("should not transform files without loader or generateStaticParams", async function () {
92
+ var code = `
93
+ import { Text } from 'react-native'
94
+
95
+ export default function Page() {
96
+ return <Text>Hello</Text>
97
+ }
98
+ `,
99
+ result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(code, "/app/index.tsx");
100
+ (0, import_vitest.expect)(result).toBeUndefined();
101
+ }), (0, import_vitest.it)("should preserve type-only imports during tree shaking", async function () {
102
+ var code = `
103
+ import type { SomeType } from 'types-pkg'
104
+ import { serverFn } from 'server-only-pkg'
105
+ import { Text } from 'react-native'
106
+ import { useLoader } from 'one'
107
+
108
+ export function loader(): SomeType {
109
+ return serverFn()
110
+ }
111
+
112
+ export default function Page() {
113
+ const data = useLoader(loader)
114
+ return <Text>{data}</Text>
115
+ }
116
+ `,
117
+ result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(code, "/app/index.tsx");
118
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).toContain("types-pkg"), (0, import_vitest.expect)(result.code).not.toContain("server-only-pkg");
119
+ }), (0, import_vitest.it)("should preserve type imports even when used only in loader", async function () {
120
+ var code = `
121
+ import type { APIGuildMember } from '@discordjs/core'
122
+ import { getClient } from 'discord-client'
123
+ import { Text } from 'react-native'
124
+ import { useLoader } from 'one'
125
+
126
+ export function loader(): APIGuildMember {
127
+ return getClient()
128
+ }
129
+
130
+ export default function Page() {
131
+ const data = useLoader(loader)
132
+ return <Text>{JSON.stringify(data)}</Text>
133
+ }
134
+ `,
135
+ result = await (0, import_clientTreeShakePlugin.transformTreeShakeClient)(code, "/app/index.tsx");
136
+ (0, import_vitest.expect)(result).toBeDefined(), (0, import_vitest.expect)(result.code).toContain("@discordjs/core"), (0, import_vitest.expect)(result.code).not.toContain("discord-client");
137
+ });
138
+ });
139
+ });
140
+ //# sourceMappingURL=clientTreeShakePlugin.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_vitest","require","import_clientTreeShakePlugin","describe","it","code","result","transformTreeShakeClient","expect","toBeDefined","not","toContain","toBeUndefined"],"sources":["../../../../src/vite/plugins/clientTreeShakePlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -195,9 +195,12 @@ ${stack}
195
195
  server = serverIn, runner = (0, import_vite.createServerModuleRunner)(
196
196
  USE_SERVER_ENV ? server.environments.server : server.environments.ssr
197
197
  );
198
- const appDir = import_node_path.default.join(process.cwd(), (0, import_getRouterRootFromOneOptions.getRouterRootFromOneOptions)(options)), fileWatcherChangeListener = (0, import_perfect_debounce.debounce)(async (type, changedPath) => {
199
- (type === "add" || type === "delete") && import_node_path.default.resolve(changedPath).startsWith(appDir) && (handleRequest = createRequestHandler());
200
- }, 100);
198
+ const appDir = import_node_path.default.join(process.cwd(), (0, import_getRouterRootFromOneOptions.getRouterRootFromOneOptions)(options)), fileWatcherChangeListener = (0, import_perfect_debounce.debounce)(
199
+ async (type, changedPath) => {
200
+ (type === "add" || type === "delete") && import_node_path.default.resolve(changedPath).startsWith(appDir) && (handleRequest = createRequestHandler());
201
+ },
202
+ 100
203
+ );
201
204
  server.watcher.addListener("all", fileWatcherChangeListener);
202
205
  const loaderDepChangeListener = (0, import_perfect_debounce.debounce)((changedPath) => {
203
206
  const absolutePath = import_node_path.default.resolve(changedPath), routePaths = loaderFileDependencies.get(absolutePath);