@bleedingdev/modern-js-runtime 3.2.0-ultramodern.120 → 3.2.0-ultramodern.121

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/cjs/boundary-debugger/index.js +4 -0
  2. package/dist/cjs/cli/index.js +11 -0
  3. package/dist/cjs/{router/runtime/tanstack/rsc/ClientSlot.js → core/context/extensions.js} +33 -21
  4. package/dist/cjs/{router/runtime/tanstack/rsc/SlotContext.js → core/context/helmetContext.js} +16 -20
  5. package/dist/cjs/core/context/index.js +65 -0
  6. package/dist/cjs/core/react/wrapper.js +6 -4
  7. package/dist/cjs/core/server/helmet.js +2 -1
  8. package/dist/cjs/core/server/requestHandler.js +42 -29
  9. package/dist/cjs/core/server/routerCleanup.js +110 -0
  10. package/dist/cjs/core/server/scriptOrder.js +75 -4
  11. package/dist/cjs/core/server/stream/afterTemplate.js +6 -18
  12. package/dist/cjs/core/server/stream/deferredScript.js +4 -1
  13. package/dist/cjs/core/server/string/index.js +1 -7
  14. package/dist/cjs/core/server/string/loadable.js +13 -40
  15. package/dist/cjs/core/server/string/ssrData.js +1 -1
  16. package/dist/cjs/core/server/utils.js +31 -8
  17. package/dist/cjs/exports/head.js +135 -74
  18. package/dist/cjs/exports/tanstack-router.js +36 -305
  19. package/dist/cjs/module-federation/index.js +178 -0
  20. package/dist/cjs/router/cli/code/index.js +1 -47
  21. package/dist/cjs/router/cli/code/templates.js +1 -14
  22. package/dist/cjs/router/cli/handler.js +1 -1
  23. package/dist/cjs/router/cli/index.js +2 -23
  24. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +16 -4
  25. package/dist/cjs/router/runtime/PrefetchLink.js +2 -3
  26. package/dist/cjs/router/runtime/internal.js +20 -13
  27. package/dist/cjs/router/runtime/lifecycle.js +37 -22
  28. package/dist/cjs/router/runtime/plugin.js +2 -9
  29. package/dist/cjs/router/runtime/plugin.node.js +2 -7
  30. package/dist/cjs/router/runtime/provider.js +107 -0
  31. package/dist/cjs/router/runtime/utils.js +35 -9
  32. package/dist/esm/boundary-debugger/index.mjs +4 -0
  33. package/dist/esm/cli/index.mjs +4 -2
  34. package/dist/esm/core/context/extensions.mjs +28 -0
  35. package/dist/esm/core/context/helmetContext.mjs +13 -0
  36. package/dist/esm/core/context/index.mjs +5 -0
  37. package/dist/esm/core/react/wrapper.mjs +6 -4
  38. package/dist/esm/core/server/helmet.mjs +2 -1
  39. package/dist/esm/core/server/requestHandler.mjs +43 -30
  40. package/dist/esm/core/server/routerCleanup.mjs +66 -0
  41. package/dist/esm/core/server/scriptOrder.mjs +60 -1
  42. package/dist/esm/core/server/stream/afterTemplate.mjs +8 -20
  43. package/dist/esm/core/server/stream/deferredScript.mjs +4 -1
  44. package/dist/esm/core/server/string/index.mjs +3 -9
  45. package/dist/esm/core/server/string/loadable.mjs +11 -38
  46. package/dist/esm/core/server/string/ssrData.mjs +2 -2
  47. package/dist/esm/core/server/utils.mjs +31 -8
  48. package/dist/esm/exports/head.mjs +135 -74
  49. package/dist/esm/exports/tanstack-router.mjs +30 -4
  50. package/dist/esm/module-federation/index.mjs +109 -0
  51. package/dist/esm/router/cli/code/index.mjs +1 -47
  52. package/dist/esm/router/cli/code/templates.mjs +1 -14
  53. package/dist/esm/router/cli/handler.mjs +1 -1
  54. package/dist/esm/router/cli/index.mjs +3 -24
  55. package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +16 -4
  56. package/dist/esm/router/runtime/PrefetchLink.mjs +2 -3
  57. package/dist/esm/router/runtime/internal.mjs +16 -15
  58. package/dist/esm/router/runtime/lifecycle.mjs +22 -13
  59. package/dist/esm/router/runtime/plugin.mjs +4 -11
  60. package/dist/esm/router/runtime/plugin.node.mjs +4 -9
  61. package/dist/esm/router/runtime/provider.mjs +57 -0
  62. package/dist/esm/router/runtime/utils.mjs +35 -9
  63. package/dist/esm-node/boundary-debugger/index.mjs +4 -0
  64. package/dist/esm-node/cli/index.mjs +4 -2
  65. package/dist/esm-node/core/context/extensions.mjs +29 -0
  66. package/dist/esm-node/core/context/helmetContext.mjs +14 -0
  67. package/dist/esm-node/core/context/index.mjs +5 -0
  68. package/dist/esm-node/core/react/wrapper.mjs +6 -4
  69. package/dist/esm-node/core/server/helmet.mjs +2 -1
  70. package/dist/esm-node/core/server/requestHandler.mjs +43 -30
  71. package/dist/esm-node/core/server/routerCleanup.mjs +67 -0
  72. package/dist/esm-node/core/server/scriptOrder.mjs +60 -1
  73. package/dist/esm-node/core/server/stream/afterTemplate.mjs +8 -20
  74. package/dist/esm-node/core/server/stream/deferredScript.mjs +4 -1
  75. package/dist/esm-node/core/server/string/index.mjs +3 -9
  76. package/dist/esm-node/core/server/string/loadable.mjs +11 -38
  77. package/dist/esm-node/core/server/string/ssrData.mjs +2 -2
  78. package/dist/esm-node/core/server/utils.mjs +31 -8
  79. package/dist/esm-node/exports/head.mjs +135 -74
  80. package/dist/esm-node/exports/tanstack-router.mjs +30 -4
  81. package/dist/esm-node/module-federation/index.mjs +110 -0
  82. package/dist/esm-node/router/cli/code/index.mjs +1 -47
  83. package/dist/esm-node/router/cli/code/templates.mjs +1 -14
  84. package/dist/esm-node/router/cli/handler.mjs +1 -1
  85. package/dist/esm-node/router/cli/index.mjs +3 -24
  86. package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +16 -4
  87. package/dist/esm-node/router/runtime/PrefetchLink.mjs +2 -3
  88. package/dist/esm-node/router/runtime/internal.mjs +16 -15
  89. package/dist/esm-node/router/runtime/lifecycle.mjs +22 -13
  90. package/dist/esm-node/router/runtime/plugin.mjs +4 -11
  91. package/dist/esm-node/router/runtime/plugin.node.mjs +4 -9
  92. package/dist/esm-node/router/runtime/provider.mjs +58 -0
  93. package/dist/esm-node/router/runtime/utils.mjs +35 -9
  94. package/dist/types/cli/index.d.ts +3 -1
  95. package/dist/types/core/context/extensions.d.ts +37 -0
  96. package/dist/types/core/context/helmetContext.d.ts +10 -0
  97. package/dist/types/core/context/index.d.ts +6 -0
  98. package/dist/types/core/context/runtime.d.ts +1 -11
  99. package/dist/types/core/server/routerCleanup.d.ts +28 -0
  100. package/dist/types/core/server/scriptOrder.d.ts +24 -0
  101. package/dist/types/core/server/string/loadable.d.ts +1 -7
  102. package/dist/types/core/server/utils.d.ts +1 -0
  103. package/dist/types/exports/tanstack-router.d.ts +88 -7
  104. package/dist/types/module-federation/index.d.ts +65 -0
  105. package/dist/types/router/cli/code/index.d.ts +1 -3
  106. package/dist/types/router/cli/handler.d.ts +0 -3
  107. package/dist/types/router/runtime/internal.d.ts +1 -0
  108. package/dist/types/router/runtime/lifecycle.d.ts +2 -0
  109. package/dist/types/router/runtime/plugin.d.ts +1 -1
  110. package/dist/types/router/runtime/plugin.node.d.ts +1 -1
  111. package/dist/types/router/runtime/provider.d.ts +61 -0
  112. package/package.json +15 -11
  113. package/rstest.config.mts +2 -4
  114. package/dist/cjs/router/cli/code/tanstackTypes.js +0 -447
  115. package/dist/cjs/router/runtime/tanstack/basepathRewrite.js +0 -66
  116. package/dist/cjs/router/runtime/tanstack/dataMutation.js +0 -349
  117. package/dist/cjs/router/runtime/tanstack/hydrationBoundary.js +0 -48
  118. package/dist/cjs/router/runtime/tanstack/outlet.js +0 -58
  119. package/dist/cjs/router/runtime/tanstack/plugin.js +0 -342
  120. package/dist/cjs/router/runtime/tanstack/plugin.node.js +0 -272
  121. package/dist/cjs/router/runtime/tanstack/prefetchLink.js +0 -59
  122. package/dist/cjs/router/runtime/tanstack/routeTree.js +0 -525
  123. package/dist/cjs/router/runtime/tanstack/rsc/CompositeComponent.js +0 -79
  124. package/dist/cjs/router/runtime/tanstack/rsc/ReplayableStream.js +0 -146
  125. package/dist/cjs/router/runtime/tanstack/rsc/RscNodeRenderer.js +0 -69
  126. package/dist/cjs/router/runtime/tanstack/rsc/client.js +0 -97
  127. package/dist/cjs/router/runtime/tanstack/rsc/createRscProxy.js +0 -145
  128. package/dist/cjs/router/runtime/tanstack/rsc/index.js +0 -46
  129. package/dist/cjs/router/runtime/tanstack/rsc/server.js +0 -250
  130. package/dist/cjs/router/runtime/tanstack/rsc/slotUsageSanitizer.js +0 -69
  131. package/dist/cjs/router/runtime/tanstack/rsc/symbols.js +0 -77
  132. package/dist/cjs/ssr/index.node.js +0 -125
  133. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -88
  134. package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -200
  135. package/dist/cjs/ssr/serverRender/types.js +0 -40
  136. package/dist/esm/router/cli/code/tanstackTypes.mjs +0 -396
  137. package/dist/esm/router/runtime/tanstack/basepathRewrite.mjs +0 -28
  138. package/dist/esm/router/runtime/tanstack/dataMutation.mjs +0 -305
  139. package/dist/esm/router/runtime/tanstack/hydrationBoundary.mjs +0 -10
  140. package/dist/esm/router/runtime/tanstack/outlet.mjs +0 -17
  141. package/dist/esm/router/runtime/tanstack/plugin.mjs +0 -304
  142. package/dist/esm/router/runtime/tanstack/plugin.node.mjs +0 -234
  143. package/dist/esm/router/runtime/tanstack/prefetchLink.mjs +0 -18
  144. package/dist/esm/router/runtime/tanstack/routeTree.mjs +0 -481
  145. package/dist/esm/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -19
  146. package/dist/esm/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -41
  147. package/dist/esm/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -104
  148. package/dist/esm/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -31
  149. package/dist/esm/router/runtime/tanstack/rsc/SlotContext.mjs +0 -17
  150. package/dist/esm/router/runtime/tanstack/rsc/client.mjs +0 -53
  151. package/dist/esm/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -107
  152. package/dist/esm/router/runtime/tanstack/rsc/index.mjs +0 -1
  153. package/dist/esm/router/runtime/tanstack/rsc/server.mjs +0 -200
  154. package/dist/esm/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -31
  155. package/dist/esm/router/runtime/tanstack/rsc/symbols.mjs +0 -17
  156. package/dist/esm/ssr/index.node.mjs +0 -44
  157. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -50
  158. package/dist/esm/ssr/serverRender/renderToString/entry.mjs +0 -151
  159. package/dist/esm/ssr/serverRender/types.mjs +0 -1
  160. package/dist/esm-node/router/cli/code/tanstackTypes.mjs +0 -397
  161. package/dist/esm-node/router/runtime/tanstack/basepathRewrite.mjs +0 -29
  162. package/dist/esm-node/router/runtime/tanstack/dataMutation.mjs +0 -306
  163. package/dist/esm-node/router/runtime/tanstack/hydrationBoundary.mjs +0 -11
  164. package/dist/esm-node/router/runtime/tanstack/outlet.mjs +0 -18
  165. package/dist/esm-node/router/runtime/tanstack/plugin.mjs +0 -305
  166. package/dist/esm-node/router/runtime/tanstack/plugin.node.mjs +0 -235
  167. package/dist/esm-node/router/runtime/tanstack/prefetchLink.mjs +0 -19
  168. package/dist/esm-node/router/runtime/tanstack/routeTree.mjs +0 -482
  169. package/dist/esm-node/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -20
  170. package/dist/esm-node/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -42
  171. package/dist/esm-node/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -105
  172. package/dist/esm-node/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -32
  173. package/dist/esm-node/router/runtime/tanstack/rsc/SlotContext.mjs +0 -18
  174. package/dist/esm-node/router/runtime/tanstack/rsc/client.mjs +0 -54
  175. package/dist/esm-node/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -108
  176. package/dist/esm-node/router/runtime/tanstack/rsc/index.mjs +0 -2
  177. package/dist/esm-node/router/runtime/tanstack/rsc/server.mjs +0 -201
  178. package/dist/esm-node/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -32
  179. package/dist/esm-node/router/runtime/tanstack/rsc/symbols.mjs +0 -18
  180. package/dist/esm-node/ssr/index.node.mjs +0 -45
  181. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -51
  182. package/dist/esm-node/ssr/serverRender/renderToString/entry.mjs +0 -152
  183. package/dist/esm-node/ssr/serverRender/types.mjs +0 -2
  184. package/dist/types/router/cli/code/tanstackTypes.d.ts +0 -10
  185. package/dist/types/router/runtime/tanstack/basepathRewrite.d.ts +0 -8
  186. package/dist/types/router/runtime/tanstack/dataMutation.d.ts +0 -29
  187. package/dist/types/router/runtime/tanstack/hydrationBoundary.d.ts +0 -2
  188. package/dist/types/router/runtime/tanstack/outlet.d.ts +0 -2
  189. package/dist/types/router/runtime/tanstack/plugin.d.ts +0 -6
  190. package/dist/types/router/runtime/tanstack/plugin.node.d.ts +0 -6
  191. package/dist/types/router/runtime/tanstack/prefetchLink.d.ts +0 -11
  192. package/dist/types/router/runtime/tanstack/routeTree.d.ts +0 -8
  193. package/dist/types/router/runtime/tanstack/rsc/ClientSlot.d.ts +0 -5
  194. package/dist/types/router/runtime/tanstack/rsc/CompositeComponent.d.ts +0 -3
  195. package/dist/types/router/runtime/tanstack/rsc/ReplayableStream.d.ts +0 -24
  196. package/dist/types/router/runtime/tanstack/rsc/RscNodeRenderer.d.ts +0 -5
  197. package/dist/types/router/runtime/tanstack/rsc/SlotContext.d.ts +0 -11
  198. package/dist/types/router/runtime/tanstack/rsc/client.d.ts +0 -11
  199. package/dist/types/router/runtime/tanstack/rsc/createRscProxy.d.ts +0 -7
  200. package/dist/types/router/runtime/tanstack/rsc/index.d.ts +0 -2
  201. package/dist/types/router/runtime/tanstack/rsc/server.d.ts +0 -14
  202. package/dist/types/router/runtime/tanstack/rsc/slotUsageSanitizer.d.ts +0 -2
  203. package/dist/types/router/runtime/tanstack/rsc/symbols.d.ts +0 -46
@@ -1,152 +0,0 @@
1
- import "node:module";
2
- import { sanitizeSSRPayload, serializeJson } from "@modern-js/runtime-utils/node";
3
- import { time } from "@modern-js/runtime-utils/time";
4
- import react from "react";
5
- import { HelmetProvider } from "react-helmet-async";
6
- import { getHelmetData, helmetReplace } from "../../../core/server/helmet.mjs";
7
- import { serializeErrors } from "../../../router/runtime/utils.mjs";
8
- import prefetch from "../../prefetch";
9
- import { SSRErrors, SSRTimings } from "../tracker";
10
- import { RenderLevel } from "../types.mjs";
11
- import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID, attributesToString } from "../utils";
12
- import { buildHtml, createReplaceChunkCss, createReplaceChunkJs, createReplaceHtml, createReplaceSSRDataScript } from "./buildHtml";
13
- import { createLoadableCollector } from "./loadable";
14
- import { createRender } from "./render";
15
- import { createStyledCollector } from "./styledComponent";
16
- const buildTemplateData = (context, data, renderLevel, tracker)=>{
17
- const { request, enableUnsafeCtx } = context;
18
- const unsafeContext = {
19
- headers: request.headers
20
- };
21
- return {
22
- data,
23
- context: {
24
- request: {
25
- params: request.params,
26
- query: request.query,
27
- pathname: request.pathname,
28
- host: request.host,
29
- url: request.url,
30
- ...enableUnsafeCtx ? unsafeContext : {}
31
- },
32
- reporter: {
33
- sessionId: tracker.sessionId
34
- }
35
- },
36
- renderLevel
37
- };
38
- };
39
- class Entry {
40
- async renderToHtml(context) {
41
- const ssrContext = context.ssrContext;
42
- if (ssrContext.redirection?.url) return '';
43
- const prefetchData = await this.prefetch(context);
44
- if (ssrContext.redirection?.url) return '';
45
- if (this.result.renderLevel >= RenderLevel.SERVER_PREFETCH) this.result.html = await this.renderToString(context);
46
- if (ssrContext.redirection?.url) return '';
47
- const { routerContext, routerServerSnapshot } = context;
48
- const routerData = routerServerSnapshot?.routerData ? {
49
- loaderData: routerServerSnapshot.routerData.loaderData,
50
- errors: serializeErrors(routerServerSnapshot.routerData.errors)
51
- } : routerContext ? {
52
- loaderData: routerContext.loaderData,
53
- errors: serializeErrors(routerContext.errors)
54
- } : void 0;
55
- const templateData = buildTemplateData(ssrContext, prefetchData, this.result.renderLevel, this.tracker);
56
- const ssrDataScripts = this.getSSRDataScript(templateData, routerData);
57
- const html = buildHtml(this.template, [
58
- createReplaceChunkCss(this.result.chunksMap.css),
59
- createReplaceChunkJs(this.result.chunksMap.js),
60
- createReplaceHtml(this.result.html || ''),
61
- createReplaceSSRDataScript(ssrDataScripts),
62
- ...this.htmlModifiers
63
- ]);
64
- const helmetData = getHelmetData(context);
65
- return helmetData ? helmetReplace(html, helmetData) : html;
66
- }
67
- async prefetch(context) {
68
- let prefetchData;
69
- const end = time();
70
- try {
71
- prefetchData = await prefetch(this.App, context, this.pluginConfig);
72
- this.result.renderLevel = RenderLevel.SERVER_PREFETCH;
73
- const prefetchCost = end();
74
- this.tracker.trackTiming(SSRTimings.SSR_PREFETCH, prefetchCost);
75
- } catch (e) {
76
- this.result.renderLevel = RenderLevel.CLIENT_RENDER;
77
- this.tracker.trackError(SSRErrors.PREFETCH, e);
78
- }
79
- return prefetchData || {};
80
- }
81
- async renderToString(context) {
82
- let html = '';
83
- const end = time();
84
- const { ssrContext } = context;
85
- try {
86
- const helmetContext = context._helmetContext ??= {};
87
- const App = react.createElement(HelmetProvider, {
88
- context: helmetContext
89
- }, react.createElement(this.App, {
90
- context: Object.assign(context, {
91
- ssr: true
92
- })
93
- }));
94
- html = await createRender(App).addCollector(createStyledCollector(this.result)).addCollector(createLoadableCollector({
95
- stats: ssrContext.loadableStats,
96
- result: this.result,
97
- entryName: this.entryName,
98
- config: this.pluginConfig,
99
- nonce: this.nonce,
100
- template: this.template,
101
- routeManifest: this.routeManifest
102
- })).finish();
103
- const cost = end();
104
- this.tracker.trackTiming(SSRTimings.SSR_RENDER_HTML, cost);
105
- this.result.renderLevel = RenderLevel.SERVER_RENDER;
106
- } catch (e) {
107
- this.tracker.trackError(SSRErrors.RENDER_HTML, e);
108
- }
109
- return html;
110
- }
111
- getSSRDataScript(templateData, routerData) {
112
- const useInlineScript = false !== this.pluginConfig.inlineScript;
113
- const sanitizedTemplateData = sanitizeSSRPayload(templateData, {
114
- unsafeHeaders: this.pluginConfig.unsafeHeaders
115
- }).payload;
116
- const ssrData = serializeJson(sanitizedTemplateData);
117
- const attrsStr = attributesToString({
118
- nonce: this.nonce
119
- });
120
- let ssrDataScripts = useInlineScript ? `<script${attrsStr}>window._SSR_DATA = ${ssrData}</script>` : `<script type="application/json" id="${SSR_DATA_JSON_ID}">${ssrData}</script>`;
121
- if (routerData) {
122
- const sanitizedRouterData = sanitizeSSRPayload(routerData, {
123
- unsafeHeaders: this.pluginConfig.unsafeHeaders
124
- }).payload;
125
- const serializedRouterData = serializeJson(sanitizedRouterData);
126
- ssrDataScripts += useInlineScript ? `\n<script${attrsStr}>window._ROUTER_DATA = ${serializedRouterData}</script>` : `\n<script type="application/json" id="${ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>`;
127
- }
128
- return ssrDataScripts;
129
- }
130
- constructor(options){
131
- const { ctx, config } = options;
132
- const { entryName, template, nonce } = ctx;
133
- this.template = template;
134
- this.entryName = entryName;
135
- this.App = options.App;
136
- this.pluginConfig = config;
137
- this.routeManifest = ctx.routeManifest;
138
- this.tracker = ctx.tracker;
139
- this.metrics = ctx.metrics;
140
- this.htmlModifiers = ctx.htmlModifiers;
141
- this.nonce = nonce;
142
- this.result = {
143
- renderLevel: RenderLevel.CLIENT_RENDER,
144
- html: '',
145
- chunksMap: {
146
- js: '',
147
- css: ''
148
- }
149
- };
150
- }
151
- }
152
- export default Entry;
@@ -1,2 +0,0 @@
1
- import "node:module";
2
- export { RenderLevel } from "./renderToString/type";
@@ -1,10 +0,0 @@
1
- import type { AppToolsContext } from '@modern-js/app-tools';
2
- import type { NestedRouteForCli, PageRoute } from '@modern-js/types';
3
- export declare function isTanstackRouterFrameworkEnabled(appContext: AppToolsContext): Promise<boolean>;
4
- export declare function generateTanstackRouterTypesSourceForEntry(opts: {
5
- appContext: AppToolsContext;
6
- entryName: string;
7
- routes: (NestedRouteForCli | PageRoute)[];
8
- }): Promise<{
9
- routerGenTs: string;
10
- }>;
@@ -1,8 +0,0 @@
1
- export declare function createModernBasepathRewrite(basepath: string, caseSensitive?: boolean): {
2
- input: ({ url }: {
3
- url: URL;
4
- }) => URL;
5
- output: ({ url }: {
6
- url: URL;
7
- }) => URL;
8
- } | undefined;
@@ -1,29 +0,0 @@
1
- import type React from 'react';
2
- type SubmitTarget = HTMLFormElement | FormData | URLSearchParams | Record<string, string | number | boolean | null | undefined>;
3
- export type SubmitOptions = {
4
- action?: string;
5
- method?: string;
6
- encType?: string;
7
- };
8
- export type FetcherState = 'idle' | 'submitting' | 'loading';
9
- export declare class RouteActionResponseError<TData = unknown> extends Error {
10
- readonly response: Response;
11
- readonly data: TData;
12
- constructor(response: Response, data: TData);
13
- }
14
- export type FormProps = Omit<React.FormHTMLAttributes<HTMLFormElement>, 'onSubmit' | 'action'> & {
15
- action?: string;
16
- onSubmit?: React.FormEventHandler<HTMLFormElement>;
17
- reloadDocument?: boolean;
18
- };
19
- export declare function Form({ action, method, encType, reloadDocument, onSubmit, ...rest }: FormProps): React.JSX.Element;
20
- export type FetcherSubmitOptions = SubmitOptions;
21
- export type Fetcher = {
22
- state: FetcherState;
23
- data: unknown;
24
- error: unknown;
25
- Form: React.ComponentType<FormProps>;
26
- submit: (target: SubmitTarget, options?: FetcherSubmitOptions) => Promise<void>;
27
- };
28
- export declare function useFetcher(): Fetcher;
29
- export {};
@@ -1,2 +0,0 @@
1
- import { type ReactElement } from 'react';
2
- export declare function wrapTanstackSsrHydrationBoundary(routerContent: ReactElement, shouldWrap: boolean): import("react").JSX.Element;
@@ -1,2 +0,0 @@
1
- export declare const Outlet: import("react").MemoExoticComponent<() => import("react").JSX.Element>;
2
- export declare function withModernRouteMatchContext(component: unknown, _routeId: string): unknown;
@@ -1,6 +0,0 @@
1
- import type { RuntimePlugin } from '../../../core';
2
- import { type RouterExtendsHooks } from '../hooks';
3
- import type { RouterConfig } from '../types';
4
- export declare const tanstackRouterPlugin: (userConfig?: Partial<RouterConfig>) => RuntimePlugin<{
5
- extendHooks: RouterExtendsHooks;
6
- }>;
@@ -1,6 +0,0 @@
1
- import type { RuntimePlugin } from '../../../core';
2
- import type { RouterExtendsHooks } from '../hooks';
3
- import type { RouterConfig } from '../types';
4
- export declare const tanstackRouterPlugin: (userConfig?: Partial<RouterConfig>) => RuntimePlugin<{
5
- extendHooks: RouterExtendsHooks;
6
- }>;
@@ -1,11 +0,0 @@
1
- import { type AnyRouter, type LinkComponentProps, type RegisteredRouter } from '@tanstack/react-router';
2
- import type { ReactElement } from 'react';
3
- export type PrefetchBehavior = 'intent' | 'render' | 'viewport' | 'none';
4
- export type LinkProps<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = LinkComponentProps<'a', TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & {
5
- prefetch?: PrefetchBehavior;
6
- };
7
- export type NavLinkProps<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = LinkProps<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>;
8
- type LinkComponent = <TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string = string, const TTo extends string | undefined = undefined, const TMaskFrom extends string = TFrom, const TMaskTo extends string = ''>(props: LinkProps<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => ReactElement;
9
- export declare const Link: LinkComponent;
10
- export declare const NavLink: LinkComponent;
11
- export {};
@@ -1,8 +0,0 @@
1
- import type { RouteObject } from '@modern-js/runtime-utils/router';
2
- import type { NestedRoute, PageRoute } from '@modern-js/types';
3
- import type { AnyRouter, RootRoute as TanstackRootRoute } from '@tanstack/react-router';
4
- type ModernTanstackRootRoute = TanstackRootRoute;
5
- export declare function createRouteTreeFromModernRoutes(routes: Array<NestedRoute | PageRoute>): ModernTanstackRootRoute;
6
- export declare function createRouteTreeFromRouteObjects(routes: RouteObject[]): ModernTanstackRootRoute;
7
- export declare function getModernRouteIdsFromMatches(router: AnyRouter): string[];
8
- export {};
@@ -1,5 +0,0 @@
1
- import type React from 'react';
2
- export declare function ClientSlot({ args, slot }: {
3
- args: unknown[];
4
- slot: string;
5
- }): React.JSX.Element | null;
@@ -1,3 +0,0 @@
1
- import type React from 'react';
2
- import { type AnyCompositeComponent, type CompositeComponentProps } from './symbols';
3
- export declare function CompositeComponent<TComp extends AnyCompositeComponent>(props: CompositeComponentProps<TComp>): React.JSX.Element;
@@ -1,24 +0,0 @@
1
- export interface ReplayableStreamOptions {
2
- signal?: AbortSignal;
3
- }
4
- export declare const REPLAYABLE_STREAM_MARKER: unique symbol;
5
- export declare class ReplayableStream<T = Uint8Array> {
6
- private source;
7
- private options;
8
- readonly [REPLAYABLE_STREAM_MARKER] = true;
9
- private chunks;
10
- private done;
11
- private error;
12
- private waiter;
13
- private released;
14
- private reader;
15
- private abortListener;
16
- constructor(source: ReadableStream<T>, options?: ReplayableStreamOptions);
17
- private start;
18
- private detachAbortListener;
19
- private notify;
20
- private wait;
21
- release(): void;
22
- isReleased(): boolean;
23
- createReplayStream(): ReadableStream<T>;
24
- }
@@ -1,5 +0,0 @@
1
- import type React from 'react';
2
- import { type AnyRenderableServerComponent } from './symbols';
3
- export declare function RscNodeRenderer({ data, }: {
4
- data: AnyRenderableServerComponent;
5
- }): React.JSX.Element;
@@ -1,11 +0,0 @@
1
- import type React from 'react';
2
- export type SlotImplementations = Record<string, unknown>;
3
- export declare function useSlotContext(): {
4
- implementations: SlotImplementations;
5
- strict: boolean;
6
- } | null;
7
- export declare function SlotProvider({ children, implementations, strict, }: {
8
- children?: React.ReactNode;
9
- implementations: SlotImplementations;
10
- strict?: boolean;
11
- }): React.JSX.Element;
@@ -1,11 +0,0 @@
1
- import { CompositeComponent } from './CompositeComponent';
2
- import type { AnyCompositeComponent, RscSlotUsageEvent } from './symbols';
3
- export type { AnyCompositeComponent, AnyRenderableServerComponent, CompositeComponentProps, } from './symbols';
4
- export { CompositeComponent };
5
- type SerializedRsc = {
6
- kind: 'renderable' | 'composite';
7
- stream: ReadableStream<Uint8Array>;
8
- slotUsagesStream?: ReadableStream<RscSlotUsageEvent>;
9
- };
10
- export declare function getTanstackRscSerializationAdapters(): import("@tanstack/router-core").SerializationAdapter<AnyCompositeComponent<Record<string, unknown>, import("react").ReactNode>, SerializedRsc, never>[];
11
- export declare const rscSerializationAdapter: typeof getTanstackRscSerializationAdapters;
@@ -1,7 +0,0 @@
1
- import { type RscSlotUsageEvent, type ServerComponentStream } from './symbols';
2
- export declare function createRscProxy(getTree: () => unknown, options?: {
3
- renderable?: boolean;
4
- slotUsages?: RscSlotUsageEvent[];
5
- slotUsagesStream?: ReadableStream<RscSlotUsageEvent>;
6
- stream?: ServerComponentStream;
7
- }): any;
@@ -1,2 +0,0 @@
1
- export { CompositeComponent, getTanstackRscSerializationAdapters, rscSerializationAdapter, } from './client';
2
- export type { AnyCompositeComponent, AnyRenderableServerComponent, CompositeComponentProps, } from './symbols';
@@ -1,14 +0,0 @@
1
- import { RawStream } from '@tanstack/router-core';
2
- import React from 'react';
3
- import { type AnyCompositeComponent, type AnyRenderableServerComponent, type RscSlotUsageEvent } from './symbols';
4
- export { CompositeComponent } from './CompositeComponent';
5
- export type { AnyCompositeComponent, AnyRenderableServerComponent, CompositeComponentProps, } from './symbols';
6
- export declare function renderServerComponent<TNode extends React.ReactNode>(node: TNode): Promise<TNode & AnyRenderableServerComponent<TNode>>;
7
- export declare function createCompositeComponent<TProps extends object = Record<string, unknown>, TReturn = React.ReactNode>(component: (props: TProps) => React.ReactNode | Promise<React.ReactNode>): Promise<AnyCompositeComponent<TProps, TReturn>>;
8
- type SerializedRsc = {
9
- kind: 'renderable' | 'composite';
10
- stream: RawStream;
11
- slotUsagesStream?: ReadableStream<RscSlotUsageEvent>;
12
- };
13
- export declare function getTanstackRscSerializationAdapters(): import("@tanstack/router-core").SerializationAdapter<AnyCompositeComponent<Record<string, unknown>, React.ReactNode> | AnyRenderableServerComponent<React.ReactNode>, SerializedRsc, never>[];
14
- export declare const rscSerializationAdapter: typeof getTanstackRscSerializationAdapters;
@@ -1,2 +0,0 @@
1
- import type { SerializableSlotArg } from './symbols';
2
- export declare function sanitizeSlotArgs(args: unknown[]): SerializableSlotArg[];
@@ -1,46 +0,0 @@
1
- import type React from 'react';
2
- export interface ServerComponentStream {
3
- createReplayStream: () => ReadableStream<Uint8Array>;
4
- }
5
- export declare const SERVER_COMPONENT_STREAM: unique symbol;
6
- export declare const RENDERABLE_RSC: unique symbol;
7
- export declare const RSC_PROXY_GET_TREE: unique symbol;
8
- export declare const RSC_PROXY_PATH: unique symbol;
9
- export declare const RSC_SLOT_USAGES_STREAM: unique symbol;
10
- export declare const RSC_SLOT_USAGES: unique symbol;
11
- export type SerializableSlotArg = string | number | boolean | bigint | null | undefined | SerializableSlotArg[] | {
12
- [key: string]: SerializableSlotArg;
13
- };
14
- export type RscSlotUsageEvent = {
15
- slot: string;
16
- args?: SerializableSlotArg[];
17
- };
18
- export interface AnyRenderableServerComponent<TNode = React.ReactNode> {
19
- [SERVER_COMPONENT_STREAM]: ServerComponentStream;
20
- [RENDERABLE_RSC]: true;
21
- [RSC_PROXY_GET_TREE]?: () => unknown;
22
- [RSC_PROXY_PATH]?: string[];
23
- [RSC_SLOT_USAGES_STREAM]?: ReadableStream<RscSlotUsageEvent>;
24
- '~types'?: {
25
- node: TNode;
26
- };
27
- }
28
- export interface AnyCompositeComponent<TProps extends object = Record<string, unknown>, TReturn = React.ReactNode> {
29
- [SERVER_COMPONENT_STREAM]?: ServerComponentStream;
30
- [RSC_PROXY_GET_TREE]?: () => unknown;
31
- [RSC_PROXY_PATH]?: string[];
32
- [RSC_SLOT_USAGES]?: RscSlotUsageEvent[];
33
- [RSC_SLOT_USAGES_STREAM]?: ReadableStream<RscSlotUsageEvent>;
34
- '~types'?: {
35
- props: TProps;
36
- return: TReturn;
37
- };
38
- }
39
- type InferCompositeProps<TComp extends AnyCompositeComponent> = TComp extends AnyCompositeComponent<infer TProps, unknown> ? TProps : Record<string, unknown>;
40
- export type CompositeComponentProps<TComp extends AnyCompositeComponent> = {
41
- src: TComp;
42
- strict?: boolean;
43
- } & InferCompositeProps<TComp>;
44
- export declare function isServerComponent(value: unknown): value is AnyCompositeComponent | AnyRenderableServerComponent;
45
- export declare function isRenderableServerComponent(value: unknown): boolean;
46
- export {};