@bleedingdev/modern-js-runtime 3.2.0-ultramodern.0
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/LICENSE +21 -0
- package/README.md +32 -0
- package/dist/cjs/cache/index.js +58 -0
- package/dist/cjs/cli/alias.js +68 -0
- package/dist/cjs/cli/code.js +193 -0
- package/dist/cjs/cli/constants.js +68 -0
- package/dist/cjs/cli/entry.js +53 -0
- package/dist/cjs/cli/index.js +166 -0
- package/dist/cjs/cli/ssr/index.js +240 -0
- package/dist/cjs/cli/ssr/loadable-bundler-plugin.js +131 -0
- package/dist/cjs/cli/ssr/mode.js +48 -0
- package/dist/cjs/cli/template.js +276 -0
- package/dist/cjs/cli/template.server.js +163 -0
- package/dist/cjs/common.js +44 -0
- package/dist/cjs/core/browser/hydrate.js +91 -0
- package/dist/cjs/core/browser/index.js +150 -0
- package/dist/cjs/core/browser/withCallback.js +47 -0
- package/dist/cjs/core/compat/hooks.js +75 -0
- package/dist/cjs/core/compat/index.js +46 -0
- package/dist/cjs/core/compat/requestContext.js +59 -0
- package/dist/cjs/core/config.js +36 -0
- package/dist/cjs/core/constants.js +48 -0
- package/dist/cjs/core/context/index.js +124 -0
- package/dist/cjs/core/context/monitors/default.js +44 -0
- package/dist/cjs/core/context/monitors/index.js +37 -0
- package/dist/cjs/core/context/monitors/index.server.js +41 -0
- package/dist/cjs/core/context/request/index.js +36 -0
- package/dist/cjs/core/context/request/index.server.js +40 -0
- package/dist/cjs/core/context/response/index.js +50 -0
- package/dist/cjs/core/context/response/index.server.js +71 -0
- package/dist/cjs/core/context/runtime.js +65 -0
- package/dist/cjs/core/context/serverPayload/index.js +40 -0
- package/dist/cjs/core/context/serverPayload/index.server.js +47 -0
- package/dist/cjs/core/index.js +43 -0
- package/dist/cjs/core/plugin/index.js +62 -0
- package/dist/cjs/core/plugin/types.js +18 -0
- package/dist/cjs/core/react/index.js +50 -0
- package/dist/cjs/core/react/wrapper.js +55 -0
- package/dist/cjs/core/server/constants.js +48 -0
- package/dist/cjs/core/server/helmet.js +75 -0
- package/dist/cjs/core/server/index.js +50 -0
- package/dist/cjs/core/server/react/index.js +40 -0
- package/dist/cjs/core/server/react/no-ssr-cache/index.js +43 -0
- package/dist/cjs/core/server/react/nossr/index.js +54 -0
- package/dist/cjs/core/server/requestHandler.js +218 -0
- package/dist/cjs/core/server/server.js +44 -0
- package/dist/cjs/core/server/shared.js +38 -0
- package/dist/cjs/core/server/stream/afterTemplate.js +103 -0
- package/dist/cjs/core/server/stream/beforeTemplate.js +111 -0
- package/dist/cjs/core/server/stream/createReadableStream.js +161 -0
- package/dist/cjs/core/server/stream/createReadableStream.worker.js +141 -0
- package/dist/cjs/core/server/stream/deferredScript.js +114 -0
- package/dist/cjs/core/server/stream/index.js +38 -0
- package/dist/cjs/core/server/stream/shared.js +154 -0
- package/dist/cjs/core/server/stream/template.js +47 -0
- package/dist/cjs/core/server/string/index.js +149 -0
- package/dist/cjs/core/server/string/loadable.js +146 -0
- package/dist/cjs/core/server/string/ssrData.js +151 -0
- package/dist/cjs/core/server/string/types.js +18 -0
- package/dist/cjs/core/server/tracer.js +52 -0
- package/dist/cjs/core/server/utils.js +88 -0
- package/dist/cjs/core/types.js +18 -0
- package/dist/cjs/document/Body.js +54 -0
- package/dist/cjs/document/Comment.js +49 -0
- package/dist/cjs/document/DocumentContext.js +51 -0
- package/dist/cjs/document/DocumentStructureContext.js +54 -0
- package/dist/cjs/document/Head.js +66 -0
- package/dist/cjs/document/Html.js +120 -0
- package/dist/cjs/document/Links.js +43 -0
- package/dist/cjs/document/Root.js +66 -0
- package/dist/cjs/document/Script.js +55 -0
- package/dist/cjs/document/Scripts.js +43 -0
- package/dist/cjs/document/Style.js +50 -0
- package/dist/cjs/document/Title.js +42 -0
- package/dist/cjs/document/cli/index.js +401 -0
- package/dist/cjs/document/constants.js +134 -0
- package/dist/cjs/document/index.js +135 -0
- package/dist/cjs/exports/config-routes.js +38 -0
- package/dist/cjs/exports/head.js +51 -0
- package/dist/cjs/exports/loadable.js +66 -0
- package/dist/cjs/exports/tanstack-router.js +91 -0
- package/dist/cjs/index.js +64 -0
- package/dist/cjs/internal.js +36 -0
- package/dist/cjs/react-server.js +50 -0
- package/dist/cjs/router/cli/code/getClientRoutes/getRoutes.js +159 -0
- package/dist/cjs/router/cli/code/getClientRoutes/index.js +36 -0
- package/dist/cjs/router/cli/code/getClientRoutes/utils.js +62 -0
- package/dist/cjs/router/cli/code/index.js +238 -0
- package/dist/cjs/router/cli/code/inspect.js +139 -0
- package/dist/cjs/router/cli/code/makeLegalIdentifier.js +43 -0
- package/dist/cjs/router/cli/code/nestedRoutes.js +233 -0
- package/dist/cjs/router/cli/code/tanstackTypes.js +378 -0
- package/dist/cjs/router/cli/code/templates.js +446 -0
- package/dist/cjs/router/cli/code/utils.js +151 -0
- package/dist/cjs/router/cli/config-routes/converter.js +129 -0
- package/dist/cjs/router/cli/config-routes/parseRouteConfig.js +155 -0
- package/dist/cjs/router/cli/constants.js +99 -0
- package/dist/cjs/router/cli/entry.js +105 -0
- package/dist/cjs/router/cli/handler.js +131 -0
- package/dist/cjs/router/cli/index.js +194 -0
- package/dist/cjs/router/index.js +58 -0
- package/dist/cjs/router/internal.js +64 -0
- package/dist/cjs/router/runtime/CSSLinks.js +46 -0
- package/dist/cjs/router/runtime/DefaultNotFound.js +47 -0
- package/dist/cjs/router/runtime/DeferredDataScripts.js +36 -0
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +154 -0
- package/dist/cjs/router/runtime/PrefetchLink.js +201 -0
- package/dist/cjs/router/runtime/constants.js +65 -0
- package/dist/cjs/router/runtime/hooks.js +57 -0
- package/dist/cjs/router/runtime/index.js +95 -0
- package/dist/cjs/router/runtime/internal.js +67 -0
- package/dist/cjs/router/runtime/lifecycle.js +148 -0
- package/dist/cjs/router/runtime/plugin.js +262 -0
- package/dist/cjs/router/runtime/plugin.node.js +226 -0
- package/dist/cjs/router/runtime/routerHelper.js +55 -0
- package/dist/cjs/router/runtime/rsc-router.js +377 -0
- package/dist/cjs/router/runtime/rsc.js +58 -0
- package/dist/cjs/router/runtime/server.js +58 -0
- package/dist/cjs/router/runtime/tanstack/basepathRewrite.js +62 -0
- package/dist/cjs/router/runtime/tanstack/dataMutation.js +345 -0
- package/dist/cjs/router/runtime/tanstack/plugin.js +239 -0
- package/dist/cjs/router/runtime/tanstack/plugin.node.js +278 -0
- package/dist/cjs/router/runtime/tanstack/prefetchLink.js +55 -0
- package/dist/cjs/router/runtime/tanstack/routeTree.js +469 -0
- package/dist/cjs/router/runtime/tanstack/rsc/ClientSlot.js +53 -0
- package/dist/cjs/router/runtime/tanstack/rsc/CompositeComponent.js +75 -0
- package/dist/cjs/router/runtime/tanstack/rsc/ReplayableStream.js +141 -0
- package/dist/cjs/router/runtime/tanstack/rsc/RscNodeRenderer.js +65 -0
- package/dist/cjs/router/runtime/tanstack/rsc/SlotContext.js +54 -0
- package/dist/cjs/router/runtime/tanstack/rsc/client.js +93 -0
- package/dist/cjs/router/runtime/tanstack/rsc/createRscProxy.js +141 -0
- package/dist/cjs/router/runtime/tanstack/rsc/index.js +42 -0
- package/dist/cjs/router/runtime/tanstack/rsc/server.js +246 -0
- package/dist/cjs/router/runtime/tanstack/rsc/slotUsageSanitizer.js +65 -0
- package/dist/cjs/router/runtime/tanstack/rsc/symbols.js +72 -0
- package/dist/cjs/router/runtime/types.js +18 -0
- package/dist/cjs/router/runtime/utils.js +243 -0
- package/dist/cjs/router/runtime/withRouter.js +48 -0
- package/dist/cjs/rsc/client.js +68 -0
- package/dist/cjs/rsc/server.js +58 -0
- package/dist/cjs/ssr/index.node.js +121 -0
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +84 -0
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +195 -0
- package/dist/cjs/ssr/serverRender/types.js +36 -0
- package/dist/esm/cache/index.mjs +1 -0
- package/dist/esm/cli/alias.mjs +24 -0
- package/dist/esm/cli/code.mjs +149 -0
- package/dist/esm/cli/constants.mjs +10 -0
- package/dist/esm/cli/entry.mjs +6 -0
- package/dist/esm/cli/index.mjs +93 -0
- package/dist/esm/cli/ssr/index.mjs +190 -0
- package/dist/esm/cli/ssr/loadable-bundler-plugin.mjs +87 -0
- package/dist/esm/cli/ssr/mode.mjs +14 -0
- package/dist/esm/cli/template.mjs +211 -0
- package/dist/esm/cli/template.server.mjs +126 -0
- package/dist/esm/common.mjs +4 -0
- package/dist/esm/core/browser/hydrate.mjs +53 -0
- package/dist/esm/core/browser/index.mjs +104 -0
- package/dist/esm/core/browser/withCallback.mjs +13 -0
- package/dist/esm/core/compat/hooks.mjs +35 -0
- package/dist/esm/core/compat/index.mjs +12 -0
- package/dist/esm/core/compat/requestContext.mjs +22 -0
- package/dist/esm/core/config.mjs +2 -0
- package/dist/esm/core/constants.mjs +8 -0
- package/dist/esm/core/context/index.mjs +45 -0
- package/dist/esm/core/context/monitors/default.mjs +10 -0
- package/dist/esm/core/context/monitors/index.mjs +3 -0
- package/dist/esm/core/context/monitors/index.server.mjs +7 -0
- package/dist/esm/core/context/request/index.mjs +2 -0
- package/dist/esm/core/context/request/index.server.mjs +6 -0
- package/dist/esm/core/context/response/index.mjs +7 -0
- package/dist/esm/core/context/response/index.server.mjs +28 -0
- package/dist/esm/core/context/runtime.mjs +19 -0
- package/dist/esm/core/context/serverPayload/index.mjs +3 -0
- package/dist/esm/core/context/serverPayload/index.server.mjs +10 -0
- package/dist/esm/core/index.mjs +2 -0
- package/dist/esm/core/plugin/index.mjs +25 -0
- package/dist/esm/core/plugin/types.mjs +0 -0
- package/dist/esm/core/react/index.mjs +16 -0
- package/dist/esm/core/react/wrapper.mjs +21 -0
- package/dist/esm/core/server/constants.mjs +5 -0
- package/dist/esm/core/server/helmet.mjs +38 -0
- package/dist/esm/core/server/index.mjs +8 -0
- package/dist/esm/core/server/react/index.mjs +2 -0
- package/dist/esm/core/server/react/no-ssr-cache/index.mjs +9 -0
- package/dist/esm/core/server/react/nossr/index.mjs +10 -0
- package/dist/esm/core/server/requestHandler.mjs +174 -0
- package/dist/esm/core/server/server.mjs +3 -0
- package/dist/esm/core/server/shared.mjs +4 -0
- package/dist/esm/core/server/stream/afterTemplate.mjs +69 -0
- package/dist/esm/core/server/stream/beforeTemplate.mjs +67 -0
- package/dist/esm/core/server/stream/createReadableStream.mjs +127 -0
- package/dist/esm/core/server/stream/createReadableStream.worker.mjs +107 -0
- package/dist/esm/core/server/stream/deferredScript.mjs +62 -0
- package/dist/esm/core/server/stream/index.mjs +4 -0
- package/dist/esm/core/server/stream/shared.mjs +108 -0
- package/dist/esm/core/server/stream/template.mjs +13 -0
- package/dist/esm/core/server/string/index.mjs +104 -0
- package/dist/esm/core/server/string/loadable.mjs +112 -0
- package/dist/esm/core/server/string/ssrData.mjs +117 -0
- package/dist/esm/core/server/string/types.mjs +0 -0
- package/dist/esm/core/server/tracer.mjs +15 -0
- package/dist/esm/core/server/utils.mjs +39 -0
- package/dist/esm/core/types.mjs +0 -0
- package/dist/esm/document/Body.mjs +20 -0
- package/dist/esm/document/Comment.mjs +15 -0
- package/dist/esm/document/DocumentContext.mjs +7 -0
- package/dist/esm/document/DocumentStructureContext.mjs +10 -0
- package/dist/esm/document/Head.mjs +29 -0
- package/dist/esm/document/Html.mjs +86 -0
- package/dist/esm/document/Links.mjs +9 -0
- package/dist/esm/document/Root.mjs +29 -0
- package/dist/esm/document/Script.mjs +21 -0
- package/dist/esm/document/Scripts.mjs +9 -0
- package/dist/esm/document/Style.mjs +16 -0
- package/dist/esm/document/Title.mjs +8 -0
- package/dist/esm/document/cli/index.mjs +351 -0
- package/dist/esm/document/constants.mjs +34 -0
- package/dist/esm/document/index.mjs +12 -0
- package/dist/esm/exports/config-routes.mjs +4 -0
- package/dist/esm/exports/head.mjs +5 -0
- package/dist/esm/exports/loadable.mjs +4 -0
- package/dist/esm/exports/tanstack-router.mjs +3 -0
- package/dist/esm/index.mjs +5 -0
- package/dist/esm/internal.mjs +1 -0
- package/dist/esm/react-server.mjs +3 -0
- package/dist/esm/router/cli/code/getClientRoutes/getRoutes.mjs +115 -0
- package/dist/esm/router/cli/code/getClientRoutes/index.mjs +1 -0
- package/dist/esm/router/cli/code/getClientRoutes/utils.mjs +12 -0
- package/dist/esm/router/cli/code/index.mjs +185 -0
- package/dist/esm/router/cli/code/inspect.mjs +95 -0
- package/dist/esm/router/cli/code/makeLegalIdentifier.mjs +9 -0
- package/dist/esm/router/cli/code/nestedRoutes.mjs +193 -0
- package/dist/esm/router/cli/code/tanstackTypes.mjs +331 -0
- package/dist/esm/router/cli/code/templates.mjs +393 -0
- package/dist/esm/router/cli/code/utils.mjs +82 -0
- package/dist/esm/router/cli/config-routes/converter.mjs +82 -0
- package/dist/esm/router/cli/config-routes/parseRouteConfig.mjs +105 -0
- package/dist/esm/router/cli/constants.mjs +32 -0
- package/dist/esm/router/cli/entry.mjs +40 -0
- package/dist/esm/router/cli/handler.mjs +81 -0
- package/dist/esm/router/cli/index.mjs +127 -0
- package/dist/esm/router/index.mjs +1 -0
- package/dist/esm/router/internal.mjs +2 -0
- package/dist/esm/router/runtime/CSSLinks.mjs +12 -0
- package/dist/esm/router/runtime/DefaultNotFound.mjs +13 -0
- package/dist/esm/router/runtime/DeferredDataScripts.mjs +2 -0
- package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +120 -0
- package/dist/esm/router/runtime/PrefetchLink.mjs +154 -0
- package/dist/esm/router/runtime/constants.mjs +10 -0
- package/dist/esm/router/runtime/hooks.mjs +8 -0
- package/dist/esm/router/runtime/index.mjs +9 -0
- package/dist/esm/router/runtime/internal.mjs +25 -0
- package/dist/esm/router/runtime/lifecycle.mjs +96 -0
- package/dist/esm/router/runtime/plugin.mjs +219 -0
- package/dist/esm/router/runtime/plugin.node.mjs +179 -0
- package/dist/esm/router/runtime/routerHelper.mjs +15 -0
- package/dist/esm/router/runtime/rsc-router.mjs +321 -0
- package/dist/esm/router/runtime/rsc.mjs +1 -0
- package/dist/esm/router/runtime/server.mjs +1 -0
- package/dist/esm/router/runtime/tanstack/basepathRewrite.mjs +28 -0
- package/dist/esm/router/runtime/tanstack/dataMutation.mjs +305 -0
- package/dist/esm/router/runtime/tanstack/plugin.mjs +205 -0
- package/dist/esm/router/runtime/tanstack/plugin.node.mjs +244 -0
- package/dist/esm/router/runtime/tanstack/prefetchLink.mjs +18 -0
- package/dist/esm/router/runtime/tanstack/routeTree.mjs +429 -0
- package/dist/esm/router/runtime/tanstack/rsc/ClientSlot.mjs +19 -0
- package/dist/esm/router/runtime/tanstack/rsc/CompositeComponent.mjs +41 -0
- package/dist/esm/router/runtime/tanstack/rsc/ReplayableStream.mjs +104 -0
- package/dist/esm/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +31 -0
- package/dist/esm/router/runtime/tanstack/rsc/SlotContext.mjs +17 -0
- package/dist/esm/router/runtime/tanstack/rsc/client.mjs +53 -0
- package/dist/esm/router/runtime/tanstack/rsc/createRscProxy.mjs +107 -0
- package/dist/esm/router/runtime/tanstack/rsc/index.mjs +1 -0
- package/dist/esm/router/runtime/tanstack/rsc/server.mjs +200 -0
- package/dist/esm/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +31 -0
- package/dist/esm/router/runtime/tanstack/rsc/symbols.mjs +17 -0
- package/dist/esm/router/runtime/types.mjs +0 -0
- package/dist/esm/router/runtime/utils.mjs +174 -0
- package/dist/esm/router/runtime/withRouter.mjs +14 -0
- package/dist/esm/rsc/client.mjs +3 -0
- package/dist/esm/rsc/server.mjs +1 -0
- package/dist/esm/ssr/index.node.mjs +44 -0
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.mjs +50 -0
- package/dist/esm/ssr/serverRender/renderToString/entry.mjs +148 -0
- package/dist/esm/ssr/serverRender/types.mjs +1 -0
- package/dist/esm-node/cache/index.mjs +2 -0
- package/dist/esm-node/cli/alias.mjs +25 -0
- package/dist/esm-node/cli/code.mjs +150 -0
- package/dist/esm-node/cli/constants.mjs +11 -0
- package/dist/esm-node/cli/entry.mjs +7 -0
- package/dist/esm-node/cli/index.mjs +95 -0
- package/dist/esm-node/cli/ssr/index.mjs +192 -0
- package/dist/esm-node/cli/ssr/loadable-bundler-plugin.mjs +88 -0
- package/dist/esm-node/cli/ssr/mode.mjs +15 -0
- package/dist/esm-node/cli/template.mjs +212 -0
- package/dist/esm-node/cli/template.server.mjs +127 -0
- package/dist/esm-node/common.mjs +5 -0
- package/dist/esm-node/core/browser/hydrate.mjs +54 -0
- package/dist/esm-node/core/browser/index.mjs +105 -0
- package/dist/esm-node/core/browser/withCallback.mjs +14 -0
- package/dist/esm-node/core/compat/hooks.mjs +36 -0
- package/dist/esm-node/core/compat/index.mjs +13 -0
- package/dist/esm-node/core/compat/requestContext.mjs +23 -0
- package/dist/esm-node/core/config.mjs +3 -0
- package/dist/esm-node/core/constants.mjs +9 -0
- package/dist/esm-node/core/context/index.mjs +46 -0
- package/dist/esm-node/core/context/monitors/default.mjs +11 -0
- package/dist/esm-node/core/context/monitors/index.mjs +4 -0
- package/dist/esm-node/core/context/monitors/index.server.mjs +8 -0
- package/dist/esm-node/core/context/request/index.mjs +3 -0
- package/dist/esm-node/core/context/request/index.server.mjs +7 -0
- package/dist/esm-node/core/context/response/index.mjs +8 -0
- package/dist/esm-node/core/context/response/index.server.mjs +29 -0
- package/dist/esm-node/core/context/runtime.mjs +20 -0
- package/dist/esm-node/core/context/serverPayload/index.mjs +4 -0
- package/dist/esm-node/core/context/serverPayload/index.server.mjs +11 -0
- package/dist/esm-node/core/index.mjs +3 -0
- package/dist/esm-node/core/plugin/index.mjs +26 -0
- package/dist/esm-node/core/plugin/types.mjs +1 -0
- package/dist/esm-node/core/react/index.mjs +17 -0
- package/dist/esm-node/core/react/wrapper.mjs +22 -0
- package/dist/esm-node/core/server/constants.mjs +6 -0
- package/dist/esm-node/core/server/helmet.mjs +39 -0
- package/dist/esm-node/core/server/index.mjs +9 -0
- package/dist/esm-node/core/server/react/index.mjs +3 -0
- package/dist/esm-node/core/server/react/no-ssr-cache/index.mjs +10 -0
- package/dist/esm-node/core/server/react/nossr/index.mjs +11 -0
- package/dist/esm-node/core/server/requestHandler.mjs +175 -0
- package/dist/esm-node/core/server/server.mjs +4 -0
- package/dist/esm-node/core/server/shared.mjs +5 -0
- package/dist/esm-node/core/server/stream/afterTemplate.mjs +70 -0
- package/dist/esm-node/core/server/stream/beforeTemplate.mjs +71 -0
- package/dist/esm-node/core/server/stream/createReadableStream.mjs +128 -0
- package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +108 -0
- package/dist/esm-node/core/server/stream/deferredScript.mjs +63 -0
- package/dist/esm-node/core/server/stream/index.mjs +5 -0
- package/dist/esm-node/core/server/stream/shared.mjs +109 -0
- package/dist/esm-node/core/server/stream/template.mjs +14 -0
- package/dist/esm-node/core/server/string/index.mjs +105 -0
- package/dist/esm-node/core/server/string/loadable.mjs +116 -0
- package/dist/esm-node/core/server/string/ssrData.mjs +118 -0
- package/dist/esm-node/core/server/string/types.mjs +1 -0
- package/dist/esm-node/core/server/tracer.mjs +16 -0
- package/dist/esm-node/core/server/utils.mjs +40 -0
- package/dist/esm-node/core/types.mjs +1 -0
- package/dist/esm-node/document/Body.mjs +21 -0
- package/dist/esm-node/document/Comment.mjs +16 -0
- package/dist/esm-node/document/DocumentContext.mjs +8 -0
- package/dist/esm-node/document/DocumentStructureContext.mjs +11 -0
- package/dist/esm-node/document/Head.mjs +30 -0
- package/dist/esm-node/document/Html.mjs +87 -0
- package/dist/esm-node/document/Links.mjs +10 -0
- package/dist/esm-node/document/Root.mjs +30 -0
- package/dist/esm-node/document/Script.mjs +22 -0
- package/dist/esm-node/document/Scripts.mjs +10 -0
- package/dist/esm-node/document/Style.mjs +17 -0
- package/dist/esm-node/document/Title.mjs +9 -0
- package/dist/esm-node/document/cli/index.mjs +353 -0
- package/dist/esm-node/document/constants.mjs +35 -0
- package/dist/esm-node/document/index.mjs +13 -0
- package/dist/esm-node/exports/config-routes.mjs +5 -0
- package/dist/esm-node/exports/head.mjs +6 -0
- package/dist/esm-node/exports/loadable.mjs +5 -0
- package/dist/esm-node/exports/tanstack-router.mjs +4 -0
- package/dist/esm-node/index.mjs +6 -0
- package/dist/esm-node/internal.mjs +2 -0
- package/dist/esm-node/react-server.mjs +4 -0
- package/dist/esm-node/router/cli/code/getClientRoutes/getRoutes.mjs +116 -0
- package/dist/esm-node/router/cli/code/getClientRoutes/index.mjs +2 -0
- package/dist/esm-node/router/cli/code/getClientRoutes/utils.mjs +13 -0
- package/dist/esm-node/router/cli/code/index.mjs +186 -0
- package/dist/esm-node/router/cli/code/inspect.mjs +96 -0
- package/dist/esm-node/router/cli/code/makeLegalIdentifier.mjs +10 -0
- package/dist/esm-node/router/cli/code/nestedRoutes.mjs +194 -0
- package/dist/esm-node/router/cli/code/tanstackTypes.mjs +332 -0
- package/dist/esm-node/router/cli/code/templates.mjs +395 -0
- package/dist/esm-node/router/cli/code/utils.mjs +83 -0
- package/dist/esm-node/router/cli/config-routes/converter.mjs +83 -0
- package/dist/esm-node/router/cli/config-routes/parseRouteConfig.mjs +106 -0
- package/dist/esm-node/router/cli/constants.mjs +33 -0
- package/dist/esm-node/router/cli/entry.mjs +41 -0
- package/dist/esm-node/router/cli/handler.mjs +82 -0
- package/dist/esm-node/router/cli/index.mjs +131 -0
- package/dist/esm-node/router/index.mjs +2 -0
- package/dist/esm-node/router/internal.mjs +3 -0
- package/dist/esm-node/router/runtime/CSSLinks.mjs +13 -0
- package/dist/esm-node/router/runtime/DefaultNotFound.mjs +14 -0
- package/dist/esm-node/router/runtime/DeferredDataScripts.mjs +3 -0
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +121 -0
- package/dist/esm-node/router/runtime/PrefetchLink.mjs +155 -0
- package/dist/esm-node/router/runtime/constants.mjs +11 -0
- package/dist/esm-node/router/runtime/hooks.mjs +9 -0
- package/dist/esm-node/router/runtime/index.mjs +10 -0
- package/dist/esm-node/router/runtime/internal.mjs +26 -0
- package/dist/esm-node/router/runtime/lifecycle.mjs +97 -0
- package/dist/esm-node/router/runtime/plugin.mjs +220 -0
- package/dist/esm-node/router/runtime/plugin.node.mjs +180 -0
- package/dist/esm-node/router/runtime/routerHelper.mjs +16 -0
- package/dist/esm-node/router/runtime/rsc-router.mjs +322 -0
- package/dist/esm-node/router/runtime/rsc.mjs +2 -0
- package/dist/esm-node/router/runtime/server.mjs +2 -0
- package/dist/esm-node/router/runtime/tanstack/basepathRewrite.mjs +29 -0
- package/dist/esm-node/router/runtime/tanstack/dataMutation.mjs +306 -0
- package/dist/esm-node/router/runtime/tanstack/plugin.mjs +206 -0
- package/dist/esm-node/router/runtime/tanstack/plugin.node.mjs +245 -0
- package/dist/esm-node/router/runtime/tanstack/prefetchLink.mjs +19 -0
- package/dist/esm-node/router/runtime/tanstack/routeTree.mjs +430 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/ClientSlot.mjs +20 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/CompositeComponent.mjs +42 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/ReplayableStream.mjs +105 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +32 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/SlotContext.mjs +18 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/client.mjs +54 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/createRscProxy.mjs +108 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/index.mjs +2 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/server.mjs +201 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +32 -0
- package/dist/esm-node/router/runtime/tanstack/rsc/symbols.mjs +18 -0
- package/dist/esm-node/router/runtime/types.mjs +1 -0
- package/dist/esm-node/router/runtime/utils.mjs +175 -0
- package/dist/esm-node/router/runtime/withRouter.mjs +15 -0
- package/dist/esm-node/rsc/client.mjs +4 -0
- package/dist/esm-node/rsc/server.mjs +2 -0
- package/dist/esm-node/ssr/index.node.mjs +45 -0
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.mjs +51 -0
- package/dist/esm-node/ssr/serverRender/renderToString/entry.mjs +149 -0
- package/dist/esm-node/ssr/serverRender/types.mjs +2 -0
- package/dist/types/cache/index.d.ts +1 -0
- package/dist/types/cli/alias.d.ts +7 -0
- package/dist/types/cli/code.d.ts +3 -0
- package/dist/types/cli/constants.d.ts +9 -0
- package/dist/types/cli/entry.d.ts +2 -0
- package/dist/types/cli/index.d.ts +11 -0
- package/dist/types/cli/ssr/index.d.ts +6 -0
- package/dist/types/cli/ssr/loadable-bundler-plugin.d.ts +31 -0
- package/dist/types/cli/ssr/mode.d.ts +15 -0
- package/dist/types/cli/template.d.ts +50 -0
- package/dist/types/cli/template.server.d.ts +20 -0
- package/dist/types/common.d.ts +8 -0
- package/dist/types/core/browser/hydrate.d.ts +5 -0
- package/dist/types/core/browser/index.d.ts +9 -0
- package/dist/types/core/browser/withCallback.d.ts +5 -0
- package/dist/types/core/compat/hooks.d.ts +4 -0
- package/dist/types/core/compat/index.d.ts +2 -0
- package/dist/types/core/compat/requestContext.d.ts +5 -0
- package/dist/types/core/config.d.ts +6 -0
- package/dist/types/core/constants.d.ts +6 -0
- package/dist/types/core/context/index.d.ts +50 -0
- package/dist/types/core/context/monitors/default.d.ts +2 -0
- package/dist/types/core/context/monitors/index.d.ts +1 -0
- package/dist/types/core/context/monitors/index.server.d.ts +2 -0
- package/dist/types/core/context/request/index.d.ts +1 -0
- package/dist/types/core/context/request/index.server.d.ts +1 -0
- package/dist/types/core/context/response/index.d.ts +4 -0
- package/dist/types/core/context/response/index.server.d.ts +7 -0
- package/dist/types/core/context/runtime.d.ts +42 -0
- package/dist/types/core/context/serverPayload/index.d.ts +4 -0
- package/dist/types/core/context/serverPayload/index.server.d.ts +31 -0
- package/dist/types/core/index.d.ts +5 -0
- package/dist/types/core/plugin/index.d.ts +4 -0
- package/dist/types/core/plugin/types.d.ts +10 -0
- package/dist/types/core/react/index.d.ts +2 -0
- package/dist/types/core/react/wrapper.d.ts +3 -0
- package/dist/types/core/server/constants.d.ts +4 -0
- package/dist/types/core/server/helmet.d.ts +3 -0
- package/dist/types/core/server/index.d.ts +4 -0
- package/dist/types/core/server/react/index.d.ts +2 -0
- package/dist/types/core/server/react/no-ssr-cache/index.d.ts +2 -0
- package/dist/types/core/server/react/nossr/index.d.ts +4 -0
- package/dist/types/core/server/requestHandler.d.ts +13 -0
- package/dist/types/core/server/server.d.ts +4 -0
- package/dist/types/core/server/shared.d.ts +8 -0
- package/dist/types/core/server/stream/afterTemplate.d.ts +13 -0
- package/dist/types/core/server/stream/beforeTemplate.d.ts +9 -0
- package/dist/types/core/server/stream/createReadableStream.d.ts +2 -0
- package/dist/types/core/server/stream/createReadableStream.worker.d.ts +2 -0
- package/dist/types/core/server/stream/deferredScript.d.ts +15 -0
- package/dist/types/core/server/stream/index.d.ts +1 -0
- package/dist/types/core/server/stream/shared.d.ts +33 -0
- package/dist/types/core/server/stream/template.d.ts +9 -0
- package/dist/types/core/server/string/index.d.ts +2 -0
- package/dist/types/core/server/string/loadable.d.ts +36 -0
- package/dist/types/core/server/string/ssrData.d.ts +20 -0
- package/dist/types/core/server/string/types.d.ts +12 -0
- package/dist/types/core/server/tracer.d.ts +17 -0
- package/dist/types/core/server/utils.d.ts +29 -0
- package/dist/types/core/types.d.ts +49 -0
- package/dist/types/document/Body.d.ts +2 -0
- package/dist/types/document/Comment.d.ts +5 -0
- package/dist/types/document/DocumentContext.d.ts +13 -0
- package/dist/types/document/DocumentStructureContext.d.ts +12 -0
- package/dist/types/document/Head.d.ts +5 -0
- package/dist/types/document/Html.d.ts +4 -0
- package/dist/types/document/Links.d.ts +2 -0
- package/dist/types/document/Root.d.ts +7 -0
- package/dist/types/document/Script.d.ts +4 -0
- package/dist/types/document/Scripts.d.ts +2 -0
- package/dist/types/document/Style.d.ts +5 -0
- package/dist/types/document/Title.d.ts +1 -0
- package/dist/types/document/cli/index.d.ts +5 -0
- package/dist/types/document/constants.d.ts +25 -0
- package/dist/types/document/index.d.ts +12 -0
- package/dist/types/exports/config-routes.d.ts +9 -0
- package/dist/types/exports/head.d.ts +4 -0
- package/dist/types/exports/loadable.d.ts +3 -0
- package/dist/types/exports/tanstack-router.d.ts +5 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/internal.d.ts +2 -0
- package/dist/types/react-server.d.ts +3 -0
- package/dist/types/router/cli/code/getClientRoutes/getRoutes.d.ts +8 -0
- package/dist/types/router/cli/code/getClientRoutes/index.d.ts +1 -0
- package/dist/types/router/cli/code/getClientRoutes/utils.d.ts +4 -0
- package/dist/types/router/cli/code/index.d.ts +12 -0
- package/dist/types/router/cli/code/inspect.d.ts +22 -0
- package/dist/types/router/cli/code/makeLegalIdentifier.d.ts +1 -0
- package/dist/types/router/cli/code/nestedRoutes.d.ts +13 -0
- package/dist/types/router/cli/code/tanstackTypes.d.ts +10 -0
- package/dist/types/router/cli/code/templates.d.ts +28 -0
- package/dist/types/router/cli/code/utils.d.ts +12 -0
- package/dist/types/router/cli/config-routes/converter.d.ts +15 -0
- package/dist/types/router/cli/config-routes/parseRouteConfig.d.ts +32 -0
- package/dist/types/router/cli/constants.d.ts +31 -0
- package/dist/types/router/cli/entry.d.ts +18 -0
- package/dist/types/router/cli/handler.d.ts +28 -0
- package/dist/types/router/cli/index.d.ts +5 -0
- package/dist/types/router/index.d.ts +1 -0
- package/dist/types/router/internal.d.ts +2 -0
- package/dist/types/router/runtime/CSSLinks.d.ts +9 -0
- package/dist/types/router/runtime/DefaultNotFound.d.ts +2 -0
- package/dist/types/router/runtime/DeferredDataScripts.d.ts +2 -0
- package/dist/types/router/runtime/DeferredDataScripts.node.d.ts +11 -0
- package/dist/types/router/runtime/PrefetchLink.d.ts +27 -0
- package/dist/types/router/runtime/constants.d.ts +146 -0
- package/dist/types/router/runtime/hooks.d.ts +18 -0
- package/dist/types/router/runtime/index.d.ts +7 -0
- package/dist/types/router/runtime/internal.d.ts +11 -0
- package/dist/types/router/runtime/lifecycle.d.ts +25 -0
- package/dist/types/router/runtime/plugin.d.ts +9 -0
- package/dist/types/router/runtime/plugin.node.d.ts +7 -0
- package/dist/types/router/runtime/routerHelper.d.ts +5 -0
- package/dist/types/router/runtime/rsc-router.d.ts +20 -0
- package/dist/types/router/runtime/rsc.d.ts +1 -0
- package/dist/types/router/runtime/server.d.ts +1 -0
- package/dist/types/router/runtime/tanstack/basepathRewrite.d.ts +8 -0
- package/dist/types/router/runtime/tanstack/dataMutation.d.ts +29 -0
- package/dist/types/router/runtime/tanstack/plugin.d.ts +6 -0
- package/dist/types/router/runtime/tanstack/plugin.node.d.ts +6 -0
- package/dist/types/router/runtime/tanstack/prefetchLink.d.ts +11 -0
- package/dist/types/router/runtime/tanstack/routeTree.d.ts +8 -0
- package/dist/types/router/runtime/tanstack/rsc/ClientSlot.d.ts +5 -0
- package/dist/types/router/runtime/tanstack/rsc/CompositeComponent.d.ts +3 -0
- package/dist/types/router/runtime/tanstack/rsc/ReplayableStream.d.ts +24 -0
- package/dist/types/router/runtime/tanstack/rsc/RscNodeRenderer.d.ts +5 -0
- package/dist/types/router/runtime/tanstack/rsc/SlotContext.d.ts +11 -0
- package/dist/types/router/runtime/tanstack/rsc/client.d.ts +11 -0
- package/dist/types/router/runtime/tanstack/rsc/createRscProxy.d.ts +7 -0
- package/dist/types/router/runtime/tanstack/rsc/index.d.ts +2 -0
- package/dist/types/router/runtime/tanstack/rsc/server.d.ts +14 -0
- package/dist/types/router/runtime/tanstack/rsc/slotUsageSanitizer.d.ts +2 -0
- package/dist/types/router/runtime/tanstack/rsc/symbols.d.ts +46 -0
- package/dist/types/router/runtime/types.d.ts +119 -0
- package/dist/types/router/runtime/utils.d.ts +48 -0
- package/dist/types/router/runtime/withRouter.d.ts +10 -0
- package/dist/types/rsc/client.d.ts +2 -0
- package/dist/types/rsc/server.d.ts +1 -0
- package/package.json +268 -0
- package/rslib.config.mts +19 -0
- package/rstest.config.mts +88 -0
- package/scripts/gen-static.mts +29 -0
- package/static/modern-inline.js +1 -0
- package/static/modern-run-router-data-fn.js +1 -0
- package/static/modern-run-window-fn.js +1 -0
- package/tsconfig.tsgo.json +6 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
"use client";
|
|
3
|
+
import { createSerializationAdapter } from "@tanstack/react-router";
|
|
4
|
+
import { use } from "react";
|
|
5
|
+
import { createRscProxy } from "./createRscProxy.mjs";
|
|
6
|
+
let modernRscClientRuntimePromise;
|
|
7
|
+
function loadModernRscClientRuntime() {
|
|
8
|
+
modernRscClientRuntimePromise ??= import("../../../../rsc/client.mjs").then((runtime)=>{
|
|
9
|
+
runtime.setServerCallback(runtime.callServer);
|
|
10
|
+
return runtime;
|
|
11
|
+
});
|
|
12
|
+
return modernRscClientRuntimePromise;
|
|
13
|
+
}
|
|
14
|
+
function createTreeGetter(stream) {
|
|
15
|
+
let ready = false;
|
|
16
|
+
let tree;
|
|
17
|
+
const treePromise = loadModernRscClientRuntime().then((runtime)=>runtime.createFromReadableStream(stream, {
|
|
18
|
+
callServer: runtime.callServer
|
|
19
|
+
})).then((value)=>{
|
|
20
|
+
tree = value;
|
|
21
|
+
ready = true;
|
|
22
|
+
return value;
|
|
23
|
+
});
|
|
24
|
+
return ()=>{
|
|
25
|
+
if (ready) return tree;
|
|
26
|
+
return use(treePromise);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function createFromFlightStream(serialized) {
|
|
30
|
+
const streamWrapper = {
|
|
31
|
+
createReplayStream: ()=>serialized.stream
|
|
32
|
+
};
|
|
33
|
+
return createRscProxy(createTreeGetter(serialized.stream), {
|
|
34
|
+
renderable: 'renderable' === serialized.kind,
|
|
35
|
+
slotUsagesStream: serialized.slotUsagesStream,
|
|
36
|
+
stream: streamWrapper
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const adapter = createSerializationAdapter({
|
|
40
|
+
key: '$MODERN_TANSTACK_RSC',
|
|
41
|
+
test: (_value)=>false,
|
|
42
|
+
toSerializable: ()=>{
|
|
43
|
+
throw new Error('TanStack RSC data cannot be serialized on client.');
|
|
44
|
+
},
|
|
45
|
+
fromSerializable: (value)=>createFromFlightStream(value)
|
|
46
|
+
});
|
|
47
|
+
function getTanstackRscSerializationAdapters() {
|
|
48
|
+
return [
|
|
49
|
+
adapter
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
const rscSerializationAdapter = getTanstackRscSerializationAdapters;
|
|
53
|
+
export { CompositeComponent } from "./CompositeComponent.mjs";
|
|
54
|
+
export { getTanstackRscSerializationAdapters, rscSerializationAdapter };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
"use client";
|
|
3
|
+
import { createElement } from "react";
|
|
4
|
+
import { RscNodeRenderer } from "./RscNodeRenderer.mjs";
|
|
5
|
+
import { RENDERABLE_RSC, RSC_PROXY_GET_TREE, RSC_PROXY_PATH, RSC_SLOT_USAGES, RSC_SLOT_USAGES_STREAM, SERVER_COMPONENT_STREAM } from "./symbols.mjs";
|
|
6
|
+
const UNHANDLED = Symbol('modern.tanstack.rsc.unhandled');
|
|
7
|
+
function handleProxyTrap(kind, prop, options) {
|
|
8
|
+
switch(prop){
|
|
9
|
+
case '__SEROVAL_STREAM__':
|
|
10
|
+
case '__SEROVAL_SEQUENCE__':
|
|
11
|
+
case Symbol.iterator:
|
|
12
|
+
case Symbol.asyncIterator:
|
|
13
|
+
return 'get' === kind ? void 0 : false;
|
|
14
|
+
case SERVER_COMPONENT_STREAM:
|
|
15
|
+
return 'get' === kind ? options.stream : Boolean(options.stream);
|
|
16
|
+
case RENDERABLE_RSC:
|
|
17
|
+
return 'get' === kind ? options.renderable : true;
|
|
18
|
+
case RSC_PROXY_GET_TREE:
|
|
19
|
+
return 'get' === kind ? options.getTree : true;
|
|
20
|
+
case RSC_PROXY_PATH:
|
|
21
|
+
return 'get' === kind ? options.path : true;
|
|
22
|
+
case RSC_SLOT_USAGES_STREAM:
|
|
23
|
+
return 'get' === kind ? options.slotUsagesStream : Boolean(options.slotUsagesStream);
|
|
24
|
+
case RSC_SLOT_USAGES:
|
|
25
|
+
return 'get' === kind ? options.slotUsages : Boolean(options.slotUsages);
|
|
26
|
+
case 'then':
|
|
27
|
+
return 'get' === kind ? void 0 : UNHANDLED;
|
|
28
|
+
case 'toString':
|
|
29
|
+
return 'get' === kind ? Object.prototype.toString : UNHANDLED;
|
|
30
|
+
case 'valueOf':
|
|
31
|
+
return 'get' === kind ? Object.prototype.valueOf : UNHANDLED;
|
|
32
|
+
case 'constructor':
|
|
33
|
+
return 'get' === kind ? Object : UNHANDLED;
|
|
34
|
+
default:
|
|
35
|
+
return UNHANDLED;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function createRscProxyInternal(options) {
|
|
39
|
+
const childCache = new Map();
|
|
40
|
+
const dataProxy = options.renderable ? createRscProxyInternal({
|
|
41
|
+
...options,
|
|
42
|
+
renderable: false
|
|
43
|
+
}) : void 0;
|
|
44
|
+
const target = options.renderable ? /*#__PURE__*/ createElement(RscNodeRenderer, {
|
|
45
|
+
data: dataProxy
|
|
46
|
+
}) : {};
|
|
47
|
+
const getChild = (key)=>{
|
|
48
|
+
if (!childCache.has(key)) childCache.set(key, createRscProxyInternal({
|
|
49
|
+
...options,
|
|
50
|
+
path: [
|
|
51
|
+
...options.path,
|
|
52
|
+
key
|
|
53
|
+
]
|
|
54
|
+
}));
|
|
55
|
+
return childCache.get(key);
|
|
56
|
+
};
|
|
57
|
+
return new Proxy(target, {
|
|
58
|
+
get (proxyTarget, prop) {
|
|
59
|
+
const handled = handleProxyTrap('get', prop, options);
|
|
60
|
+
if (handled !== UNHANDLED) return handled;
|
|
61
|
+
if (options.renderable) {
|
|
62
|
+
if ('props' === prop) return proxyTarget.props;
|
|
63
|
+
if ('data' === prop) return dataProxy;
|
|
64
|
+
if (prop in proxyTarget) return proxyTarget[prop];
|
|
65
|
+
}
|
|
66
|
+
if ('symbol' == typeof prop) return;
|
|
67
|
+
return getChild(prop);
|
|
68
|
+
},
|
|
69
|
+
getOwnPropertyDescriptor (proxyTarget, prop) {
|
|
70
|
+
return options.renderable ? Object.getOwnPropertyDescriptor(proxyTarget, prop) : void 0;
|
|
71
|
+
},
|
|
72
|
+
getPrototypeOf (proxyTarget) {
|
|
73
|
+
return options.renderable ? Object.getPrototypeOf(proxyTarget) : Object.prototype;
|
|
74
|
+
},
|
|
75
|
+
has (proxyTarget, prop) {
|
|
76
|
+
const handled = handleProxyTrap('has', prop, options);
|
|
77
|
+
if (handled !== UNHANDLED) return Boolean(handled);
|
|
78
|
+
if (options.renderable) return prop in proxyTarget || 'string' == typeof prop;
|
|
79
|
+
return 'string' == typeof prop;
|
|
80
|
+
},
|
|
81
|
+
ownKeys (proxyTarget) {
|
|
82
|
+
return options.renderable ? Reflect.ownKeys(proxyTarget) : [];
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function createRscProxy(getTree, options = {}) {
|
|
87
|
+
const slotUsages = 'development' === process.env.NODE_ENV && options.slotUsagesStream ? options.slotUsages ?? [] : options.slotUsages;
|
|
88
|
+
if ('development' === process.env.NODE_ENV && options.slotUsagesStream && slotUsages) consumeSlotUsages(options.slotUsagesStream, slotUsages);
|
|
89
|
+
return createRscProxyInternal({
|
|
90
|
+
getTree,
|
|
91
|
+
path: [],
|
|
92
|
+
renderable: true === options.renderable,
|
|
93
|
+
slotUsages,
|
|
94
|
+
slotUsagesStream: options.slotUsagesStream,
|
|
95
|
+
stream: options.stream
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
async function consumeSlotUsages(stream, slotUsages) {
|
|
99
|
+
try {
|
|
100
|
+
const reader = stream.getReader();
|
|
101
|
+
for(;;){
|
|
102
|
+
const { value, done } = await reader.read();
|
|
103
|
+
if (done) break;
|
|
104
|
+
if (value?.slot) slotUsages.push(value);
|
|
105
|
+
}
|
|
106
|
+
} catch {}
|
|
107
|
+
}
|
|
108
|
+
export { createRscProxy };
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createSerializationAdapter } from "@tanstack/react-router";
|
|
4
|
+
import { RawStream } from "@tanstack/router-core";
|
|
5
|
+
import { createElement, use } from "react";
|
|
6
|
+
import { createFromReadableStream, renderRsc } from "../../../../rsc/server.mjs";
|
|
7
|
+
import { ClientSlot } from "./ClientSlot.mjs";
|
|
8
|
+
import { createRscProxy } from "./createRscProxy.mjs";
|
|
9
|
+
import { ReplayableStream } from "./ReplayableStream.mjs";
|
|
10
|
+
import { sanitizeSlotArgs } from "./slotUsageSanitizer.mjs";
|
|
11
|
+
import { RSC_SLOT_USAGES_STREAM, SERVER_COMPONENT_STREAM, isRenderableServerComponent, isServerComponent } from "./symbols.mjs";
|
|
12
|
+
function createTreeGetter(stream) {
|
|
13
|
+
let ready = false;
|
|
14
|
+
let tree;
|
|
15
|
+
const treePromise = Promise.resolve(createFromReadableStream(stream.createReplayStream())).then((value)=>{
|
|
16
|
+
tree = value;
|
|
17
|
+
ready = true;
|
|
18
|
+
return value;
|
|
19
|
+
});
|
|
20
|
+
return ()=>{
|
|
21
|
+
if (ready) return tree;
|
|
22
|
+
return use(treePromise);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function createSlotProxy(options) {
|
|
26
|
+
const cache = new Map();
|
|
27
|
+
return new Proxy({}, {
|
|
28
|
+
get (_target, prop) {
|
|
29
|
+
if ('then' === prop || 'string' != typeof prop) return;
|
|
30
|
+
if ('children' === prop) {
|
|
31
|
+
options?.onSlotCall?.('children', []);
|
|
32
|
+
return /*#__PURE__*/ createElement(ClientSlot, {
|
|
33
|
+
args: [],
|
|
34
|
+
slot: 'children'
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (!cache.has(prop)) cache.set(prop, (...args)=>{
|
|
38
|
+
options?.onSlotCall?.(prop, args);
|
|
39
|
+
return /*#__PURE__*/ createElement(ClientSlot, {
|
|
40
|
+
args,
|
|
41
|
+
slot: prop
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
return cache.get(prop);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function toReplayableFlightStream(node, handlers) {
|
|
49
|
+
const flightStream = renderRsc({
|
|
50
|
+
element: node
|
|
51
|
+
});
|
|
52
|
+
return new ReplayableStream(handlers ? wrapReadableStream(flightStream, handlers) : flightStream);
|
|
53
|
+
}
|
|
54
|
+
async function renderServerComponent(node) {
|
|
55
|
+
const stream = toReplayableFlightStream(/*#__PURE__*/ jsx(Fragment, {
|
|
56
|
+
children: node
|
|
57
|
+
}));
|
|
58
|
+
const streamWrapper = {
|
|
59
|
+
createReplayStream: ()=>stream.createReplayStream()
|
|
60
|
+
};
|
|
61
|
+
return createRscProxy(createTreeGetter(streamWrapper), {
|
|
62
|
+
renderable: true,
|
|
63
|
+
stream: streamWrapper
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async function createCompositeComponent(component) {
|
|
67
|
+
const slotUsagesEmitter = 'development' === process.env.NODE_ENV ? createReadableStreamEmitter() : void 0;
|
|
68
|
+
const slotProxy = createSlotProxy({
|
|
69
|
+
onSlotCall: slotUsagesEmitter ? (slot, args)=>{
|
|
70
|
+
const sanitizedArgs = sanitizeSlotArgs(args);
|
|
71
|
+
slotUsagesEmitter.emit({
|
|
72
|
+
slot,
|
|
73
|
+
...sanitizedArgs.length ? {
|
|
74
|
+
args: sanitizedArgs
|
|
75
|
+
} : {}
|
|
76
|
+
});
|
|
77
|
+
} : void 0
|
|
78
|
+
});
|
|
79
|
+
async function ServerComponentWrapper() {
|
|
80
|
+
return component(slotProxy);
|
|
81
|
+
}
|
|
82
|
+
const flightStream = toReplayableFlightStream(/*#__PURE__*/ createElement(ServerComponentWrapper), slotUsagesEmitter ? {
|
|
83
|
+
onCancel: slotUsagesEmitter.close,
|
|
84
|
+
onDone: slotUsagesEmitter.close,
|
|
85
|
+
onError: slotUsagesEmitter.close
|
|
86
|
+
} : void 0);
|
|
87
|
+
const streamWrapper = {
|
|
88
|
+
createReplayStream: ()=>flightStream.createReplayStream()
|
|
89
|
+
};
|
|
90
|
+
return createRscProxy(createTreeGetter(streamWrapper), {
|
|
91
|
+
renderable: false,
|
|
92
|
+
slotUsagesStream: slotUsagesEmitter?.stream,
|
|
93
|
+
stream: streamWrapper
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
const adapter = createSerializationAdapter({
|
|
97
|
+
key: '$MODERN_TANSTACK_RSC',
|
|
98
|
+
test: isServerComponent,
|
|
99
|
+
toSerializable: (component)=>{
|
|
100
|
+
const streamWrapper = component[SERVER_COMPONENT_STREAM];
|
|
101
|
+
if (!streamWrapper) throw new Error('Cannot serialize TanStack RSC without a Flight stream.');
|
|
102
|
+
const kind = isRenderableServerComponent(component) ? 'renderable' : 'composite';
|
|
103
|
+
const slotUsagesStream = 'development' === process.env.NODE_ENV && 'composite' === kind ? component[RSC_SLOT_USAGES_STREAM] : void 0;
|
|
104
|
+
return {
|
|
105
|
+
kind,
|
|
106
|
+
stream: new RawStream(streamWrapper.createReplayStream(), {
|
|
107
|
+
hint: 'text'
|
|
108
|
+
}),
|
|
109
|
+
...slotUsagesStream ? {
|
|
110
|
+
slotUsagesStream
|
|
111
|
+
} : {}
|
|
112
|
+
};
|
|
113
|
+
},
|
|
114
|
+
fromSerializable: ()=>{
|
|
115
|
+
throw new Error('TanStack RSC data should not be deserialized on server.');
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
function getTanstackRscSerializationAdapters() {
|
|
119
|
+
return [
|
|
120
|
+
adapter
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
const rscSerializationAdapter = getTanstackRscSerializationAdapters;
|
|
124
|
+
function createReadableStreamEmitter() {
|
|
125
|
+
let closed = false;
|
|
126
|
+
const queue = [];
|
|
127
|
+
let controller = null;
|
|
128
|
+
const stream = new ReadableStream({
|
|
129
|
+
start (ctrl) {
|
|
130
|
+
controller = ctrl;
|
|
131
|
+
for (const value of queue)ctrl.enqueue(value);
|
|
132
|
+
queue.length = 0;
|
|
133
|
+
if (closed) ctrl.close();
|
|
134
|
+
},
|
|
135
|
+
cancel () {
|
|
136
|
+
closed = true;
|
|
137
|
+
controller = null;
|
|
138
|
+
queue.length = 0;
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
const emit = (value)=>{
|
|
142
|
+
if (closed) return;
|
|
143
|
+
if (!controller) return void queue.push(value);
|
|
144
|
+
try {
|
|
145
|
+
controller.enqueue(value);
|
|
146
|
+
} catch {}
|
|
147
|
+
};
|
|
148
|
+
const close = ()=>{
|
|
149
|
+
if (closed) return;
|
|
150
|
+
closed = true;
|
|
151
|
+
try {
|
|
152
|
+
controller?.close();
|
|
153
|
+
} catch {}
|
|
154
|
+
controller = null;
|
|
155
|
+
};
|
|
156
|
+
return {
|
|
157
|
+
close,
|
|
158
|
+
emit,
|
|
159
|
+
stream
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function wrapReadableStream(source, handlers) {
|
|
163
|
+
const reader = source.getReader();
|
|
164
|
+
let finished = false;
|
|
165
|
+
const finish = (kind)=>{
|
|
166
|
+
if (finished) return;
|
|
167
|
+
finished = true;
|
|
168
|
+
if ('cancel' === kind) handlers.onCancel?.();
|
|
169
|
+
else if ('error' === kind) handlers.onError?.();
|
|
170
|
+
else handlers.onDone?.();
|
|
171
|
+
try {
|
|
172
|
+
reader.releaseLock();
|
|
173
|
+
} catch {}
|
|
174
|
+
};
|
|
175
|
+
return new ReadableStream({
|
|
176
|
+
async pull (controller) {
|
|
177
|
+
try {
|
|
178
|
+
const { done, value } = await reader.read();
|
|
179
|
+
if (done) {
|
|
180
|
+
controller.close();
|
|
181
|
+
finish('done');
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
controller.enqueue(value);
|
|
185
|
+
} catch (err) {
|
|
186
|
+
try {
|
|
187
|
+
controller.error(err);
|
|
188
|
+
} catch {}
|
|
189
|
+
finish('error');
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
async cancel (reason) {
|
|
193
|
+
try {
|
|
194
|
+
await reader.cancel(reason);
|
|
195
|
+
} catch {}
|
|
196
|
+
finish('cancel');
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
export { CompositeComponent } from "./CompositeComponent.mjs";
|
|
201
|
+
export { createCompositeComponent, getTanstackRscSerializationAdapters, renderServerComponent, rscSerializationAdapter };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
import { isValidElement } from "react";
|
|
3
|
+
const REACT_ELEMENT_TYPE = Symbol.for('react.element');
|
|
4
|
+
const REACT_PORTAL_TYPE = Symbol.for('react.portal');
|
|
5
|
+
const REACT_TRANSITIONAL_ELEMENT_TYPE = Symbol.for('react.transitional.element');
|
|
6
|
+
function isReactElementLike(value) {
|
|
7
|
+
if (!value || 'object' != typeof value && 'function' != typeof value) return false;
|
|
8
|
+
if (isValidElement(value)) return true;
|
|
9
|
+
const type = value.$$typeof;
|
|
10
|
+
return type === REACT_ELEMENT_TYPE || type === REACT_TRANSITIONAL_ELEMENT_TYPE || type === REACT_PORTAL_TYPE;
|
|
11
|
+
}
|
|
12
|
+
function sanitizeSlotArg(value, seen) {
|
|
13
|
+
if (isReactElementLike(value)) return 'React element';
|
|
14
|
+
if (null == value) return value;
|
|
15
|
+
if ('string' == typeof value || 'number' == typeof value || 'boolean' == typeof value || 'bigint' == typeof value) return value;
|
|
16
|
+
if ('object' != typeof value && 'function' != typeof value) return String(value);
|
|
17
|
+
if (seen.has(value)) return '[Circular]';
|
|
18
|
+
seen.add(value);
|
|
19
|
+
if (Array.isArray(value)) return value.map((item)=>sanitizeSlotArg(item, seen));
|
|
20
|
+
const proto = Object.getPrototypeOf(value);
|
|
21
|
+
if (proto === Object.prototype || null === proto) {
|
|
22
|
+
const out = {};
|
|
23
|
+
for (const [key, item] of Object.entries(value))out[key] = sanitizeSlotArg(item, seen);
|
|
24
|
+
return out;
|
|
25
|
+
}
|
|
26
|
+
return String(value);
|
|
27
|
+
}
|
|
28
|
+
function sanitizeSlotArgs(args) {
|
|
29
|
+
const seen = new WeakSet();
|
|
30
|
+
return args.map((arg)=>sanitizeSlotArg(arg, seen));
|
|
31
|
+
}
|
|
32
|
+
export { sanitizeSlotArgs };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
const SERVER_COMPONENT_STREAM = Symbol.for('modern.tanstack.rsc.stream');
|
|
3
|
+
const RENDERABLE_RSC = Symbol.for('modern.tanstack.rsc.renderable');
|
|
4
|
+
const RSC_PROXY_GET_TREE = Symbol.for('modern.tanstack.rsc.proxy.getTree');
|
|
5
|
+
const RSC_PROXY_PATH = Symbol.for('modern.tanstack.rsc.proxy.path');
|
|
6
|
+
const RSC_SLOT_USAGES_STREAM = Symbol.for('modern.tanstack.rsc.slotUsages.stream');
|
|
7
|
+
const RSC_SLOT_USAGES = Symbol.for('modern.tanstack.rsc.slotUsages');
|
|
8
|
+
function isServerComponent(value) {
|
|
9
|
+
if (null == value) return false;
|
|
10
|
+
if ('object' != typeof value && 'function' != typeof value) return false;
|
|
11
|
+
return SERVER_COMPONENT_STREAM in value && void 0 !== value[SERVER_COMPONENT_STREAM];
|
|
12
|
+
}
|
|
13
|
+
function isRenderableServerComponent(value) {
|
|
14
|
+
if (null == value) return false;
|
|
15
|
+
if ('object' != typeof value && 'function' != typeof value) return false;
|
|
16
|
+
return RENDERABLE_RSC in value && true === value[RENDERABLE_RSC];
|
|
17
|
+
}
|
|
18
|
+
export { RENDERABLE_RSC, RSC_PROXY_GET_TREE, RSC_PROXY_PATH, RSC_SLOT_USAGES, RSC_SLOT_USAGES_STREAM, SERVER_COMPONENT_STREAM, isRenderableServerComponent, isServerComponent };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "node:module";
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { renderNestedRoute } from "@modern-js/runtime-utils/browser";
|
|
4
|
+
import { Route, UNSAFE_ErrorResponseImpl, isRouteErrorResponse } from "@modern-js/runtime-utils/router";
|
|
5
|
+
import react from "react";
|
|
6
|
+
import { DefaultNotFound } from "./DefaultNotFound.mjs";
|
|
7
|
+
import DeferredDataScripts from "./DeferredDataScripts.mjs";
|
|
8
|
+
function getRouteComponents(routes, { globalApp, ssrMode, props }) {
|
|
9
|
+
const Layout = ({ Component, ...props })=>{
|
|
10
|
+
const GlobalLayout = globalApp;
|
|
11
|
+
if (!GlobalLayout) return /*#__PURE__*/ jsx(Component, {
|
|
12
|
+
...props
|
|
13
|
+
});
|
|
14
|
+
return /*#__PURE__*/ jsx(GlobalLayout, {
|
|
15
|
+
Component: Component,
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
const routeElements = [];
|
|
20
|
+
for (const route of routes)if ('nested' === route.type) {
|
|
21
|
+
const routeElement = renderNestedRoute(route, {
|
|
22
|
+
DeferredDataComponent: 'stream' === ssrMode ? DeferredDataScripts : void 0,
|
|
23
|
+
props
|
|
24
|
+
});
|
|
25
|
+
routeElements.push(routeElement);
|
|
26
|
+
} else {
|
|
27
|
+
const routeElement = /*#__PURE__*/ jsx(Route, {
|
|
28
|
+
path: route.path,
|
|
29
|
+
element: /*#__PURE__*/ jsx(Layout, {
|
|
30
|
+
Component: route.component
|
|
31
|
+
})
|
|
32
|
+
}, route.path);
|
|
33
|
+
routeElements.push(routeElement);
|
|
34
|
+
}
|
|
35
|
+
routeElements.push(/*#__PURE__*/ jsx(Route, {
|
|
36
|
+
path: "*",
|
|
37
|
+
element: /*#__PURE__*/ jsx(DefaultNotFound, {}),
|
|
38
|
+
loader: ()=>new Response('404', {
|
|
39
|
+
status: 404
|
|
40
|
+
})
|
|
41
|
+
}, "*"));
|
|
42
|
+
return routeElements;
|
|
43
|
+
}
|
|
44
|
+
function getRouteObjects(routes, { globalApp, ssrMode, props }) {
|
|
45
|
+
const createLayoutElement = (Component)=>{
|
|
46
|
+
const GlobalLayout = globalApp;
|
|
47
|
+
if (!GlobalLayout) return Component;
|
|
48
|
+
const LayoutWrapper = (props)=>{
|
|
49
|
+
const LayoutComponent = GlobalLayout;
|
|
50
|
+
return /*#__PURE__*/ jsx(LayoutComponent, {
|
|
51
|
+
Component: Component,
|
|
52
|
+
...props
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
return LayoutWrapper;
|
|
56
|
+
};
|
|
57
|
+
const routeObjects = [];
|
|
58
|
+
for (const route of routes)if ('nested' === route.type) {
|
|
59
|
+
const nestedRouteObject = {
|
|
60
|
+
path: route.path,
|
|
61
|
+
id: route.id,
|
|
62
|
+
loader: route.loader,
|
|
63
|
+
action: route.action,
|
|
64
|
+
hasErrorBoundary: route.hasErrorBoundary,
|
|
65
|
+
shouldRevalidate: route.shouldRevalidate,
|
|
66
|
+
handle: {
|
|
67
|
+
...route.handle,
|
|
68
|
+
...'object' == typeof route.config ? route.config?.handle : {}
|
|
69
|
+
},
|
|
70
|
+
index: route.index,
|
|
71
|
+
hasLoader: !!route.loader,
|
|
72
|
+
hasClientLoader: !!route.clientData,
|
|
73
|
+
hasAction: !!route.action,
|
|
74
|
+
...route.isClientComponent ? {
|
|
75
|
+
isClientComponent: true
|
|
76
|
+
} : {},
|
|
77
|
+
...route.inValidSSRRoute ? {
|
|
78
|
+
inValidSSRRoute: true
|
|
79
|
+
} : {},
|
|
80
|
+
lazyImport: route.lazyImport,
|
|
81
|
+
Component: route.component ? route.component : void 0,
|
|
82
|
+
errorElement: route.error ? /*#__PURE__*/ jsx(route.error, {}) : void 0,
|
|
83
|
+
children: route.children ? route.children.map((child)=>getRouteObjects([
|
|
84
|
+
child
|
|
85
|
+
], {
|
|
86
|
+
globalApp,
|
|
87
|
+
ssrMode,
|
|
88
|
+
props
|
|
89
|
+
})[0]) : void 0
|
|
90
|
+
};
|
|
91
|
+
routeObjects.push(nestedRouteObject);
|
|
92
|
+
} else if ('function' == typeof route.component || 'object' == typeof route.component) {
|
|
93
|
+
const LayoutComponent = createLayoutElement(route.component);
|
|
94
|
+
const routeObject = {
|
|
95
|
+
path: route.path,
|
|
96
|
+
element: /*#__PURE__*/ react.createElement(LayoutComponent)
|
|
97
|
+
};
|
|
98
|
+
routeObjects.push(routeObject);
|
|
99
|
+
}
|
|
100
|
+
routeObjects.push({
|
|
101
|
+
path: '*',
|
|
102
|
+
element: /*#__PURE__*/ jsx(DefaultNotFound, {})
|
|
103
|
+
});
|
|
104
|
+
return routeObjects;
|
|
105
|
+
}
|
|
106
|
+
function createRouteObjectsFromConfig({ routesConfig, props, ssrMode }) {
|
|
107
|
+
if (!routesConfig) return null;
|
|
108
|
+
const { routes, globalApp } = routesConfig;
|
|
109
|
+
if (!routes) return null;
|
|
110
|
+
return getRouteObjects(routes, {
|
|
111
|
+
globalApp,
|
|
112
|
+
ssrMode,
|
|
113
|
+
props
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function renderRoutes({ routesConfig, props, ssrMode }) {
|
|
117
|
+
if (!routesConfig) return null;
|
|
118
|
+
const { routes, globalApp } = routesConfig;
|
|
119
|
+
if (!routes) return null;
|
|
120
|
+
const routeElements = getRouteComponents(routes, {
|
|
121
|
+
globalApp,
|
|
122
|
+
ssrMode,
|
|
123
|
+
props
|
|
124
|
+
});
|
|
125
|
+
return routeElements;
|
|
126
|
+
}
|
|
127
|
+
function getLocation(serverContext) {
|
|
128
|
+
const { pathname = '', url = '' } = serverContext?.request || {};
|
|
129
|
+
const cleanUrl = url?.replace('http://', '')?.replace('https://', '');
|
|
130
|
+
const index = (cleanUrl || '').indexOf(pathname);
|
|
131
|
+
if (-1 === index) return pathname;
|
|
132
|
+
return cleanUrl.substring(index);
|
|
133
|
+
}
|
|
134
|
+
const urlJoin = (...parts)=>{
|
|
135
|
+
const separator = '/';
|
|
136
|
+
const replace = new RegExp(`${separator}{1,}`, 'g');
|
|
137
|
+
return standardSlash(parts.join(separator).replace(replace, separator));
|
|
138
|
+
};
|
|
139
|
+
function standardSlash(str) {
|
|
140
|
+
let addr = str;
|
|
141
|
+
if (!addr || 'string' != typeof addr) return addr;
|
|
142
|
+
if (addr.startsWith('.')) addr = addr.slice(1);
|
|
143
|
+
if (!addr.startsWith('/')) addr = `/${addr}`;
|
|
144
|
+
if (addr.endsWith('/') && '/' !== addr) addr = addr.slice(0, addr.length - 1);
|
|
145
|
+
return addr;
|
|
146
|
+
}
|
|
147
|
+
function serializeErrors(errors) {
|
|
148
|
+
if (!errors) return null;
|
|
149
|
+
const entries = Object.entries(errors);
|
|
150
|
+
const serialized = {};
|
|
151
|
+
for (const [key, val] of entries)if (isRouteErrorResponse(val)) serialized[key] = {
|
|
152
|
+
...val,
|
|
153
|
+
__type: 'RouteErrorResponse'
|
|
154
|
+
};
|
|
155
|
+
else if (val instanceof Error) serialized[key] = {
|
|
156
|
+
message: val.message,
|
|
157
|
+
stack: val.stack,
|
|
158
|
+
__type: 'Error'
|
|
159
|
+
};
|
|
160
|
+
else serialized[key] = val;
|
|
161
|
+
return serialized;
|
|
162
|
+
}
|
|
163
|
+
function deserializeErrors(errors) {
|
|
164
|
+
if (!errors) return null;
|
|
165
|
+
const entries = Object.entries(errors);
|
|
166
|
+
const serialized = {};
|
|
167
|
+
for (const [key, val] of entries)if (val && 'RouteErrorResponse' === val.__type) serialized[key] = new UNSAFE_ErrorResponseImpl(val.status, val.statusText, val.data, true === val.internal);
|
|
168
|
+
else if (val && 'Error' === val.__type) {
|
|
169
|
+
const error = new Error(val.message);
|
|
170
|
+
error.stack = val.stack;
|
|
171
|
+
serialized[key] = error;
|
|
172
|
+
} else serialized[key] = val;
|
|
173
|
+
return serialized;
|
|
174
|
+
}
|
|
175
|
+
export { createRouteObjectsFromConfig, deserializeErrors, getLocation, getRouteComponents, getRouteObjects, renderRoutes, serializeErrors, standardSlash, urlJoin };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useLocation, useNavigate, useParams } from "@modern-js/runtime-utils/router";
|
|
4
|
+
const withRouter = (Component)=>(props)=>{
|
|
5
|
+
const location = useLocation();
|
|
6
|
+
const params = useParams();
|
|
7
|
+
const navigate = useNavigate();
|
|
8
|
+
return /*#__PURE__*/ jsx(Component, {
|
|
9
|
+
...props,
|
|
10
|
+
location: location,
|
|
11
|
+
params: params,
|
|
12
|
+
navigate: navigate
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
export { withRouter };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
import serverRender from "./serverRender";
|
|
3
|
+
import { createSSRTracker } from "./serverRender/tracker";
|
|
4
|
+
import { formatServer } from "./utils";
|
|
5
|
+
export * from "./react";
|
|
6
|
+
const ssr = (config = {})=>({
|
|
7
|
+
name: '@modern-js/plugin-ssr',
|
|
8
|
+
setup: ()=>({
|
|
9
|
+
server: async ({ App, context })=>{
|
|
10
|
+
const html = await serverRender({
|
|
11
|
+
context,
|
|
12
|
+
App: App,
|
|
13
|
+
config
|
|
14
|
+
});
|
|
15
|
+
return html;
|
|
16
|
+
},
|
|
17
|
+
init ({ context }, next) {
|
|
18
|
+
const { request } = context.ssrContext;
|
|
19
|
+
context.ssrContext.request = formatServer(request);
|
|
20
|
+
context.ssrContext.mode = config.mode;
|
|
21
|
+
context.ssrContext.tracker = createSSRTracker(context.ssrContext);
|
|
22
|
+
context.ssrContext.unsafeHeaders = config.unsafeHeaders;
|
|
23
|
+
if (!context.ssrContext.htmlModifiers) context.ssrContext.htmlModifiers = [];
|
|
24
|
+
return next({
|
|
25
|
+
context
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
pickContext: ({ context, pickedContext }, next)=>{
|
|
29
|
+
const { request, response } = context?.ssrContext;
|
|
30
|
+
const { initialData } = context;
|
|
31
|
+
return next({
|
|
32
|
+
context,
|
|
33
|
+
pickedContext: {
|
|
34
|
+
...pickedContext,
|
|
35
|
+
initialData,
|
|
36
|
+
request,
|
|
37
|
+
response
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
const index_node = ssr;
|
|
44
|
+
export default index_node;
|
|
45
|
+
export { ssr };
|