@tanstack/router-plugin 1.167.31 → 1.167.32

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 (73) hide show
  1. package/dist/cjs/context.cjs +3 -0
  2. package/dist/cjs/context.d.cts +2 -0
  3. package/dist/cjs/core/router-code-splitter-plugin.cjs +7 -2
  4. package/dist/cjs/core/router-code-splitter-plugin.cjs.map +1 -1
  5. package/dist/cjs/core/router-code-splitter-plugin.d.cts +2 -0
  6. package/dist/cjs/core/router-composed-plugin.cjs +7 -6
  7. package/dist/cjs/core/router-composed-plugin.cjs.map +1 -1
  8. package/dist/cjs/core/router-generator-plugin.cjs +7 -2
  9. package/dist/cjs/core/router-generator-plugin.cjs.map +1 -1
  10. package/dist/cjs/core/router-generator-plugin.d.cts +2 -0
  11. package/dist/cjs/core/router-hmr-plugin.cjs +9 -6
  12. package/dist/cjs/core/router-hmr-plugin.cjs.map +1 -1
  13. package/dist/cjs/core/router-hmr-plugin.d.cts +2 -0
  14. package/dist/cjs/core/router-plugin-context.cjs +8 -0
  15. package/dist/cjs/core/router-plugin-context.cjs.map +1 -0
  16. package/dist/cjs/core/router-plugin-context.d.cts +5 -0
  17. package/dist/cjs/esbuild.cjs +10 -2
  18. package/dist/cjs/esbuild.cjs.map +1 -1
  19. package/dist/cjs/esbuild.d.cts +5 -95
  20. package/dist/cjs/index.cjs +2 -0
  21. package/dist/cjs/index.d.cts +2 -0
  22. package/dist/cjs/rspack.cjs +10 -2
  23. package/dist/cjs/rspack.cjs.map +1 -1
  24. package/dist/cjs/rspack.d.cts +5 -49
  25. package/dist/cjs/vite.cjs +11 -2
  26. package/dist/cjs/vite.cjs.map +1 -1
  27. package/dist/cjs/vite.d.cts +6 -96
  28. package/dist/cjs/webpack.cjs +10 -2
  29. package/dist/cjs/webpack.cjs.map +1 -1
  30. package/dist/cjs/webpack.d.cts +4 -49
  31. package/dist/esm/context.d.ts +2 -0
  32. package/dist/esm/context.js +2 -0
  33. package/dist/esm/core/router-code-splitter-plugin.d.ts +2 -0
  34. package/dist/esm/core/router-code-splitter-plugin.js +7 -3
  35. package/dist/esm/core/router-code-splitter-plugin.js.map +1 -1
  36. package/dist/esm/core/router-composed-plugin.js +10 -9
  37. package/dist/esm/core/router-composed-plugin.js.map +1 -1
  38. package/dist/esm/core/router-generator-plugin.d.ts +2 -0
  39. package/dist/esm/core/router-generator-plugin.js +7 -3
  40. package/dist/esm/core/router-generator-plugin.js.map +1 -1
  41. package/dist/esm/core/router-hmr-plugin.d.ts +2 -0
  42. package/dist/esm/core/router-hmr-plugin.js +9 -6
  43. package/dist/esm/core/router-hmr-plugin.js.map +1 -1
  44. package/dist/esm/core/router-plugin-context.d.ts +5 -0
  45. package/dist/esm/core/router-plugin-context.js +8 -0
  46. package/dist/esm/core/router-plugin-context.js.map +1 -0
  47. package/dist/esm/esbuild.d.ts +5 -95
  48. package/dist/esm/esbuild.js +12 -4
  49. package/dist/esm/esbuild.js.map +1 -1
  50. package/dist/esm/index.d.ts +2 -0
  51. package/dist/esm/index.js +2 -1
  52. package/dist/esm/rspack.d.ts +5 -49
  53. package/dist/esm/rspack.js +12 -4
  54. package/dist/esm/rspack.js.map +1 -1
  55. package/dist/esm/vite.d.ts +6 -96
  56. package/dist/esm/vite.js +14 -6
  57. package/dist/esm/vite.js.map +1 -1
  58. package/dist/esm/webpack.d.ts +4 -49
  59. package/dist/esm/webpack.js +12 -4
  60. package/dist/esm/webpack.js.map +1 -1
  61. package/package.json +11 -1
  62. package/src/context.ts +2 -0
  63. package/src/core/router-code-splitter-plugin.ts +13 -4
  64. package/src/core/router-composed-plugin.ts +16 -11
  65. package/src/core/router-generator-plugin.ts +13 -4
  66. package/src/core/router-hmr-plugin.ts +21 -6
  67. package/src/core/router-plugin-context.ts +11 -0
  68. package/src/esbuild.ts +27 -9
  69. package/src/index.ts +2 -0
  70. package/src/rspack.ts +30 -12
  71. package/src/vite.ts +29 -9
  72. package/src/webpack.ts +27 -12
  73. package/src/global.d.ts +0 -7
package/dist/esm/vite.js CHANGED
@@ -1,9 +1,11 @@
1
- import { configSchema } from "./core/config.js";
2
- import { unpluginRouterCodeSplitterFactory } from "./core/router-code-splitter-plugin.js";
3
- import { unpluginRouterGeneratorFactory } from "./core/router-generator-plugin.js";
1
+ import { configSchema, getConfig } from "./core/config.js";
2
+ import { createRouterPluginContext } from "./core/router-plugin-context.js";
3
+ import { createRouterCodeSplitterPlugin } from "./core/router-code-splitter-plugin.js";
4
+ import { createRouterGeneratorPlugin } from "./core/router-generator-plugin.js";
4
5
  import { unpluginRouterComposedFactory } from "./core/router-composed-plugin.js";
5
6
  import { createVitePlugin } from "unplugin";
6
7
  //#region src/vite.ts
8
+ var defaultRouterPluginContext = createRouterPluginContext();
7
9
  /**
8
10
  * @example
9
11
  * ```ts
@@ -13,7 +15,10 @@ import { createVitePlugin } from "unplugin";
13
15
  * })
14
16
  * ```
15
17
  */
16
- var tanstackRouterGenerator = createVitePlugin(unpluginRouterGeneratorFactory);
18
+ var tanstackRouterGenerator = (options, routerPluginContext) => {
19
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext;
20
+ return createVitePlugin((pluginOptions) => createRouterGeneratorPlugin(pluginOptions, pluginContext))(options);
21
+ };
17
22
  /**
18
23
  * @example
19
24
  * ```ts
@@ -23,7 +28,10 @@ var tanstackRouterGenerator = createVitePlugin(unpluginRouterGeneratorFactory);
23
28
  * })
24
29
  * ```
25
30
  */
26
- var tanStackRouterCodeSplitter = createVitePlugin(unpluginRouterCodeSplitterFactory);
31
+ var tanStackRouterCodeSplitter = (options, routerPluginContext) => {
32
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext;
33
+ return createVitePlugin((pluginOptions) => createRouterCodeSplitterPlugin(pluginOptions, pluginContext))(options);
34
+ };
27
35
  /**
28
36
  * @example
29
37
  * ```ts
@@ -39,6 +47,6 @@ var tanstackRouter = createVitePlugin(unpluginRouterComposedFactory);
39
47
  */
40
48
  var TanStackRouterVite = tanstackRouter;
41
49
  //#endregion
42
- export { TanStackRouterVite, configSchema, tanstackRouter as default, tanstackRouter, tanStackRouterCodeSplitter, tanstackRouterGenerator };
50
+ export { TanStackRouterVite, configSchema, tanstackRouter as default, tanstackRouter, getConfig, tanStackRouterCodeSplitter, tanstackRouterGenerator };
43
51
 
44
52
  //# sourceMappingURL=vite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite.js","names":[],"sources":["../../src/vite.ts"],"sourcesContent":["import { createVitePlugin } from 'unplugin'\n\nimport { configSchema } from './core/config'\nimport { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'\nimport { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'\nimport { unpluginRouterComposedFactory } from './core/router-composed-plugin'\nimport type { CodeSplittingOptions, Config, getConfig } from './core/config'\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [tanstackRouterGenerator()],\n * // ...\n * })\n * ```\n */\nconst tanstackRouterGenerator = createVitePlugin(unpluginRouterGeneratorFactory)\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [tanStackRouterCodeSplitter()],\n * // ...\n * })\n * ```\n */\nconst tanStackRouterCodeSplitter = createVitePlugin(\n unpluginRouterCodeSplitterFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [tanstackRouter()],\n * // ...\n * })\n * ```\n */\nconst tanstackRouter = createVitePlugin(unpluginRouterComposedFactory)\n\n/**\n * @deprecated Use `tanstackRouter` instead.\n */\nconst TanStackRouterVite = tanstackRouter\n\nexport default tanstackRouter\nexport {\n configSchema,\n getConfig,\n tanStackRouterCodeSplitter,\n tanstackRouterGenerator,\n TanStackRouterVite,\n tanstackRouter,\n}\n\nexport type { Config, CodeSplittingOptions }\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,IAAM,0BAA0B,iBAAiB,+BAA+B;;;;;;;;;;AAWhF,IAAM,6BAA6B,iBACjC,kCACD;;;;;;;;;;AAWD,IAAM,iBAAiB,iBAAiB,8BAA8B;;;;AAKtE,IAAM,qBAAqB"}
1
+ {"version":3,"file":"vite.js","names":[],"sources":["../../src/vite.ts"],"sourcesContent":["import { createVitePlugin } from 'unplugin'\n\nimport { configSchema, getConfig } from './core/config'\nimport { createRouterCodeSplitterPlugin } from './core/router-code-splitter-plugin'\nimport { createRouterGeneratorPlugin } from './core/router-generator-plugin'\nimport { unpluginRouterComposedFactory } from './core/router-composed-plugin'\nimport { createRouterPluginContext } from './core/router-plugin-context'\nimport type { CodeSplittingOptions, Config } from './core/config'\nimport type { RouterPluginContext } from './core/router-plugin-context'\n\ntype RouterPluginOptions = Partial<Config | (() => Config)> | undefined\n\nconst defaultRouterPluginContext = createRouterPluginContext()\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [tanstackRouterGenerator()],\n * // ...\n * })\n * ```\n */\nconst tanstackRouterGenerator = (\n options?: RouterPluginOptions,\n routerPluginContext?: RouterPluginContext,\n) => {\n const pluginContext = routerPluginContext ?? defaultRouterPluginContext\n return createVitePlugin((pluginOptions: RouterPluginOptions) =>\n createRouterGeneratorPlugin(pluginOptions, pluginContext),\n )(options)\n}\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [tanStackRouterCodeSplitter()],\n * // ...\n * })\n * ```\n */\nconst tanStackRouterCodeSplitter = (\n options?: RouterPluginOptions,\n routerPluginContext?: RouterPluginContext,\n) => {\n const pluginContext = routerPluginContext ?? defaultRouterPluginContext\n return createVitePlugin((pluginOptions: RouterPluginOptions) =>\n createRouterCodeSplitterPlugin(pluginOptions, pluginContext),\n )(options)\n}\n\n/**\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [tanstackRouter()],\n * // ...\n * })\n * ```\n */\nconst tanstackRouter = createVitePlugin(unpluginRouterComposedFactory)\n\n/**\n * @deprecated Use `tanstackRouter` instead.\n */\nconst TanStackRouterVite = tanstackRouter\n\nexport default tanstackRouter\nexport {\n configSchema,\n getConfig,\n tanStackRouterCodeSplitter,\n tanstackRouterGenerator,\n TanStackRouterVite,\n tanstackRouter,\n}\n\nexport type { Config, CodeSplittingOptions, RouterPluginContext }\n"],"mappings":";;;;;;;AAYA,IAAM,6BAA6B,2BAA2B;;;;;;;;;;AAW9D,IAAM,2BACJ,SACA,wBACG;CACH,MAAM,gBAAgB,uBAAuB;AAC7C,QAAO,kBAAkB,kBACvB,4BAA4B,eAAe,cAAc,CAC1D,CAAC,QAAQ;;;;;;;;;;;AAYZ,IAAM,8BACJ,SACA,wBACG;CACH,MAAM,gBAAgB,uBAAuB;AAC7C,QAAO,kBAAkB,kBACvB,+BAA+B,eAAe,cAAc,CAC7D,CAAC,QAAQ;;;;;;;;;;;AAYZ,IAAM,iBAAiB,iBAAiB,8BAA8B;;;;AAKtE,IAAM,qBAAqB"}
@@ -1,4 +1,5 @@
1
1
  import { configSchema, CodeSplittingOptions, Config } from './core/config.js';
2
+ import { RouterPluginContext } from './core/router-plugin-context.js';
2
3
  /**
3
4
  * @example
4
5
  * ```ts
@@ -8,53 +9,7 @@ import { configSchema, CodeSplittingOptions, Config } from './core/config.js';
8
9
  * }
9
10
  * ```
10
11
  */
11
- declare const TanStackRouterGeneratorWebpack: (options?: Partial<{
12
- target: "react" | "solid" | "vue";
13
- routeFileIgnorePrefix: string;
14
- routesDirectory: string;
15
- quoteStyle: "single" | "double";
16
- semicolons: boolean;
17
- disableLogging: boolean;
18
- routeTreeFileHeader: string[];
19
- indexToken: string | RegExp | {
20
- regex: string;
21
- flags?: string | undefined;
22
- };
23
- routeToken: string | RegExp | {
24
- regex: string;
25
- flags?: string | undefined;
26
- };
27
- generatedRouteTree: string;
28
- disableTypes: boolean;
29
- addExtensions: string | boolean;
30
- enableRouteTreeFormatting: boolean;
31
- tmpDir: string;
32
- importRoutesUsingAbsolutePaths: boolean;
33
- enableRouteGeneration?: boolean | undefined;
34
- codeSplittingOptions?: CodeSplittingOptions | undefined;
35
- plugin?: {
36
- vite?: {
37
- environmentName?: string | undefined;
38
- } | undefined;
39
- hmr?: {
40
- style?: "vite" | "webpack" | undefined;
41
- } | undefined;
42
- } | undefined;
43
- virtualRouteConfig?: string | import('@tanstack/virtual-file-routes').VirtualRootRoute | undefined;
44
- routeFilePrefix?: string | undefined;
45
- routeFileIgnorePattern?: string | undefined;
46
- pathParamsAllowedCharacters?: (";" | ":" | "@" | "&" | "=" | "+" | "$" | ",")[] | undefined;
47
- routeTreeFileFooter?: string[] | ((...args: unknown[]) => string[]) | undefined;
48
- autoCodeSplitting?: boolean | undefined;
49
- customScaffolding?: {
50
- routeTemplate?: string | undefined;
51
- lazyRouteTemplate?: string | undefined;
52
- } | undefined;
53
- experimental?: {
54
- enableCodeSplitting?: boolean | undefined;
55
- } | undefined;
56
- plugins?: import('@tanstack/router-generator').GeneratorPlugin[] | undefined;
57
- } | (() => Config)> | undefined) => import('unplugin').WebpackPluginInstance;
12
+ declare const TanStackRouterGeneratorWebpack: (options?: Partial<Config>, routerPluginContext?: RouterPluginContext) => import('unplugin').WebpackPluginInstance;
58
13
  /**
59
14
  * @example
60
15
  * ```ts
@@ -64,7 +19,7 @@ declare const TanStackRouterGeneratorWebpack: (options?: Partial<{
64
19
  * }
65
20
  * ```
66
21
  */
67
- declare const TanStackRouterCodeSplitterWebpack: (options?: unknown) => import('unplugin').WebpackPluginInstance;
22
+ declare const TanStackRouterCodeSplitterWebpack: (options?: Partial<Config>, routerPluginContext?: RouterPluginContext) => import('unplugin').WebpackPluginInstance;
68
23
  /**
69
24
  * @example
70
25
  * ```ts
@@ -78,4 +33,4 @@ declare const TanStackRouterWebpack: (options?: unknown) => import('unplugin').W
78
33
  declare const tanstackRouter: (options?: unknown) => import('unplugin').WebpackPluginInstance;
79
34
  export default TanStackRouterWebpack;
80
35
  export { configSchema, TanStackRouterWebpack, TanStackRouterGeneratorWebpack, TanStackRouterCodeSplitterWebpack, tanstackRouter, };
81
- export type { Config, CodeSplittingOptions };
36
+ export type { Config, CodeSplittingOptions, RouterPluginContext };
@@ -1,9 +1,11 @@
1
1
  import { configSchema } from "./core/config.js";
2
- import { unpluginRouterCodeSplitterFactory } from "./core/router-code-splitter-plugin.js";
3
- import { unpluginRouterGeneratorFactory } from "./core/router-generator-plugin.js";
2
+ import { createRouterPluginContext } from "./core/router-plugin-context.js";
3
+ import { createRouterCodeSplitterPlugin } from "./core/router-code-splitter-plugin.js";
4
+ import { createRouterGeneratorPlugin } from "./core/router-generator-plugin.js";
4
5
  import { unpluginRouterComposedFactory } from "./core/router-composed-plugin.js";
5
6
  import { createWebpackPlugin } from "unplugin";
6
7
  //#region src/webpack.ts
8
+ var defaultRouterPluginContext = createRouterPluginContext();
7
9
  /**
8
10
  * Webpack uses `module.hot` / `import.meta.webpackHot` HMR. Force
9
11
  * `plugin.hmr.style = 'webpack'` so the router HMR adapter emits the correct
@@ -30,7 +32,10 @@ function withWebpackHmrStyle(options) {
30
32
  * }
31
33
  * ```
32
34
  */
33
- var TanStackRouterGeneratorWebpack = /* @__PURE__ */ createWebpackPlugin(unpluginRouterGeneratorFactory);
35
+ var TanStackRouterGeneratorWebpack = (options, routerPluginContext) => {
36
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext;
37
+ return createWebpackPlugin((pluginOptions) => createRouterGeneratorPlugin(pluginOptions, pluginContext))(options);
38
+ };
34
39
  /**
35
40
  * @example
36
41
  * ```ts
@@ -40,7 +45,10 @@ var TanStackRouterGeneratorWebpack = /* @__PURE__ */ createWebpackPlugin(unplugi
40
45
  * }
41
46
  * ```
42
47
  */
43
- var TanStackRouterCodeSplitterWebpack = /* @__PURE__ */ createWebpackPlugin((options, meta) => unpluginRouterCodeSplitterFactory(withWebpackHmrStyle(options), meta));
48
+ var TanStackRouterCodeSplitterWebpack = (options, routerPluginContext) => {
49
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext;
50
+ return createWebpackPlugin((pluginOptions) => createRouterCodeSplitterPlugin(withWebpackHmrStyle(pluginOptions), pluginContext))(options);
51
+ };
44
52
  /**
45
53
  * @example
46
54
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"webpack.js","names":[],"sources":["../../src/webpack.ts"],"sourcesContent":["import { createWebpackPlugin } from 'unplugin'\n\nimport { configSchema } from './core/config'\nimport { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'\nimport { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'\nimport { unpluginRouterComposedFactory } from './core/router-composed-plugin'\nimport type { CodeSplittingOptions, Config } from './core/config'\n\n/**\n * Webpack uses `module.hot` / `import.meta.webpackHot` HMR. Force\n * `plugin.hmr.style = 'webpack'` so the router HMR adapter emits the correct\n * accept/dispose shape regardless of user config.\n */\nfunction withWebpackHmrStyle(\n options: Partial<Config> | undefined,\n): Partial<Config> {\n return {\n ...options,\n plugin: {\n ...options?.plugin,\n hmr: {\n ...options?.plugin?.hmr,\n style: 'webpack',\n },\n },\n }\n}\n\n/**\n * @example\n * ```ts\n * export default {\n * // ...\n * plugins: [TanStackRouterGeneratorWebpack()],\n * }\n * ```\n */\nconst TanStackRouterGeneratorWebpack = /* #__PURE__ */ createWebpackPlugin(\n unpluginRouterGeneratorFactory,\n)\n\n/**\n * @example\n * ```ts\n * export default {\n * // ...\n * plugins: [TanStackRouterCodeSplitterWebpack()],\n * }\n * ```\n */\nconst TanStackRouterCodeSplitterWebpack = /* #__PURE__ */ createWebpackPlugin(\n (options, meta) =>\n unpluginRouterCodeSplitterFactory(\n withWebpackHmrStyle(options as Partial<Config> | undefined),\n meta,\n ),\n)\n\n/**\n * @example\n * ```ts\n * export default {\n * // ...\n * plugins: [tanstackRouter()],\n * }\n * ```\n */\nconst TanStackRouterWebpack = /* #__PURE__ */ createWebpackPlugin(\n (options, meta) =>\n unpluginRouterComposedFactory(\n withWebpackHmrStyle(options as Partial<Config> | undefined),\n meta,\n ),\n)\n\nconst tanstackRouter = TanStackRouterWebpack\nexport default TanStackRouterWebpack\nexport {\n configSchema,\n TanStackRouterWebpack,\n TanStackRouterGeneratorWebpack,\n TanStackRouterCodeSplitterWebpack,\n tanstackRouter,\n}\nexport type { Config, CodeSplittingOptions }\n"],"mappings":";;;;;;;;;;;AAaA,SAAS,oBACP,SACiB;AACjB,QAAO;EACL,GAAG;EACH,QAAQ;GACN,GAAG,SAAS;GACZ,KAAK;IACH,GAAG,SAAS,QAAQ;IACpB,OAAO;IACR;GACF;EACF;;;;;;;;;;;AAYH,IAAM,iCAAiD,oCACrD,+BACD;;;;;;;;;;AAWD,IAAM,oCAAoD,qCACvD,SAAS,SACR,kCACE,oBAAoB,QAAuC,EAC3D,KACD,CACJ;;;;;;;;;;AAWD,IAAM,wBAAwC,qCAC3C,SAAS,SACR,8BACE,oBAAoB,QAAuC,EAC3D,KACD,CACJ;AAED,IAAM,iBAAiB"}
1
+ {"version":3,"file":"webpack.js","names":[],"sources":["../../src/webpack.ts"],"sourcesContent":["import { createWebpackPlugin } from 'unplugin'\n\nimport { configSchema } from './core/config'\nimport { createRouterCodeSplitterPlugin } from './core/router-code-splitter-plugin'\nimport { createRouterGeneratorPlugin } from './core/router-generator-plugin'\nimport { unpluginRouterComposedFactory } from './core/router-composed-plugin'\nimport { createRouterPluginContext } from './core/router-plugin-context'\nimport type { CodeSplittingOptions, Config } from './core/config'\nimport type { RouterPluginContext } from './core/router-plugin-context'\n\nconst defaultRouterPluginContext = createRouterPluginContext()\n\n/**\n * Webpack uses `module.hot` / `import.meta.webpackHot` HMR. Force\n * `plugin.hmr.style = 'webpack'` so the router HMR adapter emits the correct\n * accept/dispose shape regardless of user config.\n */\nfunction withWebpackHmrStyle(\n options: Partial<Config> | undefined,\n): Partial<Config> {\n return {\n ...options,\n plugin: {\n ...options?.plugin,\n hmr: {\n ...options?.plugin?.hmr,\n style: 'webpack',\n },\n },\n }\n}\n\n/**\n * @example\n * ```ts\n * export default {\n * // ...\n * plugins: [TanStackRouterGeneratorWebpack()],\n * }\n * ```\n */\nconst TanStackRouterGeneratorWebpack = (\n options?: Partial<Config>,\n routerPluginContext?: RouterPluginContext,\n) => {\n const pluginContext = routerPluginContext ?? defaultRouterPluginContext\n return createWebpackPlugin((pluginOptions: Partial<Config> | undefined) =>\n createRouterGeneratorPlugin(pluginOptions, pluginContext),\n )(options)\n}\n\n/**\n * @example\n * ```ts\n * export default {\n * // ...\n * plugins: [TanStackRouterCodeSplitterWebpack()],\n * }\n * ```\n */\nconst TanStackRouterCodeSplitterWebpack = (\n options?: Partial<Config>,\n routerPluginContext?: RouterPluginContext,\n) => {\n const pluginContext = routerPluginContext ?? defaultRouterPluginContext\n return createWebpackPlugin((pluginOptions: Partial<Config> | undefined) =>\n createRouterCodeSplitterPlugin(\n withWebpackHmrStyle(pluginOptions),\n pluginContext,\n ),\n )(options)\n}\n\n/**\n * @example\n * ```ts\n * export default {\n * // ...\n * plugins: [tanstackRouter()],\n * }\n * ```\n */\nconst TanStackRouterWebpack = /* #__PURE__ */ createWebpackPlugin(\n (options, meta) =>\n unpluginRouterComposedFactory(\n withWebpackHmrStyle(options as Partial<Config> | undefined),\n meta,\n ),\n)\n\nconst tanstackRouter = TanStackRouterWebpack\nexport default TanStackRouterWebpack\nexport {\n configSchema,\n TanStackRouterWebpack,\n TanStackRouterGeneratorWebpack,\n TanStackRouterCodeSplitterWebpack,\n tanstackRouter,\n}\nexport type { Config, CodeSplittingOptions, RouterPluginContext }\n"],"mappings":";;;;;;;AAUA,IAAM,6BAA6B,2BAA2B;;;;;;AAO9D,SAAS,oBACP,SACiB;AACjB,QAAO;EACL,GAAG;EACH,QAAQ;GACN,GAAG,SAAS;GACZ,KAAK;IACH,GAAG,SAAS,QAAQ;IACpB,OAAO;IACR;GACF;EACF;;;;;;;;;;;AAYH,IAAM,kCACJ,SACA,wBACG;CACH,MAAM,gBAAgB,uBAAuB;AAC7C,QAAO,qBAAqB,kBAC1B,4BAA4B,eAAe,cAAc,CAC1D,CAAC,QAAQ;;;;;;;;;;;AAYZ,IAAM,qCACJ,SACA,wBACG;CACH,MAAM,gBAAgB,uBAAuB;AAC7C,QAAO,qBAAqB,kBAC1B,+BACE,oBAAoB,cAAc,EAClC,cACD,CACF,CAAC,QAAQ;;;;;;;;;;;AAYZ,IAAM,wBAAwC,qCAC3C,SAAS,SACR,8BACE,oBAAoB,QAAuC,EAC3D,KACD,CACJ;AAED,IAAM,iBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/router-plugin",
3
- "version": "1.167.31",
3
+ "version": "1.167.32",
4
4
  "description": "Modern and scalable routing for React applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -46,6 +46,16 @@
46
46
  "default": "./dist/cjs/vite.cjs"
47
47
  }
48
48
  },
49
+ "./context": {
50
+ "import": {
51
+ "types": "./dist/esm/context.d.ts",
52
+ "default": "./dist/esm/context.js"
53
+ },
54
+ "require": {
55
+ "types": "./dist/cjs/context.d.cts",
56
+ "default": "./dist/cjs/context.cjs"
57
+ }
58
+ },
49
59
  "./rspack": {
50
60
  "import": {
51
61
  "types": "./dist/esm/rspack.d.ts",
package/src/context.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { createRouterPluginContext } from './core/router-plugin-context'
2
+ export type { RouterPluginContext } from './core/router-plugin-context'
@@ -22,9 +22,11 @@ import {
22
22
  } from './constants'
23
23
  import { decodeIdentifier } from './code-splitter/path-ids'
24
24
  import { debug, normalizePath } from './utils'
25
+ import { createRouterPluginContext } from './router-plugin-context'
25
26
  import type { CodeSplitGroupings, SplitRouteIdentNodes } from './constants'
26
27
  import type { GetRoutesByFileMapResultValue } from '@tanstack/router-generator'
27
28
  import type { Config } from './config'
29
+ import type { RouterPluginContext } from './router-plugin-context'
28
30
  import type {
29
31
  UnpluginFactory,
30
32
  TransformResult as UnpluginTransformResult,
@@ -76,9 +78,10 @@ const TRANSFORMATION_PLUGINS_BY_FRAMEWORK: Record<
76
78
  ],
77
79
  }
78
80
 
79
- export const unpluginRouterCodeSplitterFactory: UnpluginFactory<
80
- Partial<Config | (() => Config)> | undefined
81
- > = (options = {}, { framework: _framework }) => {
81
+ export function createRouterCodeSplitterPlugin(
82
+ options: Partial<Config | (() => Config)> | undefined = {},
83
+ routerPluginContext: RouterPluginContext,
84
+ ): ReturnType<UnpluginFactory<Partial<Config | (() => Config)> | undefined>> {
82
85
  let ROOT: string = process.cwd()
83
86
  let userConfig: Config
84
87
 
@@ -259,7 +262,7 @@ export const unpluginRouterCodeSplitterFactory: UnpluginFactory<
259
262
  handler(code, id) {
260
263
  const normalizedId = normalizePath(id)
261
264
  const generatorFileInfo =
262
- globalThis.TSR_ROUTES_BY_ID_MAP?.get(normalizedId)
265
+ routerPluginContext.routesByFile.get(normalizedId)
263
266
  if (
264
267
  generatorFileInfo &&
265
268
  includedCode.some((included) => code.includes(included))
@@ -402,3 +405,9 @@ export const unpluginRouterCodeSplitterFactory: UnpluginFactory<
402
405
  },
403
406
  ]
404
407
  }
408
+
409
+ export const unpluginRouterCodeSplitterFactory: UnpluginFactory<
410
+ Partial<Config | (() => Config)> | undefined
411
+ > = (options = {}) => {
412
+ return createRouterCodeSplitterPlugin(options, createRouterPluginContext())
413
+ }
@@ -1,7 +1,8 @@
1
1
  import { getConfig } from '@tanstack/router-generator'
2
- import { unpluginRouterGeneratorFactory } from './router-generator-plugin'
3
- import { unpluginRouterCodeSplitterFactory } from './router-code-splitter-plugin'
4
- import { unpluginRouterHmrFactory } from './router-hmr-plugin'
2
+ import { createRouterGeneratorPlugin } from './router-generator-plugin'
3
+ import { createRouterCodeSplitterPlugin } from './router-code-splitter-plugin'
4
+ import { createRouterHmrPlugin } from './router-hmr-plugin'
5
+ import { createRouterPluginContext } from './router-plugin-context'
5
6
  import type { Config } from './config'
6
7
  import type {
7
8
  RspackCompiler,
@@ -29,25 +30,27 @@ function applyRspackInlineCssDefaultDefinePlugin(compiler: RspackCompiler) {
29
30
 
30
31
  export const unpluginRouterComposedFactory: UnpluginFactory<
31
32
  Partial<Config | (() => Config)> | undefined
32
- > = (options = {}, meta) => {
33
+ > = (options = {}, _meta) => {
33
34
  const ROOT: string = process.cwd()
34
35
  const userConfig = getConfig(
35
36
  (typeof options === 'function' ? options() : options) as Partial<Config>,
36
37
  ROOT,
37
38
  )
39
+ const routerPluginContext = createRouterPluginContext()
38
40
 
39
- const getPlugin = (
40
- pluginFactory: UnpluginFactory<Partial<Config | (() => Config)>>,
41
- ) => {
42
- const plugin = pluginFactory(options, meta)
41
+ const getPlugin = (plugin: ReturnType<UnpluginFactory<any>>) => {
43
42
  if (!Array.isArray(plugin)) {
44
43
  return [plugin]
45
44
  }
46
45
  return plugin
47
46
  }
48
47
 
49
- const routerGenerator = getPlugin(unpluginRouterGeneratorFactory)
50
- const routerCodeSplitter = getPlugin(unpluginRouterCodeSplitterFactory)
48
+ const routerGenerator = getPlugin(
49
+ createRouterGeneratorPlugin(options, routerPluginContext),
50
+ )
51
+ const routerCodeSplitter = getPlugin(
52
+ createRouterCodeSplitterPlugin(options, routerPluginContext),
53
+ )
51
54
 
52
55
  const result = [
53
56
  {
@@ -85,7 +88,9 @@ export const unpluginRouterComposedFactory: UnpluginFactory<
85
88
  const isProduction = process.env.NODE_ENV === 'production'
86
89
 
87
90
  if (!isProduction && !userConfig.autoCodeSplitting) {
88
- const routerHmr = getPlugin(unpluginRouterHmrFactory)
91
+ const routerHmr = getPlugin(
92
+ createRouterHmrPlugin(options, routerPluginContext),
93
+ )
89
94
  result.push(...routerHmr)
90
95
  }
91
96
  return result
@@ -1,17 +1,20 @@
1
1
  import { isAbsolute, join, normalize } from 'node:path'
2
2
  import { Generator, resolveConfigPath } from '@tanstack/router-generator'
3
3
  import { getConfig } from './config'
4
+ import { createRouterPluginContext } from './router-plugin-context'
4
5
 
5
6
  import type { GeneratorEvent } from '@tanstack/router-generator'
6
7
  import type { FSWatcher } from 'chokidar'
7
8
  import type { UnpluginFactory } from 'unplugin'
8
9
  import type { Config } from './config'
10
+ import type { RouterPluginContext } from './router-plugin-context'
9
11
 
10
12
  const PLUGIN_NAME = 'unplugin:router-generator'
11
13
 
12
- export const unpluginRouterGeneratorFactory: UnpluginFactory<
13
- Partial<Config | (() => Config)> | undefined
14
- > = (options = {}) => {
14
+ export function createRouterGeneratorPlugin(
15
+ options: Partial<Config | (() => Config)> | undefined = {},
16
+ routerPluginContext: RouterPluginContext,
17
+ ): ReturnType<UnpluginFactory<Partial<Config | (() => Config)> | undefined>> {
15
18
  let ROOT: string = process.cwd()
16
19
  let userConfig: Config
17
20
  let generator: Generator
@@ -58,7 +61,7 @@ export const unpluginRouterGeneratorFactory: UnpluginFactory<
58
61
 
59
62
  try {
60
63
  await generator.run(generatorEvent)
61
- globalThis.TSR_ROUTES_BY_ID_MAP = generator.getRoutesByFileMap()
64
+ routerPluginContext.routesByFile = generator.getRoutesByFileMap()
62
65
  } catch (e) {
63
66
  console.error(e)
64
67
  }
@@ -146,3 +149,9 @@ export const unpluginRouterGeneratorFactory: UnpluginFactory<
146
149
  },
147
150
  }
148
151
  }
152
+
153
+ export const unpluginRouterGeneratorFactory: UnpluginFactory<
154
+ Partial<Config | (() => Config)> | undefined
155
+ > = (options = {}) => {
156
+ return createRouterGeneratorPlugin(options, createRouterPluginContext())
157
+ }
@@ -4,8 +4,10 @@ import { getReferenceRouteCompilerPlugins } from './code-splitter/plugins/framew
4
4
  import { createRouteHmrStatement } from './hmr'
5
5
  import { debug, normalizePath } from './utils'
6
6
  import { getConfig } from './config'
7
+ import { createRouterPluginContext } from './router-plugin-context'
7
8
  import type { UnpluginFactory } from 'unplugin'
8
9
  import type { Config } from './config'
10
+ import type { RouterPluginContext } from './router-plugin-context'
9
11
 
10
12
  /**
11
13
  * This plugin adds HMR support for file routes.
@@ -18,11 +20,18 @@ const includeCode = [
18
20
  'createRootRoute(',
19
21
  'createRootRouteWithContext(',
20
22
  ]
21
- export const unpluginRouterHmrFactory: UnpluginFactory<
22
- Partial<Config> | undefined
23
- > = (options = {}) => {
23
+
24
+ export function createRouterHmrPlugin(
25
+ options: Partial<Config | (() => Config)> | undefined = {},
26
+ routerPluginContext: RouterPluginContext,
27
+ ): ReturnType<UnpluginFactory<Partial<Config> | undefined>> {
24
28
  let ROOT: string = process.cwd()
25
- let userConfig = options as Config
29
+
30
+ const resolveUserConfig = () => {
31
+ return getConfig(typeof options === 'function' ? options() : options, ROOT)
32
+ }
33
+
34
+ let userConfig = resolveUserConfig()
26
35
 
27
36
  return {
28
37
  name: 'tanstack-router:hmr',
@@ -37,7 +46,7 @@ export const unpluginRouterHmrFactory: UnpluginFactory<
37
46
  },
38
47
  handler(code, id) {
39
48
  const normalizedId = normalizePath(id)
40
- const routeEntry = globalThis.TSR_ROUTES_BY_ID_MAP?.get(normalizedId)
49
+ const routeEntry = routerPluginContext.routesByFile.get(normalizedId)
41
50
  if (!routeEntry) {
42
51
  return null
43
52
  }
@@ -97,7 +106,7 @@ export const unpluginRouterHmrFactory: UnpluginFactory<
97
106
  vite: {
98
107
  configResolved(config) {
99
108
  ROOT = config.root
100
- userConfig = getConfig(options, ROOT)
109
+ userConfig = resolveUserConfig()
101
110
  },
102
111
  applyToEnvironment(environment) {
103
112
  if (userConfig.plugin?.vite?.environmentName) {
@@ -108,3 +117,9 @@ export const unpluginRouterHmrFactory: UnpluginFactory<
108
117
  },
109
118
  }
110
119
  }
120
+
121
+ export const unpluginRouterHmrFactory: UnpluginFactory<
122
+ Partial<Config> | undefined
123
+ > = (options = {}) => {
124
+ return createRouterHmrPlugin(options, createRouterPluginContext())
125
+ }
@@ -0,0 +1,11 @@
1
+ import type { GetRoutesByFileMapResult } from '@tanstack/router-generator'
2
+
3
+ export type RouterPluginContext = {
4
+ routesByFile: GetRoutesByFileMapResult
5
+ }
6
+
7
+ export function createRouterPluginContext(): RouterPluginContext {
8
+ return {
9
+ routesByFile: new Map(),
10
+ }
11
+ }
package/src/esbuild.ts CHANGED
@@ -1,11 +1,17 @@
1
1
  import { createEsbuildPlugin } from 'unplugin'
2
2
 
3
3
  import { configSchema } from './core/config'
4
- import { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'
5
- import { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'
4
+ import { createRouterCodeSplitterPlugin } from './core/router-code-splitter-plugin'
5
+ import { createRouterGeneratorPlugin } from './core/router-generator-plugin'
6
6
  import { unpluginRouterComposedFactory } from './core/router-composed-plugin'
7
+ import { createRouterPluginContext } from './core/router-plugin-context'
7
8
 
8
9
  import type { CodeSplittingOptions, Config } from './core/config'
10
+ import type { RouterPluginContext } from './core/router-plugin-context'
11
+
12
+ type RouterPluginOptions = Partial<Config | (() => Config)> | undefined
13
+
14
+ const defaultRouterPluginContext = createRouterPluginContext()
9
15
 
10
16
  /**
11
17
  * @example
@@ -16,9 +22,15 @@ import type { CodeSplittingOptions, Config } from './core/config'
16
22
  * }
17
23
  * ```
18
24
  */
19
- const TanStackRouterGeneratorEsbuild = createEsbuildPlugin(
20
- unpluginRouterGeneratorFactory,
21
- )
25
+ const TanStackRouterGeneratorEsbuild = (
26
+ options?: RouterPluginOptions,
27
+ routerPluginContext?: RouterPluginContext,
28
+ ) => {
29
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext
30
+ return createEsbuildPlugin((pluginOptions: RouterPluginOptions) =>
31
+ createRouterGeneratorPlugin(pluginOptions, pluginContext),
32
+ )(options)
33
+ }
22
34
 
23
35
  /**
24
36
  * @example
@@ -29,9 +41,15 @@ const TanStackRouterGeneratorEsbuild = createEsbuildPlugin(
29
41
  * }
30
42
  * ```
31
43
  */
32
- const TanStackRouterCodeSplitterEsbuild = createEsbuildPlugin(
33
- unpluginRouterCodeSplitterFactory,
34
- )
44
+ const TanStackRouterCodeSplitterEsbuild = (
45
+ options?: RouterPluginOptions,
46
+ routerPluginContext?: RouterPluginContext,
47
+ ) => {
48
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext
49
+ return createEsbuildPlugin((pluginOptions: RouterPluginOptions) =>
50
+ createRouterCodeSplitterPlugin(pluginOptions, pluginContext),
51
+ )(options)
52
+ }
35
53
 
36
54
  /**
37
55
  * @example
@@ -54,4 +72,4 @@ export {
54
72
  tanstackRouter,
55
73
  }
56
74
 
57
- export type { Config, CodeSplittingOptions }
75
+ export type { Config, CodeSplittingOptions, RouterPluginContext }
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { configSchema, getConfig } from './core/config'
2
2
  export { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'
3
3
  export { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'
4
+ export { createRouterPluginContext } from './core/router-plugin-context'
4
5
  export type {
5
6
  Config,
6
7
  ConfigInput,
@@ -9,6 +10,7 @@ export type {
9
10
  DeletableNodes,
10
11
  HmrOptions,
11
12
  } from './core/config'
13
+ export type { RouterPluginContext } from './core/router-plugin-context'
12
14
  export {
13
15
  tsrSplit,
14
16
  splitRouteIdentNodes,
package/src/rspack.ts CHANGED
@@ -1,13 +1,17 @@
1
1
  import { createRspackPlugin } from 'unplugin'
2
2
 
3
3
  import { configSchema } from './core/config'
4
- import { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'
5
- import { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'
4
+ import { createRouterCodeSplitterPlugin } from './core/router-code-splitter-plugin'
5
+ import { createRouterGeneratorPlugin } from './core/router-generator-plugin'
6
6
  import { unpluginRouterComposedFactory } from './core/router-composed-plugin'
7
+ import { createRouterPluginContext } from './core/router-plugin-context'
7
8
  import type { CodeSplittingOptions, Config } from './core/config'
9
+ import type { RouterPluginContext } from './core/router-plugin-context'
8
10
 
9
11
  type RspackRouterPluginOptions = Partial<Config> | (() => Partial<Config>)
10
12
 
13
+ const defaultRouterPluginContext = createRouterPluginContext()
14
+
11
15
  /**
12
16
  * Rspack uses webpack-compatible `module.hot` / `import.meta.webpackHot` HMR.
13
17
  * Force `plugin.hmr.style = 'webpack'` so the router HMR adapter emits
@@ -50,9 +54,18 @@ function withWebpackHmrStyle(
50
54
  * })
51
55
  * ```
52
56
  */
53
- const TanStackRouterGeneratorRspack = /* #__PURE__ */ createRspackPlugin(
54
- unpluginRouterGeneratorFactory,
55
- )
57
+ const TanStackRouterGeneratorRspack = (
58
+ options?: RspackRouterPluginOptions,
59
+ routerPluginContext?: RouterPluginContext,
60
+ ) => {
61
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext
62
+ return createRspackPlugin((pluginOptions) =>
63
+ createRouterGeneratorPlugin(
64
+ pluginOptions as Partial<Config | (() => Config)> | undefined,
65
+ pluginContext,
66
+ ),
67
+ )(options)
68
+ }
56
69
 
57
70
  /**
58
71
  * @example
@@ -67,15 +80,20 @@ const TanStackRouterGeneratorRspack = /* #__PURE__ */ createRspackPlugin(
67
80
  * })
68
81
  * ```
69
82
  */
70
- const TanStackRouterCodeSplitterRspack = /* #__PURE__ */ createRspackPlugin(
71
- (options, meta) =>
72
- unpluginRouterCodeSplitterFactory(
83
+ const TanStackRouterCodeSplitterRspack = (
84
+ options?: RspackRouterPluginOptions,
85
+ routerPluginContext?: RouterPluginContext,
86
+ ) => {
87
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext
88
+ return createRspackPlugin((pluginOptions) =>
89
+ createRouterCodeSplitterPlugin(
73
90
  withWebpackHmrStyle(
74
- options as RspackRouterPluginOptions | undefined,
91
+ pluginOptions as RspackRouterPluginOptions | undefined,
75
92
  ) as Partial<Config | (() => Config)>,
76
- meta,
93
+ pluginContext,
77
94
  ),
78
- )
95
+ )(options)
96
+ }
79
97
 
80
98
  /**
81
99
  * @example
@@ -108,4 +126,4 @@ export {
108
126
  TanStackRouterCodeSplitterRspack,
109
127
  tanstackRouter,
110
128
  }
111
- export type { Config, CodeSplittingOptions }
129
+ export type { Config, CodeSplittingOptions, RouterPluginContext }
package/src/vite.ts CHANGED
@@ -1,10 +1,16 @@
1
1
  import { createVitePlugin } from 'unplugin'
2
2
 
3
- import { configSchema } from './core/config'
4
- import { unpluginRouterCodeSplitterFactory } from './core/router-code-splitter-plugin'
5
- import { unpluginRouterGeneratorFactory } from './core/router-generator-plugin'
3
+ import { configSchema, getConfig } from './core/config'
4
+ import { createRouterCodeSplitterPlugin } from './core/router-code-splitter-plugin'
5
+ import { createRouterGeneratorPlugin } from './core/router-generator-plugin'
6
6
  import { unpluginRouterComposedFactory } from './core/router-composed-plugin'
7
- import type { CodeSplittingOptions, Config, getConfig } from './core/config'
7
+ import { createRouterPluginContext } from './core/router-plugin-context'
8
+ import type { CodeSplittingOptions, Config } from './core/config'
9
+ import type { RouterPluginContext } from './core/router-plugin-context'
10
+
11
+ type RouterPluginOptions = Partial<Config | (() => Config)> | undefined
12
+
13
+ const defaultRouterPluginContext = createRouterPluginContext()
8
14
 
9
15
  /**
10
16
  * @example
@@ -15,7 +21,15 @@ import type { CodeSplittingOptions, Config, getConfig } from './core/config'
15
21
  * })
16
22
  * ```
17
23
  */
18
- const tanstackRouterGenerator = createVitePlugin(unpluginRouterGeneratorFactory)
24
+ const tanstackRouterGenerator = (
25
+ options?: RouterPluginOptions,
26
+ routerPluginContext?: RouterPluginContext,
27
+ ) => {
28
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext
29
+ return createVitePlugin((pluginOptions: RouterPluginOptions) =>
30
+ createRouterGeneratorPlugin(pluginOptions, pluginContext),
31
+ )(options)
32
+ }
19
33
 
20
34
  /**
21
35
  * @example
@@ -26,9 +40,15 @@ const tanstackRouterGenerator = createVitePlugin(unpluginRouterGeneratorFactory)
26
40
  * })
27
41
  * ```
28
42
  */
29
- const tanStackRouterCodeSplitter = createVitePlugin(
30
- unpluginRouterCodeSplitterFactory,
31
- )
43
+ const tanStackRouterCodeSplitter = (
44
+ options?: RouterPluginOptions,
45
+ routerPluginContext?: RouterPluginContext,
46
+ ) => {
47
+ const pluginContext = routerPluginContext ?? defaultRouterPluginContext
48
+ return createVitePlugin((pluginOptions: RouterPluginOptions) =>
49
+ createRouterCodeSplitterPlugin(pluginOptions, pluginContext),
50
+ )(options)
51
+ }
32
52
 
33
53
  /**
34
54
  * @example
@@ -56,4 +76,4 @@ export {
56
76
  tanstackRouter,
57
77
  }
58
78
 
59
- export type { Config, CodeSplittingOptions }
79
+ export type { Config, CodeSplittingOptions, RouterPluginContext }