@octanejs/tanstack-start 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +52 -0
  3. package/THIRD_PARTY_NOTICES.md +11 -0
  4. package/package.json +149 -0
  5. package/src/client-only.d.ts +1 -0
  6. package/src/client-only.js +0 -0
  7. package/src/client-rpc.d.ts +1 -0
  8. package/src/client-rpc.js +1 -0
  9. package/src/client.d.ts +3 -0
  10. package/src/client.js +2 -0
  11. package/src/default-entry/client.js +12 -0
  12. package/src/default-entry/server.js +13 -0
  13. package/src/default-entry/start.js +1 -0
  14. package/src/default-entry-paths.d.ts +5 -0
  15. package/src/default-entry-paths.js +11 -0
  16. package/src/index.d.ts +11 -0
  17. package/src/index.js +22 -0
  18. package/src/internal/README.md +15 -0
  19. package/src/internal/router-generator/config.d.ts +255 -0
  20. package/src/internal/router-generator/config.js +134 -0
  21. package/src/internal/router-generator/filesystem/physical/getRouteNodes.d.ts +53 -0
  22. package/src/internal/router-generator/filesystem/physical/getRouteNodes.js +335 -0
  23. package/src/internal/router-generator/filesystem/physical/rootPathId.d.ts +1 -0
  24. package/src/internal/router-generator/filesystem/physical/rootPathId.js +4 -0
  25. package/src/internal/router-generator/filesystem/virtual/config.d.ts +3 -0
  26. package/src/internal/router-generator/filesystem/virtual/config.js +36 -0
  27. package/src/internal/router-generator/filesystem/virtual/getRouteNodes.d.ts +31 -0
  28. package/src/internal/router-generator/filesystem/virtual/getRouteNodes.js +272 -0
  29. package/src/internal/router-generator/filesystem/virtual/loadConfigFile.d.ts +1 -0
  30. package/src/internal/router-generator/filesystem/virtual/loadConfigFile.js +10 -0
  31. package/src/internal/router-generator/generator.d.ts +119 -0
  32. package/src/internal/router-generator/generator.js +1080 -0
  33. package/src/internal/router-generator/index.d.ts +40 -0
  34. package/src/internal/router-generator/index.js +49 -0
  35. package/src/internal/router-generator/logger.d.ts +8 -0
  36. package/src/internal/router-generator/logger.js +30 -0
  37. package/src/internal/router-generator/plugin/types.d.ts +37 -0
  38. package/src/internal/router-generator/template.d.ts +38 -0
  39. package/src/internal/router-generator/template.js +220 -0
  40. package/src/internal/router-generator/transform/transform.d.ts +8 -0
  41. package/src/internal/router-generator/transform/transform.js +385 -0
  42. package/src/internal/router-generator/transform/types.d.ts +34 -0
  43. package/src/internal/router-generator/types.d.ts +73 -0
  44. package/src/internal/router-generator/utils.d.ts +270 -0
  45. package/src/internal/router-generator/utils.js +864 -0
  46. package/src/internal/router-generator/validate-route-params.d.ts +13 -0
  47. package/src/internal/router-generator/validate-route-params.js +75 -0
  48. package/src/internal/router-plugin/context.d.ts +2 -0
  49. package/src/internal/router-plugin/context.js +2 -0
  50. package/src/internal/router-plugin/core/code-splitter/compilers.d.ts +69 -0
  51. package/src/internal/router-plugin/core/code-splitter/compilers.js +1042 -0
  52. package/src/internal/router-plugin/core/code-splitter/framework-options.d.ts +11 -0
  53. package/src/internal/router-plugin/core/code-splitter/framework-options.js +41 -0
  54. package/src/internal/router-plugin/core/code-splitter/plugins/framework-plugins.d.ts +12 -0
  55. package/src/internal/router-plugin/core/code-splitter/plugins/framework-plugins.js +35 -0
  56. package/src/internal/router-plugin/core/code-splitter/plugins/octane-hmr-split-route-components.d.ts +5 -0
  57. package/src/internal/router-plugin/core/code-splitter/plugins/octane-hmr-split-route-components.js +106 -0
  58. package/src/internal/router-plugin/core/code-splitter/plugins/octane-split-route-components.d.ts +8 -0
  59. package/src/internal/router-plugin/core/code-splitter/plugins/octane-split-route-components.js +85 -0
  60. package/src/internal/router-plugin/core/code-splitter/plugins/react-refresh-ignored-route-exports.d.ts +2 -0
  61. package/src/internal/router-plugin/core/code-splitter/plugins/react-refresh-ignored-route-exports.js +55 -0
  62. package/src/internal/router-plugin/core/code-splitter/plugins/react-refresh-route-components.d.ts +2 -0
  63. package/src/internal/router-plugin/core/code-splitter/plugins/react-refresh-route-components.js +50 -0
  64. package/src/internal/router-plugin/core/code-splitter/plugins/react-stable-hmr-split-route-components.d.ts +5 -0
  65. package/src/internal/router-plugin/core/code-splitter/plugins/react-stable-hmr-split-route-components.js +54 -0
  66. package/src/internal/router-plugin/core/code-splitter/plugins.d.ts +62 -0
  67. package/src/internal/router-plugin/core/code-splitter/types.d.ts +9 -0
  68. package/src/internal/router-plugin/core/config.d.ts +294 -0
  69. package/src/internal/router-plugin/core/config.js +56 -0
  70. package/src/internal/router-plugin/core/constants.d.ts +12 -0
  71. package/src/internal/router-plugin/core/constants.js +13 -0
  72. package/src/internal/router-plugin/core/framework-plugin-order.d.ts +8 -0
  73. package/src/internal/router-plugin/core/framework-plugin-order.js +78 -0
  74. package/src/internal/router-plugin/core/hmr/handle-route-update.d.ts +1 -0
  75. package/src/internal/router-plugin/core/hmr/handle-route-update.js +126 -0
  76. package/src/internal/router-plugin/core/hmr/index.d.ts +5 -0
  77. package/src/internal/router-plugin/core/hmr/select-adapter.d.ts +17 -0
  78. package/src/internal/router-plugin/core/hmr/select-adapter.js +24 -0
  79. package/src/internal/router-plugin/core/hmr/vite-adapter.d.ts +18 -0
  80. package/src/internal/router-plugin/core/hmr/vite-adapter.js +73 -0
  81. package/src/internal/router-plugin/core/hmr/webpack-adapter.d.ts +22 -0
  82. package/src/internal/router-plugin/core/hmr/webpack-adapter.js +78 -0
  83. package/src/internal/router-plugin/core/router-code-splitter-plugin.d.ts +10 -0
  84. package/src/internal/router-plugin/core/router-code-splitter-plugin.js +244 -0
  85. package/src/internal/router-plugin/core/router-composed-plugin.d.ts +5 -0
  86. package/src/internal/router-plugin/core/router-composed-plugin.js +62 -0
  87. package/src/internal/router-plugin/core/router-generator-plugin.d.ts +10 -0
  88. package/src/internal/router-plugin/core/router-generator-plugin.js +125 -0
  89. package/src/internal/router-plugin/core/router-hmr-plugin.d.ts +13 -0
  90. package/src/internal/router-plugin/core/router-hmr-plugin.js +101 -0
  91. package/src/internal/router-plugin/core/router-plugin-context.d.ts +5 -0
  92. package/src/internal/router-plugin/core/router-plugin-context.js +6 -0
  93. package/src/internal/router-plugin/core/utils.d.ts +17 -0
  94. package/src/internal/router-plugin/core/utils.js +47 -0
  95. package/src/internal/router-plugin/esbuild.d.ts +197 -0
  96. package/src/internal/router-plugin/esbuild.js +58 -0
  97. package/src/internal/router-plugin/index.d.ts +19 -0
  98. package/src/internal/router-plugin/index.js +17 -0
  99. package/src/internal/router-plugin/rspack.d.ts +61 -0
  100. package/src/internal/router-plugin/rspack.js +92 -0
  101. package/src/internal/router-plugin/vite.d.ts +201 -0
  102. package/src/internal/router-plugin/vite.js +62 -0
  103. package/src/internal/router-plugin/webpack.d.ts +50 -0
  104. package/src/internal/router-plugin/webpack.js +77 -0
  105. package/src/internal/start-plugin-core/build-sitemap.d.ts +34 -0
  106. package/src/internal/start-plugin-core/build-sitemap.js +125 -0
  107. package/src/internal/start-plugin-core/config-context.d.ts +30 -0
  108. package/src/internal/start-plugin-core/config-context.js +89 -0
  109. package/src/internal/start-plugin-core/constants.d.ts +20 -0
  110. package/src/internal/start-plugin-core/constants.js +24 -0
  111. package/src/internal/start-plugin-core/debug.d.ts +1 -0
  112. package/src/internal/start-plugin-core/hydrate-when-transform.d.ts +5 -0
  113. package/src/internal/start-plugin-core/hydrate-when-transform.js +661 -0
  114. package/src/internal/start-plugin-core/hydration-constants.d.ts +1 -0
  115. package/src/internal/start-plugin-core/hydration-constants.js +4 -0
  116. package/src/internal/start-plugin-core/import-protection/adapterUtils.d.ts +40 -0
  117. package/src/internal/start-plugin-core/import-protection/adapterUtils.js +42 -0
  118. package/src/internal/start-plugin-core/import-protection/analysis.d.ts +63 -0
  119. package/src/internal/start-plugin-core/import-protection/analysis.js +533 -0
  120. package/src/internal/start-plugin-core/import-protection/constants.d.ts +11 -0
  121. package/src/internal/start-plugin-core/import-protection/constants.js +39 -0
  122. package/src/internal/start-plugin-core/import-protection/defaults.d.ts +19 -0
  123. package/src/internal/start-plugin-core/import-protection/defaults.js +34 -0
  124. package/src/internal/start-plugin-core/import-protection/extensionlessAbsoluteIdResolver.d.ts +22 -0
  125. package/src/internal/start-plugin-core/import-protection/extensionlessAbsoluteIdResolver.js +94 -0
  126. package/src/internal/start-plugin-core/import-protection/matchers.d.ts +18 -0
  127. package/src/internal/start-plugin-core/import-protection/matchers.js +39 -0
  128. package/src/internal/start-plugin-core/import-protection/rewrite.d.ts +29 -0
  129. package/src/internal/start-plugin-core/import-protection/rewrite.js +184 -0
  130. package/src/internal/start-plugin-core/import-protection/sourceLocation.d.ts +170 -0
  131. package/src/internal/start-plugin-core/import-protection/sourceLocation.js +376 -0
  132. package/src/internal/start-plugin-core/import-protection/trace.d.ts +89 -0
  133. package/src/internal/start-plugin-core/import-protection/trace.js +186 -0
  134. package/src/internal/start-plugin-core/import-protection/utils.d.ts +78 -0
  135. package/src/internal/start-plugin-core/import-protection/utils.js +171 -0
  136. package/src/internal/start-plugin-core/import-protection/virtualModules.d.ts +38 -0
  137. package/src/internal/start-plugin-core/import-protection/virtualModules.js +241 -0
  138. package/src/internal/start-plugin-core/index.d.ts +8 -0
  139. package/src/internal/start-plugin-core/index.js +2 -0
  140. package/src/internal/start-plugin-core/planning.d.ts +44 -0
  141. package/src/internal/start-plugin-core/planning.js +98 -0
  142. package/src/internal/start-plugin-core/post-build.d.ts +12 -0
  143. package/src/internal/start-plugin-core/post-build.js +40 -0
  144. package/src/internal/start-plugin-core/prerender.d.ts +17 -0
  145. package/src/internal/start-plugin-core/prerender.js +172 -0
  146. package/src/internal/start-plugin-core/queue.d.ts +37 -0
  147. package/src/internal/start-plugin-core/queue.js +118 -0
  148. package/src/internal/start-plugin-core/resolve-entries.d.ts +10 -0
  149. package/src/internal/start-plugin-core/resolve-entries.js +32 -0
  150. package/src/internal/start-plugin-core/schema.d.ts +1799 -0
  151. package/src/internal/start-plugin-core/schema.js +252 -0
  152. package/src/internal/start-plugin-core/serialization-adapters-module.d.ts +18 -0
  153. package/src/internal/start-plugin-core/serialization-adapters-module.js +37 -0
  154. package/src/internal/start-plugin-core/start-compiler/compiler.d.ts +181 -0
  155. package/src/internal/start-plugin-core/start-compiler/compiler.js +1078 -0
  156. package/src/internal/start-plugin-core/start-compiler/config.d.ts +20 -0
  157. package/src/internal/start-plugin-core/start-compiler/config.js +84 -0
  158. package/src/internal/start-plugin-core/start-compiler/handleClientOnlyJSX.d.ts +24 -0
  159. package/src/internal/start-plugin-core/start-compiler/handleClientOnlyJSX.js +25 -0
  160. package/src/internal/start-plugin-core/start-compiler/handleCreateIsomorphicFn.d.ts +11 -0
  161. package/src/internal/start-plugin-core/start-compiler/handleCreateIsomorphicFn.js +24 -0
  162. package/src/internal/start-plugin-core/start-compiler/handleCreateMiddleware.d.ts +11 -0
  163. package/src/internal/start-plugin-core/start-compiler/handleCreateMiddleware.js +35 -0
  164. package/src/internal/start-plugin-core/start-compiler/handleCreateServerFn.d.ts +22 -0
  165. package/src/internal/start-plugin-core/start-compiler/handleCreateServerFn.js +292 -0
  166. package/src/internal/start-plugin-core/start-compiler/handleEnvOnly.d.ts +14 -0
  167. package/src/internal/start-plugin-core/start-compiler/handleEnvOnly.js +41 -0
  168. package/src/internal/start-plugin-core/start-compiler/host.d.ts +44 -0
  169. package/src/internal/start-plugin-core/start-compiler/host.js +75 -0
  170. package/src/internal/start-plugin-core/start-compiler/server-fn-resolver-module.d.ts +10 -0
  171. package/src/internal/start-plugin-core/start-compiler/server-fn-resolver-module.js +87 -0
  172. package/src/internal/start-plugin-core/start-compiler/types.d.ts +119 -0
  173. package/src/internal/start-plugin-core/start-compiler/utils.d.ts +27 -0
  174. package/src/internal/start-plugin-core/start-compiler/utils.js +36 -0
  175. package/src/internal/start-plugin-core/start-manifest-plugin/inlineCss.d.ts +16 -0
  176. package/src/internal/start-plugin-core/start-manifest-plugin/inlineCss.js +131 -0
  177. package/src/internal/start-plugin-core/start-manifest-plugin/manifestBuilder.d.ts +64 -0
  178. package/src/internal/start-plugin-core/start-manifest-plugin/manifestBuilder.js +441 -0
  179. package/src/internal/start-plugin-core/start-router-plugin/constants.d.ts +1 -0
  180. package/src/internal/start-plugin-core/start-router-plugin/constants.js +4 -0
  181. package/src/internal/start-plugin-core/start-router-plugin/generator-plugins/compose-generator-plugins.d.ts +6 -0
  182. package/src/internal/start-plugin-core/start-router-plugin/generator-plugins/compose-generator-plugins.js +6 -0
  183. package/src/internal/start-plugin-core/start-router-plugin/generator-plugins/prerender-routes-plugin.d.ts +6 -0
  184. package/src/internal/start-plugin-core/start-router-plugin/generator-plugins/prerender-routes-plugin.js +27 -0
  185. package/src/internal/start-plugin-core/start-router-plugin/generator-plugins/routes-manifest-plugin.d.ts +6 -0
  186. package/src/internal/start-plugin-core/start-router-plugin/generator-plugins/routes-manifest-plugin.js +34 -0
  187. package/src/internal/start-plugin-core/start-router-plugin/pruneServerOnlySubtrees.d.ts +11 -0
  188. package/src/internal/start-plugin-core/start-router-plugin/pruneServerOnlySubtrees.js +42 -0
  189. package/src/internal/start-plugin-core/start-router-plugin/route-tree-footer.d.ts +6 -0
  190. package/src/internal/start-plugin-core/start-router-plugin/route-tree-footer.js +59 -0
  191. package/src/internal/start-plugin-core/types.d.ts +135 -0
  192. package/src/internal/start-plugin-core/types.js +4 -0
  193. package/src/internal/start-plugin-core/utils.d.ts +13 -0
  194. package/src/internal/start-plugin-core/utils.js +42 -0
  195. package/src/internal/start-plugin-core/vite/createVirtualModule.d.ts +15 -0
  196. package/src/internal/start-plugin-core/vite/createVirtualModule.js +27 -0
  197. package/src/internal/start-plugin-core/vite/dev-server-plugin/dev-styles.d.ts +26 -0
  198. package/src/internal/start-plugin-core/vite/dev-server-plugin/dev-styles.js +165 -0
  199. package/src/internal/start-plugin-core/vite/dev-server-plugin/plugin.d.ts +11 -0
  200. package/src/internal/start-plugin-core/vite/dev-server-plugin/plugin.js +170 -0
  201. package/src/internal/start-plugin-core/vite/import-protection-plugin/plugin.d.ts +4 -0
  202. package/src/internal/start-plugin-core/vite/import-protection-plugin/plugin.js +1553 -0
  203. package/src/internal/start-plugin-core/vite/import-protection-plugin/types.d.ts +103 -0
  204. package/src/internal/start-plugin-core/vite/import-protection-plugin/virtualModules.d.ts +40 -0
  205. package/src/internal/start-plugin-core/vite/import-protection-plugin/virtualModules.js +68 -0
  206. package/src/internal/start-plugin-core/vite/index.d.ts +13 -0
  207. package/src/internal/start-plugin-core/vite/index.js +4 -0
  208. package/src/internal/start-plugin-core/vite/load-env-plugin/plugin.d.ts +2 -0
  209. package/src/internal/start-plugin-core/vite/load-env-plugin/plugin.js +13 -0
  210. package/src/internal/start-plugin-core/vite/output-directory.d.ts +7 -0
  211. package/src/internal/start-plugin-core/vite/output-directory.js +18 -0
  212. package/src/internal/start-plugin-core/vite/planning.d.ts +112 -0
  213. package/src/internal/start-plugin-core/vite/planning.js +152 -0
  214. package/src/internal/start-plugin-core/vite/plugin.d.ts +7 -0
  215. package/src/internal/start-plugin-core/vite/plugin.js +208 -0
  216. package/src/internal/start-plugin-core/vite/plugins.d.ts +17 -0
  217. package/src/internal/start-plugin-core/vite/plugins.js +72 -0
  218. package/src/internal/start-plugin-core/vite/post-server-build.d.ts +9 -0
  219. package/src/internal/start-plugin-core/vite/post-server-build.js +22 -0
  220. package/src/internal/start-plugin-core/vite/prerender.d.ts +9 -0
  221. package/src/internal/start-plugin-core/vite/prerender.js +52 -0
  222. package/src/internal/start-plugin-core/vite/preview-server-plugin/plugin.d.ts +2 -0
  223. package/src/internal/start-plugin-core/vite/preview-server-plugin/plugin.js +54 -0
  224. package/src/internal/start-plugin-core/vite/schema.d.ts +2423 -0
  225. package/src/internal/start-plugin-core/vite/schema.js +17 -0
  226. package/src/internal/start-plugin-core/vite/serialization-adapters-plugin.d.ts +5 -0
  227. package/src/internal/start-plugin-core/vite/serialization-adapters-plugin.js +63 -0
  228. package/src/internal/start-plugin-core/vite/start-compiler-plugin/hot-update.d.ts +5 -0
  229. package/src/internal/start-plugin-core/vite/start-compiler-plugin/hot-update.js +14 -0
  230. package/src/internal/start-plugin-core/vite/start-compiler-plugin/module-specifier.d.ts +5 -0
  231. package/src/internal/start-plugin-core/vite/start-compiler-plugin/module-specifier.js +25 -0
  232. package/src/internal/start-plugin-core/vite/start-compiler-plugin/plugin.d.ts +29 -0
  233. package/src/internal/start-plugin-core/vite/start-compiler-plugin/plugin.js +380 -0
  234. package/src/internal/start-plugin-core/vite/start-manifest-plugin/normalized-client-build.d.ts +11 -0
  235. package/src/internal/start-plugin-core/vite/start-manifest-plugin/normalized-client-build.js +114 -0
  236. package/src/internal/start-plugin-core/vite/start-manifest-plugin/plugin.d.ts +3 -0
  237. package/src/internal/start-plugin-core/vite/start-manifest-plugin/plugin.js +103 -0
  238. package/src/internal/start-plugin-core/vite/start-router-plugin/plugin.d.ts +9 -0
  239. package/src/internal/start-plugin-core/vite/start-router-plugin/plugin.js +143 -0
  240. package/src/internal/start-plugin-core/vite/types.d.ts +17 -0
  241. package/src/package-names.js +10 -0
  242. package/src/plugin-vite.d.ts +23 -0
  243. package/src/plugin-vite.js +62 -0
  244. package/src/runtime/client/StartClient.d.ts +11 -0
  245. package/src/runtime/client/StartClient.js +16 -0
  246. package/src/runtime/client/hydrateStart.d.ts +4 -0
  247. package/src/runtime/client/hydrateStart.js +30 -0
  248. package/src/runtime/server/StartServer.d.ts +10 -0
  249. package/src/runtime/server/StartServer.js +6 -0
  250. package/src/runtime/server/defaultRenderHandler.d.ts +3 -0
  251. package/src/runtime/server/defaultRenderHandler.js +11 -0
  252. package/src/runtime/server/defaultStreamHandler.d.ts +3 -0
  253. package/src/runtime/server/defaultStreamHandler.js +13 -0
  254. package/src/server-entry.d.ts +11 -0
  255. package/src/server-entry.js +13 -0
  256. package/src/server-only.d.ts +1 -0
  257. package/src/server-only.js +0 -0
  258. package/src/server-rpc.d.ts +1 -0
  259. package/src/server-rpc.js +1 -0
  260. package/src/server.d.ts +6 -0
  261. package/src/server.js +4 -0
  262. package/src/ssr-rpc.d.ts +1 -0
  263. package/src/ssr-rpc.js +1 -0
  264. package/src/use-server-fn.d.ts +3 -0
  265. package/src/use-server-fn.js +18 -0
  266. package/src/validate-options.js +7 -0
@@ -0,0 +1,270 @@
1
+ import { Config, TokenMatcher } from './config.js';
2
+ import { ImportDeclaration, RouteNode, RoutePathSegmentMetadata } from './types.js';
3
+ /**
4
+ * Prefix map for O(1) parent route lookups.
5
+ * Maps each route path prefix to the route node that owns that prefix.
6
+ * Enables finding longest matching parent without linear search.
7
+ */
8
+ export declare class RoutePrefixMap {
9
+ private prefixToRoute;
10
+ constructor(routes: Array<RouteNode>);
11
+ /**
12
+ * Find the longest matching parent route for a given path.
13
+ * O(k) where k is the number of path segments, not O(n) routes.
14
+ */
15
+ findParent(routePath: string): RouteNode | null;
16
+ /**
17
+ * Check if a route exists at the given path.
18
+ */
19
+ has(routePath: string): boolean;
20
+ /**
21
+ * Get a route by exact path.
22
+ */
23
+ get(routePath: string): RouteNode | undefined;
24
+ }
25
+ export declare function multiSortBy<T>(
26
+ arr: Array<T>,
27
+ accessors?: Array<(item: T) => any>,
28
+ ): Array<T>;
29
+ /**
30
+ * Sorts route nodes by root, path depth, index status, and finally `routePath`.
31
+ * The `routePath` comparison keeps the output consistent when the earlier
32
+ * values are the same.
33
+ */
34
+ export declare function sortRouteNodes(
35
+ routeNodes: Array<RouteNode>,
36
+ indexTokenSegmentRegex: RegExp,
37
+ ): Array<RouteNode>;
38
+ export declare function cleanPath(path: string): string;
39
+ export declare function trimPathLeft(path: string): string;
40
+ export declare function removeLeadingSlash(path: string): string;
41
+ export declare function removeTrailingSlash(s: string): string;
42
+ export declare function determineInitialRoutePath(routePath: string): {
43
+ routePath: string;
44
+ originalRoutePath: string;
45
+ };
46
+ /**
47
+ * Resolves bracket escapes in an explicit route path or ID without applying
48
+ * the dot-delimited flat-file route convention.
49
+ */
50
+ export declare function determineInitialRoutePathFromExplicitPath(routePath: string): {
51
+ routePath: string;
52
+ originalRoutePath: string;
53
+ };
54
+ /**
55
+ * Checks if the leading underscore in a segment is escaped.
56
+ * Returns true if:
57
+ * - Segment starts with [_] pattern: "[_]layout" -> "_layout"
58
+ * - Segment is fully escaped and content starts with _: "[_1nd3x]" -> "_1nd3x"
59
+ */
60
+ export declare function hasEscapedLeadingUnderscore(originalSegment: string): boolean;
61
+ /**
62
+ * Checks if the trailing underscore in a segment is escaped.
63
+ * Returns true if:
64
+ * - Segment ends with [_] pattern: "blog[_]" -> "blog_"
65
+ * - Segment is fully escaped and content ends with _: "[_r0ut3_]" -> "_r0ut3_"
66
+ */
67
+ export declare function hasEscapedTrailingUnderscore(originalSegment: string): boolean;
68
+ export declare function countRoutePathSegments(routePath?: string): number;
69
+ export declare function countSlashSeparatedParts(path: string): number;
70
+ export declare function hasRoutePathSegmentMetadata(
71
+ metadata: RoutePathSegmentMetadata | undefined,
72
+ ): metadata is RoutePathSegmentMetadata;
73
+ export declare function createRoutePathSegmentMetadata(
74
+ routePath?: string,
75
+ originalPath?: string,
76
+ ): Array<RoutePathSegmentMetadata | undefined> | undefined;
77
+ export declare function createLiteralRoutePathSegmentMetadata(
78
+ routePath: string,
79
+ parent?: RouteNode,
80
+ literalNewSegments?: boolean,
81
+ ): Array<RoutePathSegmentMetadata | undefined> | undefined;
82
+ export declare function joinRoutePathSegmentMetadata(
83
+ routePath: string,
84
+ prefixPath: string,
85
+ prefixMetadata: Array<RoutePathSegmentMetadata | undefined> | undefined,
86
+ childMetadata: Array<RoutePathSegmentMetadata | undefined> | undefined,
87
+ ): Array<RoutePathSegmentMetadata | undefined> | undefined;
88
+ export declare function replaceBackslash(s: string): string;
89
+ export declare function routePathToVariable(routePath: string): string;
90
+ export declare function removeUnderscores(s?: string): string | undefined;
91
+ /**
92
+ * Removes underscores from a path, but preserves underscores that were escaped
93
+ * in the original path (indicated by [_] syntax).
94
+ *
95
+ * @param routePath - The path with brackets removed
96
+ * @param originalPath - The original path that may contain [_] escape sequences
97
+ * @returns The path with non-escaped underscores removed
98
+ */
99
+ export declare function removeUnderscoresWithEscape(
100
+ routePath?: string,
101
+ originalPath?: string,
102
+ ): string;
103
+ export declare function removeLayoutSegmentsAndUnderscoresWithEscape(
104
+ routePath?: string,
105
+ originalPath?: string,
106
+ routePathSegmentMetadata?: Array<RoutePathSegmentMetadata | undefined>,
107
+ ): string;
108
+ /**
109
+ * Removes layout segments (segments starting with underscore) from a path,
110
+ * but preserves segments where the underscore was escaped.
111
+ *
112
+ * @param routePath - The path with brackets removed
113
+ * @param originalPath - The original path that may contain [_] escape sequences
114
+ * @returns The path with non-escaped layout segments removed
115
+ */
116
+ export declare function removeLayoutSegmentsWithEscape(
117
+ routePath?: string,
118
+ originalPath?: string,
119
+ ): string;
120
+ /**
121
+ * Checks if a segment should be treated as a pathless/layout segment.
122
+ * A segment is pathless if it starts with underscore and the underscore is not escaped.
123
+ *
124
+ * @param segment - The segment from routePath (brackets removed)
125
+ * @param originalSegment - The segment from originalRoutePath (may contain brackets)
126
+ * @returns true if the segment is pathless (has non-escaped leading underscore)
127
+ */
128
+ export declare function isSegmentPathless(segment: string, originalSegment: string): boolean;
129
+ export declare function escapeRegExp(s: string): string;
130
+ export declare function createTokenRegex(
131
+ token: TokenMatcher,
132
+ opts: {
133
+ type: 'segment' | 'filename';
134
+ },
135
+ ): RegExp;
136
+ export declare function unwrapBracketWrappedSegment(segment: string): string;
137
+ export declare function removeLeadingUnderscores(s: string, routeToken: string): string;
138
+ export declare function removeTrailingUnderscores(s: string, routeToken: string): string;
139
+ export declare function capitalize(s: string): string;
140
+ export declare function removeExt(d: string, addExtensions?: boolean | string): string;
141
+ /**
142
+ * This function writes to a file if the content is different.
143
+ *
144
+ * @param filepath The path to the file
145
+ * @param content Original content
146
+ * @param incomingContent New content
147
+ * @param callbacks Callbacks to run before and after writing
148
+ * @returns Whether the file was written
149
+ */
150
+ export declare function writeIfDifferent(
151
+ filepath: string,
152
+ content: string,
153
+ incomingContent: string,
154
+ callbacks?: {
155
+ beforeWrite?: () => void;
156
+ afterWrite?: () => void;
157
+ },
158
+ ): Promise<boolean>;
159
+ /**
160
+ * This function formats the source code using the default formatter (Prettier).
161
+ *
162
+ * @param source The content to format
163
+ * @param config The configuration object
164
+ * @returns The formatted content
165
+ */
166
+ export declare function format(
167
+ source: string,
168
+ config: {
169
+ quoteStyle: 'single' | 'double';
170
+ semicolons: boolean;
171
+ },
172
+ ): Promise<string>;
173
+ /**
174
+ * This function resets the regex index to 0 so that it can be reused
175
+ * without having to create a new regex object or worry about the last
176
+ * state when using the global flag.
177
+ *
178
+ * @param regex The regex object to reset
179
+ * @returns
180
+ */
181
+ export declare function resetRegex(regex: RegExp): void;
182
+ /**
183
+ * This function checks if a file exists.
184
+ *
185
+ * @param file The path to the file
186
+ * @returns Whether the file exists
187
+ */
188
+ export declare function checkFileExists(file: string): Promise<boolean>;
189
+ export declare function removeGroups(s: string): string;
190
+ /**
191
+ * Removes all segments from a given path that start with an underscore ('_').
192
+ *
193
+ * @param {string} routePath - The path from which to remove segments. Defaults to '/'.
194
+ * @returns {string} The path with all underscore-prefixed segments removed.
195
+ * @example
196
+ * removeLayoutSegments('/workspace/_auth/foo') // '/workspace/foo'
197
+ */
198
+ export declare function removeLayoutSegments(routePath?: string): string;
199
+ /**
200
+ * The `node.path` is used as the `id` in the route definition.
201
+ * This function checks if the given node has a parent and if so, it determines the correct path for the given node.
202
+ * @param node - The node to determine the path for.
203
+ * @returns The correct path for the given node.
204
+ */
205
+ export declare function determineNodePath(node: RouteNode): string | undefined;
206
+ /**
207
+ * Removes the last segment from a given path. Segments are considered to be separated by a '/'.
208
+ *
209
+ * @param {string} routePath - The path from which to remove the last segment. Defaults to '/'.
210
+ * @returns {string} The path with the last segment removed.
211
+ * @example
212
+ * removeLastSegmentFromPath('/workspace/_auth/foo') // '/workspace/_auth'
213
+ */
214
+ export declare function removeLastSegmentFromPath(routePath?: string): string;
215
+ /**
216
+ * Find parent route using RoutePrefixMap for O(k) lookups instead of O(n).
217
+ */
218
+ export declare function hasParentRoute(
219
+ prefixMap: RoutePrefixMap,
220
+ node: RouteNode,
221
+ routePathToCheck: string | undefined,
222
+ ): RouteNode | null;
223
+ /**
224
+ * Gets the final variable name for a route
225
+ */
226
+ export declare const getResolvedRouteNodeVariableName: (routeNode: RouteNode) => string;
227
+ /**
228
+ * Infers the full path for use by TS
229
+ */
230
+ export declare const inferFullPath: (routeNode: RouteNode) => string;
231
+ /**
232
+ * Creates a map from fullPath to routeNode
233
+ */
234
+ export declare const createRouteNodesByFullPath: (
235
+ routeNodes: Array<RouteNode>,
236
+ ) => Map<string, RouteNode>;
237
+ /**
238
+ * Create a map from 'to' to a routeNode
239
+ */
240
+ export declare const createRouteNodesByTo: (routeNodes: Array<RouteNode>) => Map<string, RouteNode>;
241
+ /**
242
+ * Create a map from 'id' to a routeNode
243
+ */
244
+ export declare const createRouteNodesById: (routeNodes: Array<RouteNode>) => Map<string, RouteNode>;
245
+ export declare function checkRouteFullPathUniqueness(
246
+ _routes: Array<RouteNode>,
247
+ config: Config,
248
+ ): void;
249
+ export declare function buildRouteTreeConfig(
250
+ nodes: Array<RouteNode>,
251
+ disableTypes: boolean,
252
+ depth?: number,
253
+ ): Array<string>;
254
+ export declare function buildImportString(importDeclaration: ImportDeclaration): string;
255
+ export declare function mergeImportDeclarations(
256
+ imports: Array<ImportDeclaration>,
257
+ ): Array<ImportDeclaration>;
258
+ export declare const findParent: (node: RouteNode | undefined) => string;
259
+ export declare function buildFileRoutesByPathInterface(opts: {
260
+ routeNodes: Array<RouteNode>;
261
+ module: string;
262
+ interfaceName: string;
263
+ config?: Pick<Config, 'routeToken'>;
264
+ }): string;
265
+ export declare function getImportForRouteNode(
266
+ node: RouteNode,
267
+ config: Config,
268
+ generatedRouteTreePath: string,
269
+ root: string,
270
+ ): ImportDeclaration;