@bleedingdev/modern-js-plugin-tanstack 3.5.0-ultramodern.9 → 3.5.0-ultramodern.90

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 (270) hide show
  1. package/dist/cjs/cli/artifacts.js +157 -0
  2. package/dist/cjs/cli/index.js +8 -79
  3. package/dist/cjs/cli/tanstackTypes/canonicalRoutes.js +113 -0
  4. package/dist/cjs/cli/tanstackTypes/shared.js +123 -0
  5. package/dist/cjs/cli/tanstackTypes/source.js +255 -0
  6. package/dist/cjs/cli/tanstackTypes.js +4 -350
  7. package/dist/cjs/runtime/blockingSubscribe.js +57 -0
  8. package/dist/cjs/runtime/{pluginCore.js → clientBasepath.js} +12 -19
  9. package/dist/cjs/runtime/clientHydration.js +118 -0
  10. package/dist/cjs/runtime/dataMutation.js +11 -176
  11. package/dist/cjs/runtime/formData.js +116 -0
  12. package/dist/cjs/runtime/loaderBridge.js +7 -11
  13. package/dist/cjs/runtime/plugin.js +21 -125
  14. package/dist/cjs/runtime/plugin.node.js +45 -125
  15. package/dist/cjs/runtime/pluginShared.js +87 -0
  16. package/dist/cjs/runtime/prefetchLink.js +15 -2
  17. package/dist/cjs/runtime/register.js +3 -16
  18. package/dist/cjs/runtime/routeTree/components.js +102 -0
  19. package/dist/cjs/runtime/routeTree/construction.js +152 -0
  20. package/dist/cjs/runtime/routeTree/index.js +47 -0
  21. package/dist/cjs/runtime/routeTree/loaders.js +158 -0
  22. package/dist/cjs/runtime/routeTree/paths.js +57 -0
  23. package/dist/cjs/runtime/routeTree/staticData.js +63 -0
  24. package/dist/cjs/runtime/routeTree/tanstackRoutes.js +57 -0
  25. package/dist/cjs/runtime/routeTree/types.js +18 -0
  26. package/dist/cjs/runtime/routeTree.js +7 -320
  27. package/dist/cjs/runtime/router.js +15 -2
  28. package/dist/cjs/runtime/rsc/CompositeComponent.js +18 -13
  29. package/dist/cjs/runtime/rsc/ReplayableStream.js +0 -4
  30. package/dist/cjs/runtime/rsc/RscNodeRenderer.js +5 -16
  31. package/dist/cjs/runtime/rsc/client.js +8 -25
  32. package/dist/cjs/runtime/rsc/flightSerialization.js +132 -0
  33. package/dist/cjs/runtime/rsc/payloadErrors.js +99 -0
  34. package/dist/cjs/runtime/rsc/payloadFetch.js +105 -0
  35. package/dist/cjs/runtime/rsc/payloadRouter.js +21 -142
  36. package/dist/cjs/runtime/rsc/payloadRoutes.js +94 -0
  37. package/dist/cjs/runtime/rsc/payloadStorage.js +58 -0
  38. package/dist/cjs/runtime/rsc/server.js +14 -18
  39. package/dist/cjs/runtime/rsc/shared.js +68 -0
  40. package/dist/cjs/runtime/rsc/slotUsageSanitizer.js +1 -0
  41. package/dist/cjs/runtime/rsc/treeGetter.js +72 -0
  42. package/dist/cjs/runtime/shared/isAbsoluteUrl.js +47 -0
  43. package/dist/cjs/runtime/ssrManagedTags.js +103 -0
  44. package/dist/cjs/runtime/ssrPreload.js +89 -0
  45. package/dist/cjs/runtime/ssrTypes.js +18 -0
  46. package/dist/cjs/runtime/state.js +1 -1
  47. package/dist/cjs/runtime/submitAction.js +161 -0
  48. package/dist/cjs/runtime/utils.js +49 -86
  49. package/dist/esm/cli/artifacts.mjs +103 -0
  50. package/dist/esm/cli/index.mjs +8 -82
  51. package/dist/esm/cli/tanstackTypes/canonicalRoutes.mjs +75 -0
  52. package/dist/esm/cli/tanstackTypes/shared.mjs +61 -0
  53. package/dist/esm/cli/tanstackTypes/source.mjs +207 -0
  54. package/dist/esm/cli/tanstackTypes.mjs +2 -339
  55. package/dist/esm/runtime/blockingSubscribe.mjs +19 -0
  56. package/dist/esm/runtime/clientBasepath.mjs +10 -0
  57. package/dist/esm/runtime/clientHydration.mjs +71 -0
  58. package/dist/esm/runtime/dataMutation.mjs +2 -167
  59. package/dist/esm/runtime/formData.mjs +63 -0
  60. package/dist/esm/runtime/loaderBridge.mjs +5 -9
  61. package/dist/esm/runtime/plugin.mjs +14 -118
  62. package/dist/esm/runtime/plugin.node.mjs +41 -121
  63. package/dist/esm/runtime/pluginShared.mjs +40 -0
  64. package/dist/esm/runtime/prefetchLink.mjs +18 -5
  65. package/dist/esm/runtime/register.mjs +1 -14
  66. package/dist/esm/runtime/routeTree/components.mjs +55 -0
  67. package/dist/esm/runtime/routeTree/construction.mjs +111 -0
  68. package/dist/esm/runtime/routeTree/index.mjs +2 -0
  69. package/dist/esm/runtime/routeTree/loaders.mjs +117 -0
  70. package/dist/esm/runtime/routeTree/paths.mjs +16 -0
  71. package/dist/esm/runtime/routeTree/staticData.mjs +22 -0
  72. package/dist/esm/runtime/routeTree/tanstackRoutes.mjs +13 -0
  73. package/dist/esm/runtime/routeTree/types.mjs +0 -0
  74. package/dist/esm/runtime/routeTree.mjs +1 -318
  75. package/dist/esm/runtime/router.mjs +16 -2
  76. package/dist/esm/runtime/rsc/CompositeComponent.mjs +18 -13
  77. package/dist/esm/runtime/rsc/ReplayableStream.mjs +1 -1
  78. package/dist/esm/runtime/rsc/RscNodeRenderer.mjs +4 -15
  79. package/dist/esm/runtime/rsc/client.mjs +6 -26
  80. package/dist/esm/runtime/rsc/flightSerialization.mjs +88 -0
  81. package/dist/esm/runtime/rsc/payloadErrors.mjs +49 -0
  82. package/dist/esm/runtime/rsc/payloadFetch.mjs +55 -0
  83. package/dist/esm/runtime/rsc/payloadRouter.mjs +12 -133
  84. package/dist/esm/runtime/rsc/payloadRoutes.mjs +50 -0
  85. package/dist/esm/runtime/rsc/payloadStorage.mjs +14 -0
  86. package/dist/esm/runtime/rsc/server.mjs +17 -21
  87. package/dist/esm/runtime/rsc/shared.mjs +21 -0
  88. package/dist/esm/runtime/rsc/slotUsageSanitizer.mjs +1 -0
  89. package/dist/esm/runtime/rsc/treeGetter.mjs +34 -0
  90. package/dist/esm/runtime/shared/isAbsoluteUrl.mjs +9 -0
  91. package/dist/esm/runtime/ssrManagedTags.mjs +53 -0
  92. package/dist/esm/runtime/ssrPreload.mjs +51 -0
  93. package/dist/esm/runtime/ssrTypes.mjs +0 -0
  94. package/dist/esm/runtime/state.mjs +1 -1
  95. package/dist/esm/runtime/submitAction.mjs +120 -0
  96. package/dist/esm/runtime/utils.mjs +47 -75
  97. package/dist/esm-node/cli/artifacts.mjs +104 -0
  98. package/dist/esm-node/cli/index.mjs +8 -82
  99. package/dist/esm-node/cli/tanstackTypes/canonicalRoutes.mjs +76 -0
  100. package/dist/esm-node/cli/tanstackTypes/shared.mjs +62 -0
  101. package/dist/esm-node/cli/tanstackTypes/source.mjs +208 -0
  102. package/dist/esm-node/cli/tanstackTypes.mjs +2 -339
  103. package/dist/esm-node/runtime/blockingSubscribe.mjs +20 -0
  104. package/dist/esm-node/runtime/clientBasepath.mjs +11 -0
  105. package/dist/esm-node/runtime/clientHydration.mjs +72 -0
  106. package/dist/esm-node/runtime/dataMutation.mjs +2 -167
  107. package/dist/esm-node/runtime/formData.mjs +64 -0
  108. package/dist/esm-node/runtime/loaderBridge.mjs +5 -9
  109. package/dist/esm-node/runtime/plugin.mjs +14 -118
  110. package/dist/esm-node/runtime/plugin.node.mjs +41 -121
  111. package/dist/esm-node/runtime/pluginShared.mjs +41 -0
  112. package/dist/esm-node/runtime/prefetchLink.mjs +18 -5
  113. package/dist/esm-node/runtime/register.mjs +1 -14
  114. package/dist/esm-node/runtime/routeTree/components.mjs +56 -0
  115. package/dist/esm-node/runtime/routeTree/construction.mjs +112 -0
  116. package/dist/esm-node/runtime/routeTree/index.mjs +3 -0
  117. package/dist/esm-node/runtime/routeTree/loaders.mjs +118 -0
  118. package/dist/esm-node/runtime/routeTree/paths.mjs +17 -0
  119. package/dist/esm-node/runtime/routeTree/staticData.mjs +23 -0
  120. package/dist/esm-node/runtime/routeTree/tanstackRoutes.mjs +14 -0
  121. package/dist/esm-node/runtime/routeTree/types.mjs +1 -0
  122. package/dist/esm-node/runtime/routeTree.mjs +1 -318
  123. package/dist/esm-node/runtime/router.mjs +16 -2
  124. package/dist/esm-node/runtime/rsc/CompositeComponent.mjs +18 -13
  125. package/dist/esm-node/runtime/rsc/ReplayableStream.mjs +1 -1
  126. package/dist/esm-node/runtime/rsc/RscNodeRenderer.mjs +4 -15
  127. package/dist/esm-node/runtime/rsc/client.mjs +6 -26
  128. package/dist/esm-node/runtime/rsc/flightSerialization.mjs +89 -0
  129. package/dist/esm-node/runtime/rsc/payloadErrors.mjs +50 -0
  130. package/dist/esm-node/runtime/rsc/payloadFetch.mjs +56 -0
  131. package/dist/esm-node/runtime/rsc/payloadRouter.mjs +12 -133
  132. package/dist/esm-node/runtime/rsc/payloadRoutes.mjs +51 -0
  133. package/dist/esm-node/runtime/rsc/payloadStorage.mjs +15 -0
  134. package/dist/esm-node/runtime/rsc/server.mjs +17 -21
  135. package/dist/esm-node/runtime/rsc/shared.mjs +22 -0
  136. package/dist/esm-node/runtime/rsc/slotUsageSanitizer.mjs +1 -0
  137. package/dist/esm-node/runtime/rsc/treeGetter.mjs +35 -0
  138. package/dist/esm-node/runtime/shared/isAbsoluteUrl.mjs +10 -0
  139. package/dist/esm-node/runtime/ssrManagedTags.mjs +54 -0
  140. package/dist/esm-node/runtime/ssrPreload.mjs +52 -0
  141. package/dist/esm-node/runtime/ssrTypes.mjs +1 -0
  142. package/dist/esm-node/runtime/state.mjs +1 -1
  143. package/dist/esm-node/runtime/submitAction.mjs +121 -0
  144. package/dist/esm-node/runtime/utils.mjs +47 -75
  145. package/dist/types/cli/artifacts.d.ts +33 -0
  146. package/dist/types/cli/index.d.ts +2 -22
  147. package/dist/types/cli/tanstackTypes/canonicalRoutes.d.ts +22 -0
  148. package/dist/types/cli/tanstackTypes/shared.d.ts +20 -0
  149. package/dist/types/cli/tanstackTypes/source.d.ts +12 -0
  150. package/dist/types/cli/tanstackTypes.d.ts +3 -31
  151. package/dist/types/runtime/blockingSubscribe.d.ts +1 -0
  152. package/dist/types/runtime/clientBasepath.d.ts +1 -0
  153. package/dist/types/runtime/clientHydration.d.ts +10 -0
  154. package/dist/types/runtime/dataMutation.d.ts +3 -12
  155. package/dist/types/runtime/formData.d.ts +24 -0
  156. package/dist/types/runtime/loaderBridge.d.ts +2 -1
  157. package/dist/types/runtime/plugin.d.ts +1 -1
  158. package/dist/types/runtime/plugin.node.d.ts +1 -1
  159. package/dist/types/runtime/pluginShared.d.ts +38 -0
  160. package/dist/types/runtime/register.d.ts +10 -9
  161. package/dist/types/runtime/routeTree/components.d.ts +7 -0
  162. package/dist/types/runtime/routeTree/construction.d.ts +5 -0
  163. package/dist/types/runtime/routeTree/index.d.ts +2 -0
  164. package/dist/types/runtime/routeTree/loaders.d.ts +4 -0
  165. package/dist/types/runtime/routeTree/paths.d.ts +3 -0
  166. package/dist/types/runtime/routeTree/staticData.d.ts +19 -0
  167. package/dist/types/runtime/routeTree/tanstackRoutes.d.ts +4 -0
  168. package/dist/types/runtime/routeTree/types.d.ts +76 -0
  169. package/dist/types/runtime/routeTree.d.ts +1 -9
  170. package/dist/types/runtime/router.d.ts +6 -7
  171. package/dist/types/runtime/rsc/CompositeComponent.d.ts +1 -2
  172. package/dist/types/runtime/rsc/ReplayableStream.d.ts +3 -2
  173. package/dist/types/runtime/rsc/RscNodeRenderer.d.ts +2 -3
  174. package/dist/types/runtime/rsc/SlotContext.d.ts +2 -1
  175. package/dist/types/runtime/rsc/client.d.ts +2 -0
  176. package/dist/types/runtime/rsc/flightSerialization.d.ts +3 -0
  177. package/dist/types/runtime/rsc/payloadErrors.d.ts +6 -0
  178. package/dist/types/runtime/rsc/payloadFetch.d.ts +8 -0
  179. package/dist/types/runtime/rsc/payloadRouter.d.ts +2 -10
  180. package/dist/types/runtime/rsc/payloadRoutes.d.ts +40 -0
  181. package/dist/types/runtime/rsc/payloadStorage.d.ts +5 -0
  182. package/dist/types/runtime/rsc/shared.d.ts +18 -0
  183. package/dist/types/runtime/rsc/treeGetter.d.ts +1 -0
  184. package/dist/types/runtime/shared/isAbsoluteUrl.d.ts +1 -0
  185. package/dist/types/runtime/ssrManagedTags.d.ts +7 -0
  186. package/dist/types/runtime/ssrPreload.d.ts +2 -0
  187. package/dist/types/runtime/ssrTypes.d.ts +44 -0
  188. package/dist/types/runtime/state.d.ts +1 -1
  189. package/dist/types/runtime/submitAction.d.ts +14 -0
  190. package/dist/types/runtime/types.d.ts +4 -10
  191. package/dist/types/runtime/utils.d.ts +4 -24
  192. package/package.json +37 -17
  193. package/rstest.config.mts +23 -0
  194. package/src/cli/artifacts.ts +255 -0
  195. package/src/cli/index.ts +7 -185
  196. package/src/cli/tanstackTypes/canonicalRoutes.ts +157 -0
  197. package/src/cli/tanstackTypes/shared.ts +113 -0
  198. package/src/cli/tanstackTypes/source.ts +414 -0
  199. package/src/cli/tanstackTypes.ts +4 -647
  200. package/src/runtime/blockingSubscribe.ts +48 -0
  201. package/src/runtime/clientBasepath.ts +12 -0
  202. package/src/runtime/clientHydration.ts +149 -0
  203. package/src/runtime/dataMutation.tsx +9 -306
  204. package/src/runtime/formData.ts +153 -0
  205. package/src/runtime/loaderBridge.ts +11 -12
  206. package/src/runtime/plugin.node.tsx +76 -291
  207. package/src/runtime/plugin.tsx +21 -257
  208. package/src/runtime/pluginShared.ts +112 -0
  209. package/src/runtime/prefetchLink.tsx +78 -15
  210. package/src/runtime/register.ts +10 -42
  211. package/src/runtime/routeTree/components.ts +130 -0
  212. package/src/runtime/routeTree/construction.ts +238 -0
  213. package/src/runtime/routeTree/index.ts +7 -0
  214. package/src/runtime/routeTree/loaders.ts +232 -0
  215. package/src/runtime/routeTree/paths.ts +36 -0
  216. package/src/runtime/routeTree/staticData.ts +66 -0
  217. package/src/runtime/routeTree/tanstackRoutes.ts +36 -0
  218. package/src/runtime/routeTree/types.ts +87 -0
  219. package/src/runtime/routeTree.ts +5 -750
  220. package/src/runtime/router.ts +35 -7
  221. package/src/runtime/rsc/CompositeComponent.tsx +29 -20
  222. package/src/runtime/rsc/ReplayableStream.ts +2 -2
  223. package/src/runtime/rsc/RscNodeRenderer.tsx +9 -27
  224. package/src/runtime/rsc/SlotContext.tsx +1 -1
  225. package/src/runtime/rsc/client.tsx +12 -40
  226. package/src/runtime/rsc/flightSerialization.ts +158 -0
  227. package/src/runtime/rsc/payloadErrors.ts +73 -0
  228. package/src/runtime/rsc/payloadFetch.ts +92 -0
  229. package/src/runtime/rsc/payloadRouter.ts +29 -234
  230. package/src/runtime/rsc/payloadRoutes.ts +122 -0
  231. package/src/runtime/rsc/payloadStorage.ts +35 -0
  232. package/src/runtime/rsc/server.tsx +20 -29
  233. package/src/runtime/rsc/shared.ts +70 -0
  234. package/src/runtime/rsc/slotUsageSanitizer.ts +4 -0
  235. package/src/runtime/rsc/treeGetter.tsx +52 -0
  236. package/src/runtime/shared/isAbsoluteUrl.ts +8 -0
  237. package/src/runtime/ssrManagedTags.ts +107 -0
  238. package/src/runtime/ssrPreload.ts +125 -0
  239. package/src/runtime/ssrTypes.ts +51 -0
  240. package/src/runtime/state.ts +9 -3
  241. package/src/runtime/submitAction.ts +201 -0
  242. package/src/runtime/types.ts +4 -18
  243. package/src/runtime/utils.tsx +76 -110
  244. package/src/types/react-server-dom-rspack.d.ts +56 -0
  245. package/tests/castRatchet.test.ts +85 -0
  246. package/tests/realm-isolation.test.ts +114 -0
  247. package/tests/router/cli.test.ts +7 -0
  248. package/tests/router/clientHydration.test.tsx +61 -0
  249. package/tests/router/dataMutation.test.tsx +59 -0
  250. package/tests/router/fixtures/legacyRuntimeRouter.ts +10 -0
  251. package/tests/router/fixtures/router-gen.golden.txt +71 -0
  252. package/tests/router/fixtures/router-gen.oxlint.json +5 -0
  253. package/tests/router/flightSerialization.roundtrip.test.tsx +137 -0
  254. package/tests/router/generateRouteArtifacts.test.ts +106 -0
  255. package/tests/router/hooks.test.ts +14 -0
  256. package/tests/router/loaderBridge.test.ts +21 -0
  257. package/tests/router/prefetchLink.test.tsx +106 -59
  258. package/tests/router/prefetchLinkPreload.test.tsx +85 -0
  259. package/tests/router/register.test.ts +1 -39
  260. package/tests/router/routeTree.test.ts +51 -11
  261. package/tests/router/routerCompatibility.test.ts +245 -0
  262. package/tests/router/rsc.test.tsx +189 -0
  263. package/tests/router/rscPayloadRouterMatrix.test.ts +197 -0
  264. package/tests/router/slotUsageSanitizer.test.ts +23 -0
  265. package/tests/router/ssrPreload.test.ts +30 -0
  266. package/tests/router/tanstackTypes.test.ts +298 -1
  267. package/dist/esm/runtime/pluginCore.mjs +0 -14
  268. package/dist/esm-node/runtime/pluginCore.mjs +0 -15
  269. package/dist/types/runtime/pluginCore.d.ts +0 -21
  270. package/src/runtime/pluginCore.ts +0 -48
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ generateTanstackRouterTypesSourceForEntry: ()=>generateTanstackRouterTypesSourceForEntry
41
+ });
42
+ const external_node_path_namespaceObject = require("node:path");
43
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
44
+ const cli_namespaceObject = require("@modern-js/runtime/cli");
45
+ const external_shared_js_namespaceObject = require("./shared.js");
46
+ async function generateTanstackRouterTypesSourceForEntry(opts) {
47
+ const { appContext, entryName, generatedDirName = 'modern-tanstack', routes } = opts;
48
+ const outDir = external_node_path_default().join(appContext.srcDirectory, generatedDirName, entryName);
49
+ const rootModern = routes.find((r)=>{
50
+ const extras = r;
51
+ return r && 'nested' === extras.type && extras.isRoot;
52
+ });
53
+ const rootExtras = rootModern;
54
+ const topLevel = rootModern ? rootExtras?.children || [] : routes;
55
+ const imports = [];
56
+ const statements = [];
57
+ const loaderImportMap = new Map();
58
+ const componentImportMap = new Map();
59
+ const searchContractImportMap = new Map();
60
+ const usedRouteVarNames = new Set();
61
+ let loaderIndex = 0;
62
+ let componentIndex = 0;
63
+ let validateSearchIndex = 0;
64
+ let loaderDepsIndex = 0;
65
+ let routeIndex = 0;
66
+ const getImportNameForComponent = (componentPath)=>{
67
+ if ('string' != typeof componentPath || 0 === componentPath.length) return Promise.resolve(null);
68
+ let pendingImportName = componentImportMap.get(componentPath);
69
+ if (!pendingImportName) {
70
+ pendingImportName = (async ()=>{
71
+ const resolvedNoExt = await resolveRouteModuleNoExt(componentPath);
72
+ if (!resolvedNoExt) return null;
73
+ const relImport = (0, external_shared_js_namespaceObject.normalizeRelativeImport)(external_node_path_default().relative(outDir, resolvedNoExt));
74
+ const componentName = `component_${componentIndex++}`;
75
+ imports.push(`import ${componentName} from ${(0, external_shared_js_namespaceObject.quote)(relImport)};`);
76
+ return componentName;
77
+ })();
78
+ componentImportMap.set(componentPath, pendingImportName);
79
+ }
80
+ return pendingImportName;
81
+ };
82
+ const resolveRouteModuleNoExt = async (aliasedNoExtPath)=>{
83
+ const prefix = `${appContext.internalSrcAlias}/`;
84
+ let absNoExt;
85
+ if (aliasedNoExtPath.startsWith(prefix)) {
86
+ const rel = aliasedNoExtPath.slice(prefix.length);
87
+ absNoExt = external_node_path_default().join(appContext.srcDirectory, rel);
88
+ } else absNoExt = external_node_path_default().isAbsolute(aliasedNoExtPath) ? aliasedNoExtPath : external_node_path_default().join(appContext.srcDirectory, aliasedNoExtPath);
89
+ return (0, external_shared_js_namespaceObject.resolveFileNoExt)(absNoExt);
90
+ };
91
+ const getImportNamesForLoader = async (aliasedNoExtPath, inline, hasAction)=>{
92
+ const key = `${inline ? 'inline' : 'default'}:${hasAction ? 'action' : 'loader'}:${aliasedNoExtPath}`;
93
+ const existing = loaderImportMap.get(key);
94
+ if (existing) return {
95
+ loaderName: existing,
96
+ actionName: hasAction ? existing.replace(/^loader_/, 'action_') : null
97
+ };
98
+ const resolvedNoExt = await resolveRouteModuleNoExt(aliasedNoExtPath);
99
+ if (!resolvedNoExt) return null;
100
+ const relImport = (0, external_shared_js_namespaceObject.normalizeRelativeImport)(external_node_path_default().relative(outDir, resolvedNoExt));
101
+ const importName = `loader_${loaderIndex++}`;
102
+ const actionName = hasAction ? importName.replace(/^loader_/, 'action_') : null;
103
+ if (inline) {
104
+ const specifiers = [
105
+ `loader as ${importName}`
106
+ ];
107
+ if (actionName) specifiers.push(`action as ${actionName}`);
108
+ imports.push(`import { ${specifiers.join(', ')} } from ${(0, external_shared_js_namespaceObject.quote)(relImport)};`);
109
+ } else imports.push(`import ${importName} from ${(0, external_shared_js_namespaceObject.quote)(relImport)};`);
110
+ loaderImportMap.set(key, importName);
111
+ return {
112
+ loaderName: importName,
113
+ actionName
114
+ };
115
+ };
116
+ const getImportNameForSearchContract = async (aliasedNoExtPath, exportName)=>{
117
+ const key = `${exportName}:${aliasedNoExtPath}`;
118
+ const existing = searchContractImportMap.get(key);
119
+ if (existing) return existing;
120
+ const resolvedNoExt = await resolveRouteModuleNoExt(aliasedNoExtPath);
121
+ if (!resolvedNoExt) return null;
122
+ const relImport = (0, external_shared_js_namespaceObject.normalizeRelativeImport)(external_node_path_default().relative(outDir, resolvedNoExt));
123
+ const importName = 'validateSearch' === exportName ? `validateSearch_${validateSearchIndex++}` : `loaderDeps_${loaderDepsIndex++}`;
124
+ imports.push(`import { ${exportName} as ${importName} } from ${(0, external_shared_js_namespaceObject.quote)(relImport)};`);
125
+ searchContractImportMap.set(key, importName);
126
+ return importName;
127
+ };
128
+ const reserveRouteVarName = (preferred)=>{
129
+ let candidate = preferred;
130
+ let suffix = 1;
131
+ while(usedRouteVarNames.has(candidate))candidate = `${preferred}_${suffix++}`;
132
+ usedRouteVarNames.add(candidate);
133
+ return candidate;
134
+ };
135
+ const createRouteVarName = (route)=>{
136
+ const id = route.id;
137
+ const base = id ? (0, cli_namespaceObject.makeLegalIdentifier)(id) : `r_${routeIndex++}`;
138
+ return reserveRouteVarName(`route_${base}`);
139
+ };
140
+ const buildRoute = async (opts)=>{
141
+ const { parentVar, route } = opts;
142
+ const varName = createRouteVarName(route);
143
+ const routeExtras = route;
144
+ const loaderInfo = (0, external_shared_js_namespaceObject.pickModernLoaderModule)(route);
145
+ const routeAction = routeExtras.action;
146
+ const loaderImports = loaderInfo ? await getImportNamesForLoader(loaderInfo.loaderPath, loaderInfo.inline, Boolean(loaderInfo.inline && routeAction === loaderInfo.loaderPath)) : null;
147
+ const loaderName = loaderImports?.loaderName || null;
148
+ const actionName = loaderImports?.actionName || null;
149
+ const searchContractInfo = (0, external_shared_js_namespaceObject.pickRouteSearchContractModules)(route);
150
+ const validateSearchName = searchContractInfo.validateSearchPath ? await getImportNameForSearchContract(searchContractInfo.validateSearchPath, 'validateSearch') : null;
151
+ const loaderDepsName = searchContractInfo.loaderDepsPath ? await getImportNameForSearchContract(searchContractInfo.loaderDepsPath, 'loaderDeps') : null;
152
+ const rawPath = routeExtras.path;
153
+ const hasSplat = 'string' == typeof rawPath && rawPath.includes('*');
154
+ const routeOpts = [
155
+ `getParentRoute: () => ${parentVar},`
156
+ ];
157
+ const componentName = await getImportNameForComponent(routeExtras._component);
158
+ if (componentName) routeOpts.push(`component: ${componentName},`);
159
+ if ((0, external_shared_js_namespaceObject.isPathlessLayout)(route)) {
160
+ const id = routeExtras.id;
161
+ routeOpts.push(`id: ${(0, external_shared_js_namespaceObject.quote)(id || 'pathless')},`);
162
+ } else {
163
+ const p = (0, external_shared_js_namespaceObject.isIndexRoute)(route) ? '/' : (0, external_shared_js_namespaceObject.toTanstackPath)(rawPath || '');
164
+ routeOpts.push(`path: ${(0, external_shared_js_namespaceObject.quote)(p)},`);
165
+ }
166
+ if (loaderName) routeOpts.push(`loader: modernLoaderToTanstack({ hasSplat: ${hasSplat} }, ${loaderName}),`);
167
+ if (validateSearchName) routeOpts.push(`validateSearch: ${validateSearchName},`);
168
+ if (loaderDepsName) routeOpts.push(`loaderDeps: ${loaderDepsName},`);
169
+ const staticDataSnippet = (0, external_shared_js_namespaceObject.createRouteStaticDataSnippet)({
170
+ modernRouteId: routeExtras.id,
171
+ loaderName,
172
+ actionName
173
+ });
174
+ if (staticDataSnippet) routeOpts.push(staticDataSnippet);
175
+ const children = routeExtras.children;
176
+ const hasChildren = Boolean(children && children.length > 0);
177
+ const routeCtorVarName = hasChildren ? reserveRouteVarName(`${varName}__base`) : varName;
178
+ statements.push(`const ${routeCtorVarName} = createRoute({\n ${routeOpts.join('\n ')}\n});`);
179
+ if (children && children.length > 0) {
180
+ const childVars = [];
181
+ for (const child of children)childVars.push(await buildRoute({
182
+ parentVar: routeCtorVarName,
183
+ route: child
184
+ }));
185
+ statements.push(`const ${varName} = ${routeCtorVarName}.addChildren([${childVars.join(', ')}]);`);
186
+ }
187
+ return varName;
188
+ };
189
+ const rootLoaderInfo = rootModern ? (0, external_shared_js_namespaceObject.pickModernLoaderModule)(rootModern) : null;
190
+ const rootAction = rootExtras?.action;
191
+ const rootLoaderImports = rootLoaderInfo?.loaderPath ? await getImportNamesForLoader(rootLoaderInfo.loaderPath, rootLoaderInfo.inline, Boolean(rootLoaderInfo.inline && rootAction === rootLoaderInfo.loaderPath)) : null;
192
+ const rootLoaderName = rootLoaderImports?.loaderName || null;
193
+ const rootActionName = rootLoaderImports?.actionName || null;
194
+ const rootSearchContractInfo = rootModern ? (0, external_shared_js_namespaceObject.pickRouteSearchContractModules)(rootModern) : null;
195
+ const rootValidateSearchName = rootSearchContractInfo?.validateSearchPath ? await getImportNameForSearchContract(rootSearchContractInfo.validateSearchPath, 'validateSearch') : null;
196
+ const rootLoaderDepsName = rootSearchContractInfo?.loaderDepsPath ? await getImportNameForSearchContract(rootSearchContractInfo.loaderDepsPath, 'loaderDeps') : null;
197
+ const topLevelVars = [];
198
+ for (const route of topLevel)topLevelVars.push(await buildRoute({
199
+ parentVar: 'rootRoute',
200
+ route
201
+ }));
202
+ const rootOpts = [];
203
+ const rootComponentName = await getImportNameForComponent(rootExtras?._component);
204
+ if (rootComponentName) rootOpts.push(`component: ${rootComponentName},`);
205
+ if (rootLoaderName) rootOpts.push(`loader: modernLoaderToTanstack({ hasSplat: false }, ${rootLoaderName}),`);
206
+ if (rootValidateSearchName) rootOpts.push(`validateSearch: ${rootValidateSearchName},`);
207
+ if (rootLoaderDepsName) rootOpts.push(`loaderDeps: ${rootLoaderDepsName},`);
208
+ const routerGenTs = `// This file is auto-generated by Modern.js. Do not edit manually.
209
+
210
+ import {
211
+ createMemoryHistory,
212
+ createRootRouteWithContext,
213
+ createRoute,
214
+ createRouter,
215
+ createRouteStaticData,
216
+ type ModernRouterContext,
217
+ modernLoaderToTanstack,
218
+ modernTanstackRouterFastDefaults,
219
+ } from '@modern-js/plugin-tanstack/runtime';
220
+
221
+ ${imports.join('\n')}
222
+
223
+ export const rootRoute = createRootRouteWithContext<ModernRouterContext>()({
224
+ ${rootOpts.join('\n ')}
225
+ ${(0, external_shared_js_namespaceObject.createRouteStaticDataSnippet)({
226
+ modernRouteId: rootExtras?.id,
227
+ loaderName: rootLoaderName,
228
+ actionName: rootActionName
229
+ }) || ''}
230
+ });
231
+
232
+ ${statements.join('\n\n')}
233
+
234
+ export const routeTree = rootRoute.addChildren([${topLevelVars.join(', ')}]);
235
+
236
+ export const router = createRouter({
237
+ ...modernTanstackRouterFastDefaults,
238
+ routeTree,
239
+ history: createMemoryHistory({
240
+ initialEntries: ['/'],
241
+ }),
242
+ context: {} as ModernRouterContext,
243
+ });
244
+ `;
245
+ return {
246
+ routerGenTs
247
+ };
248
+ }
249
+ exports.generateTanstackRouterTypesSourceForEntry = __webpack_exports__.generateTanstackRouterTypesSourceForEntry;
250
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
251
+ "generateTanstackRouterTypesSourceForEntry"
252
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
253
+ Object.defineProperty(exports, '__esModule', {
254
+ value: true
255
+ });
@@ -1,14 +1,5 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.n = (module)=>{
5
- var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
- __webpack_require__.d(getter, {
7
- a: getter
8
- });
9
- return getter;
10
- };
11
- })();
12
3
  (()=>{
13
4
  __webpack_require__.d = (exports1, getters, values)=>{
14
5
  var define = (defs, kind)=>{
@@ -37,348 +28,11 @@ var __webpack_require__ = {};
37
28
  var __webpack_exports__ = {};
38
29
  __webpack_require__.r(__webpack_exports__);
39
30
  __webpack_require__.d(__webpack_exports__, {
40
- collectCanonicalRoutesForEntry: ()=>collectCanonicalRoutesForEntry,
41
- generateTanstackRouterTypesSourceForEntry: ()=>generateTanstackRouterTypesSourceForEntry
42
- });
43
- const cli_namespaceObject = require("@modern-js/runtime/cli");
44
- const utils_namespaceObject = require("@modern-js/utils");
45
- const external_path_namespaceObject = require("path");
46
- var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
47
- const JS_OR_TS_EXTS = [
48
- '.js',
49
- '.jsx',
50
- '.ts',
51
- '.tsx',
52
- '.mjs',
53
- '.mts',
54
- '.cjs',
55
- '.cts'
56
- ];
57
- function toTanstackPath(pathname) {
58
- return pathname.split('/').map((segment)=>{
59
- if (!segment) return segment;
60
- if ('*' === segment) return '$';
61
- if (segment.startsWith(':')) {
62
- const name = segment.slice(1);
63
- if (name.endsWith('?')) return `{-$${name.slice(0, -1)}}`;
64
- return `$${name}`;
65
- }
66
- return segment;
67
- }).join('/');
68
- }
69
- async function resolveFileNoExt(inputNoExtPath) {
70
- const file = (0, utils_namespaceObject.findExists)(JS_OR_TS_EXTS.map((ext)=>`${inputNoExtPath}${ext}`));
71
- return file ? (0, cli_namespaceObject.getPathWithoutExt)(file) : null;
72
- }
73
- function quote(str) {
74
- return JSON.stringify(str);
75
- }
76
- function normalizeRelativeImport(p) {
77
- const normalized = (0, utils_namespaceObject.formatImportPath)((0, utils_namespaceObject.slash)(p));
78
- if (normalized.startsWith('.')) return normalized;
79
- return `./${normalized}`;
80
- }
81
- function pickModernLoaderModule(route) {
82
- const loaderPath = route.data || route.loader;
83
- if (!loaderPath || 'string' != typeof loaderPath) return null;
84
- const inline = Boolean(route.data);
85
- return {
86
- loaderPath,
87
- inline
88
- };
89
- }
90
- function pickRouteSearchContractModules(route) {
91
- const validateSearchPath = route.validateSearch;
92
- const loaderDepsPath = route.loaderDeps;
93
- return {
94
- validateSearchPath: 'string' == typeof validateSearchPath ? validateSearchPath : null,
95
- loaderDepsPath: 'string' == typeof loaderDepsPath ? loaderDepsPath : null
96
- };
97
- }
98
- function isPathlessLayout(route) {
99
- return 'nested' === route.type && 'boolean' != typeof route.index && void 0 === route.path;
100
- }
101
- function isIndexRoute(route) {
102
- return 'nested' === route.type && Boolean(route.index);
103
- }
104
- function createRouteStaticDataSnippet(opts) {
105
- const staticDataLines = [];
106
- if (opts.modernRouteId) staticDataLines.push(`modernRouteId: ${quote(opts.modernRouteId)},`);
107
- if (opts.loaderName) staticDataLines.push(`modernRouteLoader: ${opts.loaderName},`);
108
- if (opts.actionName) staticDataLines.push(`modernRouteAction: ${opts.actionName},`);
109
- if (!staticDataLines.length) return null;
110
- return `staticData: createRouteStaticData({\n ${staticDataLines.join('\n ')}\n }),`;
111
- }
112
- const LOCALE_PARAM_SEGMENTS = new Set([
113
- ':lang',
114
- ':locale',
115
- ':language',
116
- '$lang',
117
- '$locale',
118
- '$language'
119
- ]);
120
- function paramsTypeForCanonicalPath(canonicalPath) {
121
- const fields = [];
122
- for (const segment of canonicalPath.split('/'))if (segment) {
123
- if ('*' === segment || '$' === segment) {
124
- fields.push("'_splat'?: string");
125
- continue;
126
- }
127
- if (segment.startsWith('{-$') && segment.endsWith('}')) {
128
- fields.push(`${JSON.stringify(segment.slice(3, -1))}?: string`);
129
- continue;
130
- }
131
- if (segment.startsWith('$')) {
132
- fields.push(`${JSON.stringify(segment.slice(1))}: string`);
133
- continue;
134
- }
135
- if (segment.startsWith(':')) {
136
- const optional = segment.endsWith('?');
137
- const name = segment.slice(1, optional ? void 0 : segment.length);
138
- fields.push(`${JSON.stringify(optional ? name.slice(0, -1) : name)}${optional ? '?' : ''}: string`);
139
- }
140
- }
141
- return fields.length > 0 ? `{ ${fields.join('; ')} }` : 'Record<string, never>';
142
- }
143
- function collectCanonicalRoutesForEntry(routes, options = {}) {
144
- const { localeParamHeuristic = true } = options;
145
- const canonicalParams = new Map();
146
- let hasI18nSurface = false;
147
- const normalizeJoined = (joined)=>{
148
- const collapsed = joined.replace(/\/+/g, '/');
149
- const withLeading = collapsed.startsWith('/') ? collapsed : `/${collapsed}`;
150
- return withLeading.length > 1 ? withLeading.replace(/\/+$/, '') : withLeading;
151
- };
152
- const record = (canonicalPath)=>{
153
- const normalized = normalizeJoined(canonicalPath || '/');
154
- const key = toTanstackPath(normalized);
155
- if (!canonicalParams.has(key)) canonicalParams.set(key, paramsTypeForCanonicalPath(normalized));
156
- };
157
- const visit = (route, parentPath)=>{
158
- let currentPath = parentPath;
159
- if ('string' == typeof route.modernCanonicalPath) {
160
- hasI18nSurface = true;
161
- currentPath = normalizeJoined(route.modernCanonicalPath);
162
- } else if ('string' == typeof route.path && route.path.length > 0) {
163
- const segments = route.path.replace(/\[(.+?)\]/g, ':$1').split('/').filter(Boolean);
164
- if (localeParamHeuristic && '' === parentPath && LOCALE_PARAM_SEGMENTS.has(segments[0])) {
165
- hasI18nSurface = true;
166
- segments.shift();
167
- }
168
- currentPath = segments.length ? normalizeJoined(`${parentPath}/${segments.join('/')}`) : parentPath;
169
- }
170
- const children = route.children;
171
- if (children && children.length > 0) {
172
- for (const child of children)visit(child, currentPath);
173
- return;
174
- }
175
- record(currentPath || '/');
176
- };
177
- const rootModern = routes.find((route)=>route.isRoot);
178
- const topLevel = rootModern ? rootModern.children ?? [] : routes;
179
- for (const route of topLevel)visit(route, '');
180
- if (!hasI18nSurface || 0 === canonicalParams.size) return null;
181
- return Object.fromEntries([
182
- ...canonicalParams.entries()
183
- ].sort(([a], [b])=>a.localeCompare(b)));
184
- }
185
- async function generateTanstackRouterTypesSourceForEntry(opts) {
186
- const { appContext, entryName, generatedDirName = 'modern-tanstack', routes } = opts;
187
- const outDir = external_path_default().join(appContext.srcDirectory, generatedDirName, entryName);
188
- const rootModern = routes.find((r)=>r && 'nested' === r.type && r.isRoot);
189
- const topLevel = rootModern ? rootModern.children || [] : routes;
190
- const imports = [];
191
- const statements = [];
192
- const loaderImportMap = new Map();
193
- const componentImportMap = new Map();
194
- const searchContractImportMap = new Map();
195
- const usedRouteVarNames = new Set();
196
- let loaderIndex = 0;
197
- let componentIndex = 0;
198
- let validateSearchIndex = 0;
199
- let loaderDepsIndex = 0;
200
- let routeIndex = 0;
201
- const getImportNameForComponent = (componentPath)=>{
202
- if ('string' != typeof componentPath || 0 === componentPath.length) return Promise.resolve(null);
203
- let pendingImportName = componentImportMap.get(componentPath);
204
- if (!pendingImportName) {
205
- pendingImportName = (async ()=>{
206
- const resolvedNoExt = await resolveRouteModuleNoExt(componentPath);
207
- if (!resolvedNoExt) return null;
208
- const relImport = normalizeRelativeImport(external_path_default().relative(outDir, resolvedNoExt));
209
- const componentName = `component_${componentIndex++}`;
210
- imports.push(`import ${componentName} from ${quote(relImport)};`);
211
- return componentName;
212
- })();
213
- componentImportMap.set(componentPath, pendingImportName);
214
- }
215
- return pendingImportName;
216
- };
217
- const resolveRouteModuleNoExt = async (aliasedNoExtPath)=>{
218
- const prefix = `${appContext.internalSrcAlias}/`;
219
- let absNoExt;
220
- if (aliasedNoExtPath.startsWith(prefix)) {
221
- const rel = aliasedNoExtPath.slice(prefix.length);
222
- absNoExt = external_path_default().join(appContext.srcDirectory, rel);
223
- } else absNoExt = external_path_default().isAbsolute(aliasedNoExtPath) ? aliasedNoExtPath : external_path_default().join(appContext.srcDirectory, aliasedNoExtPath);
224
- return resolveFileNoExt(absNoExt);
225
- };
226
- const getImportNamesForLoader = async (aliasedNoExtPath, inline, hasAction)=>{
227
- const key = `${inline ? 'inline' : 'default'}:${hasAction ? 'action' : 'loader'}:${aliasedNoExtPath}`;
228
- const existing = loaderImportMap.get(key);
229
- if (existing) return {
230
- loaderName: existing,
231
- actionName: hasAction ? existing.replace(/^loader_/, 'action_') : null
232
- };
233
- const resolvedNoExt = await resolveRouteModuleNoExt(aliasedNoExtPath);
234
- if (!resolvedNoExt) return null;
235
- const relImport = normalizeRelativeImport(external_path_default().relative(outDir, resolvedNoExt));
236
- const importName = `loader_${loaderIndex++}`;
237
- const actionName = hasAction ? importName.replace(/^loader_/, 'action_') : null;
238
- if (inline) {
239
- const specifiers = [
240
- `loader as ${importName}`
241
- ];
242
- if (actionName) specifiers.push(`action as ${actionName}`);
243
- imports.push(`import { ${specifiers.join(', ')} } from ${quote(relImport)};`);
244
- } else imports.push(`import ${importName} from ${quote(relImport)};`);
245
- loaderImportMap.set(key, importName);
246
- return {
247
- loaderName: importName,
248
- actionName
249
- };
250
- };
251
- const getImportNameForSearchContract = async (aliasedNoExtPath, exportName)=>{
252
- const key = `${exportName}:${aliasedNoExtPath}`;
253
- const existing = searchContractImportMap.get(key);
254
- if (existing) return existing;
255
- const resolvedNoExt = await resolveRouteModuleNoExt(aliasedNoExtPath);
256
- if (!resolvedNoExt) return null;
257
- const relImport = normalizeRelativeImport(external_path_default().relative(outDir, resolvedNoExt));
258
- const importName = 'validateSearch' === exportName ? `validateSearch_${validateSearchIndex++}` : `loaderDeps_${loaderDepsIndex++}`;
259
- imports.push(`import { ${exportName} as ${importName} } from ${quote(relImport)};`);
260
- searchContractImportMap.set(key, importName);
261
- return importName;
262
- };
263
- const reserveRouteVarName = (preferred)=>{
264
- let candidate = preferred;
265
- let suffix = 1;
266
- while(usedRouteVarNames.has(candidate))candidate = `${preferred}_${suffix++}`;
267
- usedRouteVarNames.add(candidate);
268
- return candidate;
269
- };
270
- const createRouteVarName = (route)=>{
271
- const id = route.id;
272
- const base = id ? (0, cli_namespaceObject.makeLegalIdentifier)(id) : `r_${routeIndex++}`;
273
- return reserveRouteVarName(`route_${base}`);
274
- };
275
- const buildRoute = async (opts)=>{
276
- const { parentVar, route } = opts;
277
- const varName = createRouteVarName(route);
278
- const loaderInfo = pickModernLoaderModule(route);
279
- const routeAction = route.action;
280
- const loaderImports = loaderInfo ? await getImportNamesForLoader(loaderInfo.loaderPath, loaderInfo.inline, Boolean(loaderInfo.inline && routeAction === loaderInfo.loaderPath)) : null;
281
- const loaderName = loaderImports?.loaderName || null;
282
- const actionName = loaderImports?.actionName || null;
283
- const searchContractInfo = pickRouteSearchContractModules(route);
284
- const validateSearchName = searchContractInfo.validateSearchPath ? await getImportNameForSearchContract(searchContractInfo.validateSearchPath, 'validateSearch') : null;
285
- const loaderDepsName = searchContractInfo.loaderDepsPath ? await getImportNameForSearchContract(searchContractInfo.loaderDepsPath, 'loaderDeps') : null;
286
- const rawPath = route.path;
287
- const hasSplat = 'string' == typeof rawPath && rawPath.includes('*');
288
- const routeOpts = [
289
- `getParentRoute: () => ${parentVar},`
290
- ];
291
- const componentName = await getImportNameForComponent(route._component);
292
- if (componentName) routeOpts.push(`component: ${componentName},`);
293
- if (isPathlessLayout(route)) {
294
- const id = route.id;
295
- routeOpts.push(`id: ${quote(id || 'pathless')},`);
296
- } else {
297
- const p = isIndexRoute(route) ? '/' : toTanstackPath(rawPath || '');
298
- routeOpts.push(`path: ${quote(p)},`);
299
- }
300
- if (loaderName) routeOpts.push(`loader: modernLoaderToTanstack({ hasSplat: ${hasSplat} }, ${loaderName}),`);
301
- if (validateSearchName) routeOpts.push(`validateSearch: ${validateSearchName},`);
302
- if (loaderDepsName) routeOpts.push(`loaderDeps: ${loaderDepsName},`);
303
- const staticDataSnippet = createRouteStaticDataSnippet({
304
- modernRouteId: route.id,
305
- loaderName,
306
- actionName
307
- });
308
- if (staticDataSnippet) routeOpts.push(staticDataSnippet);
309
- const children = route.children;
310
- const hasChildren = Boolean(children && children.length > 0);
311
- const routeCtorVarName = hasChildren ? reserveRouteVarName(`${varName}__base`) : varName;
312
- statements.push(`const ${routeCtorVarName} = createRoute({\n ${routeOpts.join('\n ')}\n});`);
313
- if (children && children.length > 0) {
314
- const childVars = await Promise.all(children.map((child)=>buildRoute({
315
- parentVar: routeCtorVarName,
316
- route: child
317
- })));
318
- statements.push(`const ${varName} = ${routeCtorVarName}.addChildren([${childVars.join(', ')}]);`);
319
- }
320
- return varName;
321
- };
322
- const rootLoaderInfo = rootModern ? pickModernLoaderModule(rootModern) : null;
323
- const rootAction = rootModern?.action;
324
- const rootLoaderImports = rootLoaderInfo?.loaderPath ? await getImportNamesForLoader(rootLoaderInfo.loaderPath, rootLoaderInfo.inline, Boolean(rootLoaderInfo.inline && rootAction === rootLoaderInfo.loaderPath)) : null;
325
- const rootLoaderName = rootLoaderImports?.loaderName || null;
326
- const rootActionName = rootLoaderImports?.actionName || null;
327
- const rootSearchContractInfo = rootModern ? pickRouteSearchContractModules(rootModern) : null;
328
- const rootValidateSearchName = rootSearchContractInfo?.validateSearchPath ? await getImportNameForSearchContract(rootSearchContractInfo.validateSearchPath, 'validateSearch') : null;
329
- const rootLoaderDepsName = rootSearchContractInfo?.loaderDepsPath ? await getImportNameForSearchContract(rootSearchContractInfo.loaderDepsPath, 'loaderDeps') : null;
330
- const topLevelVars = await Promise.all(topLevel.map((route)=>buildRoute({
331
- parentVar: 'rootRoute',
332
- route
333
- })));
334
- const rootOpts = [];
335
- const rootComponentName = await getImportNameForComponent(rootModern?._component);
336
- if (rootComponentName) rootOpts.push(`component: ${rootComponentName},`);
337
- if (rootLoaderName) rootOpts.push(`loader: modernLoaderToTanstack({ hasSplat: false }, ${rootLoaderName}),`);
338
- if (rootValidateSearchName) rootOpts.push(`validateSearch: ${rootValidateSearchName},`);
339
- if (rootLoaderDepsName) rootOpts.push(`loaderDeps: ${rootLoaderDepsName},`);
340
- const routerGenTs = `/* eslint-disable */
341
- // This file is auto-generated by Modern.js. Do not edit manually.
342
-
343
- import {
344
- createMemoryHistory,
345
- createRootRouteWithContext,
346
- createRoute,
347
- createRouter,
348
- createRouteStaticData,
349
- type ModernRouterContext,
350
- modernLoaderToTanstack,
351
- modernTanstackRouterFastDefaults,
352
- } from '@modern-js/plugin-tanstack/runtime';
353
-
354
- ${imports.join('\n')}
355
-
356
- export const rootRoute = createRootRouteWithContext<ModernRouterContext>()({
357
- ${rootOpts.join('\n ')}
358
- ${createRouteStaticDataSnippet({
359
- modernRouteId: rootModern?.id,
360
- loaderName: rootLoaderName,
361
- actionName: rootActionName
362
- }) || ''}
31
+ collectCanonicalRoutesForEntry: ()=>canonicalRoutes_js_namespaceObject.collectCanonicalRoutesForEntry,
32
+ generateTanstackRouterTypesSourceForEntry: ()=>source_js_namespaceObject.generateTanstackRouterTypesSourceForEntry
363
33
  });
364
-
365
- ${statements.join('\n\n')}
366
-
367
- export const routeTree = rootRoute.addChildren([${topLevelVars.join(', ')}]);
368
-
369
- export const router = createRouter({
370
- ...modernTanstackRouterFastDefaults,
371
- routeTree,
372
- history: createMemoryHistory({
373
- initialEntries: ['/'],
374
- }),
375
- context: {} as ModernRouterContext,
376
- });
377
- `;
378
- return {
379
- routerGenTs
380
- };
381
- }
34
+ const canonicalRoutes_js_namespaceObject = require("./tanstackTypes/canonicalRoutes.js");
35
+ const source_js_namespaceObject = require("./tanstackTypes/source.js");
382
36
  exports.collectCanonicalRoutesForEntry = __webpack_exports__.collectCanonicalRoutesForEntry;
383
37
  exports.generateTanstackRouterTypesSourceForEntry = __webpack_exports__.generateTanstackRouterTypesSourceForEntry;
384
38
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -0,0 +1,57 @@
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
+ const BLOCKING_SUBSCRIBE_SYMBOL = Symbol.for('@modern-js/plugin-tanstack:blocking-subscribe');
31
+ const BLOCKING_STATE_SYMBOL = Symbol.for('@modern-js/plugin-tanstack:blocking-state');
32
+ function wrapRouterSubscribeWithBlockState(router, getBlockNavState) {
33
+ if (!router || 'object' != typeof router) return;
34
+ const target = router;
35
+ target[BLOCKING_STATE_SYMBOL] = getBlockNavState;
36
+ if (target[BLOCKING_SUBSCRIBE_SYMBOL] || 'function' != typeof target.subscribe) return;
37
+ const originSubscribe = target.subscribe.bind(target);
38
+ target.subscribe = (eventType, listener)=>{
39
+ const wrappedListener = (...args)=>{
40
+ const blockRoute = target[BLOCKING_STATE_SYMBOL]?.() || false;
41
+ if (blockRoute) return;
42
+ return listener(...args);
43
+ };
44
+ return originSubscribe(eventType, wrappedListener);
45
+ };
46
+ target[BLOCKING_SUBSCRIBE_SYMBOL] = true;
47
+ }
48
+ __webpack_require__.d(__webpack_exports__, {
49
+ wrapRouterSubscribeWithBlockState: ()=>wrapRouterSubscribeWithBlockState
50
+ });
51
+ exports.wrapRouterSubscribeWithBlockState = __webpack_exports__.wrapRouterSubscribeWithBlockState;
52
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
53
+ "wrapRouterSubscribeWithBlockState"
54
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
55
+ Object.defineProperty(exports, '__esModule', {
56
+ value: true
57
+ });