@bleedingdev/modern-js-plugin-tanstack 3.2.0-ultramodern.12 → 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 (136) hide show
  1. package/dist/cjs/cli/index.js +89 -31
  2. package/dist/cjs/cli/routeSplitting.js +55 -0
  3. package/dist/cjs/cli/tanstackTypes.js +172 -170
  4. package/dist/cjs/cli.js +12 -8
  5. package/dist/cjs/runtime/basepathRewrite.js +12 -8
  6. package/dist/cjs/runtime/dataMutation.js +9 -5
  7. package/dist/cjs/runtime/hooks.js +20 -19
  8. package/dist/cjs/runtime/hydrationBoundary.js +48 -0
  9. package/dist/cjs/runtime/index.js +79 -35
  10. package/dist/cjs/runtime/lifecycle.js +21 -91
  11. package/dist/cjs/runtime/loaderBridge.js +173 -0
  12. package/dist/cjs/runtime/outlet.js +58 -0
  13. package/dist/cjs/runtime/plugin.js +195 -114
  14. package/dist/cjs/runtime/plugin.node.js +45 -45
  15. package/dist/cjs/runtime/plugin.worker.js +53 -0
  16. package/dist/cjs/runtime/pluginCore.js +55 -0
  17. package/dist/cjs/runtime/prefetchLink.js +10 -6
  18. package/dist/cjs/runtime/register.js +56 -0
  19. package/dist/cjs/runtime/routeTree.js +74 -207
  20. package/dist/cjs/runtime/router.js +41 -0
  21. package/dist/cjs/runtime/rsc/ClientSlot.js +9 -5
  22. package/dist/cjs/runtime/rsc/CompositeComponent.js +9 -5
  23. package/dist/cjs/runtime/rsc/ReplayableStream.js +14 -9
  24. package/dist/cjs/runtime/rsc/RscNodeRenderer.js +9 -5
  25. package/dist/cjs/runtime/rsc/SlotContext.js +9 -5
  26. package/dist/cjs/runtime/rsc/client.js +9 -5
  27. package/dist/cjs/runtime/rsc/createRscProxy.js +9 -5
  28. package/dist/cjs/runtime/rsc/index.js +9 -5
  29. package/dist/cjs/runtime/rsc/payloadRouter.js +44 -6
  30. package/dist/cjs/runtime/rsc/server.js +9 -5
  31. package/dist/cjs/runtime/rsc/slotUsageSanitizer.js +9 -5
  32. package/dist/cjs/runtime/rsc/symbols.js +20 -15
  33. package/dist/cjs/runtime/state.js +45 -0
  34. package/dist/cjs/runtime/types.js +31 -1
  35. package/dist/cjs/runtime/utils.js +9 -10
  36. package/dist/cjs/runtime.js +9 -5
  37. package/dist/esm/cli/index.mjs +75 -27
  38. package/dist/esm/cli/routeSplitting.mjs +14 -0
  39. package/dist/esm/cli/tanstackTypes.mjs +158 -160
  40. package/dist/esm/runtime/hooks.mjs +1 -8
  41. package/dist/esm/runtime/hydrationBoundary.mjs +10 -0
  42. package/dist/esm/runtime/index.mjs +5 -2
  43. package/dist/esm/runtime/lifecycle.mjs +1 -82
  44. package/dist/esm/runtime/loaderBridge.mjs +114 -0
  45. package/dist/esm/runtime/outlet.mjs +17 -0
  46. package/dist/esm/runtime/plugin.mjs +191 -114
  47. package/dist/esm/runtime/plugin.node.mjs +40 -44
  48. package/dist/esm/runtime/plugin.worker.mjs +1 -0
  49. package/dist/esm/runtime/pluginCore.mjs +14 -0
  50. package/dist/esm/runtime/prefetchLink.mjs +1 -1
  51. package/dist/esm/runtime/register.mjs +18 -0
  52. package/dist/esm/runtime/routeTree.mjs +59 -193
  53. package/dist/esm/runtime/router.mjs +2 -0
  54. package/dist/esm/runtime/rsc/payloadRouter.mjs +35 -1
  55. package/dist/esm/runtime/state.mjs +7 -0
  56. package/dist/esm/runtime/types.mjs +7 -0
  57. package/dist/esm/runtime/utils.mjs +0 -5
  58. package/dist/esm-node/cli/index.mjs +75 -27
  59. package/dist/esm-node/cli/routeSplitting.mjs +15 -0
  60. package/dist/esm-node/cli/tanstackTypes.mjs +158 -160
  61. package/dist/esm-node/runtime/hooks.mjs +1 -8
  62. package/dist/esm-node/runtime/hydrationBoundary.mjs +11 -0
  63. package/dist/esm-node/runtime/index.mjs +5 -2
  64. package/dist/esm-node/runtime/lifecycle.mjs +1 -82
  65. package/dist/esm-node/runtime/loaderBridge.mjs +115 -0
  66. package/dist/esm-node/runtime/outlet.mjs +18 -0
  67. package/dist/esm-node/runtime/plugin.mjs +191 -114
  68. package/dist/esm-node/runtime/plugin.node.mjs +40 -44
  69. package/dist/esm-node/runtime/plugin.worker.mjs +2 -0
  70. package/dist/esm-node/runtime/pluginCore.mjs +15 -0
  71. package/dist/esm-node/runtime/prefetchLink.mjs +1 -1
  72. package/dist/esm-node/runtime/register.mjs +19 -0
  73. package/dist/esm-node/runtime/routeTree.mjs +59 -193
  74. package/dist/esm-node/runtime/router.mjs +3 -0
  75. package/dist/esm-node/runtime/rsc/payloadRouter.mjs +35 -1
  76. package/dist/esm-node/runtime/state.mjs +8 -0
  77. package/dist/esm-node/runtime/types.mjs +7 -0
  78. package/dist/esm-node/runtime/utils.mjs +0 -5
  79. package/dist/types/cli/index.d.ts +14 -1
  80. package/dist/types/cli/routeSplitting.d.ts +20 -0
  81. package/dist/types/cli/tanstackTypes.d.ts +21 -1
  82. package/dist/types/runtime/hooks.d.ts +8 -33
  83. package/dist/types/runtime/hydrationBoundary.d.ts +2 -0
  84. package/dist/types/runtime/index.d.ts +8 -3
  85. package/dist/types/runtime/lifecycle.d.ts +7 -22
  86. package/dist/types/runtime/loaderBridge.d.ts +48 -0
  87. package/dist/types/runtime/outlet.d.ts +2 -0
  88. package/dist/types/runtime/plugin.d.ts +2 -15
  89. package/dist/types/runtime/plugin.node.d.ts +2 -15
  90. package/dist/types/runtime/plugin.worker.d.ts +1 -0
  91. package/dist/types/runtime/pluginCore.d.ts +21 -0
  92. package/dist/types/runtime/register.d.ts +9 -0
  93. package/dist/types/runtime/routeTree.d.ts +0 -2
  94. package/dist/types/runtime/router.d.ts +14 -0
  95. package/dist/types/runtime/state.d.ts +16 -0
  96. package/dist/types/runtime/types.d.ts +14 -53
  97. package/package.json +42 -40
  98. package/rstest.config.mts +6 -0
  99. package/src/cli/index.ts +162 -23
  100. package/src/cli/routeSplitting.ts +43 -0
  101. package/src/cli/tanstackTypes.ts +331 -187
  102. package/src/runtime/hooks.ts +10 -27
  103. package/src/runtime/hydrationBoundary.tsx +12 -0
  104. package/src/runtime/index.tsx +17 -7
  105. package/src/runtime/lifecycle.ts +16 -151
  106. package/src/runtime/loaderBridge.ts +257 -0
  107. package/src/runtime/outlet.tsx +48 -0
  108. package/src/runtime/plugin.node.tsx +72 -85
  109. package/src/runtime/plugin.tsx +361 -206
  110. package/src/runtime/plugin.worker.tsx +4 -0
  111. package/src/runtime/pluginCore.ts +48 -0
  112. package/src/runtime/prefetchLink.tsx +1 -1
  113. package/src/runtime/register.ts +58 -0
  114. package/src/runtime/routeTree.ts +163 -354
  115. package/src/runtime/router.ts +15 -0
  116. package/src/runtime/rsc/payloadRouter.ts +45 -2
  117. package/src/runtime/ssr-shim.d.ts +1 -3
  118. package/src/runtime/state.ts +29 -0
  119. package/src/runtime/types.ts +32 -66
  120. package/src/runtime/utils.tsx +3 -6
  121. package/tests/router/cli.test.ts +586 -5
  122. package/tests/router/fastDefaults.test.ts +25 -0
  123. package/tests/router/hooks.test.ts +26 -0
  124. package/tests/router/hydrationBoundary.test.tsx +23 -0
  125. package/tests/router/loaderBridge.test.ts +211 -0
  126. package/tests/router/packageSurface.test.ts +24 -0
  127. package/tests/router/prefetchLink.test.tsx +43 -7
  128. package/tests/router/register.test.ts +46 -0
  129. package/tests/router/routeTree.test.ts +381 -81
  130. package/tests/router/rsc.test.tsx +70 -0
  131. package/tests/router/tanstackTypes.test.ts +573 -1
  132. package/dist/cjs/runtime/DefaultNotFound.js +0 -47
  133. package/dist/esm/runtime/DefaultNotFound.mjs +0 -13
  134. package/dist/esm-node/runtime/DefaultNotFound.mjs +0 -14
  135. package/dist/types/runtime/DefaultNotFound.d.ts +0 -2
  136. package/src/runtime/DefaultNotFound.tsx +0 -15
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ getFinalRouteConfig: ()=>getFinalRouteConfig,
32
+ getMergedRouterConfig: ()=>getMergedRouterConfig
33
+ });
34
+ const context_namespaceObject = require("@modern-js/runtime/context");
35
+ const merge_namespaceObject = require("@modern-js/runtime-utils/merge");
36
+ function getMergedRouterConfig(api, userConfig) {
37
+ const pluginConfig = api.getRuntimeConfig();
38
+ return (0, merge_namespaceObject.merge)(pluginConfig.router || {}, userConfig);
39
+ }
40
+ function getFinalRouteConfig(mergedConfig) {
41
+ return {
42
+ routes: (0, context_namespaceObject.getGlobalRoutes)(),
43
+ globalApp: (0, context_namespaceObject.getGlobalLayoutApp)(),
44
+ ...mergedConfig.routesConfig
45
+ };
46
+ }
47
+ exports.getFinalRouteConfig = __webpack_exports__.getFinalRouteConfig;
48
+ exports.getMergedRouterConfig = __webpack_exports__.getMergedRouterConfig;
49
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
50
+ "getFinalRouteConfig",
51
+ "getMergedRouterConfig"
52
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
53
+ Object.defineProperty(exports, '__esModule', {
54
+ value: true
55
+ });
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -33,7 +37,7 @@ function resolvePreloadFromPrefetch(prefetch, preload) {
33
37
  if (void 0 !== preload) return preload;
34
38
  if ('none' === prefetch) return false;
35
39
  if ('intent' === prefetch || 'render' === prefetch || 'viewport' === prefetch) return prefetch;
36
- return preload;
40
+ return 'viewport';
37
41
  }
38
42
  const LinkComponentImpl = (props)=>{
39
43
  const { prefetch, preload, ...rest } = props;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ tanstackRouterCompatBindings: ()=>tanstackRouterCompatBindings
32
+ });
33
+ const context_namespaceObject = require("@modern-js/runtime/context");
34
+ const external_dataMutation_js_namespaceObject = require("./dataMutation.js");
35
+ const external_outlet_js_namespaceObject = require("./outlet.js");
36
+ const external_plugin_js_namespaceObject = require("./plugin.js");
37
+ const external_prefetchLink_js_namespaceObject = require("./prefetchLink.js");
38
+ const tanstackRouterProviderFactory = (userConfig)=>(0, external_plugin_js_namespaceObject.tanstackRouterPlugin)(userConfig);
39
+ (0, context_namespaceObject.registerRouterProvider)('tanstack', tanstackRouterProviderFactory);
40
+ const COMPAT_BINDINGS_SLOT = Symbol.for('@modern-js/plugin-tanstack:runtime-compat-bindings');
41
+ const tanstackRouterCompatBindings = {
42
+ Form: external_dataMutation_js_namespaceObject.Form,
43
+ Link: external_prefetchLink_js_namespaceObject.Link,
44
+ NavLink: external_prefetchLink_js_namespaceObject.NavLink,
45
+ Outlet: external_outlet_js_namespaceObject.Outlet,
46
+ RouteActionResponseError: external_dataMutation_js_namespaceObject.RouteActionResponseError,
47
+ useFetcher: external_dataMutation_js_namespaceObject.useFetcher
48
+ };
49
+ globalThis[COMPAT_BINDINGS_SLOT] ??= tanstackRouterCompatBindings;
50
+ exports.tanstackRouterCompatBindings = __webpack_exports__.tanstackRouterCompatBindings;
51
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
52
+ "tanstackRouterCompatBindings"
53
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
54
+ Object.defineProperty(exports, '__esModule', {
55
+ value: true
56
+ });
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -24,12 +28,14 @@ var __webpack_require__ = {};
24
28
  var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
30
  __webpack_require__.d(__webpack_exports__, {
27
- createRouteTreeFromModernRoutes: ()=>createRouteTreeFromModernRoutes,
28
31
  createRouteTreeFromRouteObjects: ()=>createRouteTreeFromRouteObjects,
29
32
  getModernRouteIdsFromMatches: ()=>getModernRouteIdsFromMatches
30
33
  });
34
+ const context_namespaceObject = require("@modern-js/runtime/context");
31
35
  const react_router_namespaceObject = require("@tanstack/react-router");
32
- const external_DefaultNotFound_js_namespaceObject = require("./DefaultNotFound.js");
36
+ const external_react_namespaceObject = require("react");
37
+ const external_loaderBridge_js_namespaceObject = require("./loaderBridge.js");
38
+ const external_outlet_js_namespaceObject = require("./outlet.js");
33
39
  const payloadRouter_js_namespaceObject = require("./rsc/payloadRouter.js");
34
40
  function createTanstackRoute(options) {
35
41
  return (0, react_router_namespaceObject.createRoute)(options);
@@ -37,6 +43,10 @@ function createTanstackRoute(options) {
37
43
  function createTanstackRootRoute(options) {
38
44
  return (0, react_router_namespaceObject.createRootRoute)(options);
39
45
  }
46
+ function wrapRouteComponentWithModernContext(route, component, routeId) {
47
+ const routeMatchId = routeId || route.id;
48
+ if (component && routeMatchId) route.options.component = (0, external_outlet_js_namespaceObject.withModernRouteMatchContext)(component, routeMatchId);
49
+ }
40
50
  function toTanstackPath(pathname) {
41
51
  return pathname.split('/').map((segment)=>{
42
52
  if (!segment) return segment;
@@ -49,23 +59,6 @@ function toTanstackPath(pathname) {
49
59
  return segment;
50
60
  }).join('/');
51
61
  }
52
- function isResponse(value) {
53
- const record = value;
54
- return null != record && 'object' == typeof record && 'number' == typeof record.status && 'object' == typeof record.headers;
55
- }
56
- function isTanstackRedirect(value) {
57
- return isResponse(value) && 'object' == typeof value.options;
58
- }
59
- const redirectStatusCodes = new Set([
60
- 301,
61
- 302,
62
- 303,
63
- 307,
64
- 308
65
- ]);
66
- function isRedirectResponse(res) {
67
- return redirectStatusCodes.has(res.status);
68
- }
69
62
  function isModernDeferredData(value) {
70
63
  if (!value || 'object' != typeof value) return false;
71
64
  const deferred = value;
@@ -75,42 +68,48 @@ function normalizeModernLoaderResult(result) {
75
68
  return isModernDeferredData(result) ? result.data : result;
76
69
  }
77
70
  function normalizeModernLoaderResponse(result) {
78
- if (isResponse(result)) {
79
- if (isRedirectResponse(result)) {
71
+ if ((0, external_loaderBridge_js_namespaceObject.isResponse)(result)) {
72
+ if ((0, external_loaderBridge_js_namespaceObject.isRedirectResponse)(result)) {
80
73
  const location = result.headers.get('Location') || '/';
81
- throwTanstackRedirect(location);
74
+ (0, external_loaderBridge_js_namespaceObject.throwTanstackRedirect)(location);
82
75
  }
83
76
  if (404 === result.status) throw (0, react_router_namespaceObject.notFound)();
84
77
  }
85
78
  return normalizeModernLoaderResult(result);
86
79
  }
87
- function isAbsoluteUrl(value) {
88
- try {
89
- new URL(value);
90
- return true;
91
- } catch {
92
- return false;
80
+ function pickRouteModuleComponent(routeModule, seen = new Set()) {
81
+ if ('function' == typeof routeModule || routeModule && 'object' == typeof routeModule && '$$typeof' in routeModule) return routeModule;
82
+ if (!routeModule || 'object' != typeof routeModule) return;
83
+ if (seen.has(routeModule)) return;
84
+ seen.add(routeModule);
85
+ const module = routeModule;
86
+ for (const candidate of [
87
+ module.default,
88
+ module.Component
89
+ ]){
90
+ const component = pickRouteModuleComponent(candidate, seen);
91
+ if (component) return component;
93
92
  }
94
93
  }
95
- function throwTanstackRedirect(location) {
96
- const target = location || '/';
97
- if (isAbsoluteUrl(target)) throw (0, react_router_namespaceObject.redirect)({
98
- href: target
99
- });
100
- throw (0, react_router_namespaceObject.redirect)({
101
- to: target
102
- });
103
- }
104
- function mapParamsForModernLoader({ modernRoute, params }) {
105
- if ('nested' === modernRoute.type && modernRoute.path?.includes('*')) {
106
- const { _splat, ...rest } = params;
107
- if (void 0 !== _splat) return {
108
- ...rest,
109
- '*': _splat
110
- };
111
- return rest;
112
- }
113
- return params;
94
+ function createServerLazyImportComponent(lazyImport, fallbackComponent) {
95
+ if ("u" > typeof document) return fallbackComponent;
96
+ let resolvedComponent;
97
+ let pendingLoad;
98
+ const load = async ()=>{
99
+ if (resolvedComponent) return resolvedComponent;
100
+ const routeModule = await lazyImport();
101
+ const component = pickRouteModuleComponent(routeModule);
102
+ if (component) resolvedComponent = component;
103
+ return resolvedComponent;
104
+ };
105
+ const Component = (props)=>{
106
+ if (resolvedComponent) return (0, external_react_namespaceObject.createElement)(resolvedComponent, props);
107
+ pendingLoad ||= load();
108
+ throw pendingLoad;
109
+ };
110
+ Component.load = load;
111
+ Component.preload = load;
112
+ return Component;
114
113
  }
115
114
  function createModernRequest(input, signal) {
116
115
  return new Request(input, {
@@ -145,52 +144,6 @@ function createModernShouldReload(shouldRevalidate, state) {
145
144
  return 'boolean' == typeof result ? result : void 0;
146
145
  };
147
146
  }
148
- function wrapModernLoader(modernRoute, modernLoader, revalidationState, options = {}) {
149
- const route = modernRoute;
150
- return async (ctx)=>{
151
- try {
152
- if (revalidationState) rememberRouteLocation(revalidationState, ctx);
153
- if ('function' == typeof route.lazyImport) try {
154
- await route.lazyImport();
155
- } catch {}
156
- const signal = ctx?.abortController?.signal || ctx?.signal || new AbortController().signal;
157
- const baseRequest = ctx?.context?.request instanceof Request ? ctx.context.request : void 0;
158
- const href = 'string' == typeof ctx?.location ? ctx.location : ctx?.location?.publicHref || ctx?.location?.href || ctx?.location?.url?.href || '';
159
- const request = baseRequest ? new Request(baseRequest, {
160
- signal
161
- }) : createModernRequest(href, signal);
162
- const params = mapParamsForModernLoader({
163
- modernRoute,
164
- params: ctx.params || {}
165
- });
166
- const loadModernData = async ()=>{
167
- const result = modernLoader ? await modernLoader({
168
- request,
169
- params,
170
- context: ctx?.context?.requestContext
171
- }) : null;
172
- return normalizeModernLoaderResponse(result);
173
- };
174
- if (options.rscPayloadRouter && (0, payloadRouter_js_namespaceObject.isTanstackRscPayloadNavigationEnabled)()) return (0, payloadRouter_js_namespaceObject.loadTanstackRscRouteData)({
175
- hasClientLoader: route.hasClientLoader || void 0 !== route.clientData,
176
- loadClientData: loadModernData,
177
- request,
178
- routeId: ctx.route?.id
179
- });
180
- return loadModernData();
181
- } catch (err) {
182
- if (isResponse(err)) {
183
- if (isTanstackRedirect(err)) throw err;
184
- if (isRedirectResponse(err)) {
185
- const location = err.headers.get('Location') || '/';
186
- throwTanstackRedirect(location);
187
- }
188
- if (404 === err.status) throw (0, react_router_namespaceObject.notFound)();
189
- }
190
- throw err;
191
- }
192
- };
193
- }
194
147
  function isRouteObjectPathlessLayout(route) {
195
148
  return !route.path && !route.index;
196
149
  }
@@ -221,7 +174,7 @@ function wrapRouteObjectLoader(route, revalidationState, options = {}) {
221
174
  const signal = ctx?.abortController?.signal || ctx?.signal || new AbortController().signal;
222
175
  const baseRequest = ctx?.context?.request instanceof Request ? ctx.context.request : void 0;
223
176
  const href = 'string' == typeof ctx?.location ? ctx.location : ctx?.location?.publicHref || ctx?.location?.href || ctx?.location?.url?.href || '';
224
- const request = baseRequest ? new Request(baseRequest, {
177
+ const request = void 0 !== baseRequest ? new Request(baseRequest, {
225
178
  signal
226
179
  }) : createModernRequest(href, signal);
227
180
  const params = mapParamsForRouteObjectLoader({
@@ -244,11 +197,11 @@ function wrapRouteObjectLoader(route, revalidationState, options = {}) {
244
197
  });
245
198
  return loadModernData();
246
199
  } catch (err) {
247
- if (isResponse(err)) {
248
- if (isTanstackRedirect(err)) throw err;
249
- if (isRedirectResponse(err)) {
200
+ if ((0, external_loaderBridge_js_namespaceObject.isResponse)(err)) {
201
+ if ((0, external_loaderBridge_js_namespaceObject.isTanstackRedirect)(err)) throw err;
202
+ if ((0, external_loaderBridge_js_namespaceObject.isRedirectResponse)(err)) {
250
203
  const location = err.headers.get('Location') || '/';
251
- throwTanstackRedirect(location);
204
+ (0, external_loaderBridge_js_namespaceObject.throwTanstackRedirect)(location);
252
205
  }
253
206
  if (404 === err.status) throw (0, react_router_namespaceObject.notFound)();
254
207
  }
@@ -258,6 +211,9 @@ function wrapRouteObjectLoader(route, revalidationState, options = {}) {
258
211
  }
259
212
  function toRouteComponent(routeObject) {
260
213
  const route = routeObject;
214
+ const lazyImport = 'function' == typeof route.lazyImport ? route.lazyImport : void 0;
215
+ const fallbackComponent = route.Component ? route.Component : route.element ? ()=>route.element : void 0;
216
+ if (lazyImport && fallbackComponent) return createServerLazyImportComponent(lazyImport, fallbackComponent);
261
217
  if (route.Component) return route.Component;
262
218
  const element = route.element;
263
219
  if (element) return ()=>element;
@@ -299,12 +255,14 @@ function createRouteFromRouteObject(opts) {
299
255
  const shouldRevalidate = modernRouteObject.shouldRevalidate;
300
256
  const shouldReload = createModernShouldReload(shouldRevalidate, revalidationState);
301
257
  const stableFallbackId = routeObject.id || modernRouteObject.file || routeObject.path || 'pathless';
258
+ const component = toRouteComponent(routeObject);
302
259
  const base = {
303
260
  getParentRoute: ()=>parent,
304
- component: toRouteComponent(routeObject),
261
+ component,
305
262
  pendingComponent: toPendingComponent(routeObject),
306
263
  errorComponent: toErrorComponent(routeObject),
307
- wrapInSuspense: true,
264
+ validateSearch: modernRouteObject.validateSearch,
265
+ loaderDeps: modernRouteObject.loaderDeps,
308
266
  staticData: createRouteStaticData({
309
267
  modernRouteId: routeObject.id,
310
268
  modernRouteAction: modernRouteObject.action,
@@ -323,6 +281,7 @@ function createRouteFromRouteObject(opts) {
323
281
  if (isRouteObjectPathlessLayout(routeObject)) base.id = stableFallbackId;
324
282
  else base.path = routeObject.index ? '/' : toTanstackPath(routeObject.path || '');
325
283
  const route = createTanstackRoute(base);
284
+ wrapRouteComponentWithModernContext(route, component, routeObject.id);
326
285
  const children = routeObject.children;
327
286
  if (children && children.length > 0) {
328
287
  const childRoutes = children.map((child)=>createRouteFromRouteObject({
@@ -334,101 +293,6 @@ function createRouteFromRouteObject(opts) {
334
293
  }
335
294
  return route;
336
295
  }
337
- function createRouteFromModernRoute(opts) {
338
- const { options = {}, parent, modernRoute } = opts;
339
- const route = modernRoute;
340
- const revalidationState = {};
341
- const modernId = route.id;
342
- const stableFallbackId = modernId || route._component || route.filename || route.data || ('function' == typeof route.loader ? route.id : void 0);
343
- const pendingComponent = route.loading || route.pendingComponent;
344
- const errorComponent = route.error || route.errorComponent;
345
- const component = route.component;
346
- const modernLoader = route.loader;
347
- const modernAction = route.action;
348
- const modernShouldRevalidate = route.shouldRevalidate;
349
- const shouldReload = createModernShouldReload(modernShouldRevalidate, revalidationState);
350
- const isPathlessLayout = 'nested' === route.type && 'boolean' != typeof route.index && void 0 === route.path;
351
- const isIndexRoute = 'nested' === route.type && Boolean(route.index);
352
- const base = {
353
- getParentRoute: ()=>parent,
354
- component: component || void 0,
355
- pendingComponent: pendingComponent || void 0,
356
- errorComponent: errorComponent || void 0,
357
- wrapInSuspense: true,
358
- staticData: createRouteStaticData({
359
- modernRouteId: modernId,
360
- modernRouteAction: modernAction,
361
- modernRouteHandle: mergeModernRouteHandle(route),
362
- modernRouteHasAction: route.hasAction || Boolean(modernAction),
363
- modernRouteHasClientLoader: route.hasClientLoader || void 0 !== route.clientData,
364
- modernRouteHasLoader: route.hasLoader || 'function' == typeof modernLoader,
365
- modernRouteIsClientComponent: route.isClientComponent,
366
- modernRouteLoader: modernLoader,
367
- modernRouteShouldRevalidate: modernShouldRevalidate
368
- }),
369
- loader: wrapModernLoader(modernRoute, modernLoader, revalidationState, options)
370
- };
371
- if (route.inValidSSRRoute) base.ssr = false;
372
- if (shouldReload) base.shouldReload = shouldReload;
373
- if (isPathlessLayout) base.id = stableFallbackId || 'pathless';
374
- else {
375
- const rawPath = route.path;
376
- base.path = isIndexRoute ? '/' : toTanstackPath(rawPath || '');
377
- }
378
- const tanstackRoute = createTanstackRoute(base);
379
- const children = route.children;
380
- if (children && children.length > 0) {
381
- const childRoutes = children.map((child)=>createRouteFromModernRoute({
382
- options,
383
- parent: tanstackRoute,
384
- modernRoute: child
385
- }));
386
- tanstackRoute.addChildren(childRoutes);
387
- }
388
- return tanstackRoute;
389
- }
390
- function createRouteTreeFromModernRoutes(routes, options = {}) {
391
- const rootModern = routes.find((r)=>r && 'nested' === r.type && r.isRoot);
392
- const rootComponent = rootModern?.component;
393
- const pendingComponent = rootModern?.loading;
394
- const errorComponent = rootModern?.error;
395
- const rootLoader = rootModern?.loader;
396
- const rootAction = rootModern?.action;
397
- const rootModernId = rootModern?.id;
398
- const rootShouldRevalidate = rootModern?.shouldRevalidate;
399
- const rootRevalidationState = {};
400
- const rootShouldReload = createModernShouldReload(rootShouldRevalidate, rootRevalidationState);
401
- const rootRouteOptions = {
402
- component: rootComponent || void 0,
403
- pendingComponent: pendingComponent || void 0,
404
- errorComponent: errorComponent || void 0,
405
- wrapInSuspense: true,
406
- notFoundComponent: external_DefaultNotFound_js_namespaceObject.DefaultNotFound,
407
- staticData: createRouteStaticData({
408
- modernRouteId: rootModernId,
409
- modernRouteAction: rootAction,
410
- modernRouteHandle: rootModern ? mergeModernRouteHandle(rootModern) : void 0,
411
- modernRouteHasAction: rootModern?.hasAction || Boolean(rootAction),
412
- modernRouteHasClientLoader: rootModern?.hasClientLoader || void 0 !== rootModern?.clientData,
413
- modernRouteHasLoader: rootModern?.hasLoader || 'function' == typeof rootLoader,
414
- modernRouteIsClientComponent: rootModern?.isClientComponent,
415
- modernRouteLoader: rootLoader,
416
- modernRouteShouldRevalidate: rootShouldRevalidate
417
- }),
418
- loader: rootModern ? wrapModernLoader(rootModern, rootLoader, rootRevalidationState, options) : void 0
419
- };
420
- if (rootShouldReload) rootRouteOptions.shouldReload = rootShouldReload;
421
- if (rootModern?.inValidSSRRoute) rootRouteOptions.ssr = false;
422
- const rootRoute = createTanstackRootRoute(rootRouteOptions);
423
- const topLevel = rootModern ? rootModern.children || [] : routes;
424
- const childRoutes = topLevel.map((child)=>createRouteFromModernRoute({
425
- options,
426
- parent: rootRoute,
427
- modernRoute: child
428
- }));
429
- rootRoute.addChildren(childRoutes);
430
- return rootRoute;
431
- }
432
296
  function getRootLikeRouteObject(routes) {
433
297
  return routes.find((route)=>'/' === route.path && !route.index);
434
298
  }
@@ -437,12 +301,14 @@ function createRouteTreeFromRouteObjects(routes, options = {}) {
437
301
  const rootRevalidationState = {};
438
302
  const rootShouldRevalidate = rootLikeRoute?.shouldRevalidate;
439
303
  const rootShouldReload = createModernShouldReload(rootShouldRevalidate, rootRevalidationState);
304
+ const rootComponent = rootLikeRoute ? toRouteComponent(rootLikeRoute) : void 0;
440
305
  const rootRouteOptions = {
441
- component: rootLikeRoute ? toRouteComponent(rootLikeRoute) : void 0,
306
+ component: rootComponent,
442
307
  pendingComponent: rootLikeRoute ? toPendingComponent(rootLikeRoute) : void 0,
443
308
  errorComponent: rootLikeRoute ? toErrorComponent(rootLikeRoute) : void 0,
444
- wrapInSuspense: true,
445
- notFoundComponent: external_DefaultNotFound_js_namespaceObject.DefaultNotFound,
309
+ validateSearch: rootLikeRoute?.validateSearch,
310
+ loaderDeps: rootLikeRoute?.loaderDeps,
311
+ notFoundComponent: context_namespaceObject.DefaultNotFound,
446
312
  staticData: createRouteStaticData({
447
313
  modernRouteId: rootLikeRoute?.id,
448
314
  modernRouteAction: rootLikeRoute?.action,
@@ -459,6 +325,7 @@ function createRouteTreeFromRouteObjects(routes, options = {}) {
459
325
  if (rootShouldReload) rootRouteOptions.shouldReload = rootShouldReload;
460
326
  if (rootLikeRoute?.inValidSSRRoute) rootRouteOptions.ssr = false;
461
327
  const rootRoute = createTanstackRootRoute(rootRouteOptions);
328
+ if (rootComponent) rootRoute.options.component = (0, external_outlet_js_namespaceObject.withModernRouteMatchContext)(rootComponent, react_router_namespaceObject.rootRouteId);
462
329
  const topLevel = rootLikeRoute ? [
463
330
  ...rootLikeRoute.children || [],
464
331
  ...routes.filter((route)=>route !== rootLikeRoute)
@@ -473,17 +340,17 @@ function createRouteTreeFromRouteObjects(routes, options = {}) {
473
340
  }
474
341
  function getModernRouteIdsFromMatches(router) {
475
342
  const matches = router.state.matches || [];
343
+ const routesById = router.routesById;
476
344
  const ids = matches.map((match)=>{
477
- const route = match.route;
478
- return route?.options?.staticData?.modernRouteId;
345
+ const normalizedMatch = match;
346
+ const routeId = 'string' == typeof normalizedMatch.routeId ? normalizedMatch.routeId : void 0;
347
+ return normalizedMatch.route?.options?.staticData?.modernRouteId ?? (routeId ? routesById?.[routeId]?.options?.staticData?.modernRouteId : void 0);
479
348
  }).filter((id)=>'string' == typeof id);
480
349
  return Array.from(new Set(ids));
481
350
  }
482
- exports.createRouteTreeFromModernRoutes = __webpack_exports__.createRouteTreeFromModernRoutes;
483
351
  exports.createRouteTreeFromRouteObjects = __webpack_exports__.createRouteTreeFromRouteObjects;
484
352
  exports.getModernRouteIdsFromMatches = __webpack_exports__.getModernRouteIdsFromMatches;
485
353
  for(var __rspack_i in __webpack_exports__)if (-1 === [
486
- "createRouteTreeFromModernRoutes",
487
354
  "createRouteTreeFromRouteObjects",
488
355
  "getModernRouteIdsFromMatches"
489
356
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ routerPlugin: ()=>internal_namespaceObject.routerPlugin
32
+ });
33
+ require("./register.js");
34
+ const internal_namespaceObject = require("@modern-js/runtime/router/internal");
35
+ exports.routerPlugin = __webpack_exports__.routerPlugin;
36
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
37
+ "routerPlugin"
38
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
39
+ Object.defineProperty(exports, '__esModule', {
40
+ value: true
41
+ });
@@ -2,11 +2,15 @@
2
2
  "use client";
3
3
  var __webpack_require__ = {};
4
4
  (()=>{
5
- __webpack_require__.d = (exports1, definition)=>{
6
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
- enumerable: true,
8
- get: definition[key]
9
- });
5
+ __webpack_require__.d = (exports1, getters, values)=>{
6
+ var define = (defs, kind)=>{
7
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
8
+ enumerable: true,
9
+ [kind]: defs[key]
10
+ });
11
+ };
12
+ define(getters, "get");
13
+ define(values, "value");
10
14
  };
11
15
  })();
12
16
  (()=>{
@@ -2,11 +2,15 @@
2
2
  "use client";
3
3
  var __webpack_require__ = {};
4
4
  (()=>{
5
- __webpack_require__.d = (exports1, definition)=>{
6
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
- enumerable: true,
8
- get: definition[key]
9
- });
5
+ __webpack_require__.d = (exports1, getters, values)=>{
6
+ var define = (defs, kind)=>{
7
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
8
+ enumerable: true,
9
+ [kind]: defs[key]
10
+ });
11
+ };
12
+ define(getters, "get");
13
+ define(values, "value");
10
14
  };
11
15
  })();
12
16
  (()=>{