one 1.1.407 → 1.1.409

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 (263) hide show
  1. package/dist/cjs/Root.cjs +31 -28
  2. package/dist/cjs/Root.js +26 -30
  3. package/dist/cjs/Root.js.map +1 -1
  4. package/dist/cjs/Root.native.js +9 -6
  5. package/dist/cjs/Root.native.js.map +2 -2
  6. package/dist/cjs/cli/build.cjs +4 -6
  7. package/dist/cjs/cli/build.js +3 -3
  8. package/dist/cjs/cli/build.js.map +1 -1
  9. package/dist/cjs/cli/build.native.js +3 -3
  10. package/dist/cjs/cli/build.native.js.map +2 -2
  11. package/dist/cjs/cli/buildPage.js.map +1 -1
  12. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  13. package/dist/cjs/constants.js.map +1 -1
  14. package/dist/cjs/constants.native.js.map +1 -1
  15. package/dist/cjs/createApp.cjs +6 -5
  16. package/dist/cjs/createApp.js +5 -5
  17. package/dist/cjs/createApp.js.map +1 -1
  18. package/dist/cjs/createHandleRequest.cjs +2 -2
  19. package/dist/cjs/createHandleRequest.js +1 -1
  20. package/dist/cjs/createHandleRequest.js.map +1 -1
  21. package/dist/cjs/createHandleRequest.native.js +1 -1
  22. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  23. package/dist/cjs/index.cjs +4 -3
  24. package/dist/cjs/index.js +4 -3
  25. package/dist/cjs/index.js.map +1 -1
  26. package/dist/cjs/index.native.js +5 -3
  27. package/dist/cjs/index.native.js.map +1 -1
  28. package/dist/cjs/router/useScreens.cjs +4 -3
  29. package/dist/cjs/router/useScreens.js +3 -3
  30. package/dist/cjs/router/useScreens.js.map +1 -1
  31. package/dist/cjs/router/useScreens.native.js +2 -2
  32. package/dist/cjs/router/useScreens.native.js.map +2 -2
  33. package/dist/cjs/server/ServerContextScript.cjs +56 -0
  34. package/dist/cjs/server/ServerContextScript.js +55 -0
  35. package/dist/cjs/server/ServerContextScript.js.map +6 -0
  36. package/dist/cjs/server/ServerContextScript.native.js +56 -0
  37. package/dist/cjs/server/ServerContextScript.native.js.map +6 -0
  38. package/dist/cjs/server/createRoutesManifest.js.map +1 -1
  39. package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
  40. package/dist/cjs/useLoader.cjs +3 -3
  41. package/dist/cjs/useLoader.js +2 -2
  42. package/dist/cjs/useLoader.js.map +1 -1
  43. package/dist/cjs/useLoader.native.js +2 -2
  44. package/dist/cjs/useLoader.native.js.map +2 -2
  45. package/dist/cjs/vite/constants.cjs +4 -2
  46. package/dist/cjs/vite/constants.js +3 -2
  47. package/dist/cjs/vite/constants.js.map +1 -1
  48. package/dist/cjs/vite/constants.native.js +5 -3
  49. package/dist/cjs/vite/constants.native.js.map +2 -2
  50. package/dist/cjs/vite/one-server-only.cjs +114 -0
  51. package/dist/cjs/vite/one-server-only.js +108 -0
  52. package/dist/cjs/vite/one-server-only.js.map +6 -0
  53. package/dist/cjs/vite/{server.native.js → one-server-only.native.js} +14 -6
  54. package/dist/cjs/vite/one-server-only.native.js.map +6 -0
  55. package/dist/cjs/vite/one.cjs +2 -25
  56. package/dist/cjs/vite/one.js +7 -28
  57. package/dist/cjs/vite/one.js.map +1 -1
  58. package/dist/cjs/vite/one.native.js +4 -29
  59. package/dist/cjs/vite/one.native.js.map +2 -2
  60. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +2 -2
  61. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +2 -2
  62. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  63. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +2 -2
  64. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  65. package/dist/cjs/vite/resolveResponse.cjs +5 -5
  66. package/dist/cjs/vite/resolveResponse.js +5 -5
  67. package/dist/cjs/vite/resolveResponse.js.map +1 -1
  68. package/dist/cjs/vite/resolveResponse.native.js +5 -5
  69. package/dist/cjs/vite/resolveResponse.native.js.map +1 -1
  70. package/dist/cjs/vite/types.native.js.map +1 -1
  71. package/dist/cjs/vite.cjs +2 -4
  72. package/dist/cjs/vite.js +2 -3
  73. package/dist/cjs/vite.js.map +1 -1
  74. package/dist/cjs/vite.native.js +3 -5
  75. package/dist/cjs/vite.native.js.map +1 -1
  76. package/dist/cjs/zero/useQuery.cjs +2 -2
  77. package/dist/cjs/zero/useQuery.js +2 -2
  78. package/dist/cjs/zero/useQuery.js.map +1 -1
  79. package/dist/cjs/zero/useQuery.native.js +1 -1
  80. package/dist/cjs/zero/useQuery.native.js.map +1 -1
  81. package/dist/esm/Root.js +33 -31
  82. package/dist/esm/Root.js.map +1 -1
  83. package/dist/esm/Root.mjs +32 -29
  84. package/dist/esm/Root.mjs.map +1 -1
  85. package/dist/esm/Root.native.js +11 -7
  86. package/dist/esm/Root.native.js.map +2 -2
  87. package/dist/esm/cli/build.js +2 -2
  88. package/dist/esm/cli/build.js.map +1 -1
  89. package/dist/esm/cli/build.mjs +2 -4
  90. package/dist/esm/cli/build.mjs.map +1 -1
  91. package/dist/esm/cli/build.native.js +2 -2
  92. package/dist/esm/cli/build.native.js.map +2 -2
  93. package/dist/esm/cli/buildPage.js.map +1 -1
  94. package/dist/esm/cli/buildPage.mjs.map +1 -1
  95. package/dist/esm/cli/buildPage.native.js.map +1 -1
  96. package/dist/esm/constants.js.map +1 -1
  97. package/dist/esm/constants.mjs.map +1 -1
  98. package/dist/esm/constants.native.js.map +1 -1
  99. package/dist/esm/createApp.js +2 -5
  100. package/dist/esm/createApp.js.map +1 -1
  101. package/dist/esm/createApp.mjs +2 -1
  102. package/dist/esm/createApp.mjs.map +1 -1
  103. package/dist/esm/createHandleRequest.js +1 -1
  104. package/dist/esm/createHandleRequest.js.map +1 -1
  105. package/dist/esm/createHandleRequest.mjs +1 -1
  106. package/dist/esm/createHandleRequest.mjs.map +1 -1
  107. package/dist/esm/createHandleRequest.native.js +1 -1
  108. package/dist/esm/createHandleRequest.native.js.map +2 -2
  109. package/dist/esm/index.js +2 -1
  110. package/dist/esm/index.js.map +1 -1
  111. package/dist/esm/index.mjs +2 -2
  112. package/dist/esm/index.mjs.map +1 -1
  113. package/dist/esm/index.native.js +2 -1
  114. package/dist/esm/index.native.js.map +2 -2
  115. package/dist/esm/router/useScreens.js +3 -2
  116. package/dist/esm/router/useScreens.js.map +1 -1
  117. package/dist/esm/router/useScreens.mjs +3 -2
  118. package/dist/esm/router/useScreens.mjs.map +1 -1
  119. package/dist/esm/router/useScreens.native.js +3 -2
  120. package/dist/esm/router/useScreens.native.js.map +2 -2
  121. package/dist/esm/server/ServerContextScript.js +42 -0
  122. package/dist/esm/server/ServerContextScript.js.map +6 -0
  123. package/dist/esm/server/ServerContextScript.mjs +33 -0
  124. package/dist/esm/server/ServerContextScript.mjs.map +1 -0
  125. package/dist/esm/server/ServerContextScript.native.js +38 -0
  126. package/dist/esm/server/ServerContextScript.native.js.map +6 -0
  127. package/dist/esm/server/createRoutesManifest.js.map +1 -1
  128. package/dist/esm/server/createRoutesManifest.mjs.map +1 -1
  129. package/dist/esm/server/createRoutesManifest.native.js.map +1 -1
  130. package/dist/esm/useLoader.js +2 -2
  131. package/dist/esm/useLoader.js.map +1 -1
  132. package/dist/esm/useLoader.mjs +2 -2
  133. package/dist/esm/useLoader.mjs.map +1 -1
  134. package/dist/esm/useLoader.native.js +2 -2
  135. package/dist/esm/useLoader.native.js.map +2 -2
  136. package/dist/esm/vite/constants.js +3 -2
  137. package/dist/esm/vite/constants.js.map +1 -1
  138. package/dist/esm/vite/constants.mjs +3 -2
  139. package/dist/esm/vite/constants.mjs.map +1 -1
  140. package/dist/esm/vite/constants.native.js +3 -2
  141. package/dist/esm/vite/constants.native.js.map +2 -2
  142. package/dist/esm/vite/one-server-only.js +93 -0
  143. package/dist/esm/vite/one-server-only.js.map +6 -0
  144. package/dist/esm/vite/one-server-only.mjs +81 -0
  145. package/dist/esm/vite/one-server-only.mjs.map +1 -0
  146. package/dist/esm/vite/{server.native.js → one-server-only.native.js} +8 -2
  147. package/dist/esm/vite/one-server-only.native.js.map +6 -0
  148. package/dist/esm/vite/one.js +8 -36
  149. package/dist/esm/vite/one.js.map +1 -1
  150. package/dist/esm/vite/one.mjs +4 -27
  151. package/dist/esm/vite/one.mjs.map +1 -1
  152. package/dist/esm/vite/one.native.js +5 -31
  153. package/dist/esm/vite/one.native.js.map +2 -2
  154. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +1 -1
  155. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +1 -1
  156. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +1 -1
  157. package/dist/esm/vite/resolveResponse.js +1 -1
  158. package/dist/esm/vite/resolveResponse.mjs +1 -1
  159. package/dist/esm/vite/resolveResponse.native.js +1 -1
  160. package/dist/esm/vite.js +2 -4
  161. package/dist/esm/vite.js.map +1 -1
  162. package/dist/esm/vite.mjs +2 -3
  163. package/dist/esm/vite.mjs.map +1 -1
  164. package/dist/esm/vite.native.js +2 -4
  165. package/dist/esm/vite.native.js.map +2 -2
  166. package/dist/esm/zero/useQuery.js +1 -1
  167. package/dist/esm/zero/useQuery.mjs +1 -1
  168. package/dist/esm/zero/useQuery.native.js +1 -1
  169. package/package.json +8 -22
  170. package/src/Root.tsx +21 -7
  171. package/src/cli/build.ts +3 -4
  172. package/src/cli/buildPage.ts +1 -2
  173. package/src/constants.ts +2 -2
  174. package/src/createApp.tsx +2 -5
  175. package/src/createHandleRequest.ts +3 -3
  176. package/src/index.ts +3 -1
  177. package/src/router/useScreens.tsx +3 -3
  178. package/src/server/ServerContextScript.tsx +42 -0
  179. package/src/server/createRoutesManifest.ts +2 -13
  180. package/src/useLoader.ts +2 -3
  181. package/src/vite/constants.ts +2 -0
  182. package/src/vite/one-server-only.native.ts +6 -0
  183. package/src/vite/one-server-only.tsx +152 -0
  184. package/src/vite/one.ts +10 -48
  185. package/src/vite/plugins/fileSystemRouterPlugin.tsx +1 -1
  186. package/src/vite/resolveResponse.ts +1 -1
  187. package/src/vite/types.ts +20 -1
  188. package/src/vite.ts +1 -3
  189. package/src/zero/useQuery.ts +1 -1
  190. package/types/Root.d.ts.map +1 -1
  191. package/types/cli/build.d.ts.map +1 -1
  192. package/types/cli/buildPage.d.ts +1 -2
  193. package/types/cli/buildPage.d.ts.map +1 -1
  194. package/types/constants.d.ts +2 -2
  195. package/types/constants.d.ts.map +1 -1
  196. package/types/createApp.d.ts.map +1 -1
  197. package/types/createHandleRequest.d.ts +2 -1
  198. package/types/createHandleRequest.d.ts.map +1 -1
  199. package/types/index.d.ts +1 -1
  200. package/types/index.d.ts.map +1 -1
  201. package/types/layouts/Drawer.d.ts +2 -2
  202. package/types/layouts/Stack.d.ts +2 -2
  203. package/types/layouts/Tabs.d.ts +2 -2
  204. package/types/router/useScreens.d.ts.map +1 -1
  205. package/types/server/ServerContextScript.d.ts +2 -0
  206. package/types/server/ServerContextScript.d.ts.map +1 -0
  207. package/types/server/createRoutesManifest.d.ts +1 -12
  208. package/types/server/createRoutesManifest.d.ts.map +1 -1
  209. package/types/useLoader.d.ts.map +1 -1
  210. package/types/vite/constants.d.ts +1 -0
  211. package/types/vite/constants.d.ts.map +1 -1
  212. package/types/vite/one-server-only.d.ts +26 -0
  213. package/types/vite/one-server-only.d.ts.map +1 -0
  214. package/types/vite/one-server-only.native.d.ts +7 -0
  215. package/types/vite/one-server-only.native.d.ts.map +1 -0
  216. package/types/vite/one.d.ts.map +1 -1
  217. package/types/vite/types.d.ts +18 -1
  218. package/types/vite/types.d.ts.map +1 -1
  219. package/types/vite.d.ts +1 -2
  220. package/types/vite.d.ts.map +1 -1
  221. package/dist/cjs/utils/one__ensureAsyncLocalID.cjs +0 -31
  222. package/dist/cjs/utils/one__ensureAsyncLocalID.js +0 -27
  223. package/dist/cjs/utils/one__ensureAsyncLocalID.js.map +0 -6
  224. package/dist/cjs/utils/one__ensureAsyncLocalID.native.js +0 -32
  225. package/dist/cjs/utils/one__ensureAsyncLocalID.native.js.map +0 -6
  226. package/dist/cjs/utils/serverContext.cjs +0 -93
  227. package/dist/cjs/utils/serverContext.js +0 -92
  228. package/dist/cjs/utils/serverContext.js.map +0 -6
  229. package/dist/cjs/utils/serverContext.native.js +0 -103
  230. package/dist/cjs/utils/serverContext.native.js.map +0 -6
  231. package/dist/cjs/vite/server.cjs +0 -63
  232. package/dist/cjs/vite/server.js +0 -49
  233. package/dist/cjs/vite/server.js.map +0 -6
  234. package/dist/cjs/vite/server.native.js.map +0 -6
  235. package/dist/esm/utils/one__ensureAsyncLocalID.js +0 -11
  236. package/dist/esm/utils/one__ensureAsyncLocalID.js.map +0 -6
  237. package/dist/esm/utils/one__ensureAsyncLocalID.mjs +0 -8
  238. package/dist/esm/utils/one__ensureAsyncLocalID.mjs.map +0 -1
  239. package/dist/esm/utils/one__ensureAsyncLocalID.native.js +0 -11
  240. package/dist/esm/utils/one__ensureAsyncLocalID.native.js.map +0 -6
  241. package/dist/esm/utils/serverContext.js +0 -79
  242. package/dist/esm/utils/serverContext.js.map +0 -6
  243. package/dist/esm/utils/serverContext.mjs +0 -64
  244. package/dist/esm/utils/serverContext.mjs.map +0 -1
  245. package/dist/esm/utils/serverContext.native.js +0 -80
  246. package/dist/esm/utils/serverContext.native.js.map +0 -6
  247. package/dist/esm/vite/server.js +0 -34
  248. package/dist/esm/vite/server.js.map +0 -6
  249. package/dist/esm/vite/server.mjs +0 -36
  250. package/dist/esm/vite/server.mjs.map +0 -1
  251. package/dist/esm/vite/server.native.js.map +0 -6
  252. package/src/utils/one__ensureAsyncLocalID.ts +0 -11
  253. package/src/utils/serverContext.tsx +0 -119
  254. package/src/vite/server.native.ts +0 -7
  255. package/src/vite/server.ts +0 -57
  256. package/types/utils/one__ensureAsyncLocalID.d.ts +0 -2
  257. package/types/utils/one__ensureAsyncLocalID.d.ts.map +0 -1
  258. package/types/utils/serverContext.d.ts +0 -26
  259. package/types/utils/serverContext.d.ts.map +0 -1
  260. package/types/vite/server.d.ts +0 -9
  261. package/types/vite/server.d.ts.map +0 -1
  262. package/types/vite/server.native.d.ts +0 -5
  263. package/types/vite/server.native.d.ts.map +0 -1
package/src/constants.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ServerContext } from './utils/serverContext'
1
+ import type { One } from './vite/types'
2
2
 
3
3
  export const isWebClient = process.env.TAMAGUI_TARGET !== 'native' && typeof window !== 'undefined'
4
4
  export const isWebServer = process.env.TAMAGUI_TARGET !== 'native' && typeof window === 'undefined'
@@ -21,7 +21,7 @@ export const SERVER_CONTEXT_KEY = '__one_server_context__'
21
21
 
22
22
  export const getSpaHeaderElements = ({
23
23
  serverContext = {},
24
- }: { serverContext?: ServerContext } = {}) => `
24
+ }: { serverContext?: One.ServerContext } = {}) => `
25
25
  <script>globalThis['global'] = globalThis</script>
26
26
  <script>globalThis['__vxrnIsSPA'] = true</script>
27
27
  <script>globalThis["${SERVER_CONTEXT_KEY}"] = ${JSON.stringify(serverContext)}</script>
package/src/createApp.tsx CHANGED
@@ -10,11 +10,8 @@ import type { RenderAppProps } from './types'
10
10
  import ReactDOMServer from 'react-dom/server.browser'
11
11
  import { getServerHeadInsertions } from './useServerHeadInsertion'
12
12
  import { ensureExists } from './utils/ensureExists'
13
- import {
14
- getServerContext,
15
- SERVER_CONTEXT_POST_RENDER_STRING,
16
- setServerContext,
17
- } from './utils/serverContext'
13
+ import { getServerContext, setServerContext } from './vite/one-server-only'
14
+ import { SERVER_CONTEXT_POST_RENDER_STRING } from './vite/constants'
18
15
 
19
16
  export type CreateAppProps = { routes: Record<string, () => Promise<unknown>> }
20
17
 
@@ -1,14 +1,14 @@
1
- import { extname } from 'node:path'
2
- import { getPathFromLoaderPath } from './utils/cleanUrl'
3
1
  import { LOADER_JS_POSTFIX_UNCACHED } from './constants'
4
2
  import type { Middleware, MiddlewareContext } from './createMiddleware'
5
3
  import type { RouteNode } from './router/Route'
6
- import type { RouteInfo, RouteInfoCompiled } from './server/createRoutesManifest'
4
+ import type { RouteInfoCompiled } from './server/createRoutesManifest'
7
5
  import type { LoaderProps } from './types'
6
+ import { getPathFromLoaderPath } from './utils/cleanUrl'
8
7
  import { getHonoPath } from './utils/getHonoPath'
9
8
  import { isResponse } from './utils/isResponse'
10
9
  import { getManifest } from './vite/getManifest'
11
10
  import { resolveAPIEndpoint, resolveResponse } from './vite/resolveResponse'
11
+ import type { RouteInfo } from './vite/types'
12
12
 
13
13
  export type RequestHandlers = {
14
14
  handlePage?: (props: RequestHandlerProps) => Promise<any>
package/src/index.ts CHANGED
@@ -62,7 +62,9 @@ export { isResponse } from './utils/isResponse'
62
62
  export { getURL } from './getURL'
63
63
  export { redirect } from './utils/redirect'
64
64
  export { href } from './href'
65
- export { getServerData, setServerData } from './utils/serverContext'
65
+
66
+ // server
67
+ export { setResponseHeaders, getServerData, setServerData } from './vite/one-server-only'
66
68
 
67
69
  // re-export
68
70
  export * from '@vxrn/universal-color-scheme'
@@ -8,13 +8,14 @@ import type {
8
8
  ScreenListeners,
9
9
  } from '@react-navigation/native'
10
10
  import React, { forwardRef, Suspense, useEffect } from 'react'
11
+ import { ServerContextScript } from '../server/ServerContextScript'
11
12
  import { getPageExport } from '../utils/getPageExport'
12
- import { getServerContext, ServerContextScript } from '../utils/serverContext'
13
13
  import { useConstant } from '../utils/useConstant'
14
14
  import { EmptyRoute } from '../views/EmptyRoute'
15
15
  import { RootErrorBoundary } from '../views/RootErrorBoundary'
16
16
  import { Try } from '../views/Try'
17
17
  import { DevHead } from '../vite/DevHead'
18
+ import { useServerContext } from '../vite/one-server-only'
18
19
  import { filterRootHTML } from './filterRootHTML'
19
20
  import {
20
21
  Route,
@@ -182,8 +183,7 @@ export function getQualifiedRouteComponent(value: RouteNode) {
182
183
  const out = BaseComponent(props, ref)
183
184
  const { children, bodyProps, head, htmlProps } = filterRootHTML(out)
184
185
  const { children: headChildren, ...headProps } = head?.props || {}
185
-
186
- const serverContext = getServerContext()
186
+ const serverContext = useServerContext()
187
187
 
188
188
  if (process.env.TAMAGUI_TARGET === 'native') {
189
189
  // on native we just ignore all html/body/head
@@ -0,0 +1,42 @@
1
+ import { SERVER_CONTEXT_KEY } from '../constants'
2
+ import { SERVER_CONTEXT_POST_RENDER_STRING } from '../vite/constants'
3
+ import { useServerContext } from '../vite/one-server-only'
4
+
5
+ export function ServerContextScript() {
6
+ if (process.env.VITE_ENVIRONMENT === 'client') {
7
+ return (
8
+ <script
9
+ async
10
+ // @ts-ignore
11
+ href={SERVER_CONTEXT_KEY}
12
+ suppressHydrationWarning
13
+ dangerouslySetInnerHTML={{
14
+ __html: ``,
15
+ }}
16
+ />
17
+ )
18
+ }
19
+
20
+ if (process.env.VITE_ENVIRONMENT === 'ssr') {
21
+ const context = useServerContext()
22
+
23
+ return (
24
+ <script
25
+ async
26
+ // @ts-ignore
27
+ href={SERVER_CONTEXT_KEY}
28
+ suppressHydrationWarning
29
+ dangerouslySetInnerHTML={{
30
+ __html: `
31
+ globalThis["${SERVER_CONTEXT_KEY}"] = ${JSON.stringify({
32
+ ...context,
33
+ postRenderData: SERVER_CONTEXT_POST_RENDER_STRING,
34
+ })};
35
+ `,
36
+ }}
37
+ />
38
+ )
39
+ }
40
+
41
+ return null
42
+ }
@@ -1,20 +1,9 @@
1
1
  import { type Options, getRoutes } from '../router/getRoutes'
2
2
  import { getServerManifest } from './getServerManifest'
3
- import type { RouteNode } from '../router/Route'
4
- import type { One } from '../vite/types'
5
3
 
6
- export { type Options } from '../router/getRoutes'
4
+ import type { One, RouteInfo } from '../vite/types'
7
5
 
8
- export type RouteInfo<TRegex = string> = {
9
- file: string
10
- page: string
11
- namedRegex: TRegex
12
- routeKeys: Record<string, string>
13
- layouts?: RouteNode[]
14
- middlewares?: RouteNode[]
15
- type: One.RouteType
16
- isNotFound?: boolean
17
- }
6
+ export { type Options } from '../router/getRoutes'
18
7
 
19
8
  export type RouteInfoCompiled = RouteInfo & {
20
9
  compiledRegex: RegExp
package/src/useLoader.ts CHANGED
@@ -2,12 +2,11 @@
2
2
  import { useEffect, useRef } from 'react'
3
3
  import { useActiveParams, useParams, usePathname } from './hooks'
4
4
  import { resolveHref } from './link/href'
5
- import { useRouteNode } from './router/Route'
6
5
  import { preloadingLoader } from './router/router'
7
6
  import { getLoaderPath } from './utils/cleanUrl'
8
7
  import { dynamicImport } from './utils/dynamicImport'
9
- import { getServerContext } from './utils/serverContext'
10
8
  import { weakKey } from './utils/weakKey'
9
+ import { useServerContext } from './vite/one-server-only'
11
10
 
12
11
  const promises: Record<string, undefined | Promise<void>> = {}
13
12
  const errors = {}
@@ -18,7 +17,7 @@ export function useLoader<
18
17
  Returned = Loader extends (p: any) => any ? ReturnType<Loader> : unknown,
19
18
  >(loader: Loader): Returned extends Promise<any> ? Awaited<Returned> : Returned {
20
19
  const { loaderProps: loaderPropsFromServerContext, loaderData: loaderDataFromServerContext } =
21
- getServerContext() || {}
20
+ useServerContext() || {}
22
21
 
23
22
  // server side we just run the loader directly
24
23
  if (typeof window === 'undefined') {
@@ -1,3 +1,5 @@
1
1
  export const EMPTY_LOADER_STRING = `export function loader() {return "__vxrn__loader__"};`
2
2
 
3
3
  export const LoaderDataCache = {}
4
+
5
+ export const SERVER_CONTEXT_POST_RENDER_STRING = `_one_post_render_data_`
@@ -0,0 +1,6 @@
1
+ export const requestAsyncLocalStore = null
2
+ export const asyncHeadersCache = new WeakMap()
3
+ export async function setResponseHeaders(cb) {}
4
+ export function mergeHeaders(onto, from) {}
5
+ export function setServerContext() {}
6
+ export function setServerData() {}
@@ -0,0 +1,152 @@
1
+ // ⛔️⛔️⛔️⛔️⛔️⛔️
2
+ //
3
+ // NOTE: we have a big issue right now, we have "one" in optimizeDeps
4
+ // because otherwise you get an error when Root imports Text/View from react-native
5
+ // even though react-native is in optimizeDeps, it seems thats not working
6
+ // but what happens is that somehow one is imported directly by node right away
7
+ // and then later its imported through optimizeDeps, a seaprate instance, creating a separate requestAsyncLocalStore
8
+
9
+ import { AsyncLocalStorage } from 'node:async_hooks'
10
+ import { SERVER_CONTEXT_KEY } from '../constants'
11
+ import type { One } from './types'
12
+ import React from 'react'
13
+
14
+ type ALSInstance = AsyncLocalStorage<unknown>
15
+
16
+ const key = '__vxrnrequestAsyncLocalStore'
17
+ const read = () => globalThis[key] as ALSInstance | undefined
18
+
19
+ const ASYNC_LOCAL_STORE = {
20
+ get current() {
21
+ if (read()) return read()
22
+ const _ = new AsyncLocalStorage()
23
+ globalThis[key] = _
24
+ return _
25
+ },
26
+ }
27
+
28
+ export const requestAsyncLocalStore =
29
+ process.env.VITE_ENVIRONMENT === 'ssr' ? ASYNC_LOCAL_STORE.current : null
30
+
31
+ const newCache = new WeakMap<any, Headers>()
32
+
33
+ export const asyncHeadersCache =
34
+ (globalThis['__vxrnasyncHeadersCache'] as typeof newCache) ?? newCache
35
+
36
+ globalThis['__vxrnasyncHeadersCache'] ||= asyncHeadersCache
37
+
38
+ export async function runWithAsyncLocalContext<A>(cb: (id: Object) => Promise<A>): Promise<A> {
39
+ const id = { _id: Math.random() }
40
+ let out: A = null as any
41
+ await ASYNC_LOCAL_STORE.current!.run(id, async () => {
42
+ out = await cb(id)
43
+ })
44
+ return out
45
+ }
46
+
47
+ export async function setResponseHeaders(cb: (headers: Headers) => void) {
48
+ const id = ensureAsyncLocalID()
49
+ const headers = asyncHeadersCache.get(id) ?? new Headers()
50
+ asyncHeadersCache.set(id, headers)
51
+ cb(headers)
52
+ }
53
+
54
+ export function mergeHeaders(onto: Headers, from: Headers) {
55
+ from.forEach((value, key) => {
56
+ if (value === undefined || value === 'undefined') {
57
+ onto.delete(key)
58
+ } else {
59
+ onto.append(key, value)
60
+ }
61
+ })
62
+ }
63
+
64
+ export function ensureAsyncLocalID() {
65
+ const id = requestAsyncLocalStore?.getStore()
66
+
67
+ if (!id) {
68
+ throw new Error(`Internal One error, no AsyncLocalStorage id!`)
69
+ }
70
+
71
+ return id as Object
72
+ }
73
+
74
+ export type MaybeServerContext = null | One.ServerContext
75
+
76
+ const serverContexts = new WeakMap<any, One.ServerContext>()
77
+
78
+ export function setServerContext(data: One.ServerContext) {
79
+ if (process.env.VITE_ENVIRONMENT === 'ssr') {
80
+ const id = ensureAsyncLocalID()
81
+ if (!serverContexts.has(id)) {
82
+ serverContexts.set(id, {})
83
+ }
84
+
85
+ const context = serverContexts.get(id)!
86
+ Object.assign(context, data)
87
+ } else {
88
+ throw new Error(`Don't call setServerContext on client`)
89
+ }
90
+ }
91
+
92
+ export function getServerContext() {
93
+ const out = (() => {
94
+ if (process.env.VITE_ENVIRONMENT === 'ssr') {
95
+ const id = ensureAsyncLocalID()
96
+ return serverContexts.get(id)
97
+ }
98
+ return globalThis[SERVER_CONTEXT_KEY] as MaybeServerContext
99
+ })()
100
+
101
+ return out
102
+ }
103
+
104
+ export function useServerContext() {
105
+ if (process.env.VITE_ENVIRONMENT === 'ssr') {
106
+ try {
107
+ const useContext = globalThis['__vxrnGetContextFromReactContext']
108
+ if (useContext) {
109
+ return serverContexts.get(useContext())
110
+ }
111
+ } catch {
112
+ // ok, not in react tree
113
+ }
114
+ }
115
+
116
+ return getServerContext()
117
+ }
118
+
119
+ /**
120
+ * For passing data from the server to the client. Can only be called on the server.
121
+ * You can type it by overriding `One.ClientData` type using declare module 'one'.
122
+ *
123
+ * On the client, you can access the data with `getServerData`.
124
+ */
125
+ export function setServerData<Key extends keyof One.ClientData>(
126
+ key: Key,
127
+ value: One.ClientData[Key]
128
+ ) {
129
+ if (process.env.VITE_ENVIRONMENT === 'ssr') {
130
+ const context = getServerContext()
131
+ setServerContext({
132
+ postRenderData: {
133
+ ...context?.postRenderData,
134
+ [key]: value,
135
+ },
136
+ })
137
+ } else {
138
+ throw new Error(`Cannot setServerData in ${process.env.VITE_ENVIRONMENT} environment!`)
139
+ }
140
+ }
141
+
142
+ /**
143
+ * For getting data set by setServerData on the server.
144
+ */
145
+ export function getServerData(key: keyof One.ClientData) {
146
+ if (process.env.VITE_ENVIRONMENT === 'ssr') {
147
+ throw new Error(`Cannot getServerData on the server`)
148
+ }
149
+ if (process.env.VITE_ENVIRONMENT !== 'ssr') {
150
+ return getServerContext()?.postRenderData?.[key]
151
+ }
152
+ }
package/src/vite/one.ts CHANGED
@@ -1,20 +1,13 @@
1
1
  import { configureVXRNCompilerPlugin } from '@vxrn/compiler'
2
2
  import { resolvePath } from '@vxrn/resolve'
3
3
  import events from 'node:events'
4
- import path, { dirname, resolve } from 'node:path'
4
+ import path, { sep } from 'node:path'
5
5
  import type { Plugin, PluginOption, UserConfig } from 'vite'
6
6
  import { barrel } from 'vite-plugin-barrel'
7
7
  import tsconfigPaths from 'vite-tsconfig-paths'
8
- import {
9
- autoDepOptimizePlugin,
10
- getOptimizeDeps,
11
- getOptionsFilled,
12
- isWebEnvironment,
13
- loadEnv,
14
- } from 'vxrn'
8
+ import { autoDepOptimizePlugin, getOptimizeDeps, getOptionsFilled, loadEnv } from 'vxrn'
15
9
  import { CACHE_KEY } from '../constants'
16
10
  import '../polyfills-server'
17
- import { existsAsync } from '../utils/existsAsync'
18
11
  import { ensureTSConfig } from './ensureTsConfig'
19
12
  import { setOneOptions } from './loadConfig'
20
13
  import { clientTreeShakePlugin } from './plugins/clientTreeShakePlugin'
@@ -343,18 +336,17 @@ export function one(options: One.PluginOptions = {}): PluginOption {
343
336
 
344
337
  {
345
338
  name: 'one:remove-server-from-client',
339
+ enforce: 'pre',
346
340
 
347
341
  transform(code, id) {
348
- if (this.environment.name !== 'client') {
349
- return
350
- }
351
- if (!id.includes('one__ensureAsyncLocalID')) {
352
- return
353
- }
354
- return `export function ensureAsyncLocalID() {
355
- return {}
342
+ if (this.environment.name === 'client') {
343
+ if (id.includes(`vite${sep}one-server-only`)) {
344
+ return code.replace(
345
+ `import { AsyncLocalStorage } from "node:async_hooks"`,
346
+ `class AsyncLocalStorage {}`
347
+ )
356
348
  }
357
- `
349
+ }
358
350
  },
359
351
  },
360
352
  ] satisfies Plugin[]
@@ -476,36 +468,6 @@ export function one(options: One.PluginOptions = {}): PluginOption {
476
468
  },
477
469
  } satisfies Plugin,
478
470
 
479
- {
480
- name: 'one:optimize-deps-load-web-extensions-web-only',
481
- enforce: 'pre',
482
-
483
- applyToEnvironment(environment) {
484
- return isWebEnvironment(environment)
485
- },
486
-
487
- async resolveId(id, importer = '') {
488
- const shouldOptimize = optimizeIdRegex.test(importer)
489
-
490
- if (shouldOptimize) {
491
- const absolutePath = resolve(dirname(importer), id)
492
- const webPath = absolutePath.replace(/(.m?js)/, '') + '.web.js'
493
- if (webPath === id) return
494
- try {
495
- const directoryPath = absolutePath + '/index.web.js'
496
- if (await existsAsync(directoryPath)) {
497
- return directoryPath
498
- }
499
- if (await existsAsync(webPath)) {
500
- return webPath
501
- }
502
- } catch (err) {
503
- console.warn(`error probably fine`, err)
504
- }
505
- }
506
- },
507
- } satisfies Plugin,
508
-
509
471
  SSRCSSPlugin({
510
472
  entries: [virtualEntryId],
511
473
  }),
@@ -9,7 +9,7 @@ import type { RenderAppProps } from '../../types'
9
9
  import { isResponse } from '../../utils/isResponse'
10
10
  import { isStatusRedirect } from '../../utils/isStatus'
11
11
  import { promiseWithResolvers } from '../../utils/promiseWithResolvers'
12
- import { setServerContext } from '../../utils/serverContext'
12
+ import { setServerContext } from '../one-server-only'
13
13
  import { LoaderDataCache } from '../../vite/constants'
14
14
  import { replaceLoader } from '../../vite/replaceLoader'
15
15
  import type { One } from '../../vite/types'
@@ -1,5 +1,5 @@
1
1
  import { isResponse } from '../utils/isResponse'
2
- import { asyncHeadersCache, mergeHeaders, runWithAsyncLocalContext } from './server'
2
+ import { asyncHeadersCache, mergeHeaders, runWithAsyncLocalContext } from './one-server-only'
3
3
 
4
4
  export function resolveResponse(getResponse: () => Promise<Response>) {
5
5
  return new Promise<Response>((res, rej) => {
package/src/vite/types.ts CHANGED
@@ -8,7 +8,18 @@ import type {
8
8
  VXRNOptions,
9
9
  VXRNServePlatform,
10
10
  } from 'vxrn'
11
- import type { RouteInfo } from '../server/createRoutesManifest'
11
+ import type { RouteNode } from '../router/Route'
12
+
13
+ export type RouteInfo<TRegex = string> = {
14
+ file: string
15
+ page: string
16
+ namedRegex: TRegex
17
+ routeKeys: Record<string, string>
18
+ layouts?: RouteNode[]
19
+ middlewares?: RouteNode[]
20
+ type: One.RouteType
21
+ isNotFound?: boolean
22
+ }
12
23
 
13
24
  export namespace One {
14
25
  export type Options = Omit<VXRNOptions, keyof PluginOptions> & PluginOptions
@@ -269,4 +280,12 @@ export namespace One {
269
280
  loaderData: any
270
281
  preloads: string[]
271
282
  }
283
+
284
+ export type ServerContext = {
285
+ css?: string[]
286
+ postRenderData?: any
287
+ loaderData?: any
288
+ loaderProps?: any
289
+ mode?: 'spa' | 'ssg' | 'ssr'
290
+ }
272
291
  }
package/src/vite.ts CHANGED
@@ -1,13 +1,11 @@
1
1
  // plugins
2
2
  export { resolvePath } from '@vxrn/resolve'
3
3
  export { clientTreeShakePlugin } from './vite/plugins/clientTreeShakePlugin'
4
+ export { createFileSystemRouterPlugin } from './vite/plugins/fileSystemRouterPlugin'
4
5
  export { removeReactNativeWebAnimatedPlugin } from './vite/plugins/removeReactNativeWebAnimatedPlugin'
5
6
  export { SSRCSSPlugin } from './vite/plugins/SSRCSSPlugin'
6
- export { createFileSystemRouterPlugin } from './vite/plugins/fileSystemRouterPlugin'
7
7
 
8
8
  export { makePluginWebOnly } from './vite/makePluginWebOnly'
9
9
 
10
- export { setResponseHeaders } from './vite/server'
11
-
12
10
  export { build } from './cli/build'
13
11
  export { one } from './vite/one'
@@ -2,7 +2,7 @@ import { useRef } from 'react'
2
2
  import { getQueryKey } from './getQueryKey'
3
3
  import { resolveZeroQuery } from './resolveQuery'
4
4
  import { useQuery as useQueryZero } from './useQueryZero'
5
- import { getServerContext } from '../utils/serverContext'
5
+ import { getServerContext } from '../vite/one-server-only'
6
6
 
7
7
  let clientInitialData: Object | null = getServerContext()?.postRenderData
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../src/Root.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAA8B,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAM1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAMlD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAEvC,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG;IAC7C,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,mBAAmB,CAAA;IAC3B,YAAY,CAAC,EAAE,GAAG,CAAC,YAAY,CAAA;CAChC,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,GAAG,CAAC,YAAY,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;IACpD,wBAAwB,CAAC,EAAE,wBAAwB,GAAG;QACpD,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,OAAO,CAAA;YACb,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAA;gBACf,UAAU,EAAE,MAAM,CAAA;gBAClB,IAAI,EAAE,MAAM,CAAA;gBACZ,IAAI,EAAE,MAAM,CAAA;gBACZ,MAAM,EAAE,MAAM,CAAA;gBACd,YAAY,EAAE,MAAM,CAAA;aACrB,CAAA;SACF,CAAA;KACF,CAAA;CACF,CAAA;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,kDAqFpC"}
1
+ {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../src/Root.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAOd,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAKlD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAEvC,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG;IAC7C,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,mBAAmB,CAAA;IAC3B,YAAY,CAAC,EAAE,GAAG,CAAC,YAAY,CAAA;CAChC,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,GAAG,CAAC,YAAY,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;IACpD,wBAAwB,CAAC,EAAE,wBAAwB,GAAG;QACpD,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,OAAO,CAAA;YACb,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAA;gBACf,UAAU,EAAE,MAAM,CAAA;gBAClB,IAAI,EAAE,MAAM,CAAA;gBACZ,IAAI,EAAE,MAAM,CAAA;gBACZ,MAAM,EAAE,MAAM,CAAA;gBACd,YAAY,EAAE,MAAM,CAAA;aACrB,CAAA;SACF,CAAA;KACF,CAAA;CACF,CAAA;AAOD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,kDAsFpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAiCA,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;CACrC,iBAsfA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAgCA,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;CACrC,iBAsfA"}
@@ -1,4 +1,3 @@
1
- import type { RouteInfo } from '../server/createRoutesManifest';
2
- import type { One } from '../vite/types';
1
+ import type { One, RouteInfo } from '../vite/types';
3
2
  export declare function buildPage(serverEntry: string, path: string, relativeId: string, params: any, foundRoute: RouteInfo<string>, clientManifestEntry: any, staticDir: string, clientDir: string, builtMiddlewares: Record<string, string>, serverJsPath: string, preloads: string[], allCSS: string[]): Promise<One.RouteBuildInfo>;
4
3
  //# sourceMappingURL=buildPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildPage.d.ts","sourceRoot":"","sources":["../../src/cli/buildPage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAK/D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAIxC,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,EAC7B,mBAAmB,EAAE,GAAG,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAgG7B"}
1
+ {"version":3,"file":"buildPage.d.ts","sourceRoot":"","sources":["../../src/cli/buildPage.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAInD,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,EAC7B,mBAAmB,EAAE,GAAG,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAgG7B"}
@@ -1,4 +1,4 @@
1
- import type { ServerContext } from './utils/serverContext';
1
+ import type { One } from './vite/types';
2
2
  export declare const isWebClient: boolean;
3
3
  export declare const isWebServer: boolean;
4
4
  export declare const isNative: boolean;
@@ -12,6 +12,6 @@ export declare const VIRTUAL_SSR_CSS_ENTRY = "virtual:ssr-css.css";
12
12
  export declare const VIRTUAL_SSR_CSS_HREF = "/@id/__x00__virtual:ssr-css.css";
13
13
  export declare const SERVER_CONTEXT_KEY = "__one_server_context__";
14
14
  export declare const getSpaHeaderElements: ({ serverContext, }?: {
15
- serverContext?: ServerContext;
15
+ serverContext?: One.ServerContext;
16
16
  }) => string;
17
17
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,eAAO,MAAM,WAAW,SAA2E,CAAA;AACnG,eAAO,MAAM,WAAW,SAA2E,CAAA;AACnG,eAAO,MAAM,QAAQ,SAA0C,CAAA;AAE/D,eAAO,MAAM,SAAS,QAA4E,CAAA;AAElG,eAAO,MAAM,0BAA0B,oBAAoB,CAAA;AAC3D,eAAO,MAAM,8BAA8B,0BAAwC,CAAA;AACnF,eAAO,MAAM,uBAAuB,QAA6C,CAAA;AACjF,eAAO,MAAM,iBAAiB,QAA+C,CAAA;AAE7E,eAAO,MAAM,kBAAkB,QAA6B,CAAA;AAG5D,eAAO,MAAM,qBAAqB,wBAAwB,CAAA;AAC1D,eAAO,MAAM,oBAAoB,oCAAyC,CAAA;AAE1E,eAAO,MAAM,kBAAkB,2BAA2B,CAAA;AAE1D,eAAO,MAAM,oBAAoB,wBAE9B;IAAE,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,WAInC,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAEvC,eAAO,MAAM,WAAW,SAA2E,CAAA;AACnG,eAAO,MAAM,WAAW,SAA2E,CAAA;AACnG,eAAO,MAAM,QAAQ,SAA0C,CAAA;AAE/D,eAAO,MAAM,SAAS,QAA4E,CAAA;AAElG,eAAO,MAAM,0BAA0B,oBAAoB,CAAA;AAC3D,eAAO,MAAM,8BAA8B,0BAAwC,CAAA;AACnF,eAAO,MAAM,uBAAuB,QAA6C,CAAA;AACjF,eAAO,MAAM,iBAAiB,QAA+C,CAAA;AAE7E,eAAO,MAAM,kBAAkB,QAA6B,CAAA;AAG5D,eAAO,MAAM,qBAAqB,wBAAwB,CAAA;AAC1D,eAAO,MAAM,oBAAoB,oCAAyC,CAAA;AAE1E,eAAO,MAAM,kBAAkB,2BAA2B,CAAA;AAE1D,eAAO,MAAM,oBAAoB,wBAE9B;IAAE,aAAa,CAAC,EAAE,GAAG,CAAC,aAAa,CAAA;CAAE,WAIvC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../src/createApp.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAA;AAOhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAW7C,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CAAE,CAAA;AAE/E,wBAAgB,SAAS,CAAC,OAAO,EAAE,cAAc;;oBAIrB,cAAc;EAyGzC"}
1
+ {"version":3,"file":"createApp.d.ts","sourceRoot":"","sources":["../src/createApp.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAA;AAOhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAQ7C,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CAAE,CAAA;AAE/E,wBAAgB,SAAS,CAAC,OAAO,EAAE,cAAc;;oBAIrB,cAAc;EAyGzC"}
@@ -1,6 +1,7 @@
1
1
  import type { RouteNode } from './router/Route';
2
- import type { RouteInfo, RouteInfoCompiled } from './server/createRoutesManifest';
2
+ import type { RouteInfoCompiled } from './server/createRoutesManifest';
3
3
  import type { LoaderProps } from './types';
4
+ import type { RouteInfo } from './vite/types';
4
5
  export type RequestHandlers = {
5
6
  handlePage?: (props: RequestHandlerProps) => Promise<any>;
6
7
  handleLoader?: (props: RequestHandlerProps) => Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"createHandleRequest.d.ts","sourceRoot":"","sources":["../src/createHandleRequest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAM1C,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACzD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACpD,CAAA;AAED,KAAK,mBAAmB,CAAC,eAAe,SAAS,MAAM,GAAG,EAAE,IAAI;IAC9D,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,eAAe,CAAA;IAC1C,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;AAoDtD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAqCzB;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAkCzB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAkBzB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,OAMpD;AAUD,wBAAgB,eAAe,CAAC,QAAQ,EAAE;IAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG;IAC9F,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAC/B,CAKA;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe;;uBASV,OAAO,KAAG,OAAO,CAAC,sBAAsB,CAAC;EAqE3F"}
1
+ {"version":3,"file":"createHandleRequest.d.ts","sourceRoot":"","sources":["../src/createHandleRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAM1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACzD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACpD,CAAA;AAED,KAAK,mBAAmB,CAAC,eAAe,SAAS,MAAM,GAAG,EAAE,IAAI;IAC9D,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,eAAe,CAAA;IAC1C,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;AAoDtD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAqCzB;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAkCzB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAkBzB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,OAMpD;AAUD,wBAAgB,eAAe,CAAC,QAAQ,EAAE;IAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG;IAC9F,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAC/B,CAKA;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe;;uBASV,OAAO,KAAG,OAAO,CAAC,sBAAsB,CAAC;EAqE3F"}
package/types/index.d.ts CHANGED
@@ -31,7 +31,7 @@ export { isResponse } from './utils/isResponse';
31
31
  export { getURL } from './getURL';
32
32
  export { redirect } from './utils/redirect';
33
33
  export { href } from './href';
34
- export { getServerData, setServerData } from './utils/serverContext';
34
+ export { setResponseHeaders, getServerData, setServerData } from './vite/one-server-only';
35
35
  export * from '@vxrn/universal-color-scheme';
36
36
  export { useFocusEffect } from './useFocusEffect';
37
37
  export { useNavigation } from './router/useNavigation';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;AACjC,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAElF,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAIrC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,KAAK,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AACnG,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,SAAS,EACT,eAAe,EACf,WAAW,EACX,sBAAsB,GACvB,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGpE,cAAc,8BAA8B,CAAA;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;AACjC,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAElF,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAIrC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAG7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,KAAK,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AACnG,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,SAAS,EACT,eAAe,EACf,WAAW,EACX,sBAAsB,GACvB,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAG7B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGzF,cAAc,8BAA8B,CAAA;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { type DrawerNavigationOptions, type DrawerNavigationEventMap } from '@react-navigation/drawer';
2
2
  import type { DrawerNavigationState, ParamListBase } from '@react-navigation/native';
3
- export declare const Drawer: import("react").ForwardRefExoticComponent<Omit<Omit<import("@react-navigation/drawer").DrawerNavigatorProps, "initialRouteName" | "children" | "screenOptions" | "id" | "layout" | "screenListeners" | "screenLayout" | "UNSTABLE_getStateForRouteNamesChange"> & import("@react-navigation/routers").DefaultRouterOptions<string> & {
3
+ export declare const Drawer: import("react").ForwardRefExoticComponent<Omit<Omit<import("@react-navigation/drawer").DrawerNavigatorProps, "children" | "layout" | "initialRouteName" | "screenOptions" | "id" | "screenListeners" | "screenLayout" | "UNSTABLE_getStateForRouteNamesChange"> & import("@react-navigation/routers").DefaultRouterOptions<string> & {
4
4
  children: React.ReactNode;
5
5
  layout?: ((props: {
6
6
  state: DrawerNavigationState<ParamListBase>;
@@ -48,7 +48,7 @@ export declare const Drawer: import("react").ForwardRefExoticComponent<Omit<Omit
48
48
  UNSTABLE_getStateForRouteNamesChange?: (state: import("@react-navigation/routers").NavigationState) => import("@react-navigation/routers").PartialState<import("@react-navigation/routers").NavigationState> | undefined;
49
49
  } & {
50
50
  id?: undefined;
51
- }, "children"> & Partial<Pick<Omit<import("@react-navigation/drawer").DrawerNavigatorProps, "initialRouteName" | "children" | "screenOptions" | "id" | "layout" | "screenListeners" | "screenLayout" | "UNSTABLE_getStateForRouteNamesChange"> & import("@react-navigation/routers").DefaultRouterOptions<string> & {
51
+ }, "children"> & Partial<Pick<Omit<import("@react-navigation/drawer").DrawerNavigatorProps, "children" | "layout" | "initialRouteName" | "screenOptions" | "id" | "screenListeners" | "screenLayout" | "UNSTABLE_getStateForRouteNamesChange"> & import("@react-navigation/routers").DefaultRouterOptions<string> & {
52
52
  children: React.ReactNode;
53
53
  layout?: ((props: {
54
54
  state: DrawerNavigationState<ParamListBase>;