@tanstack/start-plugin-core 1.121.0-alpha.8 → 1.121.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 (187) hide show
  1. package/dist/cjs/compilers.cjs +24 -10
  2. package/dist/cjs/compilers.cjs.map +1 -1
  3. package/dist/cjs/constants.cjs +10 -0
  4. package/dist/cjs/constants.cjs.map +1 -1
  5. package/dist/cjs/constants.d.cts +2 -0
  6. package/dist/cjs/debug.cjs +5 -0
  7. package/dist/cjs/debug.cjs.map +1 -0
  8. package/dist/cjs/debug.d.cts +1 -0
  9. package/dist/cjs/{extractHtmlScripts.cjs → dev-server-plugin/extract-html-scripts.cjs} +1 -1
  10. package/dist/cjs/dev-server-plugin/extract-html-scripts.cjs.map +1 -0
  11. package/dist/cjs/{nitro/dev-server-plugin.cjs → dev-server-plugin/plugin.cjs} +2 -2
  12. package/dist/cjs/dev-server-plugin/plugin.cjs.map +1 -0
  13. package/dist/cjs/load-env-plugin/plugin.cjs +34 -0
  14. package/dist/cjs/load-env-plugin/plugin.cjs.map +1 -0
  15. package/dist/cjs/load-env-plugin/plugin.d.cts +3 -0
  16. package/dist/cjs/{build-sitemap.cjs → nitro-plugin/build-sitemap.cjs} +12 -10
  17. package/dist/cjs/nitro-plugin/build-sitemap.cjs.map +1 -0
  18. package/dist/cjs/{build-sitemap.d.cts → nitro-plugin/build-sitemap.d.cts} +2 -2
  19. package/dist/cjs/{nitro/nitro-plugin.cjs → nitro-plugin/plugin.cjs} +79 -65
  20. package/dist/cjs/nitro-plugin/plugin.cjs.map +1 -0
  21. package/dist/cjs/{prerender.cjs → nitro-plugin/prerender.cjs} +18 -14
  22. package/dist/cjs/nitro-plugin/prerender.cjs.map +1 -0
  23. package/dist/cjs/{prerender.d.cts → nitro-plugin/prerender.d.cts} +1 -1
  24. package/dist/cjs/nitro-plugin/queue.cjs.map +1 -0
  25. package/dist/cjs/plugin.cjs +50 -38
  26. package/dist/cjs/plugin.cjs.map +1 -1
  27. package/dist/cjs/plugin.d.cts +14 -2657
  28. package/dist/cjs/resolve-virtual-entries-plugin/plugin.cjs +66 -0
  29. package/dist/cjs/resolve-virtual-entries-plugin/plugin.cjs.map +1 -0
  30. package/dist/cjs/resolve-virtual-entries-plugin/plugin.d.cts +3 -0
  31. package/dist/cjs/schema.cjs +5 -5
  32. package/dist/cjs/schema.cjs.map +1 -1
  33. package/dist/cjs/schema.d.cts +32 -16
  34. package/dist/cjs/start-compiler-plugin.cjs +21 -19
  35. package/dist/cjs/start-compiler-plugin.cjs.map +1 -1
  36. package/dist/cjs/start-compiler-plugin.d.cts +1 -1
  37. package/dist/cjs/start-manifest-plugin/plugin.cjs +182 -0
  38. package/dist/cjs/start-manifest-plugin/plugin.cjs.map +1 -0
  39. package/dist/{esm/routesManifestPlugin.d.ts → cjs/start-manifest-plugin/plugin.d.cts} +1 -1
  40. package/dist/cjs/start-router-plugin/generator-plugins/routes-manifest-plugin.cjs +39 -0
  41. package/dist/cjs/start-router-plugin/generator-plugins/routes-manifest-plugin.cjs.map +1 -0
  42. package/dist/cjs/start-router-plugin/generator-plugins/routes-manifest-plugin.d.cts +6 -0
  43. package/dist/cjs/start-router-plugin/generator-plugins/server-routes-plugin.cjs +121 -0
  44. package/dist/cjs/start-router-plugin/generator-plugins/server-routes-plugin.cjs.map +1 -0
  45. package/dist/cjs/start-router-plugin/generator-plugins/server-routes-plugin.d.cts +2 -0
  46. package/dist/cjs/start-router-plugin/plugin.cjs +21 -0
  47. package/dist/cjs/start-router-plugin/plugin.cjs.map +1 -0
  48. package/dist/cjs/start-router-plugin/plugin.d.cts +3 -0
  49. package/dist/cjs/start-router-plugin/route-tree-client-plugin.cjs +72 -0
  50. package/dist/cjs/start-router-plugin/route-tree-client-plugin.cjs.map +1 -0
  51. package/dist/cjs/start-router-plugin/route-tree-client-plugin.d.cts +6 -0
  52. package/dist/cjs/start-router-plugin/virtual-route-tree-plugin.cjs +30 -0
  53. package/dist/cjs/start-router-plugin/virtual-route-tree-plugin.cjs.map +1 -0
  54. package/dist/cjs/start-router-plugin/virtual-route-tree-plugin.d.cts +4 -0
  55. package/dist/cjs/utils.cjs +11 -0
  56. package/dist/cjs/utils.cjs.map +1 -1
  57. package/dist/cjs/utils.d.cts +7 -0
  58. package/dist/esm/compilers.js +24 -10
  59. package/dist/esm/compilers.js.map +1 -1
  60. package/dist/esm/constants.d.ts +2 -0
  61. package/dist/esm/constants.js +10 -0
  62. package/dist/esm/constants.js.map +1 -1
  63. package/dist/esm/debug.d.ts +1 -0
  64. package/dist/esm/debug.js +5 -0
  65. package/dist/esm/debug.js.map +1 -0
  66. package/dist/esm/{extractHtmlScripts.js → dev-server-plugin/extract-html-scripts.js} +1 -1
  67. package/dist/esm/dev-server-plugin/extract-html-scripts.js.map +1 -0
  68. package/dist/esm/{nitro/dev-server-plugin.js → dev-server-plugin/plugin.js} +2 -2
  69. package/dist/esm/dev-server-plugin/plugin.js.map +1 -0
  70. package/dist/esm/load-env-plugin/plugin.d.ts +3 -0
  71. package/dist/esm/load-env-plugin/plugin.js +17 -0
  72. package/dist/esm/load-env-plugin/plugin.js.map +1 -0
  73. package/dist/esm/{build-sitemap.d.ts → nitro-plugin/build-sitemap.d.ts} +2 -2
  74. package/dist/esm/{build-sitemap.js → nitro-plugin/build-sitemap.js} +9 -7
  75. package/dist/esm/nitro-plugin/build-sitemap.js.map +1 -0
  76. package/dist/esm/nitro-plugin/plugin.js +181 -0
  77. package/dist/esm/nitro-plugin/plugin.js.map +1 -0
  78. package/dist/esm/{prerender.d.ts → nitro-plugin/prerender.d.ts} +1 -1
  79. package/dist/esm/{prerender.js → nitro-plugin/prerender.js} +15 -11
  80. package/dist/esm/nitro-plugin/prerender.js.map +1 -0
  81. package/dist/esm/nitro-plugin/queue.js.map +1 -0
  82. package/dist/esm/plugin.d.ts +14 -2657
  83. package/dist/esm/plugin.js +51 -39
  84. package/dist/esm/plugin.js.map +1 -1
  85. package/dist/esm/resolve-virtual-entries-plugin/plugin.d.ts +3 -0
  86. package/dist/esm/resolve-virtual-entries-plugin/plugin.js +49 -0
  87. package/dist/esm/resolve-virtual-entries-plugin/plugin.js.map +1 -0
  88. package/dist/esm/schema.d.ts +32 -16
  89. package/dist/esm/start-compiler-plugin.d.ts +1 -1
  90. package/dist/esm/start-compiler-plugin.js +21 -19
  91. package/dist/esm/start-compiler-plugin.js.map +1 -1
  92. package/dist/{cjs/routesManifestPlugin.d.cts → esm/start-manifest-plugin/plugin.d.ts} +1 -1
  93. package/dist/esm/start-manifest-plugin/plugin.js +182 -0
  94. package/dist/esm/start-manifest-plugin/plugin.js.map +1 -0
  95. package/dist/esm/start-router-plugin/generator-plugins/routes-manifest-plugin.d.ts +6 -0
  96. package/dist/esm/start-router-plugin/generator-plugins/routes-manifest-plugin.js +39 -0
  97. package/dist/esm/start-router-plugin/generator-plugins/routes-manifest-plugin.js.map +1 -0
  98. package/dist/esm/start-router-plugin/generator-plugins/server-routes-plugin.d.ts +2 -0
  99. package/dist/esm/start-router-plugin/generator-plugins/server-routes-plugin.js +121 -0
  100. package/dist/esm/start-router-plugin/generator-plugins/server-routes-plugin.js.map +1 -0
  101. package/dist/esm/start-router-plugin/plugin.d.ts +3 -0
  102. package/dist/esm/start-router-plugin/plugin.js +21 -0
  103. package/dist/esm/start-router-plugin/plugin.js.map +1 -0
  104. package/dist/esm/start-router-plugin/route-tree-client-plugin.d.ts +6 -0
  105. package/dist/esm/start-router-plugin/route-tree-client-plugin.js +55 -0
  106. package/dist/esm/start-router-plugin/route-tree-client-plugin.js.map +1 -0
  107. package/dist/esm/start-router-plugin/virtual-route-tree-plugin.d.ts +4 -0
  108. package/dist/esm/start-router-plugin/virtual-route-tree-plugin.js +30 -0
  109. package/dist/esm/start-router-plugin/virtual-route-tree-plugin.js.map +1 -0
  110. package/dist/esm/utils.d.ts +7 -0
  111. package/dist/esm/utils.js +11 -0
  112. package/dist/esm/utils.js.map +1 -1
  113. package/package.json +8 -7
  114. package/src/compilers.ts +31 -131
  115. package/src/constants.ts +10 -0
  116. package/src/debug.ts +3 -0
  117. package/src/{nitro/dev-server-plugin.ts → dev-server-plugin/plugin.ts} +11 -1
  118. package/src/global.d.ts +8 -0
  119. package/src/load-env-plugin/plugin.ts +17 -0
  120. package/src/{build-sitemap.ts → nitro-plugin/build-sitemap.ts} +11 -8
  121. package/src/nitro-plugin/plugin.ts +244 -0
  122. package/src/{prerender.ts → nitro-plugin/prerender.ts} +17 -13
  123. package/src/plugin.ts +63 -41
  124. package/src/resolve-virtual-entries-plugin/plugin.ts +63 -0
  125. package/src/start-compiler-plugin.ts +25 -25
  126. package/src/start-manifest-plugin/plugin.ts +249 -0
  127. package/src/start-router-plugin/generator-plugins/routes-manifest-plugin.ts +43 -0
  128. package/src/start-router-plugin/generator-plugins/server-routes-plugin.ts +138 -0
  129. package/src/start-router-plugin/plugin.ts +35 -0
  130. package/src/start-router-plugin/route-tree-client-plugin.ts +76 -0
  131. package/src/start-router-plugin/virtual-route-tree-plugin.ts +30 -0
  132. package/src/utils.ts +11 -0
  133. package/dist/cjs/build-sitemap.cjs.map +0 -1
  134. package/dist/cjs/extractHtmlScripts.cjs.map +0 -1
  135. package/dist/cjs/nitro/build-nitro.cjs +0 -18
  136. package/dist/cjs/nitro/build-nitro.cjs.map +0 -1
  137. package/dist/cjs/nitro/build-nitro.d.cts +0 -2
  138. package/dist/cjs/nitro/dev-server-plugin.cjs.map +0 -1
  139. package/dist/cjs/nitro/nitro-plugin.cjs.map +0 -1
  140. package/dist/cjs/prerender.cjs.map +0 -1
  141. package/dist/cjs/queue.cjs.map +0 -1
  142. package/dist/cjs/routesManifestPlugin.cjs +0 -168
  143. package/dist/cjs/routesManifestPlugin.cjs.map +0 -1
  144. package/dist/cjs/start-server-routes-plugin/config.d.cts +0 -49
  145. package/dist/cjs/start-server-routes-plugin/plugin.cjs +0 -613
  146. package/dist/cjs/start-server-routes-plugin/plugin.cjs.map +0 -1
  147. package/dist/cjs/start-server-routes-plugin/plugin.d.cts +0 -3
  148. package/dist/cjs/start-server-routes-plugin/template.cjs +0 -111
  149. package/dist/cjs/start-server-routes-plugin/template.cjs.map +0 -1
  150. package/dist/cjs/start-server-routes-plugin/template.d.cts +0 -34
  151. package/dist/esm/build-sitemap.js.map +0 -1
  152. package/dist/esm/extractHtmlScripts.js.map +0 -1
  153. package/dist/esm/nitro/build-nitro.d.ts +0 -2
  154. package/dist/esm/nitro/build-nitro.js +0 -18
  155. package/dist/esm/nitro/build-nitro.js.map +0 -1
  156. package/dist/esm/nitro/dev-server-plugin.js.map +0 -1
  157. package/dist/esm/nitro/nitro-plugin.js +0 -167
  158. package/dist/esm/nitro/nitro-plugin.js.map +0 -1
  159. package/dist/esm/prerender.js.map +0 -1
  160. package/dist/esm/queue.js.map +0 -1
  161. package/dist/esm/routesManifestPlugin.js +0 -168
  162. package/dist/esm/routesManifestPlugin.js.map +0 -1
  163. package/dist/esm/start-server-routes-plugin/config.d.ts +0 -49
  164. package/dist/esm/start-server-routes-plugin/plugin.d.ts +0 -3
  165. package/dist/esm/start-server-routes-plugin/plugin.js +0 -613
  166. package/dist/esm/start-server-routes-plugin/plugin.js.map +0 -1
  167. package/dist/esm/start-server-routes-plugin/template.d.ts +0 -34
  168. package/dist/esm/start-server-routes-plugin/template.js +0 -111
  169. package/dist/esm/start-server-routes-plugin/template.js.map +0 -1
  170. package/src/nitro/build-nitro.ts +0 -27
  171. package/src/nitro/nitro-plugin.ts +0 -195
  172. package/src/routesManifestPlugin.ts +0 -220
  173. package/src/start-server-routes-plugin/config.ts +0 -8
  174. package/src/start-server-routes-plugin/plugin.ts +0 -899
  175. package/src/start-server-routes-plugin/template.ts +0 -164
  176. /package/dist/cjs/{extractHtmlScripts.d.cts → dev-server-plugin/extract-html-scripts.d.cts} +0 -0
  177. /package/dist/cjs/{nitro/dev-server-plugin.d.cts → dev-server-plugin/plugin.d.cts} +0 -0
  178. /package/dist/cjs/{nitro/nitro-plugin.d.cts → nitro-plugin/plugin.d.cts} +0 -0
  179. /package/dist/cjs/{queue.cjs → nitro-plugin/queue.cjs} +0 -0
  180. /package/dist/cjs/{queue.d.cts → nitro-plugin/queue.d.cts} +0 -0
  181. /package/dist/esm/{extractHtmlScripts.d.ts → dev-server-plugin/extract-html-scripts.d.ts} +0 -0
  182. /package/dist/esm/{nitro/dev-server-plugin.d.ts → dev-server-plugin/plugin.d.ts} +0 -0
  183. /package/dist/esm/{nitro/nitro-plugin.d.ts → nitro-plugin/plugin.d.ts} +0 -0
  184. /package/dist/esm/{queue.d.ts → nitro-plugin/queue.d.ts} +0 -0
  185. /package/dist/esm/{queue.js → nitro-plugin/queue.js} +0 -0
  186. /package/src/{extractHtmlScripts.ts → dev-server-plugin/extract-html-scripts.ts} +0 -0
  187. /package/src/{queue.ts → nitro-plugin/queue.ts} +0 -0
@@ -1,31 +1,33 @@
1
1
  import path from "node:path";
2
2
  import { createNitro } from "nitropack";
3
- import { tanstackRouter } from "@tanstack/router-plugin/vite";
3
+ import { trimPathRight } from "@tanstack/router-core";
4
+ import { VIRTUAL_MODULES } from "@tanstack/start-server-core";
4
5
  import { TanStackServerFnPluginEnv } from "@tanstack/server-functions-plugin";
5
6
  import * as vite from "vite";
6
- import { createTanStackStartOptionsSchema, createTanStackConfig } from "./schema.js";
7
- import { nitroPlugin } from "./nitro/nitro-plugin.js";
8
- import { startManifestPlugin } from "./routesManifestPlugin.js";
9
- import { TanStackStartCompilerPlugin } from "./start-compiler-plugin.js";
10
- import { VITE_ENVIRONMENT_NAMES } from "./constants.js";
11
- import { TanStackStartServerRoutesVite } from "./start-server-routes-plugin/plugin.js";
12
- createTanStackStartOptionsSchema();
7
+ import { createTanStackConfig } from "./schema.js";
8
+ import { nitroPlugin } from "./nitro-plugin/plugin.js";
9
+ import { startManifestPlugin } from "./start-manifest-plugin/plugin.js";
10
+ import { startCompilerPlugin } from "./start-compiler-plugin.js";
11
+ import { SSR_ENTRY_FILE, VITE_ENVIRONMENT_NAMES, CLIENT_DIST_DIR } from "./constants.js";
12
+ import { tanStackStartRouter } from "./start-router-plugin/plugin.js";
13
+ import { loadEnvPlugin } from "./load-env-plugin/plugin.js";
14
+ import { devServerPlugin } from "./dev-server-plugin/plugin.js";
15
+ import { resolveVirtualEntriesPlugin } from "./resolve-virtual-entries-plugin/plugin.js";
13
16
  createTanStackConfig();
14
- const clientDistDir = ".tanstack-start/build/client-dist";
15
- const ssrEntryFile = "ssr.mjs";
16
17
  let ssrBundle;
17
18
  function TanStackStartVitePluginCore(opts, startConfig) {
18
19
  return [
19
- tanstackRouter({
20
- verboseFileRoutes: false,
20
+ tanStackStartRouter({
21
21
  ...startConfig.tsr,
22
22
  target: opts.framework,
23
- enableRouteGeneration: true,
24
23
  autoCodeSplitting: true
25
24
  }),
25
+ resolveVirtualEntriesPlugin(opts, startConfig),
26
26
  {
27
27
  name: "tanstack-start-core:config-client",
28
- async config() {
28
+ async config(viteConfig) {
29
+ const viteAppBase = trimPathRight(viteConfig.base || "/");
30
+ globalThis.TSS_APP_BASE = viteAppBase;
29
31
  const nitroOutputPublicDir = await (async () => {
30
32
  const dummyNitroApp = await createNitro({
31
33
  preset: startConfig.target,
@@ -39,11 +41,15 @@ function TanStackStartVitePluginCore(opts, startConfig) {
39
41
  const entry = startConfig2.clientEntryPath.startsWith(
40
42
  "/~start/default-client-entry"
41
43
  ) ? startConfig2.clientEntryPath : vite.normalizePath(
42
- path.resolve(startConfig2.root, startConfig2.clientEntryPath)
44
+ path.join(
45
+ "/@fs",
46
+ path.resolve(startConfig2.root, startConfig2.clientEntryPath)
47
+ )
43
48
  );
44
49
  return entry;
45
50
  };
46
51
  return {
52
+ base: viteAppBase,
47
53
  environments: {
48
54
  [VITE_ENVIRONMENT_NAMES.client]: {
49
55
  consumer: "client",
@@ -54,9 +60,9 @@ function TanStackStartVitePluginCore(opts, startConfig) {
54
60
  main: getClientEntryPath(startConfig)
55
61
  },
56
62
  output: {
57
- dir: path.resolve(startConfig.root, clientDistDir)
63
+ dir: path.resolve(startConfig.root, CLIENT_DIST_DIR)
58
64
  },
59
- // TODO this should be removed
65
+ // TODO: this should be removed
60
66
  external: ["node:fs", "node:path", "node:os", "node:crypto"]
61
67
  }
62
68
  }
@@ -71,12 +77,12 @@ function TanStackStartVitePluginCore(opts, startConfig) {
71
77
  copyPublicDir: false,
72
78
  rollupOptions: {
73
79
  output: {
74
- entryFileNames: ssrEntryFile
80
+ entryFileNames: SSR_ENTRY_FILE
75
81
  },
76
82
  plugins: [
77
83
  {
78
84
  name: "capture-output",
79
- generateBundle(options, bundle) {
85
+ generateBundle(_options, bundle) {
80
86
  ssrBundle = bundle;
81
87
  }
82
88
  }
@@ -100,34 +106,44 @@ function TanStackStartVitePluginCore(opts, startConfig) {
100
106
  "@tanstack/start-router-manifest",
101
107
  "@tanstack/start-config",
102
108
  "@tanstack/server-functions-plugin",
103
- "tanstack-start-router-manifest:v",
104
- "tanstack-start-server-fn-manifest:v",
105
109
  "nitropack",
106
- "@tanstack/**"
110
+ "@tanstack/**start**",
111
+ ...Object.values(VIRTUAL_MODULES)
107
112
  ]
108
113
  },
114
+ optimizeDeps: {
115
+ exclude: [...Object.values(VIRTUAL_MODULES)]
116
+ },
109
117
  /* prettier-ignore */
110
118
  define: {
111
- ...injectDefineEnv("TSS_PUBLIC_BASE", startConfig.public.base),
112
- ...injectDefineEnv("TSS_CLIENT_BASE", startConfig.client.base),
113
- ...injectDefineEnv("TSS_CLIENT_ENTRY", getClientEntryPath(startConfig)),
119
+ // define is an esbuild function that replaces the any instances of given keys with the given values
120
+ // i.e: __FRAMEWORK_NAME__ can be replaced with JSON.stringify("TanStack Start")
121
+ // This is not the same as injecting environment variables.
122
+ ...defineReplaceEnv("TSS_CLIENT_ENTRY", getClientEntryPath(startConfig)),
114
123
  // This is consumed by the router-manifest, where the entry point is imported after the dev refresh runtime is resolved
115
- ...injectDefineEnv("TSS_SERVER_FN_BASE", startConfig.serverFns.base),
116
- ...injectDefineEnv("TSS_OUTPUT_PUBLIC_DIR", nitroOutputPublicDir)
124
+ ...defineReplaceEnv("TSS_SERVER_FN_BASE", startConfig.serverFns.base),
125
+ ...defineReplaceEnv("TSS_OUTPUT_PUBLIC_DIR", nitroOutputPublicDir),
126
+ ...defineReplaceEnv("TSS_APP_BASE", viteAppBase)
117
127
  }
118
128
  };
119
129
  }
120
130
  },
121
131
  // N.B. TanStackStartCompilerPlugin must be before the TanStackServerFnPluginEnv
122
- TanStackStartCompilerPlugin(opts.framework, {
132
+ startCompilerPlugin(opts.framework, {
123
133
  client: { envName: VITE_ENVIRONMENT_NAMES.client },
124
134
  server: { envName: VITE_ENVIRONMENT_NAMES.server }
125
135
  }),
126
136
  TanStackServerFnPluginEnv({
127
137
  // This is the ID that will be available to look up and import
128
138
  // our server function manifest and resolve its module
129
- manifestVirtualImportId: "tanstack-start-server-fn-manifest:v",
130
- manifestOutputFilename: ".tanstack-start/build/server/server-functions-manifest.json",
139
+ manifestVirtualImportId: VIRTUAL_MODULES.serverFnManifest,
140
+ manifestOutputFilename: path.join(
141
+ ".tanstack",
142
+ "start",
143
+ "build",
144
+ "server",
145
+ "server-functions-manifest.json"
146
+ ),
131
147
  client: {
132
148
  getRuntimeCode: () => `import { createClientRpc } from '@tanstack/${opts.framework}-start/server-functions-client'`,
133
149
  replacer: (d) => `createClientRpc('${d.functionId}', '${startConfig.serverFns.base}')`,
@@ -146,23 +162,19 @@ function TanStackStartVitePluginCore(opts, startConfig) {
146
162
  return serverEnv.runner.import(fn.extractedFilename);
147
163
  }
148
164
  }),
165
+ loadEnvPlugin(startConfig),
149
166
  startManifestPlugin(startConfig),
150
- nitroPlugin(startConfig, () => ssrBundle),
151
- TanStackStartServerRoutesVite({
152
- ...startConfig.tsr,
153
- target: opts.framework
154
- })
167
+ devServerPlugin(),
168
+ nitroPlugin(startConfig, () => ssrBundle)
155
169
  ];
156
170
  }
157
- function injectDefineEnv(key, value) {
171
+ function defineReplaceEnv(key, value) {
158
172
  return {
159
173
  [`process.env.${key}`]: JSON.stringify(value),
160
174
  [`import.meta.env.${key}`]: JSON.stringify(value)
161
175
  };
162
176
  }
163
177
  export {
164
- TanStackStartVitePluginCore,
165
- clientDistDir,
166
- ssrEntryFile
178
+ TanStackStartVitePluginCore
167
179
  };
168
180
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["../../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { createNitro } from 'nitropack'\nimport { tanstackRouter } from '@tanstack/router-plugin/vite'\nimport { TanStackServerFnPluginEnv } from '@tanstack/server-functions-plugin'\nimport * as vite from 'vite'\nimport {\n createTanStackConfig,\n createTanStackStartOptionsSchema,\n} from './schema'\nimport { nitroPlugin } from './nitro/nitro-plugin'\nimport { startManifestPlugin } from './routesManifestPlugin'\nimport { TanStackStartCompilerPlugin } from './start-compiler-plugin'\nimport { VITE_ENVIRONMENT_NAMES } from './constants'\nimport { TanStackStartServerRoutesVite } from './start-server-routes-plugin/plugin'\nimport type { PluginOption, Rollup } from 'vite'\nimport type { z } from 'zod'\nimport type { CompileStartFrameworkOptions } from './compilers'\n\nconst TanStackStartOptionsSchema = createTanStackStartOptionsSchema()\nexport type TanStackStartInputConfig = z.input<\n typeof TanStackStartOptionsSchema\n>\n\nconst defaultConfig = createTanStackConfig()\nexport function getTanStackStartOptions(opts?: TanStackStartInputConfig) {\n return defaultConfig.parse(opts)\n}\n\nexport type TanStackStartOutputConfig = ReturnType<\n typeof getTanStackStartOptions\n>\n\nexport const clientDistDir = '.tanstack-start/build/client-dist'\nexport const ssrEntryFile = 'ssr.mjs'\n\nexport interface TanStackStartVitePluginCoreOptions {\n framework: CompileStartFrameworkOptions\n}\n// this needs to live outside of the TanStackStartVitePluginCore since it will be invoked multiple times by vite\nlet ssrBundle: Rollup.OutputBundle\n\nexport function TanStackStartVitePluginCore(\n opts: TanStackStartVitePluginCoreOptions,\n startConfig: TanStackStartOutputConfig,\n): Array<PluginOption> {\n return [\n tanstackRouter({\n verboseFileRoutes: false,\n ...startConfig.tsr,\n target: opts.framework,\n enableRouteGeneration: true,\n autoCodeSplitting: true,\n }),\n {\n name: 'tanstack-start-core:config-client',\n async config() {\n const nitroOutputPublicDir = await (async () => {\n // Create a dummy nitro app to get the resolved public output path\n const dummyNitroApp = await createNitro({\n preset: startConfig.target,\n compatibilityDate: '2024-12-01',\n })\n\n const nitroOutputPublicDir = dummyNitroApp.options.output.publicDir\n await dummyNitroApp.close()\n\n return nitroOutputPublicDir\n })()\n\n const getClientEntryPath = (startConfig: TanStackStartOutputConfig) => {\n // when the user specifies a custom client entry path, we need to resolve it\n // relative to the root of the project, keeping in mind that if not specified\n // it will be /~start/default-client-entry which is a virtual path\n // that is resolved by vite to the actual client entry path\n const entry = startConfig.clientEntryPath.startsWith(\n '/~start/default-client-entry',\n )\n ? startConfig.clientEntryPath\n : vite.normalizePath(\n path.resolve(startConfig.root, startConfig.clientEntryPath),\n )\n\n return entry\n }\n\n return {\n environments: {\n [VITE_ENVIRONMENT_NAMES.client]: {\n consumer: 'client',\n build: {\n manifest: true,\n rollupOptions: {\n input: {\n main: getClientEntryPath(startConfig),\n },\n output: {\n dir: path.resolve(startConfig.root, clientDistDir),\n },\n // TODO this should be removed\n external: ['node:fs', 'node:path', 'node:os', 'node:crypto'],\n },\n },\n },\n [VITE_ENVIRONMENT_NAMES.server]: {\n consumer: 'server',\n build: {\n ssr: true,\n // we don't write to the file system as the below 'capture-output' plugin will\n // capture the output and write it to the virtual file system\n write: false,\n copyPublicDir: false,\n rollupOptions: {\n output: {\n entryFileNames: ssrEntryFile,\n },\n plugins: [\n {\n name: 'capture-output',\n generateBundle(options, bundle) {\n // TODO can this hook be called more than once?\n ssrBundle = bundle\n },\n },\n ],\n },\n commonjsOptions: {\n include: [/node_modules/],\n },\n },\n },\n },\n resolve: {\n noExternal: [\n '@tanstack/start-client',\n '@tanstack/start-client-core',\n '@tanstack/start-server',\n '@tanstack/start-server-core',\n '@tanstack/start-server-functions-fetcher',\n '@tanstack/start-server-functions-client',\n '@tanstack/start-server-functions-server',\n '@tanstack/start-router-manifest',\n '@tanstack/start-config',\n '@tanstack/server-functions-plugin',\n 'tanstack-start-router-manifest:v',\n 'tanstack-start-server-fn-manifest:v',\n 'nitropack',\n '@tanstack/**',\n ],\n },\n /* prettier-ignore */\n define: {\n ...injectDefineEnv('TSS_PUBLIC_BASE', startConfig.public.base),\n ...injectDefineEnv('TSS_CLIENT_BASE', startConfig.client.base),\n ...injectDefineEnv('TSS_CLIENT_ENTRY', getClientEntryPath(startConfig)), // This is consumed by the router-manifest, where the entry point is imported after the dev refresh runtime is resolved\n ...injectDefineEnv('TSS_SERVER_FN_BASE', startConfig.serverFns.base),\n ...injectDefineEnv('TSS_OUTPUT_PUBLIC_DIR', nitroOutputPublicDir),\n },\n }\n },\n },\n // N.B. TanStackStartCompilerPlugin must be before the TanStackServerFnPluginEnv\n TanStackStartCompilerPlugin(opts.framework, {\n client: { envName: VITE_ENVIRONMENT_NAMES.client },\n server: { envName: VITE_ENVIRONMENT_NAMES.server },\n }),\n TanStackServerFnPluginEnv({\n // This is the ID that will be available to look up and import\n // our server function manifest and resolve its module\n manifestVirtualImportId: 'tanstack-start-server-fn-manifest:v',\n manifestOutputFilename:\n '.tanstack-start/build/server/server-functions-manifest.json',\n client: {\n getRuntimeCode: () =>\n `import { createClientRpc } from '@tanstack/${opts.framework}-start/server-functions-client'`,\n replacer: (d) =>\n `createClientRpc('${d.functionId}', '${startConfig.serverFns.base}')`,\n envName: VITE_ENVIRONMENT_NAMES.client,\n },\n server: {\n getRuntimeCode: () =>\n `import { createServerRpc } from '@tanstack/${opts.framework}-start/server-functions-server'`,\n replacer: (d) =>\n `createServerRpc('${d.functionId}', '${startConfig.serverFns.base}', ${d.fn})`,\n envName: VITE_ENVIRONMENT_NAMES.server,\n },\n importer: (fn) => {\n const serverEnv = (globalThis as any).viteDevServer.environments[\n VITE_ENVIRONMENT_NAMES.server\n ]\n if (!serverEnv) {\n throw new Error(`'ssr' vite dev environment not found`)\n }\n return serverEnv.runner.import(fn.extractedFilename)\n },\n }),\n startManifestPlugin(startConfig),\n nitroPlugin(startConfig, () => ssrBundle),\n TanStackStartServerRoutesVite({\n ...startConfig.tsr,\n target: opts.framework,\n }),\n ]\n}\n\nfunction injectDefineEnv<TKey extends string, TValue extends string>(\n key: TKey,\n value: TValue,\n): { [P in `process.env.${TKey}` | `import.meta.env.${TKey}`]: TValue } {\n return {\n [`process.env.${key}`]: JSON.stringify(value),\n [`import.meta.env.${key}`]: JSON.stringify(value),\n } as { [P in `process.env.${TKey}` | `import.meta.env.${TKey}`]: TValue }\n}\n"],"names":["nitroOutputPublicDir","startConfig"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["../../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { createNitro } from 'nitropack'\nimport { trimPathRight } from '@tanstack/router-core'\nimport { VIRTUAL_MODULES } from '@tanstack/start-server-core'\nimport { TanStackServerFnPluginEnv } from '@tanstack/server-functions-plugin'\nimport * as vite from 'vite'\nimport { createTanStackConfig } from './schema'\nimport { nitroPlugin } from './nitro-plugin/plugin'\nimport { startManifestPlugin } from './start-manifest-plugin/plugin'\nimport { startCompilerPlugin } from './start-compiler-plugin'\nimport {\n CLIENT_DIST_DIR,\n SSR_ENTRY_FILE,\n VITE_ENVIRONMENT_NAMES,\n} from './constants'\nimport { tanStackStartRouter } from './start-router-plugin/plugin'\nimport { loadEnvPlugin } from './load-env-plugin/plugin'\nimport { devServerPlugin } from './dev-server-plugin/plugin'\nimport { resolveVirtualEntriesPlugin } from './resolve-virtual-entries-plugin/plugin'\nimport type { createTanStackStartOptionsSchema } from './schema'\nimport type { PluginOption, Rollup } from 'vite'\nimport type { z } from 'zod'\nimport type { CompileStartFrameworkOptions } from './compilers'\n\nexport type TanStackStartInputConfig = z.input<\n ReturnType<typeof createTanStackStartOptionsSchema>\n>\n\nconst defaultConfig = createTanStackConfig()\nexport function getTanStackStartOptions(opts?: TanStackStartInputConfig) {\n return defaultConfig.parse(opts)\n}\n\nexport type TanStackStartOutputConfig = ReturnType<\n typeof getTanStackStartOptions\n>\n\nexport interface TanStackStartVitePluginCoreOptions {\n framework: CompileStartFrameworkOptions\n getVirtualServerRootHandler: (ctx: {\n routerFilepath: string\n serverEntryFilepath: string\n }) => string\n getVirtualServerEntry: (ctx: { routerFilepath: string }) => string\n getVirtualClientEntry: (ctx: { routerFilepath: string }) => string\n}\n// this needs to live outside of the TanStackStartVitePluginCore since it will be invoked multiple times by vite\nlet ssrBundle: Rollup.OutputBundle\n\nexport function TanStackStartVitePluginCore(\n opts: TanStackStartVitePluginCoreOptions,\n startConfig: TanStackStartOutputConfig,\n): Array<PluginOption> {\n return [\n tanStackStartRouter({\n ...startConfig.tsr,\n target: opts.framework,\n autoCodeSplitting: true,\n }),\n resolveVirtualEntriesPlugin(opts, startConfig),\n {\n name: 'tanstack-start-core:config-client',\n async config(viteConfig) {\n const viteAppBase = trimPathRight(viteConfig.base || '/')\n globalThis.TSS_APP_BASE = viteAppBase\n\n const nitroOutputPublicDir = await (async () => {\n // Create a dummy nitro app to get the resolved public output path\n const dummyNitroApp = await createNitro({\n preset: startConfig.target,\n compatibilityDate: '2024-12-01',\n })\n\n const nitroOutputPublicDir = dummyNitroApp.options.output.publicDir\n await dummyNitroApp.close()\n\n return nitroOutputPublicDir\n })()\n\n const getClientEntryPath = (startConfig: TanStackStartOutputConfig) => {\n // when the user specifies a custom client entry path, we need to resolve it\n // relative to the root of the project, keeping in mind that if not specified\n // it will be /~start/default-client-entry which is a virtual path\n // that is resolved by vite to the actual client entry path\n const entry = startConfig.clientEntryPath.startsWith(\n '/~start/default-client-entry',\n )\n ? startConfig.clientEntryPath\n : vite.normalizePath(\n path.join(\n '/@fs',\n path.resolve(startConfig.root, startConfig.clientEntryPath),\n ),\n )\n\n return entry\n }\n\n return {\n base: viteAppBase,\n environments: {\n [VITE_ENVIRONMENT_NAMES.client]: {\n consumer: 'client',\n build: {\n manifest: true,\n rollupOptions: {\n input: {\n main: getClientEntryPath(startConfig),\n },\n output: {\n dir: path.resolve(startConfig.root, CLIENT_DIST_DIR),\n },\n // TODO: this should be removed\n external: ['node:fs', 'node:path', 'node:os', 'node:crypto'],\n },\n },\n },\n [VITE_ENVIRONMENT_NAMES.server]: {\n consumer: 'server',\n build: {\n ssr: true,\n // we don't write to the file system as the below 'capture-output' plugin will\n // capture the output and write it to the virtual file system\n write: false,\n copyPublicDir: false,\n rollupOptions: {\n output: {\n entryFileNames: SSR_ENTRY_FILE,\n },\n plugins: [\n {\n name: 'capture-output',\n generateBundle(_options, bundle) {\n // TODO: can this hook be called more than once?\n ssrBundle = bundle\n },\n },\n ],\n },\n commonjsOptions: {\n include: [/node_modules/],\n },\n },\n },\n },\n resolve: {\n noExternal: [\n '@tanstack/start-client',\n '@tanstack/start-client-core',\n '@tanstack/start-server',\n '@tanstack/start-server-core',\n '@tanstack/start-server-functions-fetcher',\n '@tanstack/start-server-functions-client',\n '@tanstack/start-server-functions-server',\n '@tanstack/start-router-manifest',\n '@tanstack/start-config',\n '@tanstack/server-functions-plugin',\n 'nitropack',\n '@tanstack/**start**',\n ...Object.values(VIRTUAL_MODULES),\n ],\n },\n optimizeDeps: {\n exclude: [...Object.values(VIRTUAL_MODULES)],\n },\n /* prettier-ignore */\n define: {\n // define is an esbuild function that replaces the any instances of given keys with the given values\n // i.e: __FRAMEWORK_NAME__ can be replaced with JSON.stringify(\"TanStack Start\")\n // This is not the same as injecting environment variables.\n\n ...defineReplaceEnv('TSS_CLIENT_ENTRY', getClientEntryPath(startConfig)), // This is consumed by the router-manifest, where the entry point is imported after the dev refresh runtime is resolved\n ...defineReplaceEnv('TSS_SERVER_FN_BASE', startConfig.serverFns.base),\n ...defineReplaceEnv('TSS_OUTPUT_PUBLIC_DIR', nitroOutputPublicDir),\n ...defineReplaceEnv('TSS_APP_BASE', viteAppBase)\n },\n }\n },\n },\n // N.B. TanStackStartCompilerPlugin must be before the TanStackServerFnPluginEnv\n startCompilerPlugin(opts.framework, {\n client: { envName: VITE_ENVIRONMENT_NAMES.client },\n server: { envName: VITE_ENVIRONMENT_NAMES.server },\n }),\n TanStackServerFnPluginEnv({\n // This is the ID that will be available to look up and import\n // our server function manifest and resolve its module\n manifestVirtualImportId: VIRTUAL_MODULES.serverFnManifest,\n manifestOutputFilename: path.join(\n '.tanstack',\n 'start',\n 'build',\n 'server',\n 'server-functions-manifest.json',\n ),\n client: {\n getRuntimeCode: () =>\n `import { createClientRpc } from '@tanstack/${opts.framework}-start/server-functions-client'`,\n replacer: (d) =>\n `createClientRpc('${d.functionId}', '${startConfig.serverFns.base}')`,\n envName: VITE_ENVIRONMENT_NAMES.client,\n },\n server: {\n getRuntimeCode: () =>\n `import { createServerRpc } from '@tanstack/${opts.framework}-start/server-functions-server'`,\n replacer: (d) =>\n `createServerRpc('${d.functionId}', '${startConfig.serverFns.base}', ${d.fn})`,\n envName: VITE_ENVIRONMENT_NAMES.server,\n },\n importer: (fn) => {\n const serverEnv = (globalThis as any).viteDevServer.environments[\n VITE_ENVIRONMENT_NAMES.server\n ]\n if (!serverEnv) {\n throw new Error(`'ssr' vite dev environment not found`)\n }\n return serverEnv.runner.import(fn.extractedFilename)\n },\n }),\n loadEnvPlugin(startConfig),\n startManifestPlugin(startConfig),\n devServerPlugin(),\n nitroPlugin(startConfig, () => ssrBundle),\n ]\n}\n\nfunction defineReplaceEnv<TKey extends string, TValue extends string>(\n key: TKey,\n value: TValue,\n): { [P in `process.env.${TKey}` | `import.meta.env.${TKey}`]: TValue } {\n return {\n [`process.env.${key}`]: JSON.stringify(value),\n [`import.meta.env.${key}`]: JSON.stringify(value),\n } as { [P in `process.env.${TKey}` | `import.meta.env.${TKey}`]: TValue }\n}\n"],"names":["nitroOutputPublicDir","startConfig"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { TanStackStartOutputConfig, TanStackStartVitePluginCoreOptions } from '../plugin.js';
2
+ import * as vite from 'vite';
3
+ export declare function resolveVirtualEntriesPlugin(opts: TanStackStartVitePluginCoreOptions, startConfig: TanStackStartOutputConfig): vite.Plugin;
@@ -0,0 +1,49 @@
1
+ import path from "node:path";
2
+ import * as vite from "vite";
3
+ function resolveVirtualEntriesPlugin(opts, startConfig) {
4
+ let resolvedConfig;
5
+ const modules = /* @__PURE__ */ new Set([
6
+ "/~start/server-entry",
7
+ "/~start/default-server-entry",
8
+ "/~start/default-client-entry"
9
+ ]);
10
+ return {
11
+ name: "tanstack-start-core:resolve-virtual-entries",
12
+ configResolved(config) {
13
+ resolvedConfig = config;
14
+ },
15
+ resolveId(id) {
16
+ if (modules.has(id)) {
17
+ return `${id}.tsx`;
18
+ }
19
+ return void 0;
20
+ },
21
+ load(id) {
22
+ const routerFilepath = vite.normalizePath(
23
+ path.resolve(startConfig.root, startConfig.tsr.srcDirectory, "router")
24
+ );
25
+ if (id === "/~start/server-entry.tsx") {
26
+ const ssrEntryFilepath = startConfig.serverEntryPath.startsWith(
27
+ "/~start/default-server-entry"
28
+ ) ? startConfig.serverEntryPath : vite.normalizePath(
29
+ path.resolve(resolvedConfig.root, startConfig.serverEntryPath)
30
+ );
31
+ return opts.getVirtualServerRootHandler({
32
+ routerFilepath,
33
+ serverEntryFilepath: ssrEntryFilepath
34
+ });
35
+ }
36
+ if (id === "/~start/default-client-entry.tsx") {
37
+ return opts.getVirtualClientEntry({ routerFilepath });
38
+ }
39
+ if (id === "/~start/default-server-entry.tsx") {
40
+ return opts.getVirtualServerEntry({ routerFilepath });
41
+ }
42
+ return void 0;
43
+ }
44
+ };
45
+ }
46
+ export {
47
+ resolveVirtualEntriesPlugin
48
+ };
49
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sources":["../../../src/resolve-virtual-entries-plugin/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport * as vite from 'vite'\nimport type {\n TanStackStartOutputConfig,\n TanStackStartVitePluginCoreOptions,\n} from '../plugin'\n\nexport function resolveVirtualEntriesPlugin(\n opts: TanStackStartVitePluginCoreOptions,\n startConfig: TanStackStartOutputConfig,\n): vite.Plugin {\n let resolvedConfig: vite.ResolvedConfig\n\n const modules = new Set<string>([\n '/~start/server-entry',\n '/~start/default-server-entry',\n '/~start/default-client-entry',\n ])\n\n return {\n name: 'tanstack-start-core:resolve-virtual-entries',\n configResolved(config) {\n resolvedConfig = config\n },\n resolveId(id) {\n if (modules.has(id)) {\n return `${id}.tsx`\n }\n\n return undefined\n },\n load(id) {\n const routerFilepath = vite.normalizePath(\n path.resolve(startConfig.root, startConfig.tsr.srcDirectory, 'router'),\n )\n\n if (id === '/~start/server-entry.tsx') {\n const ssrEntryFilepath = startConfig.serverEntryPath.startsWith(\n '/~start/default-server-entry',\n )\n ? startConfig.serverEntryPath\n : vite.normalizePath(\n path.resolve(resolvedConfig.root, startConfig.serverEntryPath),\n )\n\n return opts.getVirtualServerRootHandler({\n routerFilepath,\n serverEntryFilepath: ssrEntryFilepath,\n })\n }\n\n if (id === '/~start/default-client-entry.tsx') {\n return opts.getVirtualClientEntry({ routerFilepath })\n }\n\n if (id === '/~start/default-server-entry.tsx') {\n return opts.getVirtualServerEntry({ routerFilepath })\n }\n\n return undefined\n },\n }\n}\n"],"names":[],"mappings":";;AAOgB,SAAA,4BACd,MACA,aACa;AACT,MAAA;AAEE,QAAA,8BAAc,IAAY;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAEM,SAAA;AAAA,IACL,MAAM;AAAA,IACN,eAAe,QAAQ;AACJ,uBAAA;AAAA,IACnB;AAAA,IACA,UAAU,IAAI;AACR,UAAA,QAAQ,IAAI,EAAE,GAAG;AACnB,eAAO,GAAG,EAAE;AAAA,MAAA;AAGP,aAAA;AAAA,IACT;AAAA,IACA,KAAK,IAAI;AACP,YAAM,iBAAiB,KAAK;AAAA,QAC1B,KAAK,QAAQ,YAAY,MAAM,YAAY,IAAI,cAAc,QAAQ;AAAA,MACvE;AAEA,UAAI,OAAO,4BAA4B;AAC/B,cAAA,mBAAmB,YAAY,gBAAgB;AAAA,UACnD;AAAA,QAAA,IAEE,YAAY,kBACZ,KAAK;AAAA,UACH,KAAK,QAAQ,eAAe,MAAM,YAAY,eAAe;AAAA,QAC/D;AAEJ,eAAO,KAAK,4BAA4B;AAAA,UACtC;AAAA,UACA,qBAAqB;AAAA,QAAA,CACtB;AAAA,MAAA;AAGH,UAAI,OAAO,oCAAoC;AAC7C,eAAO,KAAK,sBAAsB,EAAE,gBAAgB;AAAA,MAAA;AAGtD,UAAI,OAAO,oCAAoC;AAC7C,eAAO,KAAK,sBAAsB,EAAE,gBAAgB;AAAA,MAAA;AAG/C,aAAA;AAAA,IAAA;AAAA,EAEX;AACF;"}
@@ -19,7 +19,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
19
19
  disableTypes: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
20
20
  verboseFileRoutes: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
21
21
  addExtensions: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
22
- disableManifestGeneration: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
23
22
  enableRouteTreeFormatting: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
24
23
  routeTreeFileFooter: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>>;
25
24
  customScaffolding: z.ZodOptional<z.ZodOptional<z.ZodObject<{
@@ -39,6 +38,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
39
38
  }, {
40
39
  enableCodeSplitting?: boolean | undefined;
41
40
  }>>>;
41
+ plugins: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodType<import('@tanstack/router-generator').GeneratorPlugin, z.ZodTypeDef, import('@tanstack/router-generator').GeneratorPlugin>, "many">>>;
42
+ tmpDir: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodString>>>;
42
43
  }, {
43
44
  srcDirectory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
44
45
  }>, "strip", z.ZodTypeAny, {
@@ -60,7 +61,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
60
61
  disableTypes?: boolean | undefined;
61
62
  verboseFileRoutes?: boolean | undefined;
62
63
  addExtensions?: boolean | undefined;
63
- disableManifestGeneration?: boolean | undefined;
64
64
  enableRouteTreeFormatting?: boolean | undefined;
65
65
  routeTreeFileFooter?: string[] | undefined;
66
66
  customScaffolding?: {
@@ -70,6 +70,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
70
70
  experimental?: {
71
71
  enableCodeSplitting?: boolean | undefined;
72
72
  } | undefined;
73
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
74
+ tmpDir?: string | undefined;
73
75
  }, {
74
76
  target?: "react" | "solid" | undefined;
75
77
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
@@ -88,7 +90,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
88
90
  disableTypes?: boolean | undefined;
89
91
  verboseFileRoutes?: boolean | undefined;
90
92
  addExtensions?: boolean | undefined;
91
- disableManifestGeneration?: boolean | undefined;
92
93
  enableRouteTreeFormatting?: boolean | undefined;
93
94
  routeTreeFileFooter?: string[] | undefined;
94
95
  customScaffolding?: {
@@ -98,6 +99,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
98
99
  experimental?: {
99
100
  enableCodeSplitting?: boolean | undefined;
100
101
  } | undefined;
102
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
103
+ tmpDir?: string | undefined;
101
104
  srcDirectory?: string | undefined;
102
105
  }>>>;
103
106
  client: z.ZodDefault<z.ZodOptional<z.ZodObject<{
@@ -2140,7 +2143,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2140
2143
  disableTypes?: boolean | undefined;
2141
2144
  verboseFileRoutes?: boolean | undefined;
2142
2145
  addExtensions?: boolean | undefined;
2143
- disableManifestGeneration?: boolean | undefined;
2144
2146
  enableRouteTreeFormatting?: boolean | undefined;
2145
2147
  routeTreeFileFooter?: string[] | undefined;
2146
2148
  customScaffolding?: {
@@ -2150,6 +2152,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2150
2152
  experimental?: {
2151
2153
  enableCodeSplitting?: boolean | undefined;
2152
2154
  } | undefined;
2155
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
2156
+ tmpDir?: string | undefined;
2153
2157
  };
2154
2158
  client: {
2155
2159
  base: string;
@@ -2513,7 +2517,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2513
2517
  disableTypes?: boolean | undefined;
2514
2518
  verboseFileRoutes?: boolean | undefined;
2515
2519
  addExtensions?: boolean | undefined;
2516
- disableManifestGeneration?: boolean | undefined;
2517
2520
  enableRouteTreeFormatting?: boolean | undefined;
2518
2521
  routeTreeFileFooter?: string[] | undefined;
2519
2522
  customScaffolding?: {
@@ -2523,6 +2526,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2523
2526
  experimental?: {
2524
2527
  enableCodeSplitting?: boolean | undefined;
2525
2528
  } | undefined;
2529
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
2530
+ tmpDir?: string | undefined;
2526
2531
  srcDirectory?: string | undefined;
2527
2532
  } | undefined;
2528
2533
  client?: {
@@ -2671,7 +2676,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2671
2676
  disableTypes: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
2672
2677
  verboseFileRoutes: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
2673
2678
  addExtensions: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
2674
- disableManifestGeneration: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
2675
2679
  enableRouteTreeFormatting: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
2676
2680
  routeTreeFileFooter: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>>;
2677
2681
  customScaffolding: z.ZodOptional<z.ZodOptional<z.ZodObject<{
@@ -2691,6 +2695,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2691
2695
  }, {
2692
2696
  enableCodeSplitting?: boolean | undefined;
2693
2697
  }>>>;
2698
+ plugins: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodType<import('@tanstack/router-generator').GeneratorPlugin, z.ZodTypeDef, import('@tanstack/router-generator').GeneratorPlugin>, "many">>>;
2699
+ tmpDir: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodString>>>;
2694
2700
  }, {
2695
2701
  srcDirectory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2696
2702
  }>, "strip", z.ZodTypeAny, {
@@ -2712,7 +2718,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2712
2718
  disableTypes?: boolean | undefined;
2713
2719
  verboseFileRoutes?: boolean | undefined;
2714
2720
  addExtensions?: boolean | undefined;
2715
- disableManifestGeneration?: boolean | undefined;
2716
2721
  enableRouteTreeFormatting?: boolean | undefined;
2717
2722
  routeTreeFileFooter?: string[] | undefined;
2718
2723
  customScaffolding?: {
@@ -2722,6 +2727,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2722
2727
  experimental?: {
2723
2728
  enableCodeSplitting?: boolean | undefined;
2724
2729
  } | undefined;
2730
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
2731
+ tmpDir?: string | undefined;
2725
2732
  }, {
2726
2733
  target?: "react" | "solid" | undefined;
2727
2734
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
@@ -2740,7 +2747,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2740
2747
  disableTypes?: boolean | undefined;
2741
2748
  verboseFileRoutes?: boolean | undefined;
2742
2749
  addExtensions?: boolean | undefined;
2743
- disableManifestGeneration?: boolean | undefined;
2744
2750
  enableRouteTreeFormatting?: boolean | undefined;
2745
2751
  routeTreeFileFooter?: string[] | undefined;
2746
2752
  customScaffolding?: {
@@ -2750,6 +2756,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
2750
2756
  experimental?: {
2751
2757
  enableCodeSplitting?: boolean | undefined;
2752
2758
  } | undefined;
2759
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
2760
+ tmpDir?: string | undefined;
2753
2761
  srcDirectory?: string | undefined;
2754
2762
  }>>>;
2755
2763
  client: z.ZodDefault<z.ZodOptional<z.ZodObject<{
@@ -4792,7 +4800,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
4792
4800
  disableTypes?: boolean | undefined;
4793
4801
  verboseFileRoutes?: boolean | undefined;
4794
4802
  addExtensions?: boolean | undefined;
4795
- disableManifestGeneration?: boolean | undefined;
4796
4803
  enableRouteTreeFormatting?: boolean | undefined;
4797
4804
  routeTreeFileFooter?: string[] | undefined;
4798
4805
  customScaffolding?: {
@@ -4802,6 +4809,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
4802
4809
  experimental?: {
4803
4810
  enableCodeSplitting?: boolean | undefined;
4804
4811
  } | undefined;
4812
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
4813
+ tmpDir?: string | undefined;
4805
4814
  };
4806
4815
  client: {
4807
4816
  base: string;
@@ -5165,7 +5174,6 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
5165
5174
  disableTypes?: boolean | undefined;
5166
5175
  verboseFileRoutes?: boolean | undefined;
5167
5176
  addExtensions?: boolean | undefined;
5168
- disableManifestGeneration?: boolean | undefined;
5169
5177
  enableRouteTreeFormatting?: boolean | undefined;
5170
5178
  routeTreeFileFooter?: string[] | undefined;
5171
5179
  customScaffolding?: {
@@ -5175,6 +5183,8 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
5175
5183
  experimental?: {
5176
5184
  enableCodeSplitting?: boolean | undefined;
5177
5185
  } | undefined;
5186
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
5187
+ tmpDir?: string | undefined;
5178
5188
  srcDirectory?: string | undefined;
5179
5189
  } | undefined;
5180
5190
  client?: {
@@ -5317,9 +5327,9 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
5317
5327
  generatedRouteTree: string;
5318
5328
  disableTypes: boolean;
5319
5329
  addExtensions: boolean;
5320
- disableManifestGeneration: boolean;
5321
5330
  enableRouteTreeFormatting: boolean;
5322
5331
  routeTreeFileFooter: string[];
5332
+ tmpDir: string;
5323
5333
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
5324
5334
  routeFilePrefix?: string | undefined;
5325
5335
  routeFileIgnorePattern?: string | undefined;
@@ -5333,6 +5343,7 @@ export declare function createTanStackConfig<TFrameworkPlugin extends Record<str
5333
5343
  experimental?: {
5334
5344
  enableCodeSplitting?: boolean | undefined;
5335
5345
  } | undefined;
5346
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
5336
5347
  srcDirectory: string;
5337
5348
  };
5338
5349
  clientEntryPath: string;
@@ -5593,7 +5604,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
5593
5604
  disableTypes: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
5594
5605
  verboseFileRoutes: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
5595
5606
  addExtensions: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
5596
- disableManifestGeneration: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
5597
5607
  enableRouteTreeFormatting: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
5598
5608
  routeTreeFileFooter: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>>;
5599
5609
  customScaffolding: z.ZodOptional<z.ZodOptional<z.ZodObject<{
@@ -5613,6 +5623,8 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
5613
5623
  }, {
5614
5624
  enableCodeSplitting?: boolean | undefined;
5615
5625
  }>>>;
5626
+ plugins: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodType<import('@tanstack/router-generator').GeneratorPlugin, z.ZodTypeDef, import('@tanstack/router-generator').GeneratorPlugin>, "many">>>;
5627
+ tmpDir: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodString>>>;
5616
5628
  }, {
5617
5629
  srcDirectory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
5618
5630
  }>, "strip", z.ZodTypeAny, {
@@ -5634,7 +5646,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
5634
5646
  disableTypes?: boolean | undefined;
5635
5647
  verboseFileRoutes?: boolean | undefined;
5636
5648
  addExtensions?: boolean | undefined;
5637
- disableManifestGeneration?: boolean | undefined;
5638
5649
  enableRouteTreeFormatting?: boolean | undefined;
5639
5650
  routeTreeFileFooter?: string[] | undefined;
5640
5651
  customScaffolding?: {
@@ -5644,6 +5655,8 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
5644
5655
  experimental?: {
5645
5656
  enableCodeSplitting?: boolean | undefined;
5646
5657
  } | undefined;
5658
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
5659
+ tmpDir?: string | undefined;
5647
5660
  }, {
5648
5661
  target?: "react" | "solid" | undefined;
5649
5662
  virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
@@ -5662,7 +5675,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
5662
5675
  disableTypes?: boolean | undefined;
5663
5676
  verboseFileRoutes?: boolean | undefined;
5664
5677
  addExtensions?: boolean | undefined;
5665
- disableManifestGeneration?: boolean | undefined;
5666
5678
  enableRouteTreeFormatting?: boolean | undefined;
5667
5679
  routeTreeFileFooter?: string[] | undefined;
5668
5680
  customScaffolding?: {
@@ -5672,6 +5684,8 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
5672
5684
  experimental?: {
5673
5685
  enableCodeSplitting?: boolean | undefined;
5674
5686
  } | undefined;
5687
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
5688
+ tmpDir?: string | undefined;
5675
5689
  srcDirectory?: string | undefined;
5676
5690
  }>>>;
5677
5691
  client: z.ZodDefault<z.ZodOptional<z.ZodObject<{
@@ -7714,7 +7728,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
7714
7728
  disableTypes?: boolean | undefined;
7715
7729
  verboseFileRoutes?: boolean | undefined;
7716
7730
  addExtensions?: boolean | undefined;
7717
- disableManifestGeneration?: boolean | undefined;
7718
7731
  enableRouteTreeFormatting?: boolean | undefined;
7719
7732
  routeTreeFileFooter?: string[] | undefined;
7720
7733
  customScaffolding?: {
@@ -7724,6 +7737,8 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
7724
7737
  experimental?: {
7725
7738
  enableCodeSplitting?: boolean | undefined;
7726
7739
  } | undefined;
7740
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
7741
+ tmpDir?: string | undefined;
7727
7742
  };
7728
7743
  client: {
7729
7744
  base: string;
@@ -8087,7 +8102,6 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
8087
8102
  disableTypes?: boolean | undefined;
8088
8103
  verboseFileRoutes?: boolean | undefined;
8089
8104
  addExtensions?: boolean | undefined;
8090
- disableManifestGeneration?: boolean | undefined;
8091
8105
  enableRouteTreeFormatting?: boolean | undefined;
8092
8106
  routeTreeFileFooter?: string[] | undefined;
8093
8107
  customScaffolding?: {
@@ -8097,6 +8111,8 @@ export declare function createTanStackStartOptionsSchema(frameworkPlugin?: Recor
8097
8111
  experimental?: {
8098
8112
  enableCodeSplitting?: boolean | undefined;
8099
8113
  } | undefined;
8114
+ plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
8115
+ tmpDir?: string | undefined;
8100
8116
  srcDirectory?: string | undefined;
8101
8117
  } | undefined;
8102
8118
  client?: {
@@ -3,7 +3,7 @@ import { CompileStartFrameworkOptions } from './compilers.js';
3
3
  export type TanStackStartViteOptions = {
4
4
  globalMiddlewareEntry: string;
5
5
  };
6
- export declare function TanStackStartCompilerPlugin(framework: CompileStartFrameworkOptions, inputOpts?: {
6
+ export declare function startCompilerPlugin(framework: CompileStartFrameworkOptions, inputOpts?: {
7
7
  client?: {
8
8
  envName?: string;
9
9
  };
@@ -8,10 +8,11 @@ const transformFuncs = [
8
8
  "serverOnly",
9
9
  "clientOnly",
10
10
  "createIsomorphicFn",
11
- "createServerFileRoute"
11
+ "createServerFileRoute",
12
+ "createServerRootRoute"
12
13
  ];
13
14
  const tokenRegex = new RegExp(transformFuncs.join("|"));
14
- function TanStackStartCompilerPlugin(framework, inputOpts) {
15
+ function startCompilerPlugin(framework, inputOpts) {
15
16
  const opts = {
16
17
  client: {
17
18
  envName: "client",
@@ -28,18 +29,23 @@ function TanStackStartCompilerPlugin(framework, inputOpts) {
28
29
  applyToEnvironment(env) {
29
30
  return [opts.client.envName, opts.server.envName].includes(env.name);
30
31
  },
31
- transform(code, id) {
32
- const env = this.environment.name === opts.client.envName ? "client" : this.environment.name === opts.server.envName ? "server" : (() => {
33
- throw new Error(
34
- `Environment ${this.environment.name} not configured`
35
- );
36
- })();
37
- return transformCode({
38
- code,
39
- id,
40
- env,
41
- framework
42
- });
32
+ transform: {
33
+ filter: {
34
+ code: tokenRegex
35
+ },
36
+ handler(code, id) {
37
+ const env = this.environment.name === opts.client.envName ? "client" : this.environment.name === opts.server.envName ? "server" : (() => {
38
+ throw new Error(
39
+ `Environment ${this.environment.name} not configured`
40
+ );
41
+ })();
42
+ return transformCode({
43
+ code,
44
+ id,
45
+ env,
46
+ framework
47
+ });
48
+ }
43
49
  }
44
50
  };
45
51
  }
@@ -49,10 +55,6 @@ function transformCode(opts) {
49
55
  const url = pathToFileURL(id);
50
56
  url.searchParams.delete("v");
51
57
  id = fileURLToPath(url).replace(/\\/g, "/");
52
- const includesToken = tokenRegex.test(code);
53
- if (!includesToken) {
54
- return null;
55
- }
56
58
  if (debug) console.info(`${env} Compiling Start: `, id);
57
59
  const compileStartOutput = compileStartOutputFactory(framework);
58
60
  const compiled = compileStartOutput({
@@ -67,6 +69,6 @@ function transformCode(opts) {
67
69
  return compiled;
68
70
  }
69
71
  export {
70
- TanStackStartCompilerPlugin
72
+ startCompilerPlugin
71
73
  };
72
74
  //# sourceMappingURL=start-compiler-plugin.js.map