@react-router/dev 0.0.0-experimental-3278f3ca6 → 0.0.0-experimental-2d5e406e4

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 (58) hide show
  1. package/dist/cli/commands.js +1 -1
  2. package/dist/cli/detectPackageManager.js +1 -1
  3. package/dist/cli/index.js +1 -1
  4. package/dist/cli/run.js +1 -1
  5. package/dist/cli/useJavascript.js +1 -1
  6. package/dist/colors.js +1 -1
  7. package/dist/config/format.js +1 -1
  8. package/dist/config/routes.js +2 -2
  9. package/dist/invariant.js +2 -4
  10. package/dist/routes.js +1 -1
  11. package/dist/typescript/ast.d.ts +8 -0
  12. package/dist/typescript/ast.js +98 -0
  13. package/dist/typescript/autotype/api.completions.d.ts +5 -0
  14. package/dist/typescript/autotype/api.completions.js +75 -0
  15. package/dist/typescript/autotype/api.definitions.d.ts +4 -0
  16. package/dist/typescript/autotype/api.definitions.js +55 -0
  17. package/dist/typescript/autotype/api.diagnostics.d.ts +5 -0
  18. package/dist/typescript/autotype/api.diagnostics.js +60 -0
  19. package/dist/typescript/autotype/api.hover.d.ts +3 -0
  20. package/dist/typescript/autotype/api.hover.js +33 -0
  21. package/dist/typescript/autotype/api.inlay-hints.d.ts +3 -0
  22. package/dist/typescript/autotype/api.inlay-hints.js +31 -0
  23. package/dist/typescript/autotype/index.d.ts +5 -0
  24. package/dist/typescript/autotype/language-service.d.ts +35 -0
  25. package/dist/typescript/autotype/language-service.js +290 -0
  26. package/dist/typescript/context.d.ts +15 -0
  27. package/dist/typescript/decorate.d.ts +2 -0
  28. package/dist/typescript/decorate.js +233 -0
  29. package/dist/typescript/plugin.d.ts +6 -0
  30. package/dist/typescript/plugin.js +67 -0
  31. package/dist/typescript/routes.d.ts +10 -0
  32. package/dist/typescript/routes.js +102 -0
  33. package/dist/typescript/typecheck.d.ts +1 -0
  34. package/dist/typescript/typegen.d.ts +5 -0
  35. package/dist/typescript/typegen.js +165 -0
  36. package/dist/vite/babel.d.ts +1 -1
  37. package/dist/vite/babel.js +1 -1
  38. package/dist/vite/build.js +3 -3
  39. package/dist/vite/cloudflare-dev-proxy.js +1 -1
  40. package/dist/vite/cloudflare.js +1 -1
  41. package/dist/vite/combine-urls.js +1 -1
  42. package/dist/vite/config.d.ts +14 -8
  43. package/dist/vite/config.js +8 -14
  44. package/dist/vite/dev.js +1 -1
  45. package/dist/vite/import-vite-esm-sync.js +2 -2
  46. package/dist/vite/node-adapter.js +2 -2
  47. package/dist/vite/plugin.d.ts +1 -1
  48. package/dist/vite/plugin.js +64 -55
  49. package/dist/vite/profiler.js +1 -1
  50. package/dist/vite/remove-exports.js +1 -1
  51. package/dist/vite/resolve-file-url.js +1 -1
  52. package/dist/vite/styles.js +1 -1
  53. package/dist/vite/vite-node.d.ts +9 -0
  54. package/dist/vite/vite-node.js +57 -0
  55. package/dist/vite/vmod.js +1 -1
  56. package/dist/vite/with-props.js +1 -1
  57. package/dist/vite.js +1 -1
  58. package/package.json +11 -7
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-3278f3ca6
2
+ * @react-router/dev v0.0.0-experimental-2d5e406e4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -15,9 +15,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var node_crypto = require('node:crypto');
16
16
  var path = require('node:path');
17
17
  var url = require('node:url');
18
- var server = require('vite-node/server');
19
- var client = require('vite-node/client');
20
- var sourceMap = require('vite-node/source-map');
21
18
  var fse = require('fs-extra');
22
19
  var babel$1 = require('@babel/core');
23
20
  var reactRouter = require('react-router');
@@ -35,6 +32,7 @@ var removeExports = require('./remove-exports.js');
35
32
  var importViteEsmSync = require('./import-vite-esm-sync.js');
36
33
  var config = require('./config.js');
37
34
  var withProps = require('./with-props.js');
35
+ var viteNode = require('./vite-node.js');
38
36
  var parser = require('@babel/parser');
39
37
 
40
38
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -241,7 +239,7 @@ let getServerBuildDirectory = ctx => path__namespace.join(ctx.reactRouterConfig.
241
239
  let getClientBuildDirectory = reactRouterConfig => path__namespace.join(reactRouterConfig.buildDirectory, "client");
242
240
  let defaultEntriesDir = path__namespace.resolve(__dirname, "..", "config", "defaults");
243
241
  let defaultEntries = fse__namespace.readdirSync(defaultEntriesDir).map(filename => path__namespace.join(defaultEntriesDir, filename));
244
- invariant["default"](defaultEntries.length > 0, "No default entries found");
242
+ invariant(defaultEntries.length > 0, "No default entries found");
245
243
  let reactRouterDevLoadContext = () => ({});
246
244
  // Inlined from https://github.com/jsdf/deep-freeze
247
245
  let deepFreeze = o => {
@@ -268,8 +266,7 @@ const reactRouterVitePlugin = _config => {
268
266
  let viteConfig;
269
267
  let cssModulesManifest = {};
270
268
  let viteChildCompiler = null;
271
- let routeConfigViteServer = null;
272
- let viteNodeRunner = null;
269
+ let routesViteNodeContext = null;
273
270
  let ssrExternals = isInReactRouterMonorepo() ? [
274
271
  // This is only needed within this repo because these packages
275
272
  // are linked to a directory outside of node_modules so Vite
@@ -286,14 +283,14 @@ const reactRouterVitePlugin = _config => {
286
283
  } = {}) => {
287
284
  var _viteUserConfig$build;
288
285
  let rootDirectory = viteUserConfig.root ?? process.env.REACT_ROUTER_ROOT ?? process.cwd();
289
- invariant["default"](viteNodeRunner);
286
+ invariant(routesViteNodeContext);
290
287
  let reactRouterConfig = await config.resolveReactRouterConfig({
291
288
  rootDirectory,
292
289
  reactRouterUserConfig,
293
290
  routeConfigChanged,
294
291
  viteUserConfig,
295
292
  viteCommand,
296
- viteNodeRunner
293
+ routesViteNodeContext
297
294
  });
298
295
  let {
299
296
  entryClientFilePath,
@@ -322,11 +319,11 @@ const reactRouterVitePlugin = _config => {
322
319
  };
323
320
  };
324
321
  let pluginIndex = pluginName => {
325
- invariant["default"](viteConfig);
322
+ invariant(viteConfig);
326
323
  return viteConfig.plugins.findIndex(plugin => plugin.name === pluginName);
327
324
  };
328
325
  let getServerEntry = async () => {
329
- invariant["default"](viteConfig, "viteconfig required to generate the server entry");
326
+ invariant(viteConfig, "viteconfig required to generate the server entry");
330
327
  let routes = ctx.serverBundleBuildConfig ?
331
328
  // For server bundle builds, the server build should only import the
332
329
  // routes for this bundle rather than importing all routes
@@ -381,7 +378,7 @@ const reactRouterVitePlugin = _config => {
381
378
  return new Set([...cssUrlPaths, ...chunkAssetPaths]);
382
379
  };
383
380
  let generateReactRouterManifestsForBuild = async () => {
384
- invariant["default"](viteConfig);
381
+ invariant(viteConfig);
385
382
  let viteManifest = await loadViteManifest(getClientBuildDirectory(ctx.reactRouterConfig));
386
383
  let entry = getReactRouterManifestBuildAssets(ctx, viteManifest, ctx.entryClientFilePath);
387
384
  let browserRoutes = {};
@@ -489,36 +486,13 @@ const reactRouterVitePlugin = _config => {
489
486
  viteUserConfig = _viteUserConfig;
490
487
  viteConfigEnv = _viteConfigEnv;
491
488
  viteCommand = viteConfigEnv.command;
492
- routeConfigViteServer = await vite.createServer({
489
+ routesViteNodeContext = await viteNode.createContext({
493
490
  mode: viteConfigEnv.mode,
494
491
  server: {
495
- watch: viteCommand === "build" ? null : undefined,
496
- preTransformRequests: false,
497
- hmr: false
492
+ watch: viteCommand === "build" ? null : undefined
498
493
  },
499
494
  ssr: {
500
495
  external: ssrExternals
501
- },
502
- optimizeDeps: {
503
- noDiscovery: true
504
- },
505
- configFile: false,
506
- envFile: false,
507
- plugins: []
508
- });
509
- await routeConfigViteServer.pluginContainer.buildStart({});
510
- let viteNodeServer = new server.ViteNodeServer(routeConfigViteServer);
511
- sourceMap.installSourcemapsSupport({
512
- getSourceMap: source => viteNodeServer.getSourceMap(source)
513
- });
514
- viteNodeRunner = new client.ViteNodeRunner({
515
- root: routeConfigViteServer.config.root,
516
- base: routeConfigViteServer.config.base,
517
- fetchModule(id) {
518
- return viteNodeServer.fetchModule(id);
519
- },
520
- resolveId(id, importer) {
521
- return viteNodeServer.resolveId(id, importer);
522
496
  }
523
497
  });
524
498
  await updatePluginContext();
@@ -630,7 +604,7 @@ const reactRouterVitePlugin = _config => {
630
604
  async configResolved(resolvedViteConfig) {
631
605
  await esModuleLexer.init;
632
606
  viteConfig = resolvedViteConfig;
633
- invariant["default"](viteConfig);
607
+ invariant(viteConfig);
634
608
  // We load the same Vite config file again for the child compiler so
635
609
  // that both parent and child compiler's plugins have independent state.
636
610
  // If we re-used the `viteUserConfig.plugins` array for the child
@@ -648,7 +622,7 @@ const reactRouterVitePlugin = _config => {
648
622
  mode: viteConfig.mode,
649
623
  isSsrBuild: ctx.isSsrBuild
650
624
  }, viteConfig.configFile);
651
- invariant["default"](childCompilerConfigFile, "Vite config file was unable to be resolved for React Router child compiler");
625
+ invariant(childCompilerConfigFile, "Vite config file was unable to be resolved for React Router child compiler");
652
626
  // Validate that commonly used Rollup plugins that need to run before
653
627
  // ours are in the correct order. This is because Rollup plugins can't
654
628
  // set `enforce: "pre"` like Vite plugins can. Explicitly validating
@@ -691,7 +665,7 @@ const reactRouterVitePlugin = _config => {
691
665
  }
692
666
  },
693
667
  buildStart() {
694
- invariant["default"](viteConfig);
668
+ invariant(viteConfig);
695
669
  if (viteCommand === "build" && viteConfig.mode === "production" && !viteConfig.build.ssr && viteConfig.build.sourcemap) {
696
670
  viteConfig.logger.warn(colors__default["default"].yellow("\n" + colors__default["default"].bold(" ⚠️ Source maps are enabled in production\n") + ["This makes your server code publicly", "visible in the browser. This is highly", "discouraged! If you insist, ensure that", "you are using environment variables for", "secrets and not hard-coding them in", "your source code."].map(line => " " + line).join("\n") + "\n"));
697
671
  }
@@ -721,19 +695,19 @@ const reactRouterVitePlugin = _config => {
721
695
  });
722
696
  // Invalidate virtual modules and update cached plugin config via file watcher
723
697
  viteDevServer.watcher.on("all", async (eventName, rawFilepath) => {
724
- var _viteConfig, _routeConfigViteServe;
698
+ var _viteConfig, _routesViteNodeContex, _routesViteNodeContex2;
725
699
  let {
726
700
  normalizePath
727
701
  } = importViteEsmSync.importViteEsmSync();
728
702
  let filepath = normalizePath(rawFilepath);
729
703
  let appFileAddedOrRemoved = (eventName === "add" || eventName === "unlink") && filepath.startsWith(normalizePath(ctx.reactRouterConfig.appDirectory));
730
- invariant["default"]((_viteConfig = viteConfig) === null || _viteConfig === void 0 ? void 0 : _viteConfig.configFile);
704
+ invariant((_viteConfig = viteConfig) === null || _viteConfig === void 0 ? void 0 : _viteConfig.configFile);
731
705
  let viteConfigChanged = eventName === "change" && filepath === normalizePath(viteConfig.configFile);
732
- let routeConfigChanged = Boolean((_routeConfigViteServe = routeConfigViteServer) === null || _routeConfigViteServe === void 0 ? void 0 : _routeConfigViteServe.moduleGraph.getModuleById(filepath));
706
+ let routeConfigChanged = Boolean((_routesViteNodeContex = routesViteNodeContext) === null || _routesViteNodeContex === void 0 ? void 0 : (_routesViteNodeContex2 = _routesViteNodeContex.devServer) === null || _routesViteNodeContex2 === void 0 ? void 0 : _routesViteNodeContex2.moduleGraph.getModuleById(filepath));
733
707
  if (routeConfigChanged || appFileAddedOrRemoved) {
734
- var _routeConfigViteServe2, _viteNodeRunner;
735
- (_routeConfigViteServe2 = routeConfigViteServer) === null || _routeConfigViteServe2 === void 0 ? void 0 : _routeConfigViteServe2.moduleGraph.invalidateAll();
736
- (_viteNodeRunner = viteNodeRunner) === null || _viteNodeRunner === void 0 ? void 0 : _viteNodeRunner.moduleCache.clear();
708
+ var _routesViteNodeContex3, _routesViteNodeContex4, _routesViteNodeContex5, _routesViteNodeContex6;
709
+ (_routesViteNodeContex3 = routesViteNodeContext) === null || _routesViteNodeContex3 === void 0 ? void 0 : (_routesViteNodeContex4 = _routesViteNodeContex3.devServer) === null || _routesViteNodeContex4 === void 0 ? void 0 : _routesViteNodeContex4.moduleGraph.invalidateAll();
710
+ (_routesViteNodeContex5 = routesViteNodeContext) === null || _routesViteNodeContex5 === void 0 ? void 0 : (_routesViteNodeContex6 = _routesViteNodeContex5.runner) === null || _routesViteNodeContex6 === void 0 ? void 0 : _routesViteNodeContex6.moduleCache.clear();
737
711
  }
738
712
  if (appFileAddedOrRemoved || viteConfigChanged || routeConfigChanged) {
739
713
  let lastReactRouterConfig = ctx.reactRouterConfig;
@@ -773,7 +747,7 @@ const reactRouterVitePlugin = _config => {
773
747
  if (!ctx.isSsrBuild) {
774
748
  return;
775
749
  }
776
- invariant["default"](viteConfig);
750
+ invariant(viteConfig);
777
751
  let clientBuildDirectory = getClientBuildDirectory(ctx.reactRouterConfig);
778
752
  let serverBuildDirectory = getServerBuildDirectory(ctx);
779
753
  let ssrViteManifest = await loadViteManifest(serverBuildDirectory);
@@ -802,7 +776,7 @@ const reactRouterVitePlugin = _config => {
802
776
  if (movedAssetPaths.length) {
803
777
  viteConfig.logger.info(["", `${colors__default["default"].green("✓")} ${movedAssetPaths.length} asset${movedAssetPaths.length > 1 ? "s" : ""} moved from React Router server build to client assets.`, ...movedAssetPaths.map(movedAssetPath => colors__default["default"].dim(path__namespace.relative(ctx.rootDirectory, movedAssetPath))), ""].join("\n"));
804
778
  }
805
- if (ctx.reactRouterConfig.prerender != null) {
779
+ if (ctx.reactRouterConfig.prerender != null && ctx.reactRouterConfig.prerender !== false) {
806
780
  // If we have prerender routes, that takes precedence over SPA mode
807
781
  // which is ssr:false and only the rot route being rendered
808
782
  await handlePrerender(viteConfig, ctx.reactRouterConfig, serverBuildDirectory, clientBuildDirectory);
@@ -819,9 +793,9 @@ const reactRouterVitePlugin = _config => {
819
793
  }
820
794
  },
821
795
  async buildEnd() {
822
- var _viteChildCompiler, _routeConfigViteServe3;
796
+ var _viteChildCompiler, _routesViteNodeContex7, _routesViteNodeContex8;
823
797
  await ((_viteChildCompiler = viteChildCompiler) === null || _viteChildCompiler === void 0 ? void 0 : _viteChildCompiler.close());
824
- await ((_routeConfigViteServe3 = routeConfigViteServer) === null || _routeConfigViteServe3 === void 0 ? void 0 : _routeConfigViteServe3.close());
798
+ await ((_routesViteNodeContex7 = routesViteNodeContext) === null || _routesViteNodeContex7 === void 0 ? void 0 : (_routesViteNodeContex8 = _routesViteNodeContex7.devServer) === null || _routesViteNodeContex8 === void 0 ? void 0 : _routesViteNodeContex8.close());
825
799
  }
826
800
  }, {
827
801
  name: "react-router-route-entry",
@@ -1168,7 +1142,17 @@ async function handlePrerender(viteConfig, reactRouterConfig, serverBuildDirecto
1168
1142
  handler
1169
1143
  } = await getPrerenderBuildAndHandler(viteConfig, reactRouterConfig, serverBuildDirectory);
1170
1144
  let routes = createPrerenderRoutes(build.routes);
1171
- let routesToPrerender = reactRouterConfig.prerender || ["/"];
1145
+ let routesToPrerender;
1146
+ if (typeof reactRouterConfig.prerender === "boolean") {
1147
+ invariant(reactRouterConfig.prerender, "Expected prerender:true");
1148
+ routesToPrerender = determineStaticPrerenderRoutes(routes, viteConfig, true);
1149
+ } else if (typeof reactRouterConfig.prerender === "function") {
1150
+ routesToPrerender = await reactRouterConfig.prerender({
1151
+ getStaticPaths: () => determineStaticPrerenderRoutes(routes, viteConfig, false)
1152
+ });
1153
+ } else {
1154
+ routesToPrerender = reactRouterConfig.prerender || ["/"];
1155
+ }
1172
1156
  let requestInit = {
1173
1157
  headers: {
1174
1158
  // Header that can be used in the loader to know if you're running at
@@ -1186,6 +1170,34 @@ async function handlePrerender(viteConfig, reactRouterConfig, serverBuildDirecto
1186
1170
  }
1187
1171
  await prerenderManifest(build, clientBuildDirectory, reactRouterConfig, viteConfig);
1188
1172
  }
1173
+ function determineStaticPrerenderRoutes(routes, viteConfig, isBooleanUsage = false) {
1174
+ // Always start with the root/index route included
1175
+ let paths = ["/"];
1176
+ let paramRoutes = [];
1177
+ // Then recursively add any new path defined by the tree
1178
+ function recurse(subtree, prefix = "") {
1179
+ for (let route of subtree) {
1180
+ let newPath = [prefix, route.path].join("/").replace(/\/\/+/g, "/");
1181
+ if (route.path) {
1182
+ let segments = route.path.split("/");
1183
+ if (segments.some(s => s.startsWith(":") || s === "*")) {
1184
+ paramRoutes.push(route.path);
1185
+ } else {
1186
+ paths.push(newPath);
1187
+ }
1188
+ }
1189
+ if (route.children) {
1190
+ recurse(route.children, newPath);
1191
+ }
1192
+ }
1193
+ }
1194
+ recurse(routes);
1195
+ if (isBooleanUsage && paramRoutes) {
1196
+ viteConfig.logger.warn("The following paths were not prerendered because Dynamic Param and Splat " + "routes cannot be prerendered when using `prerender:true`. You may want to " + "consider using the `prerender()` API if you wish to prerender slug and " + "splat routes.");
1197
+ }
1198
+ // Clean double slashes and remove trailing slashes
1199
+ return paths.map(p => p.replace(/\/\/+/g, "/").replace(/(.+)\/$/, "$1"));
1200
+ }
1189
1201
  async function prerenderData(handler, prerenderPath, clientBuildDirectory, reactRouterConfig, viteConfig, requestInit) {
1190
1202
  let normalizedPath = `${reactRouterConfig.basename}${prerenderPath === "/" ? "/_root.data" : `${prerenderPath.replace(/\/$/, "")}.data`}`.replace(/\/\/+/g, "/");
1191
1203
  let request = new Request(`http://localhost${normalizedPath}`, requestInit);
@@ -1220,10 +1232,7 @@ async function prerenderManifest(build, clientBuildDirectory, reactRouterConfig,
1220
1232
  let outdir = path__namespace.relative(process.cwd(), clientBuildDirectory);
1221
1233
  let outfile = path__namespace.join(outdir, ...normalizedPath.split("/"));
1222
1234
  await fse__namespace.ensureDir(path__namespace.dirname(outfile));
1223
- let manifestData = JSON.stringify({
1224
- notFoundPaths: [],
1225
- patches: build.assets.routes
1226
- });
1235
+ let manifestData = JSON.stringify(build.assets.routes);
1227
1236
  await fse__namespace.outputFile(outfile, manifestData);
1228
1237
  viteConfig.logger.info(`Prerender: Generated ${colors__default["default"].bold(outfile)}`);
1229
1238
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-3278f3ca6
2
+ * @react-router/dev v0.0.0-experimental-2d5e406e4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-3278f3ca6
2
+ * @react-router/dev v0.0.0-experimental-2d5e406e4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-3278f3ca6
2
+ * @react-router/dev v0.0.0-experimental-2d5e406e4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-3278f3ca6
2
+ * @react-router/dev v0.0.0-experimental-2d5e406e4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -0,0 +1,9 @@
1
+ import { ViteNodeServer } from "vite-node/server";
2
+ import { ViteNodeRunner } from "vite-node/client";
3
+ import type * as Vite from "vite";
4
+ export type Context = {
5
+ devServer: Vite.ViteDevServer;
6
+ server: ViteNodeServer;
7
+ runner: ViteNodeRunner;
8
+ };
9
+ export declare function createContext(viteConfig?: Vite.InlineConfig): Promise<Context>;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @react-router/dev v0.0.0-experimental-2d5e406e4
3
+ *
4
+ * Copyright (c) Remix Software Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ 'use strict';
12
+
13
+ Object.defineProperty(exports, '__esModule', { value: true });
14
+
15
+ var server = require('vite-node/server');
16
+ var client = require('vite-node/client');
17
+ var sourceMap = require('vite-node/source-map');
18
+ var importViteEsmSync = require('./import-vite-esm-sync.js');
19
+
20
+ async function createContext(viteConfig = {}) {
21
+ await importViteEsmSync.preloadViteEsm();
22
+ const vite = importViteEsmSync.importViteEsmSync();
23
+ const devServer = await vite.createServer(vite.mergeConfig({
24
+ server: {
25
+ preTransformRequests: false,
26
+ hmr: false
27
+ },
28
+ optimizeDeps: {
29
+ noDiscovery: true
30
+ },
31
+ configFile: false,
32
+ envFile: false,
33
+ plugins: []
34
+ }, viteConfig));
35
+ await devServer.pluginContainer.buildStart({});
36
+ const server$1 = new server.ViteNodeServer(devServer);
37
+ sourceMap.installSourcemapsSupport({
38
+ getSourceMap: source => server$1.getSourceMap(source)
39
+ });
40
+ const runner = new client.ViteNodeRunner({
41
+ root: devServer.config.root,
42
+ base: devServer.config.base,
43
+ fetchModule(id) {
44
+ return server$1.fetchModule(id);
45
+ },
46
+ resolveId(id, importer) {
47
+ return server$1.resolveId(id, importer);
48
+ }
49
+ });
50
+ return {
51
+ devServer,
52
+ server: server$1,
53
+ runner
54
+ };
55
+ }
56
+
57
+ exports.createContext = createContext;
package/dist/vite/vmod.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-3278f3ca6
2
+ * @react-router/dev v0.0.0-experimental-2d5e406e4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-3278f3ca6
2
+ * @react-router/dev v0.0.0-experimental-2d5e406e4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/vite.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-3278f3ca6
2
+ * @react-router/dev v0.0.0-experimental-2d5e406e4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-router/dev",
3
- "version": "0.0.0-experimental-3278f3ca6",
3
+ "version": "0.0.0-experimental-2d5e406e4",
4
4
  "description": "Dev tools and CLI for React Router",
5
5
  "homepage": "https://reactrouter.com",
6
6
  "bugs": {
@@ -12,6 +12,7 @@
12
12
  "directory": "packages/react-router-dev"
13
13
  },
14
14
  "license": "MIT",
15
+ "main": "./dist/typescript/plugin.ts",
15
16
  "exports": {
16
17
  "./routes": {
17
18
  "types": "./dist/routes.d.ts",
@@ -43,6 +44,7 @@
43
44
  "arg": "^5.0.1",
44
45
  "babel-dead-code-elimination": "^1.0.6",
45
46
  "chalk": "^4.1.2",
47
+ "chokidar": "^4.0.0",
46
48
  "dedent": "^1.5.3",
47
49
  "es-module-lexer": "^1.3.1",
48
50
  "exit-hook": "2.2.1",
@@ -50,15 +52,16 @@
50
52
  "gunzip-maybe": "^1.4.2",
51
53
  "jsesc": "3.0.2",
52
54
  "lodash": "^4.17.21",
55
+ "pathe": "^1.1.2",
53
56
  "picocolors": "^1.0.0",
54
57
  "picomatch": "^2.3.1",
55
58
  "prettier": "^2.7.1",
56
59
  "react-refresh": "^0.14.0",
57
60
  "semver": "^7.3.7",
58
61
  "set-cookie-parser": "^2.6.0",
59
- "vite-node": "^1.6.0",
60
62
  "valibot": "^0.41.0",
61
- "@react-router/node": "0.0.0-experimental-3278f3ca6"
63
+ "vite-node": "^1.6.0",
64
+ "@react-router/node": "0.0.0-experimental-2d5e406e4"
62
65
  },
63
66
  "devDependencies": {
64
67
  "@types/babel__core": "^7.20.5",
@@ -82,17 +85,18 @@
82
85
  "fast-glob": "3.2.11",
83
86
  "strip-ansi": "^6.0.1",
84
87
  "tiny-invariant": "^1.2.0",
88
+ "typescript": "^5.6.2",
85
89
  "vite": "^5.1.0",
86
90
  "wrangler": "^3.28.2",
87
- "@react-router/serve": "0.0.0-experimental-3278f3ca6",
88
- "react-router": "^0.0.0-experimental-3278f3ca6"
91
+ "react-router": "^0.0.0-experimental-2d5e406e4",
92
+ "@react-router/serve": "0.0.0-experimental-2d5e406e4"
89
93
  },
90
94
  "peerDependencies": {
91
95
  "typescript": "^5.1.0",
92
96
  "vite": "^5.1.0",
93
97
  "wrangler": "^3.28.2",
94
- "@react-router/serve": "^0.0.0-experimental-3278f3ca6",
95
- "react-router": "^0.0.0-experimental-3278f3ca6"
98
+ "@react-router/serve": "^0.0.0-experimental-2d5e406e4",
99
+ "react-router": "^0.0.0-experimental-2d5e406e4"
96
100
  },
97
101
  "peerDependenciesMeta": {
98
102
  "@react-router/serve": {