@react-router/dev 7.13.0-pre.0 → 7.13.1-pre.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.
package/CHANGELOG.md CHANGED
@@ -1,14 +1,23 @@
1
1
  # `@react-router/dev`
2
2
 
3
- ## 7.13.0-pre.0
3
+ ## 7.13.1-pre.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies:
8
+ - `react-router@7.13.1-pre.0`
9
+ - `@react-router/node@7.13.1-pre.0`
10
+ - `@react-router/serve@7.13.1-pre.0`
11
+
12
+ ## 7.13.0
4
13
 
5
14
  ### Patch Changes
6
15
 
7
16
  - Bump @remix-run/node-fetch-server dep ([#14704](https://github.com/remix-run/react-router/pull/14704))
8
17
  - Updated dependencies:
9
- - `react-router@7.13.0-pre.0`
10
- - `@react-router/node@7.13.0-pre.0`
11
- - `@react-router/serve@7.13.0-pre.0`
18
+ - `react-router@7.13.0`
19
+ - `@react-router/node@7.13.0`
20
+ - `@react-router/serve@7.13.0`
12
21
 
13
22
  ## 7.12.0
14
23
 
package/dist/cli/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * @react-router/dev v7.13.0-pre.0
3
+ * @react-router/dev v7.13.1-pre.0
4
4
  *
5
5
  * Copyright (c) Remix Software Inc.
6
6
  *
@@ -217,7 +217,7 @@ function validateRouteConfig({
217
217
  `Route config in "${routeConfigFile}" is invalid.`,
218
218
  root ? `${root}` : [],
219
219
  nested ? Object.entries(nested).map(
220
- ([path9, message]) => `Path: routes.${path9}
220
+ ([path10, message]) => `Path: routes.${path10}
221
221
  ${message}`
222
222
  ) : []
223
223
  ].flat().join("\n\n")
@@ -376,7 +376,7 @@ async function resolveConfig({
376
376
  basename: basename3,
377
377
  buildDirectory: userBuildDirectory,
378
378
  buildEnd,
379
- prerender,
379
+ prerender: prerender2,
380
380
  routeDiscovery: userRouteDiscovery,
381
381
  serverBuildFile,
382
382
  serverBundles,
@@ -390,15 +390,15 @@ async function resolveConfig({
390
390
  if (!ssr && serverBundles) {
391
391
  serverBundles = void 0;
392
392
  }
393
- if (prerender) {
393
+ if (prerender2) {
394
394
  let isValidPrerenderPathsConfig = (p) => typeof p === "boolean" || typeof p === "function" || Array.isArray(p);
395
- let isValidPrerenderConfig = isValidPrerenderPathsConfig(prerender) || typeof prerender === "object" && "paths" in prerender && isValidPrerenderPathsConfig(prerender.paths);
395
+ let isValidPrerenderConfig = isValidPrerenderPathsConfig(prerender2) || typeof prerender2 === "object" && "paths" in prerender2 && isValidPrerenderPathsConfig(prerender2.paths);
396
396
  if (!isValidPrerenderConfig) {
397
397
  return err(
398
398
  "The `prerender`/`prerender.paths` config must be a boolean, an array of string paths, or a function returning a boolean or array of string paths."
399
399
  );
400
400
  }
401
- let isValidConcurrencyConfig = typeof prerender != "object" || !("unstable_concurrency" in prerender) || typeof prerender.unstable_concurrency === "number" && Number.isInteger(prerender.unstable_concurrency) && prerender.unstable_concurrency > 0;
401
+ let isValidConcurrencyConfig = typeof prerender2 != "object" || !("unstable_concurrency" in prerender2) || typeof prerender2.unstable_concurrency === "number" && Number.isInteger(prerender2.unstable_concurrency) && prerender2.unstable_concurrency > 0;
402
402
  if (!isValidConcurrencyConfig) {
403
403
  return err(
404
404
  "The `prerender.unstable_concurrency` config must be a positive integer if specified."
@@ -507,6 +507,7 @@ async function resolveConfig({
507
507
  unstable_optimizeDeps: userAndPresetConfigs.future?.unstable_optimizeDeps ?? false,
508
508
  unstable_subResourceIntegrity: userAndPresetConfigs.future?.unstable_subResourceIntegrity ?? false,
509
509
  unstable_trailingSlashAwareDataRequests: userAndPresetConfigs.future?.unstable_trailingSlashAwareDataRequests ?? false,
510
+ unstable_previewServerPrerendering: userAndPresetConfigs.future?.unstable_previewServerPrerendering ?? false,
510
511
  v8_middleware: userAndPresetConfigs.future?.v8_middleware ?? false,
511
512
  v8_splitRouteModules: userAndPresetConfigs.future?.v8_splitRouteModules ?? false,
512
513
  v8_viteEnvironmentApi: userAndPresetConfigs.future?.v8_viteEnvironmentApi ?? false
@@ -518,7 +519,7 @@ async function resolveConfig({
518
519
  buildDirectory,
519
520
  buildEnd,
520
521
  future,
521
- prerender,
522
+ prerender: prerender2,
522
523
  routes: routes2,
523
524
  routeDiscovery,
524
525
  serverBuildFile,
@@ -585,11 +586,11 @@ async function createConfigLoader({
585
586
  if (!fsWatcher) {
586
587
  fsWatcher = import_chokidar.default.watch([root, appDirectory], {
587
588
  ignoreInitial: true,
588
- ignored: (path9) => {
589
- let dirname5 = import_pathe3.default.dirname(path9);
589
+ ignored: (path10) => {
590
+ let dirname5 = import_pathe3.default.dirname(path10);
590
591
  return !dirname5.startsWith(appDirectory) && // Ensure we're only watching files outside of the app directory
591
592
  // that are at the root level, not nested in subdirectories
592
- path9 !== root && // Watch the root directory itself
593
+ path10 !== root && // Watch the root directory itself
593
594
  dirname5 !== root;
594
595
  }
595
596
  });
@@ -914,7 +915,7 @@ function fullpath(lineage2) {
914
915
  if (lineage2.length === 1 && route?.id === "root") return "/";
915
916
  const isLayout = route && route.index !== true && route.path === void 0;
916
917
  if (isLayout) return void 0;
917
- return "/" + lineage2.map((route2) => route2.path?.replace(/^\//, "")?.replace(/\/$/, "")).filter((path9) => path9 !== void 0 && path9 !== "").join("/");
918
+ return "/" + lineage2.map((route2) => route2.path?.replace(/^\//, "")?.replace(/\/$/, "")).filter((path10) => path10 !== void 0 && path10 !== "").join("/");
918
919
  }
919
920
  var init_route = __esm({
920
921
  "typegen/route.ts"() {
@@ -1098,8 +1099,8 @@ function routeModulesType(ctx) {
1098
1099
  );
1099
1100
  }
1100
1101
  function isInAppDirectory(ctx, routeFile) {
1101
- const path9 = Path3.resolve(ctx.config.appDirectory, routeFile);
1102
- return path9.startsWith(ctx.config.appDirectory);
1102
+ const path10 = Path3.resolve(ctx.config.appDirectory, routeFile);
1103
+ return path10.startsWith(ctx.config.appDirectory);
1103
1104
  }
1104
1105
  function getRouteAnnotations({
1105
1106
  ctx,
@@ -1211,21 +1212,21 @@ function getRouteAnnotations({
1211
1212
  return { filename: filename2, content };
1212
1213
  }
1213
1214
  function relativeImportSource(from, to) {
1214
- let path9 = Path3.relative(Path3.dirname(from), to);
1215
- let extension = Path3.extname(path9);
1216
- path9 = Path3.join(Path3.dirname(path9), Pathe.filename(path9));
1217
- if (!path9.startsWith("../")) path9 = "./" + path9;
1215
+ let path10 = Path3.relative(Path3.dirname(from), to);
1216
+ let extension = Path3.extname(path10);
1217
+ path10 = Path3.join(Path3.dirname(path10), Pathe.filename(path10));
1218
+ if (!path10.startsWith("../")) path10 = "./" + path10;
1218
1219
  if (!extension || /\.(js|ts)x?$/.test(extension)) {
1219
1220
  extension = ".js";
1220
1221
  }
1221
- return path9 + extension;
1222
+ return path10 + extension;
1222
1223
  }
1223
1224
  function rootDirsPath(ctx, typesPath) {
1224
1225
  const rel = Path3.relative(typesDirectory(ctx), typesPath);
1225
1226
  return Path3.join(ctx.rootDirectory, rel);
1226
1227
  }
1227
- function paramsType(path9) {
1228
- const params = parse2(path9);
1228
+ function paramsType(path10) {
1229
+ const params = parse2(path10);
1229
1230
  return t2.tsTypeLiteral(
1230
1231
  Object.entries(params).map(([param, isRequired]) => {
1231
1232
  const property = t2.tsPropertySignature(
@@ -1555,6 +1556,16 @@ var init_warn_on_client_source_maps = __esm({
1555
1556
  }
1556
1557
  });
1557
1558
 
1559
+ // vite/plugins/prerender.ts
1560
+ var import_promises2, import_node_path2;
1561
+ var init_prerender = __esm({
1562
+ "vite/plugins/prerender.ts"() {
1563
+ "use strict";
1564
+ import_promises2 = require("fs/promises");
1565
+ import_node_path2 = __toESM(require("path"));
1566
+ }
1567
+ });
1568
+
1558
1569
  // vite/plugin.ts
1559
1570
  async function resolveViteConfig({
1560
1571
  configFile,
@@ -1597,11 +1608,11 @@ function getServerBundleIds(ctx) {
1597
1608
  async function cleanBuildDirectory(viteConfig, ctx) {
1598
1609
  let buildDirectory = ctx.reactRouterConfig.buildDirectory;
1599
1610
  let isWithinRoot = () => {
1600
- let relativePath = path7.relative(ctx.rootDirectory, buildDirectory);
1601
- return !relativePath.startsWith("..") && !path7.isAbsolute(relativePath);
1611
+ let relativePath = path8.relative(ctx.rootDirectory, buildDirectory);
1612
+ return !relativePath.startsWith("..") && !path8.isAbsolute(relativePath);
1602
1613
  };
1603
1614
  if (viteConfig.build.emptyOutDir ?? isWithinRoot()) {
1604
- await (0, import_promises2.rm)(buildDirectory, { force: true, recursive: true });
1615
+ await (0, import_promises3.rm)(buildDirectory, { force: true, recursive: true });
1605
1616
  }
1606
1617
  }
1607
1618
  async function cleanViteManifests(environmentsOptions, ctx) {
@@ -1609,7 +1620,7 @@ async function cleanViteManifests(environmentsOptions, ctx) {
1609
1620
  ([environmentName, options]) => {
1610
1621
  let outDir = options.build?.outDir;
1611
1622
  invariant(outDir, `Expected build.outDir for ${environmentName}`);
1612
- return path7.join(outDir, ".vite/manifest.json");
1623
+ return path8.join(outDir, ".vite/manifest.json");
1613
1624
  }
1614
1625
  );
1615
1626
  await Promise.all(
@@ -1617,12 +1628,12 @@ async function cleanViteManifests(environmentsOptions, ctx) {
1617
1628
  let manifestExists = (0, import_node_fs3.existsSync)(viteManifestPath);
1618
1629
  if (!manifestExists) return;
1619
1630
  if (!ctx.viteManifestEnabled) {
1620
- await (0, import_promises2.rm)(viteManifestPath, { force: true, recursive: true });
1631
+ await (0, import_promises3.rm)(viteManifestPath, { force: true, recursive: true });
1621
1632
  }
1622
- let viteDir = path7.dirname(viteManifestPath);
1623
- let viteDirFiles = await (0, import_promises2.readdir)(viteDir, { recursive: true });
1633
+ let viteDir = path8.dirname(viteManifestPath);
1634
+ let viteDirFiles = await (0, import_promises3.readdir)(viteDir, { recursive: true });
1624
1635
  if (viteDirFiles.length === 0) {
1625
- await (0, import_promises2.rm)(viteDir, { force: true, recursive: true });
1636
+ await (0, import_promises3.rm)(viteDir, { force: true, recursive: true });
1626
1637
  }
1627
1638
  })
1628
1639
  );
@@ -1636,10 +1647,10 @@ function mergeEnvironmentOptions(base, ...overrides) {
1636
1647
  }
1637
1648
  async function getEnvironmentOptionsResolvers(ctx, viteCommand) {
1638
1649
  let { serverBuildFile, serverModuleFormat } = ctx.reactRouterConfig;
1639
- let packageRoot = path7.dirname(
1650
+ let packageRoot = path8.dirname(
1640
1651
  require.resolve("@react-router/dev/package.json")
1641
1652
  );
1642
- let { moduleSyncEnabled } = await import(`file:///${path7.join(packageRoot, "module-sync-enabled/index.mjs")}`);
1653
+ let { moduleSyncEnabled } = await import(`file:///${path8.join(packageRoot, "module-sync-enabled/index.mjs")}`);
1643
1654
  let vite2 = getVite();
1644
1655
  function getBaseOptions({
1645
1656
  viteUserConfig
@@ -1718,7 +1729,7 @@ async function getEnvironmentOptionsResolvers(ctx, viteCommand) {
1718
1729
  ctx.entryClientFilePath,
1719
1730
  ...Object.values(ctx.reactRouterConfig.routes).flatMap(
1720
1731
  (route) => {
1721
- let routeFilePath = path7.resolve(
1732
+ let routeFilePath = path8.resolve(
1722
1733
  ctx.reactRouterConfig.appDirectory,
1723
1734
  route.file
1724
1735
  );
@@ -1742,7 +1753,7 @@ async function getEnvironmentOptionsResolvers(ctx, viteCommand) {
1742
1753
  ) : null;
1743
1754
  let routeChunkSuffix = routeChunkName ? `-${(0, import_kebabCase.default)(routeChunkName)}` : "";
1744
1755
  let assetsDir = (ctx.reactRouterConfig.future.v8_viteEnvironmentApi ? viteUserConfig?.environments?.client?.build?.assetsDir : null) ?? viteUserConfig?.build?.assetsDir ?? "assets";
1745
- return path7.posix.join(
1756
+ return path8.posix.join(
1746
1757
  assetsDir,
1747
1758
  `[name]${routeChunkSuffix}-[hash].js`
1748
1759
  );
@@ -1792,14 +1803,14 @@ function resolveEnvironmentsOptions(environmentResolvers, resolverOptions) {
1792
1803
  function isNonNullable(x) {
1793
1804
  return x != null;
1794
1805
  }
1795
- var import_node_crypto, import_node_fs3, import_promises2, path7, url, babel2, import_react_router2, import_es_module_lexer, import_pick3, import_jsesc, import_picocolors5, import_kebabCase, CLIENT_NON_COMPONENT_EXPORTS, CLIENT_ROUTE_EXPORTS, BUILD_CLIENT_ROUTE_QUERY_STRING, SSR_BUNDLE_PREFIX, virtualHmrRuntime, virtualInjectHmrRuntime, virtual, getServerBuildDirectory, getClientBuildDirectory, defaultEntriesDir, defaultEntries, REACT_REFRESH_HEADER;
1806
+ var import_node_crypto, import_node_fs3, import_promises3, path8, url, babel2, import_react_router2, import_es_module_lexer, import_pick3, import_jsesc, import_picocolors5, import_kebabCase, CLIENT_NON_COMPONENT_EXPORTS, CLIENT_ROUTE_EXPORTS, BUILD_CLIENT_ROUTE_QUERY_STRING, SSR_BUNDLE_PREFIX, virtualHmrRuntime, virtualInjectHmrRuntime, virtual, getServerBuildDirectory, getClientBuildDirectory, defaultEntriesDir, defaultEntries, REACT_REFRESH_HEADER;
1796
1807
  var init_plugin = __esm({
1797
1808
  "vite/plugin.ts"() {
1798
1809
  "use strict";
1799
1810
  import_node_crypto = require("crypto");
1800
1811
  import_node_fs3 = require("fs");
1801
- import_promises2 = require("fs/promises");
1802
- path7 = __toESM(require("path"));
1812
+ import_promises3 = require("fs/promises");
1813
+ path8 = __toESM(require("path"));
1803
1814
  url = __toESM(require("url"));
1804
1815
  babel2 = __toESM(require("@babel/core"));
1805
1816
  import_react_router2 = require("react-router");
@@ -1828,6 +1839,7 @@ var init_plugin = __esm({
1828
1839
  init_load_dotenv();
1829
1840
  init_validate_plugin_order();
1830
1841
  init_warn_on_client_source_maps();
1842
+ init_prerender();
1831
1843
  CLIENT_NON_COMPONENT_EXPORTS = [
1832
1844
  "clientAction",
1833
1845
  "clientLoader",
@@ -1853,20 +1865,20 @@ var init_plugin = __esm({
1853
1865
  serverManifest: create("server-manifest"),
1854
1866
  browserManifest: create("browser-manifest")
1855
1867
  };
1856
- getServerBuildDirectory = (reactRouterConfig, { serverBundleId } = {}) => path7.join(
1868
+ getServerBuildDirectory = (reactRouterConfig, { serverBundleId } = {}) => path8.join(
1857
1869
  reactRouterConfig.buildDirectory,
1858
1870
  "server",
1859
1871
  ...serverBundleId ? [serverBundleId] : []
1860
1872
  );
1861
- getClientBuildDirectory = (reactRouterConfig) => path7.join(reactRouterConfig.buildDirectory, "client");
1862
- defaultEntriesDir = path7.resolve(
1863
- path7.dirname(require.resolve("@react-router/dev/package.json")),
1873
+ getClientBuildDirectory = (reactRouterConfig) => path8.join(reactRouterConfig.buildDirectory, "client");
1874
+ defaultEntriesDir = path8.resolve(
1875
+ path8.dirname(require.resolve("@react-router/dev/package.json")),
1864
1876
  "dist",
1865
1877
  "config",
1866
1878
  "defaults"
1867
1879
  );
1868
1880
  defaultEntries = (0, import_node_fs3.readdirSync)(defaultEntriesDir).map(
1869
- (filename2) => path7.join(defaultEntriesDir, filename2)
1881
+ (filename2) => path8.join(defaultEntriesDir, filename2)
1870
1882
  );
1871
1883
  invariant(defaultEntries.length > 0, "No default entries found");
1872
1884
  REACT_REFRESH_HEADER = `
@@ -2151,8 +2163,8 @@ var import_picocolors9 = __toESM(require("picocolors"));
2151
2163
 
2152
2164
  // cli/commands.ts
2153
2165
  var import_node_fs4 = require("fs");
2154
- var import_promises3 = require("fs/promises");
2155
- var path8 = __toESM(require("path"));
2166
+ var import_promises4 = require("fs/promises");
2167
+ var path9 = __toESM(require("path"));
2156
2168
  var import_exit_hook = __toESM(require("exit-hook"));
2157
2169
  var import_picocolors8 = __toESM(require("picocolors"));
2158
2170
  var import_react_router3 = require("react-router");
@@ -2325,14 +2337,14 @@ async function generateEntry(entry, rootDirectory, flags = {}) {
2325
2337
  console.error(import_picocolors8.default.red(`No default server entry detected.`));
2326
2338
  return;
2327
2339
  }
2328
- let defaultsDirectory = path8.resolve(
2329
- path8.dirname(require.resolve("@react-router/dev/package.json")),
2340
+ let defaultsDirectory = path9.resolve(
2341
+ path9.dirname(require.resolve("@react-router/dev/package.json")),
2330
2342
  "dist",
2331
2343
  "config",
2332
2344
  "defaults"
2333
2345
  );
2334
- let defaultEntryClient = path8.resolve(defaultsDirectory, "entry.client.tsx");
2335
- let defaultEntryServer = path8.resolve(
2346
+ let defaultEntryClient = path9.resolve(defaultsDirectory, "entry.client.tsx");
2347
+ let defaultEntryServer = path9.resolve(
2336
2348
  defaultsDirectory,
2337
2349
  `entry.server.node.tsx`
2338
2350
  );
@@ -2341,19 +2353,19 @@ async function generateEntry(entry, rootDirectory, flags = {}) {
2341
2353
  let useTypeScript = flags.typescript ?? true;
2342
2354
  let outputExtension = useTypeScript ? "tsx" : "jsx";
2343
2355
  let outputEntry = `${entry}.${outputExtension}`;
2344
- let outputFile = path8.resolve(appDirectory, outputEntry);
2356
+ let outputFile = path9.resolve(appDirectory, outputEntry);
2345
2357
  if (!useTypeScript) {
2346
2358
  let javascript = await transpile(contents, {
2347
2359
  cwd: rootDirectory,
2348
2360
  filename: isServerEntry ? defaultEntryServer : defaultEntryClient
2349
2361
  });
2350
- await (0, import_promises3.writeFile)(outputFile, javascript, "utf-8");
2362
+ await (0, import_promises4.writeFile)(outputFile, javascript, "utf-8");
2351
2363
  } else {
2352
- await (0, import_promises3.writeFile)(outputFile, contents, "utf-8");
2364
+ await (0, import_promises4.writeFile)(outputFile, contents, "utf-8");
2353
2365
  }
2354
2366
  console.log(
2355
2367
  import_picocolors8.default.blue(
2356
- `Entry file ${entry} created at ${path8.relative(
2368
+ `Entry file ${entry} created at ${path9.relative(
2357
2369
  rootDirectory,
2358
2370
  outputFile
2359
2371
  )}.`
@@ -2362,16 +2374,16 @@ async function generateEntry(entry, rootDirectory, flags = {}) {
2362
2374
  }
2363
2375
  function resolveRootDirectory(root, flags) {
2364
2376
  if (root) {
2365
- return path8.resolve(root);
2377
+ return path9.resolve(root);
2366
2378
  }
2367
- return process.env.REACT_ROUTER_ROOT || (flags?.config ? path8.dirname(path8.resolve(flags.config)) : process.cwd());
2379
+ return process.env.REACT_ROUTER_ROOT || (flags?.config ? path9.dirname(path9.resolve(flags.config)) : process.cwd());
2368
2380
  }
2369
2381
  async function checkForEntry(rootDirectory, appDirectory, entries2) {
2370
2382
  for (let entry of entries2) {
2371
- let entryPath = path8.resolve(appDirectory, entry);
2383
+ let entryPath = path9.resolve(appDirectory, entry);
2372
2384
  let exists = (0, import_node_fs4.existsSync)(entryPath);
2373
2385
  if (exists) {
2374
- let relative7 = path8.relative(rootDirectory, entryPath);
2386
+ let relative7 = path9.relative(rootDirectory, entryPath);
2375
2387
  console.error(import_picocolors8.default.red(`Entry file ${relative7} already exists.`));
2376
2388
  return process.exit(1);
2377
2389
  }
@@ -2379,12 +2391,12 @@ async function checkForEntry(rootDirectory, appDirectory, entries2) {
2379
2391
  }
2380
2392
  async function createServerEntry(rootDirectory, appDirectory, inputFile) {
2381
2393
  await checkForEntry(rootDirectory, appDirectory, serverEntries);
2382
- let contents = await (0, import_promises3.readFile)(inputFile, "utf-8");
2394
+ let contents = await (0, import_promises4.readFile)(inputFile, "utf-8");
2383
2395
  return contents;
2384
2396
  }
2385
2397
  async function createClientEntry(rootDirectory, appDirectory, inputFile) {
2386
2398
  await checkForEntry(rootDirectory, appDirectory, clientEntries);
2387
- let contents = await (0, import_promises3.readFile)(inputFile, "utf-8");
2399
+ let contents = await (0, import_promises4.readFile)(inputFile, "utf-8");
2388
2400
  return contents;
2389
2401
  }
2390
2402
  async function typegen(root, flags) {
package/dist/config.d.ts CHANGED
@@ -40,6 +40,10 @@ interface FutureConfig {
40
40
  unstable_optimizeDeps: boolean;
41
41
  unstable_subResourceIntegrity: boolean;
42
42
  unstable_trailingSlashAwareDataRequests: boolean;
43
+ /**
44
+ * Prerender with Vite Preview server
45
+ */
46
+ unstable_previewServerPrerendering?: boolean;
43
47
  /**
44
48
  * Enable route middleware
45
49
  */
package/dist/config.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v7.13.0-pre.0
2
+ * @react-router/dev v7.13.1-pre.0
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/routes.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v7.13.0-pre.0
2
+ * @react-router/dev v7.13.1-pre.0
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v7.13.0-pre.0
2
+ * @react-router/dev v7.13.1-pre.0
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -533,6 +533,7 @@ async function resolveConfig({
533
533
  unstable_optimizeDeps: userAndPresetConfigs.future?.unstable_optimizeDeps ?? false,
534
534
  unstable_subResourceIntegrity: userAndPresetConfigs.future?.unstable_subResourceIntegrity ?? false,
535
535
  unstable_trailingSlashAwareDataRequests: userAndPresetConfigs.future?.unstable_trailingSlashAwareDataRequests ?? false,
536
+ unstable_previewServerPrerendering: userAndPresetConfigs.future?.unstable_previewServerPrerendering ?? false,
536
537
  v8_middleware: userAndPresetConfigs.future?.v8_middleware ?? false,
537
538
  v8_splitRouteModules: userAndPresetConfigs.future?.v8_splitRouteModules ?? false,
538
539
  v8_viteEnvironmentApi: userAndPresetConfigs.future?.v8_viteEnvironmentApi ?? false