one 1.2.57 → 1.2.58
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.
- package/dist/cjs/cli/buildPage.cjs +1 -1
- package/dist/cjs/cli/buildPage.js +1 -1
- package/dist/cjs/cli/buildPage.native.js +1 -1
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/cli/dev.cjs +4 -4
- package/dist/cjs/cli/dev.js +4 -4
- package/dist/cjs/cli/dev.js.map +1 -1
- package/dist/cjs/cli/dev.native.js +4 -4
- package/dist/cjs/cli/dev.native.js.map +1 -1
- package/dist/cjs/createApp.cjs +2 -1
- package/dist/cjs/createApp.js +2 -2
- package/dist/cjs/createApp.js.map +1 -1
- package/dist/cjs/createHandleRequest.test.js +3 -1
- package/dist/cjs/createHandleRequest.test.js.map +1 -1
- package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
- package/dist/cjs/devtools/registry.cjs +30 -0
- package/dist/cjs/devtools/registry.js +25 -0
- package/dist/cjs/devtools/registry.js.map +6 -0
- package/dist/cjs/devtools/registry.native.js +33 -0
- package/dist/cjs/devtools/registry.native.js.map +1 -0
- package/dist/cjs/fork/createMemoryHistory.cjs +20 -9
- package/dist/cjs/fork/createMemoryHistory.js +22 -4
- package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
- package/dist/cjs/fork/createMemoryHistory.native.js +20 -9
- package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/cjs/fork/useLinking.cjs +11 -5
- package/dist/cjs/fork/useLinking.js +6 -6
- package/dist/cjs/fork/useLinking.js.map +1 -1
- package/dist/cjs/index.cjs +17 -1
- package/dist/cjs/index.js +12 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +17 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.cjs +34 -15
- package/dist/cjs/layouts/withLayoutContext.js +29 -13
- package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
- package/dist/cjs/layouts/withLayoutContext.native.js +42 -19
- package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/cjs/link/Link.cjs +5 -2
- package/dist/cjs/link/Link.js +3 -2
- package/dist/cjs/link/Link.js.map +1 -1
- package/dist/cjs/link/Link.native.js +6 -1
- package/dist/cjs/link/Link.native.js.map +1 -1
- package/dist/cjs/link/useLinkTo.cjs +11 -3
- package/dist/cjs/link/useLinkTo.js +6 -3
- package/dist/cjs/link/useLinkTo.js.map +1 -1
- package/dist/cjs/link/useLinkTo.native.js +11 -3
- package/dist/cjs/link/useLinkTo.native.js.map +1 -1
- package/dist/cjs/router/Route.js.map +1 -1
- package/dist/cjs/router/Route.native.js.map +1 -1
- package/dist/cjs/router/findRouteNode.cjs +70 -0
- package/dist/cjs/router/findRouteNode.js +72 -0
- package/dist/cjs/router/findRouteNode.js.map +6 -0
- package/dist/cjs/router/findRouteNode.native.js +104 -0
- package/dist/cjs/router/findRouteNode.native.js.map +1 -0
- package/dist/cjs/router/router.cjs +160 -11
- package/dist/cjs/router/router.js +142 -7
- package/dist/cjs/router/router.js.map +2 -2
- package/dist/cjs/router/router.native.js +241 -57
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/useScreens.cjs +1 -1
- package/dist/cjs/router/useScreens.js +1 -1
- package/dist/cjs/router/useScreens.js.map +1 -1
- package/dist/cjs/router/useScreens.native.js +5 -2
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/server/oneServe.js.map +1 -1
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/useBlocker.cjs +158 -0
- package/dist/cjs/useBlocker.js +145 -0
- package/dist/cjs/useBlocker.js.map +6 -0
- package/dist/cjs/useBlocker.native.js +89 -0
- package/dist/cjs/useBlocker.native.js.map +1 -0
- package/dist/cjs/useLoader.cjs +69 -3
- package/dist/cjs/useLoader.js +57 -4
- package/dist/cjs/useLoader.js.map +2 -2
- package/dist/cjs/useLoader.native.js +90 -6
- package/dist/cjs/useLoader.native.js.map +1 -1
- package/dist/cjs/useScrollGroup.cjs +37 -0
- package/dist/cjs/useScrollGroup.js +30 -0
- package/dist/cjs/useScrollGroup.js.map +6 -0
- package/dist/cjs/useScrollGroup.native.js +29 -0
- package/dist/cjs/useScrollGroup.native.js.map +1 -0
- package/dist/cjs/validateParams.cjs +80 -0
- package/dist/cjs/validateParams.js +84 -0
- package/dist/cjs/validateParams.js.map +6 -0
- package/dist/cjs/validateParams.native.js +180 -0
- package/dist/cjs/validateParams.native.js.map +1 -0
- package/dist/cjs/validateSearch.cjs +104 -0
- package/dist/cjs/validateSearch.js +99 -0
- package/dist/cjs/validateSearch.js.map +6 -0
- package/dist/cjs/validateSearch.native.js +202 -0
- package/dist/cjs/validateSearch.native.js.map +1 -0
- package/dist/cjs/views/ErrorBoundary.cjs +293 -10
- package/dist/cjs/views/ErrorBoundary.js +328 -8
- package/dist/cjs/views/ErrorBoundary.js.map +2 -2
- package/dist/cjs/views/ErrorBoundary.native.js +159 -4
- package/dist/cjs/views/ErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/Navigator.cjs +10 -3
- package/dist/cjs/views/Navigator.js +7 -3
- package/dist/cjs/views/Navigator.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js +12 -3
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/cjs/views/Protected.cjs +36 -0
- package/dist/cjs/views/Protected.js +27 -0
- package/dist/cjs/views/Protected.js.map +6 -0
- package/dist/cjs/views/Protected.native.js +44 -0
- package/dist/cjs/views/Protected.native.js.map +1 -0
- package/dist/cjs/views/RootErrorBoundary.cjs +193 -8
- package/dist/cjs/views/RootErrorBoundary.js +213 -8
- package/dist/cjs/views/RootErrorBoundary.js.map +1 -1
- package/dist/cjs/views/RootErrorBoundary.native.js +192 -8
- package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/cjs/views/ScrollBehavior.cjs +49 -11
- package/dist/cjs/views/ScrollBehavior.js +47 -11
- package/dist/cjs/views/ScrollBehavior.js.map +1 -1
- package/dist/cjs/views/ScrollBehavior.native.js +68 -10
- package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
- package/dist/cjs/views/SourceInspector.cjs +28 -0
- package/dist/cjs/views/SourceInspector.js +23 -0
- package/dist/cjs/views/SourceInspector.js.map +6 -0
- package/dist/cjs/views/SourceInspector.native.js +32 -0
- package/dist/cjs/views/SourceInspector.native.js.map +1 -0
- package/dist/cjs/views/Try.cjs +40 -7
- package/dist/cjs/views/Try.js +38 -4
- package/dist/cjs/views/Try.js.map +1 -1
- package/dist/cjs/views/Try.native.js +42 -7
- package/dist/cjs/views/Try.native.js.map +1 -1
- package/dist/cjs/vite/DevHead.cjs +797 -43
- package/dist/cjs/vite/DevHead.js +802 -51
- package/dist/cjs/vite/DevHead.js.map +1 -1
- package/dist/cjs/vite/DevHead.native.js +783 -1
- package/dist/cjs/vite/DevHead.native.js.map +1 -1
- package/dist/cjs/vite/one.cjs +7 -1
- package/dist/cjs/vite/one.js +7 -2
- package/dist/cjs/vite/one.js.map +1 -1
- package/dist/cjs/vite/one.native.js +11 -1
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +44 -4
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js +48 -4
- package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +62 -5
- package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +6 -3
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +5 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js +11 -6
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +1 -0
- package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.cjs +155 -0
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.js +148 -0
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.js.map +6 -0
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js +231 -0
- package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js.map +1 -0
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +25 -6
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js +16 -6
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +26 -7
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/cli/buildPage.js +1 -1
- package/dist/esm/cli/buildPage.mjs +1 -1
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +1 -1
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/cli/dev.js +4 -4
- package/dist/esm/cli/dev.js.map +1 -1
- package/dist/esm/cli/dev.mjs +4 -4
- package/dist/esm/cli/dev.mjs.map +1 -1
- package/dist/esm/cli/dev.native.js +4 -4
- package/dist/esm/cli/dev.native.js.map +1 -1
- package/dist/esm/createApp.js +2 -2
- package/dist/esm/createApp.js.map +1 -1
- package/dist/esm/createApp.mjs +2 -1
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/createHandleRequest.test.js +3 -1
- package/dist/esm/createHandleRequest.test.js.map +1 -1
- package/dist/esm/createHandleRequest.test.mjs.map +1 -1
- package/dist/esm/createHandleRequest.test.native.js.map +1 -1
- package/dist/esm/devtools/registry.js +9 -0
- package/dist/esm/devtools/registry.js.map +6 -0
- package/dist/esm/devtools/registry.mjs +6 -0
- package/dist/esm/devtools/registry.mjs.map +1 -0
- package/dist/esm/devtools/registry.native.js +6 -0
- package/dist/esm/devtools/registry.native.js.map +1 -0
- package/dist/esm/fork/createMemoryHistory.js +22 -4
- package/dist/esm/fork/createMemoryHistory.js.map +1 -1
- package/dist/esm/fork/createMemoryHistory.mjs +20 -9
- package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
- package/dist/esm/fork/createMemoryHistory.native.js +20 -9
- package/dist/esm/fork/createMemoryHistory.native.js.map +1 -1
- package/dist/esm/fork/useLinking.js +6 -5
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +11 -5
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/index.js +30 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +8 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +8 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.js +30 -12
- package/dist/esm/layouts/withLayoutContext.js.map +1 -1
- package/dist/esm/layouts/withLayoutContext.mjs +34 -15
- package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
- package/dist/esm/layouts/withLayoutContext.native.js +42 -19
- package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
- package/dist/esm/link/Link.js +3 -2
- package/dist/esm/link/Link.js.map +1 -1
- package/dist/esm/link/Link.mjs +5 -2
- package/dist/esm/link/Link.mjs.map +1 -1
- package/dist/esm/link/Link.native.js +6 -1
- package/dist/esm/link/Link.native.js.map +1 -1
- package/dist/esm/link/useLinkTo.js +6 -3
- package/dist/esm/link/useLinkTo.js.map +1 -1
- package/dist/esm/link/useLinkTo.mjs +11 -3
- package/dist/esm/link/useLinkTo.mjs.map +1 -1
- package/dist/esm/link/useLinkTo.native.js +11 -3
- package/dist/esm/link/useLinkTo.native.js.map +1 -1
- package/dist/esm/router/Route.js.map +1 -1
- package/dist/esm/router/Route.mjs.map +1 -1
- package/dist/esm/router/Route.native.js.map +1 -1
- package/dist/esm/router/findRouteNode.js +56 -0
- package/dist/esm/router/findRouteNode.js.map +6 -0
- package/dist/esm/router/findRouteNode.mjs +44 -0
- package/dist/esm/router/findRouteNode.mjs.map +1 -0
- package/dist/esm/router/findRouteNode.native.js +75 -0
- package/dist/esm/router/findRouteNode.native.js.map +1 -0
- package/dist/esm/router/router.js +154 -6
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +151 -10
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +232 -56
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/useScreens.js +1 -1
- package/dist/esm/router/useScreens.js.map +1 -1
- package/dist/esm/router/useScreens.mjs +1 -1
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +5 -2
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/server/oneServe.js.map +1 -1
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/useBlocker.js +122 -0
- package/dist/esm/useBlocker.js.map +6 -0
- package/dist/esm/useBlocker.mjs +123 -0
- package/dist/esm/useBlocker.mjs.map +1 -0
- package/dist/esm/useBlocker.native.js +51 -0
- package/dist/esm/useBlocker.native.js.map +1 -0
- package/dist/esm/useLoader.js +57 -3
- package/dist/esm/useLoader.js.map +2 -2
- package/dist/esm/useLoader.mjs +69 -4
- package/dist/esm/useLoader.mjs.map +1 -1
- package/dist/esm/useLoader.native.js +90 -7
- package/dist/esm/useLoader.native.js.map +1 -1
- package/dist/esm/useScrollGroup.js +16 -0
- package/dist/esm/useScrollGroup.js.map +6 -0
- package/dist/esm/useScrollGroup.mjs +14 -0
- package/dist/esm/useScrollGroup.mjs.map +1 -0
- package/dist/esm/useScrollGroup.native.js +3 -0
- package/dist/esm/useScrollGroup.native.js.map +1 -0
- package/dist/esm/validateParams.js +68 -0
- package/dist/esm/validateParams.js.map +6 -0
- package/dist/esm/validateParams.mjs +54 -0
- package/dist/esm/validateParams.mjs.map +1 -0
- package/dist/esm/validateParams.native.js +151 -0
- package/dist/esm/validateParams.native.js.map +1 -0
- package/dist/esm/validateSearch.js +83 -0
- package/dist/esm/validateSearch.js.map +6 -0
- package/dist/esm/validateSearch.mjs +77 -0
- package/dist/esm/validateSearch.mjs.map +1 -0
- package/dist/esm/validateSearch.native.js +172 -0
- package/dist/esm/validateSearch.native.js.map +1 -0
- package/dist/esm/views/ErrorBoundary.js +325 -7
- package/dist/esm/views/ErrorBoundary.js.map +2 -2
- package/dist/esm/views/ErrorBoundary.mjs +289 -6
- package/dist/esm/views/ErrorBoundary.mjs.map +1 -1
- package/dist/esm/views/ErrorBoundary.native.js +159 -4
- package/dist/esm/views/ErrorBoundary.native.js.map +1 -1
- package/dist/esm/views/Navigator.js +7 -2
- package/dist/esm/views/Navigator.js.map +1 -1
- package/dist/esm/views/Navigator.mjs +10 -3
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js +12 -3
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/dist/esm/views/Protected.js +14 -0
- package/dist/esm/views/Protected.js.map +6 -0
- package/dist/esm/views/Protected.mjs +11 -0
- package/dist/esm/views/Protected.mjs.map +1 -0
- package/dist/esm/views/Protected.native.js +16 -0
- package/dist/esm/views/Protected.native.js.map +1 -0
- package/dist/esm/views/RootErrorBoundary.js +214 -7
- package/dist/esm/views/RootErrorBoundary.js.map +1 -1
- package/dist/esm/views/RootErrorBoundary.mjs +192 -7
- package/dist/esm/views/RootErrorBoundary.mjs.map +1 -1
- package/dist/esm/views/RootErrorBoundary.native.js +191 -7
- package/dist/esm/views/RootErrorBoundary.native.js.map +1 -1
- package/dist/esm/views/ScrollBehavior.js +47 -11
- package/dist/esm/views/ScrollBehavior.js.map +1 -1
- package/dist/esm/views/ScrollBehavior.mjs +48 -11
- package/dist/esm/views/ScrollBehavior.mjs.map +1 -1
- package/dist/esm/views/ScrollBehavior.native.js +67 -10
- package/dist/esm/views/ScrollBehavior.native.js.map +1 -1
- package/dist/esm/views/SourceInspector.js +7 -0
- package/dist/esm/views/SourceInspector.js.map +6 -0
- package/dist/esm/views/SourceInspector.mjs +5 -0
- package/dist/esm/views/SourceInspector.mjs.map +1 -0
- package/dist/esm/views/SourceInspector.native.js +6 -0
- package/dist/esm/views/SourceInspector.native.js.map +1 -0
- package/dist/esm/views/Try.js +38 -4
- package/dist/esm/views/Try.js.map +1 -1
- package/dist/esm/views/Try.mjs +40 -7
- package/dist/esm/views/Try.mjs.map +1 -1
- package/dist/esm/views/Try.native.js +42 -7
- package/dist/esm/views/Try.native.js.map +1 -1
- package/dist/esm/vite/DevHead.js +802 -51
- package/dist/esm/vite/DevHead.js.map +1 -1
- package/dist/esm/vite/DevHead.mjs +797 -43
- package/dist/esm/vite/DevHead.mjs.map +1 -1
- package/dist/esm/vite/DevHead.native.js +782 -0
- package/dist/esm/vite/DevHead.native.js.map +1 -1
- package/dist/esm/vite/one.js +7 -1
- package/dist/esm/vite/one.js.map +1 -1
- package/dist/esm/vite/one.mjs +7 -1
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +11 -1
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.js +48 -4
- package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +44 -4
- package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +61 -4
- package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +6 -3
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js +11 -6
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +5 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +1 -0
- package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/sourceInspectorPlugin.js +126 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.js.map +6 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs +121 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs.map +1 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js +194 -0
- package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js.map +1 -0
- package/dist/esm/vite/plugins/virtualEntryPlugin.js +16 -6
- package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +25 -6
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +26 -7
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/package.json +11 -9
- package/src/cli/buildPage.ts +1 -1
- package/src/cli/dev.ts +4 -4
- package/src/createApp.tsx +11 -1
- package/src/createHandleRequest.test.ts +3 -1
- package/src/devtools/registry.ts +21 -0
- package/src/fork/createMemoryHistory.tsx +43 -11
- package/src/fork/useLinking.ts +14 -4
- package/src/index.ts +34 -1
- package/src/interfaces/router.ts +48 -0
- package/src/layouts/withLayoutContext.tsx +48 -8
- package/src/link/Link.tsx +7 -2
- package/src/link/useLinkTo.tsx +7 -3
- package/src/router/Route.tsx +32 -3
- package/src/router/findRouteNode.ts +127 -0
- package/src/router/router.ts +286 -2
- package/src/router/useScreens.tsx +9 -3
- package/src/useBlocker.native.ts +153 -0
- package/src/useBlocker.ts +340 -0
- package/src/useLoader.ts +139 -1
- package/src/useScrollGroup.native.ts +7 -0
- package/src/useScrollGroup.ts +44 -0
- package/src/validateParams.ts +196 -0
- package/src/validateSearch.ts +241 -0
- package/src/views/ErrorBoundary.tsx +154 -156
- package/src/views/ErrorBoundary.web.tsx +321 -0
- package/src/views/Navigator.tsx +14 -2
- package/src/views/Protected.tsx +62 -0
- package/src/views/RootErrorBoundary.tsx +214 -17
- package/src/views/ScrollBehavior.tsx +82 -3
- package/src/views/SourceInspector.tsx +39 -0
- package/src/views/Try.tsx +81 -12
- package/src/vite/DevHead.tsx +819 -54
- package/src/vite/one.ts +13 -0
- package/src/vite/plugins/SSRCSSPlugin.ts +104 -0
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +11 -8
- package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +4 -0
- package/src/vite/plugins/sourceInspectorPlugin.ts +246 -0
- package/src/vite/plugins/virtualEntryPlugin.ts +35 -10
- package/src/vite/types.ts +28 -0
- package/types/Route.d.ts.map +1 -0
- package/types/cleanUrl.d.ts.map +1 -0
- package/types/cli/run.d.ts.map +1 -0
- package/types/createApp.d.ts +5 -0
- package/types/createApp.d.ts.map +1 -1
- package/types/createRoute.d.ts.map +1 -0
- package/types/devtools/registry.d.ts +15 -0
- package/types/devtools/registry.d.ts.map +1 -0
- package/types/fork/NavigationContainer.native.d.ts.map +1 -0
- package/types/fork/createMemoryHistory.d.ts +8 -3
- package/types/fork/createMemoryHistory.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/getLinkingConfig.d.ts.map +1 -0
- package/types/getRoutes.d.ts.map +1 -0
- package/types/imperative-api.d.ts.map +1 -0
- package/types/index.d.ts +8 -1
- package/types/index.d.ts.map +1 -1
- package/types/interfaces/router.d.ts +47 -0
- package/types/interfaces/router.d.ts.map +1 -1
- package/types/layouts/withLayoutContext.d.ts +2 -1
- package/types/layouts/withLayoutContext.d.ts.map +1 -1
- package/types/link/Link.d.ts.map +1 -1
- package/types/link/useLinkTo.d.ts +1 -0
- package/types/link/useLinkTo.d.ts.map +1 -1
- package/types/matchers.d.ts.map +1 -0
- package/types/platform.d.ts.map +1 -0
- package/types/router/Route.d.ts +32 -3
- package/types/router/Route.d.ts.map +1 -1
- package/types/router/findRouteNode.d.ts +31 -0
- package/types/router/findRouteNode.d.ts.map +1 -0
- package/types/router/router.d.ts +35 -0
- package/types/router/router.d.ts.map +1 -1
- package/types/router/useScreens.d.ts +2 -0
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/sortRoutes.d.ts.map +1 -0
- package/types/useBlocker.d.ts +72 -0
- package/types/useBlocker.d.ts.map +1 -0
- package/types/useBlocker.native.d.ts +60 -0
- package/types/useBlocker.native.d.ts.map +1 -0
- package/types/useLoader.d.ts +10 -0
- package/types/useLoader.d.ts.map +1 -1
- package/types/useNavigation.d.ts.map +1 -0
- package/types/useScreens.d.ts.map +1 -0
- package/types/useScrollGroup.d.ts +27 -0
- package/types/useScrollGroup.d.ts.map +1 -0
- package/types/useScrollGroup.native.d.ts +6 -0
- package/types/useScrollGroup.native.d.ts.map +1 -0
- package/types/useSearch.d.ts.map +1 -0
- package/types/useViteRoutes.d.ts.map +1 -0
- package/types/validateParams.d.ts +85 -0
- package/types/validateParams.d.ts.map +1 -0
- package/types/validateSearch.d.ts +107 -0
- package/types/validateSearch.d.ts.map +1 -0
- package/types/views/ErrorBoundary.d.ts +11 -1
- package/types/views/ErrorBoundary.d.ts.map +1 -1
- package/types/views/ErrorBoundary.web.d.ts +13 -0
- package/types/views/ErrorBoundary.web.d.ts.map +1 -0
- package/types/views/Navigator.d.ts.map +1 -1
- package/types/views/Protected.d.ts +39 -0
- package/types/views/Protected.d.ts.map +1 -0
- package/types/views/RootErrorBoundary.d.ts +14 -8
- package/types/views/RootErrorBoundary.d.ts.map +1 -1
- package/types/views/ScrollBehavior.d.ts +8 -0
- package/types/views/ScrollBehavior.d.ts.map +1 -1
- package/types/views/ScrollRestoration.d.ts.map +1 -0
- package/types/views/SourceInspector.d.ts +35 -0
- package/types/views/SourceInspector.d.ts.map +1 -0
- package/types/views/Try.d.ts +29 -6
- package/types/views/Try.d.ts.map +1 -1
- package/types/vite/DevHead.d.ts.map +1 -1
- package/types/vite/build.d.ts.map +1 -0
- package/types/vite/headers.d.ts.map +1 -0
- package/types/vite/headers.native.d.ts.map +1 -0
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
- package/types/vite/plugins/seoPreviewPlugin.d.ts.map +1 -0
- package/types/vite/plugins/sourceInspectorPlugin.d.ts +3 -0
- package/types/vite/plugins/sourceInspectorPlugin.d.ts.map +1 -0
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/resolveAPIRequest.d.ts.map +1 -0
- package/types/vite/server.d.ts.map +1 -0
- package/types/vite/types.d.ts +24 -0
- package/types/vite/types.d.ts.map +1 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { parseSync } from "oxc-parser";
|
|
3
|
+
import { normalizePath } from "vite";
|
|
4
|
+
function _type_of(obj) {
|
|
5
|
+
"@swc/helpers - typeof";
|
|
6
|
+
|
|
7
|
+
return obj && typeof Symbol < "u" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
8
|
+
}
|
|
9
|
+
function findJsxElements(code, filename) {
|
|
10
|
+
var result = parseSync(filename, code);
|
|
11
|
+
if (result.errors.length > 0) return [];
|
|
12
|
+
var locations = [],
|
|
13
|
+
traversalIndex = 0;
|
|
14
|
+
function getJsxName(node) {
|
|
15
|
+
if (!node) return null;
|
|
16
|
+
if (node.type === "JSXIdentifier") return node.name;
|
|
17
|
+
if (node.type === "JSXMemberExpression") {
|
|
18
|
+
var _node_property,
|
|
19
|
+
obj = getJsxName(node.object);
|
|
20
|
+
return obj ? `${obj}.${(_node_property = node.property) === null || _node_property === void 0 ? void 0 : _node_property.name}` : null;
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
function getLocation(offset) {
|
|
25
|
+
var before = code.slice(0, offset),
|
|
26
|
+
lines = before.split(`
|
|
27
|
+
`);
|
|
28
|
+
return {
|
|
29
|
+
line: lines.length,
|
|
30
|
+
column: lines[lines.length - 1].length + 1
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function walk(node) {
|
|
34
|
+
if (!(!node || (typeof node > "u" ? "undefined" : _type_of(node)) !== "object")) {
|
|
35
|
+
if (node.type === "JSXOpeningElement" && node.name) {
|
|
36
|
+
var tagName = getJsxName(node.name);
|
|
37
|
+
if (tagName && tagName !== "Fragment") {
|
|
38
|
+
var _node_attributes,
|
|
39
|
+
hasSourceAttr = (_node_attributes = node.attributes) === null || _node_attributes === void 0 ? void 0 : _node_attributes.some(function (attr) {
|
|
40
|
+
var _attr_name;
|
|
41
|
+
return attr.type === "JSXAttribute" && ((_attr_name = attr.name) === null || _attr_name === void 0 ? void 0 : _attr_name.name) === "data-one-source";
|
|
42
|
+
});
|
|
43
|
+
if (!hasSourceAttr) {
|
|
44
|
+
var nameEnd = node.name.end,
|
|
45
|
+
loc = getLocation(node.start);
|
|
46
|
+
locations.push({
|
|
47
|
+
insertOffset: nameEnd,
|
|
48
|
+
index: traversalIndex++,
|
|
49
|
+
line: loc.line,
|
|
50
|
+
column: loc.column
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
var _iteratorNormalCompletion = !0,
|
|
56
|
+
_didIteratorError = !1,
|
|
57
|
+
_iteratorError = void 0;
|
|
58
|
+
try {
|
|
59
|
+
for (var _iterator = Object.keys(node)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
60
|
+
var key = _step.value;
|
|
61
|
+
if (key !== "parent") {
|
|
62
|
+
var value = node[key];
|
|
63
|
+
if (Array.isArray(value)) {
|
|
64
|
+
var _iteratorNormalCompletion1 = !0,
|
|
65
|
+
_didIteratorError1 = !1,
|
|
66
|
+
_iteratorError1 = void 0;
|
|
67
|
+
try {
|
|
68
|
+
for (var _iterator1 = value[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
|
|
69
|
+
var child = _step1.value;
|
|
70
|
+
walk(child);
|
|
71
|
+
}
|
|
72
|
+
} catch (err) {
|
|
73
|
+
_didIteratorError1 = !0, _iteratorError1 = err;
|
|
74
|
+
} finally {
|
|
75
|
+
try {
|
|
76
|
+
!_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
|
|
77
|
+
} finally {
|
|
78
|
+
if (_didIteratorError1) throw _iteratorError1;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
} else value && (typeof value > "u" ? "undefined" : _type_of(value)) === "object" && walk(value);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
} catch (err) {
|
|
85
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
86
|
+
} finally {
|
|
87
|
+
try {
|
|
88
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
89
|
+
} finally {
|
|
90
|
+
if (_didIteratorError) throw _iteratorError;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return walk(result.program), locations.sort(function (a, b) {
|
|
96
|
+
return b.insertOffset - a.insertOffset;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
function injectSourceToJsx(code, id) {
|
|
100
|
+
var [filePath] = id.split("?");
|
|
101
|
+
if (filePath) {
|
|
102
|
+
var location = filePath.replace(normalizePath(process.cwd()), "");
|
|
103
|
+
if (!(!code.includes("<") || !code.includes(">"))) {
|
|
104
|
+
var jsxLocations = findJsxElements(code, filePath);
|
|
105
|
+
if (jsxLocations.length !== 0) {
|
|
106
|
+
var sourceInfoEntries = [...jsxLocations].sort(function (a, b) {
|
|
107
|
+
return a.index - b.index;
|
|
108
|
+
}).map(function (jsx2) {
|
|
109
|
+
return `${jsx2.index}:[${jsx2.line},${jsx2.column}]`;
|
|
110
|
+
}).join(","),
|
|
111
|
+
sourceInfoScript = `globalThis.__oneSourceInfo=globalThis.__oneSourceInfo||{};globalThis.__oneSourceInfo["${location}"]={${sourceInfoEntries}};`,
|
|
112
|
+
result = code,
|
|
113
|
+
_iteratorNormalCompletion = !0,
|
|
114
|
+
_didIteratorError = !1,
|
|
115
|
+
_iteratorError = void 0;
|
|
116
|
+
try {
|
|
117
|
+
for (var _iterator = jsxLocations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
118
|
+
var jsx = _step.value,
|
|
119
|
+
sourceAttr = ` data-one-source="${location}:${jsx.index}"`;
|
|
120
|
+
result = result.slice(0, jsx.insertOffset) + sourceAttr + result.slice(jsx.insertOffset);
|
|
121
|
+
}
|
|
122
|
+
} catch (err) {
|
|
123
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
124
|
+
} finally {
|
|
125
|
+
try {
|
|
126
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
127
|
+
} finally {
|
|
128
|
+
if (_didIteratorError) throw _iteratorError;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return result = sourceInfoScript + result, {
|
|
132
|
+
code: result,
|
|
133
|
+
map: null
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async function openInEditor(filePath, line, column) {
|
|
140
|
+
try {
|
|
141
|
+
var launch = (await import("launch-editor")).default,
|
|
142
|
+
fullPath = path.join(process.cwd(), filePath),
|
|
143
|
+
location = `${fullPath}${line ? `:${line}` : ""}${column ? `:${column}` : ""}`;
|
|
144
|
+
launch(location, void 0, function (filename, errorMessage) {
|
|
145
|
+
errorMessage && console.warn(`[one:source-inspector] Failed to open ${filename} in editor:`, errorMessage);
|
|
146
|
+
});
|
|
147
|
+
} catch (err) {
|
|
148
|
+
console.warn("[one:source-inspector] Failed to launch editor:", err);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function sourceInspectorPlugin() {
|
|
152
|
+
return [
|
|
153
|
+
// Transform plugin - injects data-one-source attributes
|
|
154
|
+
{
|
|
155
|
+
name: "one:source-inspector-transform",
|
|
156
|
+
enforce: "pre",
|
|
157
|
+
apply: "serve",
|
|
158
|
+
transform(code, id) {
|
|
159
|
+
var _this_environment,
|
|
160
|
+
envName = (_this_environment = this.environment) === null || _this_environment === void 0 ? void 0 : _this_environment.name;
|
|
161
|
+
if (!(envName === "ios" || envName === "android") && !(id.includes("node_modules") || id.includes("?raw") || id.includes("dist") || id.includes("build")) && !(!id.endsWith(".jsx") && !id.endsWith(".tsx"))) return injectSourceToJsx(code, id);
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
// Note: Inspector UI script is now injected via DevHead.tsx for SSR compatibility
|
|
165
|
+
// Server plugin - handles open-source requests
|
|
166
|
+
{
|
|
167
|
+
name: "one:source-inspector-server",
|
|
168
|
+
apply: "serve",
|
|
169
|
+
configureServer(server) {
|
|
170
|
+
server.middlewares.use(async function (req, res, next) {
|
|
171
|
+
var _req_url;
|
|
172
|
+
if (!(!((_req_url = req.url) === null || _req_url === void 0) && _req_url.startsWith("/__one/open-source"))) return next();
|
|
173
|
+
try {
|
|
174
|
+
var url = new URL(req.url, "http://localhost"),
|
|
175
|
+
source = url.searchParams.get("source");
|
|
176
|
+
if (!source) {
|
|
177
|
+
res.statusCode = 400, res.end("Missing source parameter");
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
var lastColon = source.lastIndexOf(":"),
|
|
181
|
+
filePath = source.slice(0, lastColon),
|
|
182
|
+
index = source.slice(lastColon + 1),
|
|
183
|
+
line = url.searchParams.get("line"),
|
|
184
|
+
column = url.searchParams.get("column");
|
|
185
|
+
await openInEditor(filePath, line || void 0, column || void 0), res.statusCode = 200, res.end("OK");
|
|
186
|
+
} catch (err) {
|
|
187
|
+
console.error("[one:source-inspector] Error:", err), res.statusCode = 500, res.end("Internal server error");
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}];
|
|
192
|
+
}
|
|
193
|
+
export { sourceInspectorPlugin };
|
|
194
|
+
//# sourceMappingURL=sourceInspectorPlugin.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["path","parseSync","normalizePath","_type_of","obj","Symbol","constructor","findJsxElements","code","filename","result","errors","length","locations","traversalIndex","getJsxName","node","type","name","_node_property","object","property","getLocation","offset","before","slice","lines","split","line","column","walk","tagName","_node_attributes","hasSourceAttr","attributes","some","attr","_attr_name","nameEnd","end","loc","start","push","insertOffset","index","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","keys","iterator","_step","next","done","key","value","Array","isArray","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","child","err","return","program","sort","a","b","injectSourceToJsx","id","filePath","location","replace","process","cwd","includes","jsxLocations","sourceInfoEntries","map","jsx2","join","sourceInfoScript","jsx","sourceAttr"],"sources":["../../../../src/vite/plugins/sourceInspectorPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -43,9 +43,17 @@ function getSetupFileImport(environmentName, setupFiles, useStaticImport) {
|
|
|
43
43
|
ios: "ios",
|
|
44
44
|
android: "android"
|
|
45
45
|
}[environmentName];
|
|
46
|
-
if (!key) return "";
|
|
46
|
+
if (!key) return { importStatement: "", promiseDeclaration: "", promiseVarName: "" };
|
|
47
47
|
const setupFile = setupFiles[key];
|
|
48
|
-
return setupFile ? useStaticImport ?
|
|
48
|
+
return setupFile ? useStaticImport ? {
|
|
49
|
+
importStatement: `import ${JSON.stringify(setupFile)}`,
|
|
50
|
+
promiseDeclaration: "",
|
|
51
|
+
promiseVarName: ""
|
|
52
|
+
} : {
|
|
53
|
+
importStatement: "",
|
|
54
|
+
promiseDeclaration: `const __oneSetupPromise = import(/* @vite-ignore */ ${JSON.stringify(setupFile)})`,
|
|
55
|
+
promiseVarName: "__oneSetupPromise"
|
|
56
|
+
} : { importStatement: "", promiseDeclaration: "", promiseVarName: "" };
|
|
49
57
|
}
|
|
50
58
|
function createVirtualEntry(options) {
|
|
51
59
|
const routeGlobs = [
|
|
@@ -65,13 +73,14 @@ function createVirtualEntry(options) {
|
|
|
65
73
|
},
|
|
66
74
|
load(id) {
|
|
67
75
|
if (id === resolvedVirtualEntryId) {
|
|
68
|
-
const isNative = isNativeEnvironment(this.environment),
|
|
76
|
+
const isNative = isNativeEnvironment(this.environment), setupResult = getSetupFileImport(
|
|
69
77
|
this.environment.name,
|
|
70
78
|
setupFiles,
|
|
71
79
|
isNative
|
|
72
|
-
), nativewindImport = configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : "";
|
|
80
|
+
), nativewindImport = configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : "", setupPromiseArg = setupResult.promiseVarName ? `setupPromise: ${setupResult.promiseVarName},` : "";
|
|
73
81
|
return `
|
|
74
|
-
${
|
|
82
|
+
${setupResult.importStatement}
|
|
83
|
+
${setupResult.promiseDeclaration}
|
|
75
84
|
${nativewindImport}
|
|
76
85
|
|
|
77
86
|
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
@@ -89,6 +98,7 @@ if (typeof window !== 'undefined') {
|
|
|
89
98
|
|
|
90
99
|
// globbing ${JSON.stringify(routeGlobs)}
|
|
91
100
|
export default createApp({
|
|
101
|
+
${setupPromiseArg}
|
|
92
102
|
routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map((p) => `!${p}`)])}, { exhaustive: true }),
|
|
93
103
|
routerRoot: ${JSON.stringify(options.root)},
|
|
94
104
|
flags: ${JSON.stringify(options.flags)},
|
|
@@ -102,7 +112,7 @@ ${getSetupFileImport(
|
|
|
102
112
|
this.environment.name,
|
|
103
113
|
setupFiles,
|
|
104
114
|
isNative
|
|
105
|
-
)}
|
|
115
|
+
).importStatement}
|
|
106
116
|
|
|
107
117
|
import { createApp } from 'one'
|
|
108
118
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/vite/plugins/virtualEntryPlugin.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,qBAAqB;AAE9B,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP,SAAS,mBACP,WACsB;AACtB,MAAI,CAAC,UAAW,QAAO,CAAC;AACxB,MAAI,OAAO,aAAc;AACvB,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAEF,MAAI,YAAY;AACd,WAAO;AAAA,MACL,QAAQ,UAAU;AAAA,MAClB,QAAQ,UAAU;AAAA,MAClB,KAAK,UAAU;AAAA,MACf,SAAS,UAAU;AAAA,IACrB;AAEF,QAAM,KAAK;AAMX,SAAO;AAAA,IACL,QAAQ,GAAG;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,KAAK,GAAG;AAAA,IACR,SAAS,GAAG;AAAA,EACd;AACF;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -31,9 +31,25 @@ function getSetupFileImport(environmentName, setupFiles, useStaticImport) {
|
|
|
31
31
|
ios: "ios",
|
|
32
32
|
android: "android"
|
|
33
33
|
}[environmentName];
|
|
34
|
-
if (!key) return
|
|
34
|
+
if (!key) return {
|
|
35
|
+
importStatement: "",
|
|
36
|
+
promiseDeclaration: "",
|
|
37
|
+
promiseVarName: ""
|
|
38
|
+
};
|
|
35
39
|
const setupFile = setupFiles[key];
|
|
36
|
-
return setupFile ? useStaticImport ?
|
|
40
|
+
return setupFile ? useStaticImport ? {
|
|
41
|
+
importStatement: `import ${JSON.stringify(setupFile)}`,
|
|
42
|
+
promiseDeclaration: "",
|
|
43
|
+
promiseVarName: ""
|
|
44
|
+
} : {
|
|
45
|
+
importStatement: "",
|
|
46
|
+
promiseDeclaration: `const __oneSetupPromise = import(/* @vite-ignore */ ${JSON.stringify(setupFile)})`,
|
|
47
|
+
promiseVarName: "__oneSetupPromise"
|
|
48
|
+
} : {
|
|
49
|
+
importStatement: "",
|
|
50
|
+
promiseDeclaration: "",
|
|
51
|
+
promiseVarName: ""
|
|
52
|
+
};
|
|
37
53
|
}
|
|
38
54
|
function createVirtualEntry(options) {
|
|
39
55
|
const routeGlobs = [`/${options.root}/${ROUTE_GLOB_PATTERN}`, ...(options.router?.ignoredRouteFiles?.map(pattern => `!/${options.root}/${pattern}`) || [])],
|
|
@@ -49,10 +65,12 @@ function createVirtualEntry(options) {
|
|
|
49
65
|
load(id) {
|
|
50
66
|
if (id === resolvedVirtualEntryId) {
|
|
51
67
|
const isNative = isNativeEnvironment(this.environment),
|
|
52
|
-
|
|
53
|
-
nativewindImport = configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : ""
|
|
68
|
+
setupResult = getSetupFileImport(this.environment.name, setupFiles, isNative),
|
|
69
|
+
nativewindImport = configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : "",
|
|
70
|
+
setupPromiseArg = setupResult.promiseVarName ? `setupPromise: ${setupResult.promiseVarName},` : "";
|
|
54
71
|
return `
|
|
55
|
-
${
|
|
72
|
+
${setupResult.importStatement}
|
|
73
|
+
${setupResult.promiseDeclaration}
|
|
56
74
|
${nativewindImport}
|
|
57
75
|
|
|
58
76
|
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
@@ -70,6 +88,7 @@ if (typeof window !== 'undefined') {
|
|
|
70
88
|
|
|
71
89
|
// globbing ${JSON.stringify(routeGlobs)}
|
|
72
90
|
export default createApp({
|
|
91
|
+
${setupPromiseArg}
|
|
73
92
|
routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(p => `!${p}`)])}, { exhaustive: true }),
|
|
74
93
|
routerRoot: ${JSON.stringify(options.root)},
|
|
75
94
|
flags: ${JSON.stringify(options.flags)},
|
|
@@ -79,7 +98,7 @@ export default createApp({
|
|
|
79
98
|
if (id === resolvedVirtualEntryIdNative) {
|
|
80
99
|
const isNative = isNativeEnvironment(this.environment);
|
|
81
100
|
return `
|
|
82
|
-
${getSetupFileImport(this.environment.name, setupFiles, isNative)}
|
|
101
|
+
${getSetupFileImport(this.environment.name, setupFiles, isNative).importStatement}
|
|
83
102
|
|
|
84
103
|
import { createApp } from 'one'
|
|
85
104
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","key","ssr","JSON","stringify","createVirtualEntry","options","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","isNative","environment","
|
|
1
|
+
{"version":3,"names":["configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","key","ssr","importStatement","promiseDeclaration","promiseVarName","JSON","stringify","createVirtualEntry","options","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","isNative","environment","setupResult","nativewindImport","enableNativewind","setupPromiseArg","p","flags"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -32,9 +32,25 @@ function getSetupFileImport(environmentName, setupFiles, useStaticImport) {
|
|
|
32
32
|
android: "android"
|
|
33
33
|
},
|
|
34
34
|
key = envMap[environmentName];
|
|
35
|
-
if (!key) return
|
|
35
|
+
if (!key) return {
|
|
36
|
+
importStatement: "",
|
|
37
|
+
promiseDeclaration: "",
|
|
38
|
+
promiseVarName: ""
|
|
39
|
+
};
|
|
36
40
|
var setupFile = setupFiles[key];
|
|
37
|
-
return setupFile ? useStaticImport ?
|
|
41
|
+
return setupFile ? useStaticImport ? {
|
|
42
|
+
importStatement: `import ${JSON.stringify(setupFile)}`,
|
|
43
|
+
promiseDeclaration: "",
|
|
44
|
+
promiseVarName: ""
|
|
45
|
+
} : {
|
|
46
|
+
importStatement: "",
|
|
47
|
+
promiseDeclaration: `const __oneSetupPromise = import(/* @vite-ignore */ ${JSON.stringify(setupFile)})`,
|
|
48
|
+
promiseVarName: "__oneSetupPromise"
|
|
49
|
+
} : {
|
|
50
|
+
importStatement: "",
|
|
51
|
+
promiseDeclaration: "",
|
|
52
|
+
promiseVarName: ""
|
|
53
|
+
};
|
|
38
54
|
}
|
|
39
55
|
function createVirtualEntry(options) {
|
|
40
56
|
var _options_router_ignoredRouteFiles,
|
|
@@ -54,10 +70,12 @@ function createVirtualEntry(options) {
|
|
|
54
70
|
load(id) {
|
|
55
71
|
if (id === resolvedVirtualEntryId) {
|
|
56
72
|
var isNative = isNativeEnvironment(this.environment),
|
|
57
|
-
|
|
58
|
-
nativewindImport = configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : ""
|
|
73
|
+
setupResult = getSetupFileImport(this.environment.name, setupFiles, isNative),
|
|
74
|
+
nativewindImport = configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : "",
|
|
75
|
+
setupPromiseArg = setupResult.promiseVarName ? `setupPromise: ${setupResult.promiseVarName},` : "";
|
|
59
76
|
return `
|
|
60
|
-
${
|
|
77
|
+
${setupResult.importStatement}
|
|
78
|
+
${setupResult.promiseDeclaration}
|
|
61
79
|
${nativewindImport}
|
|
62
80
|
|
|
63
81
|
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
@@ -75,6 +93,7 @@ if (typeof window !== 'undefined') {
|
|
|
75
93
|
|
|
76
94
|
// globbing ${JSON.stringify(routeGlobs)}
|
|
77
95
|
export default createApp({
|
|
96
|
+
${setupPromiseArg}
|
|
78
97
|
routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(function (p) {
|
|
79
98
|
return `!${p}`;
|
|
80
99
|
})])}, { exhaustive: true }),
|
|
@@ -85,9 +104,9 @@ export default createApp({
|
|
|
85
104
|
}
|
|
86
105
|
if (id === resolvedVirtualEntryIdNative) {
|
|
87
106
|
var isNative1 = isNativeEnvironment(this.environment),
|
|
88
|
-
|
|
107
|
+
setupResult1 = getSetupFileImport(this.environment.name, setupFiles, isNative1);
|
|
89
108
|
return `
|
|
90
|
-
${
|
|
109
|
+
${setupResult1.importStatement}
|
|
91
110
|
|
|
92
111
|
import { createApp } from 'one'
|
|
93
112
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","envMap","ssr","key","JSON","stringify","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","isNative","environment","
|
|
1
|
+
{"version":3,"names":["configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","JSON","stringify","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","isNative","environment","setupResult","nativewindImport","enableNativewind","setupPromiseArg","p","flags","isNative1","setupResult1"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.58",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -135,17 +135,17 @@
|
|
|
135
135
|
"@react-navigation/routers": "~7.5.1",
|
|
136
136
|
"@swc/core": "^1.14.0",
|
|
137
137
|
"@ungap/structured-clone": "^1.2.0",
|
|
138
|
-
"@vxrn/color-scheme": "1.2.
|
|
139
|
-
"@vxrn/compiler": "1.2.
|
|
140
|
-
"@vxrn/resolve": "1.2.
|
|
141
|
-
"@vxrn/tslib-lite": "1.2.
|
|
142
|
-
"@vxrn/use-isomorphic-layout-effect": "1.2.
|
|
143
|
-
"@vxrn/vite-plugin-metro": "1.2.
|
|
138
|
+
"@vxrn/color-scheme": "1.2.58",
|
|
139
|
+
"@vxrn/compiler": "1.2.58",
|
|
140
|
+
"@vxrn/resolve": "1.2.58",
|
|
141
|
+
"@vxrn/tslib-lite": "1.2.58",
|
|
142
|
+
"@vxrn/use-isomorphic-layout-effect": "1.2.58",
|
|
143
|
+
"@vxrn/vite-plugin-metro": "1.2.58",
|
|
144
144
|
"babel-dead-code-elimination": "^1.0.10",
|
|
145
145
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
146
146
|
"citty": "^0.1.6",
|
|
147
147
|
"core-js": "^3.38.1",
|
|
148
|
-
"create-vxrn": "1.2.
|
|
148
|
+
"create-vxrn": "1.2.58",
|
|
149
149
|
"escape-string-regexp": "^5.0.0",
|
|
150
150
|
"expo-linking": "~8.0.8",
|
|
151
151
|
"expo-modules-core": "~3.0.24",
|
|
@@ -153,9 +153,11 @@
|
|
|
153
153
|
"fast-glob": "^3.3.3",
|
|
154
154
|
"fs-extra": "^11.2.0",
|
|
155
155
|
"hono": "^4.10.7",
|
|
156
|
+
"launch-editor": "^2.10.0",
|
|
156
157
|
"lightningcss": "^1.30.1",
|
|
157
158
|
"micromatch": "^4.0.7",
|
|
158
159
|
"nanoid": "^3.3.7",
|
|
160
|
+
"oxc-parser": "^0.107.0",
|
|
159
161
|
"perfect-debounce": "^1.0.0",
|
|
160
162
|
"picocolors": "^1.0.0",
|
|
161
163
|
"react": "19.1.0",
|
|
@@ -171,7 +173,7 @@
|
|
|
171
173
|
"vite": "^7.1.12",
|
|
172
174
|
"vite-plugin-barrel": "^0.4.1",
|
|
173
175
|
"vite-tsconfig-paths": "^5.1.4",
|
|
174
|
-
"vxrn": "1.2.
|
|
176
|
+
"vxrn": "1.2.58",
|
|
175
177
|
"ws": "^8.18.0",
|
|
176
178
|
"xxhashjs": "^0.2.2"
|
|
177
179
|
},
|
package/src/cli/buildPage.ts
CHANGED
package/src/cli/dev.ts
CHANGED
|
@@ -39,17 +39,17 @@ export async function dev(args: {
|
|
|
39
39
|
stop()
|
|
40
40
|
})
|
|
41
41
|
|
|
42
|
-
process.on('SIGINT', () => {
|
|
42
|
+
process.on('SIGINT', async () => {
|
|
43
43
|
try {
|
|
44
|
-
stop()
|
|
44
|
+
await stop()
|
|
45
45
|
} finally {
|
|
46
46
|
process.exit(2)
|
|
47
47
|
}
|
|
48
48
|
})
|
|
49
49
|
|
|
50
|
-
process.on('SIGTERM', () => {
|
|
50
|
+
process.on('SIGTERM', async () => {
|
|
51
51
|
try {
|
|
52
|
-
stop()
|
|
52
|
+
await stop()
|
|
53
53
|
} finally {
|
|
54
54
|
process.exit(0)
|
|
55
55
|
}
|
package/src/createApp.tsx
CHANGED
|
@@ -18,6 +18,11 @@ export type CreateAppProps = {
|
|
|
18
18
|
routes: Record<string, () => Promise<unknown>>
|
|
19
19
|
routerRoot: string
|
|
20
20
|
flags?: One.Flags
|
|
21
|
+
/**
|
|
22
|
+
* Promise that resolves when the setup file has finished loading.
|
|
23
|
+
* The app will wait for this before rendering to ensure setup code runs first.
|
|
24
|
+
*/
|
|
25
|
+
setupPromise?: Promise<unknown>
|
|
21
26
|
}
|
|
22
27
|
|
|
23
28
|
export function createApp(options: CreateAppProps) {
|
|
@@ -143,6 +148,10 @@ export function createApp(options: CreateAppProps) {
|
|
|
143
148
|
const serverContext = getServerContext() || {}
|
|
144
149
|
const routePreloads = serverContext.routePreloads
|
|
145
150
|
|
|
151
|
+
// Wait for setup file to complete first (if provided)
|
|
152
|
+
// This ensures setup code (error handlers, analytics, etc.) runs before the app
|
|
153
|
+
const setupComplete = options.setupPromise || Promise.resolve()
|
|
154
|
+
|
|
146
155
|
// preload routes using build-time mapping (production SSG)
|
|
147
156
|
// for SPA/dev mode, fall back to importing root layout directly
|
|
148
157
|
const preloadPromises = routePreloads
|
|
@@ -153,7 +162,8 @@ export function createApp(options: CreateAppProps) {
|
|
|
153
162
|
})
|
|
154
163
|
: [options.routes[`/${options.routerRoot}/_layout.tsx`]?.()]
|
|
155
164
|
|
|
156
|
-
return
|
|
165
|
+
return setupComplete
|
|
166
|
+
.then(() => Promise.all(preloadPromises))
|
|
157
167
|
.then(() => {
|
|
158
168
|
return resolveClientLoader(serverContext)
|
|
159
169
|
})
|
|
@@ -103,7 +103,9 @@ describe('createHandleRequest', () => {
|
|
|
103
103
|
handlePage: vi.fn().mockResolvedValue('<html></html>'),
|
|
104
104
|
handleLoader: vi.fn().mockResolvedValue('loader data'),
|
|
105
105
|
}
|
|
106
|
-
const { handler } = createHandleRequest(mockHandlersWithLoader, {
|
|
106
|
+
const { handler } = createHandleRequest(mockHandlersWithLoader, {
|
|
107
|
+
routerRoot: '/app',
|
|
108
|
+
})
|
|
107
109
|
// Loader paths are /assets/<path>_<nonce>_vxrn_loader.js - they should reach handleLoader
|
|
108
110
|
// for a matching route (the path /my-page matches the [slug] route)
|
|
109
111
|
await handler(createRequest('/assets/my-page_123_vxrn_loader.js'))
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple registry for devtools functions.
|
|
3
|
+
* This avoids circular dependencies by letting modules register their
|
|
4
|
+
* devtools functions instead of router.ts importing them.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
type DevtoolsRegistry = {
|
|
8
|
+
getLoaderTimingHistory?: () => any[]
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const devtoolsRegistry: DevtoolsRegistry = {}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Register a devtools function. Called by modules like useLoader.ts
|
|
15
|
+
*/
|
|
16
|
+
export function registerDevtoolsFunction<K extends keyof DevtoolsRegistry>(
|
|
17
|
+
key: K,
|
|
18
|
+
fn: DevtoolsRegistry[K]
|
|
19
|
+
) {
|
|
20
|
+
devtoolsRegistry[key] = fn
|
|
21
|
+
}
|