@react-router/dev 7.10.1-pre.0 → 7.11.0-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 +24 -6
- package/dist/cli/index.js +1 -1
- package/dist/config/default-rsc-entries/entry.rsc.tsx +33 -11
- package/dist/config/default-rsc-entries/entry.ssr.tsx +22 -15
- package/dist/config.js +1 -1
- package/dist/routes.js +1 -1
- package/dist/vite/cloudflare.js +1 -1
- package/dist/vite.js +112 -58
- package/package.json +20 -9
- package/rsc-types.d.ts +21 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
# `@react-router/dev`
|
|
2
2
|
|
|
3
|
-
## 7.
|
|
3
|
+
## 7.11.0-pre.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- feat: add `vite preview` support ([#14507](https://github.com/remix-run/react-router/pull/14507))
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- rsc framework mode manual chunking for react and react-router deps ([#14655](https://github.com/remix-run/react-router/pull/14655))
|
|
12
|
+
- add support for throwing redirect Response's at RSC render time ([#14596](https://github.com/remix-run/react-router/pull/14596))
|
|
13
|
+
- support custom entrypoints for RSC framework mode ([#14643](https://github.com/remix-run/react-router/pull/14643))
|
|
14
|
+
- `routeRSCServerRequest` replace `fetchServer` with `serverResponse` ([#14597](https://github.com/remix-run/react-router/pull/14597))
|
|
15
|
+
- rsc framewlrk mode - optimize react-server-dom-webpack if in project package.json ([#14656](https://github.com/remix-run/react-router/pull/14656))
|
|
16
|
+
- Updated dependencies:
|
|
17
|
+
- `react-router@7.11.0-pre.0`
|
|
18
|
+
- `@react-router/serve@7.11.0-pre.0`
|
|
19
|
+
- `@react-router/node@7.11.0-pre.0`
|
|
20
|
+
|
|
21
|
+
## 7.10.1
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
6
24
|
|
|
7
|
-
- Import ESM package `pkg-types` with a dynamic import to
|
|
8
|
-
- Update `valibot` dependency to `^1.2.0` ([
|
|
25
|
+
- Import ESM package `pkg-types` with a dynamic `import()` to fix issues on Node 20.18 ([#14624](https://github.com/remix-run/react-router/pull/14624))
|
|
26
|
+
- Update `valibot` dependency to `^1.2.0` to address [GHSA-vqpr-j7v3-hqw9](https://github.com/advisories/GHSA-vqpr-j7v3-hqw9) ([#14608](https://github.com/remix-run/react-router/pull/14608))
|
|
9
27
|
- Updated dependencies:
|
|
10
|
-
- `react-router@7.10.1
|
|
11
|
-
- `@react-router/node@7.10.1
|
|
12
|
-
- `@react-router/serve@7.10.1
|
|
28
|
+
- `react-router@7.10.1`
|
|
29
|
+
- `@react-router/node@7.10.1`
|
|
30
|
+
- `@react-router/serve@7.10.1`
|
|
13
31
|
|
|
14
32
|
## 7.10.0
|
|
15
33
|
|
package/dist/cli/index.js
CHANGED
|
@@ -6,22 +6,36 @@ import {
|
|
|
6
6
|
loadServerAction,
|
|
7
7
|
renderToReadableStream,
|
|
8
8
|
} from "@vitejs/plugin-rsc/rsc";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
RouterContextProvider,
|
|
11
|
+
unstable_matchRSCServerRequest as matchRSCServerRequest,
|
|
12
|
+
} from "react-router";
|
|
10
13
|
|
|
14
|
+
// Import the routes generated by routes.ts
|
|
11
15
|
import routes from "virtual:react-router/unstable_rsc/routes";
|
|
12
16
|
import basename from "virtual:react-router/unstable_rsc/basename";
|
|
13
17
|
import unstable_reactRouterServeConfig from "virtual:react-router/unstable_rsc/react-router-serve-config";
|
|
14
18
|
|
|
15
|
-
export
|
|
16
|
-
|
|
19
|
+
export { unstable_reactRouterServeConfig };
|
|
20
|
+
|
|
21
|
+
export function fetchServer(
|
|
22
|
+
request: Request,
|
|
23
|
+
requestContext?: RouterContextProvider,
|
|
24
|
+
) {
|
|
25
|
+
return matchRSCServerRequest({
|
|
26
|
+
basename,
|
|
27
|
+
// Provide the React Server touchpoints.
|
|
17
28
|
createTemporaryReferenceSet,
|
|
18
29
|
decodeAction,
|
|
19
30
|
decodeFormState,
|
|
20
31
|
decodeReply,
|
|
21
32
|
loadServerAction,
|
|
33
|
+
// The incoming request.
|
|
22
34
|
request,
|
|
35
|
+
requestContext,
|
|
36
|
+
// The app routes.
|
|
23
37
|
routes,
|
|
24
|
-
|
|
38
|
+
// Encode the match with the React Server implementation.
|
|
25
39
|
generateResponse(match, options) {
|
|
26
40
|
return new Response(renderToReadableStream(match.payload, options), {
|
|
27
41
|
status: match.statusCode,
|
|
@@ -31,14 +45,22 @@ export async function fetchServer(request: Request) {
|
|
|
31
45
|
});
|
|
32
46
|
}
|
|
33
47
|
|
|
34
|
-
export {
|
|
48
|
+
export default {
|
|
49
|
+
async fetch(request: Request, requestContext?: RouterContextProvider) {
|
|
50
|
+
if (requestContext && !(requestContext instanceof RouterContextProvider)) {
|
|
51
|
+
requestContext = undefined;
|
|
52
|
+
}
|
|
35
53
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
54
|
+
const ssr = await import.meta.viteRsc.loadModule<
|
|
55
|
+
typeof import("./entry.ssr.tsx")
|
|
56
|
+
>("ssr", "index");
|
|
57
|
+
|
|
58
|
+
return await ssr.generateHTML(
|
|
59
|
+
request,
|
|
60
|
+
await fetchServer(request, requestContext),
|
|
61
|
+
);
|
|
62
|
+
},
|
|
63
|
+
};
|
|
42
64
|
|
|
43
65
|
if (import.meta.hot) {
|
|
44
66
|
import.meta.hot.accept();
|
|
@@ -1,31 +1,38 @@
|
|
|
1
1
|
import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
|
|
2
|
-
// @ts-expect-error
|
|
3
|
-
import
|
|
2
|
+
// @ts-expect-error - no types for this, can import from root once on latest 19
|
|
3
|
+
import { renderToReadableStream } from "react-dom/server.edge";
|
|
4
4
|
import {
|
|
5
|
-
unstable_RSCStaticRouter as RSCStaticRouter,
|
|
6
5
|
unstable_routeRSCServerRequest as routeRSCServerRequest,
|
|
6
|
+
unstable_RSCStaticRouter as RSCStaticRouter,
|
|
7
7
|
} from "react-router";
|
|
8
8
|
|
|
9
|
-
export
|
|
9
|
+
export async function generateHTML(
|
|
10
10
|
request: Request,
|
|
11
|
-
|
|
12
|
-
) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return routeRSCServerRequest({
|
|
11
|
+
serverResponse: Response,
|
|
12
|
+
): Promise<Response> {
|
|
13
|
+
return await routeRSCServerRequest({
|
|
14
|
+
// The incoming request.
|
|
17
15
|
request,
|
|
18
|
-
|
|
16
|
+
// The response from the RSC server.
|
|
17
|
+
serverResponse,
|
|
18
|
+
// Provide the React Server touchpoints.
|
|
19
19
|
createFromReadableStream,
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
// Render the router to HTML.
|
|
21
|
+
async renderHTML(getPayload, options) {
|
|
22
|
+
const payload = await getPayload();
|
|
23
|
+
const formState =
|
|
24
|
+
payload.type === "render" ? await payload.formState : undefined;
|
|
25
|
+
|
|
26
|
+
const bootstrapScriptContent =
|
|
27
|
+
await import.meta.viteRsc.loadBootstrapScriptContent("index");
|
|
22
28
|
|
|
23
|
-
return
|
|
29
|
+
return await renderToReadableStream(
|
|
24
30
|
<RSCStaticRouter getPayload={getPayload} />,
|
|
25
31
|
{
|
|
32
|
+
...options,
|
|
26
33
|
bootstrapScriptContent,
|
|
34
|
+
formState,
|
|
27
35
|
signal: request.signal,
|
|
28
|
-
formState: await payload.formState,
|
|
29
36
|
},
|
|
30
37
|
);
|
|
31
38
|
},
|
package/dist/config.js
CHANGED
package/dist/routes.js
CHANGED
package/dist/vite/cloudflare.js
CHANGED
package/dist/vite.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v7.
|
|
2
|
+
* @react-router/dev v7.11.0-pre.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -639,11 +639,11 @@ async function createConfigLoader({
|
|
|
639
639
|
fsWatcher = import_chokidar.default.watch([root, appDirectory], {
|
|
640
640
|
ignoreInitial: true,
|
|
641
641
|
ignored: (path9) => {
|
|
642
|
-
let
|
|
643
|
-
return !
|
|
642
|
+
let dirname4 = import_pathe3.default.dirname(path9);
|
|
643
|
+
return !dirname4.startsWith(appDirectory) && // Ensure we're only watching files outside of the app directory
|
|
644
644
|
// that are at the root level, not nested in subdirectories
|
|
645
645
|
path9 !== root && // Watch the root directory itself
|
|
646
|
-
|
|
646
|
+
dirname4 !== root;
|
|
647
647
|
}
|
|
648
648
|
});
|
|
649
649
|
fsWatcher.on("all", async (...args) => {
|
|
@@ -775,6 +775,30 @@ async function resolveEntryFiles({
|
|
|
775
775
|
let entryServerFilePath = userEntryServerFile ? import_pathe3.default.resolve(reactRouterConfig.appDirectory, userEntryServerFile) : import_pathe3.default.resolve(defaultsDirectory, entryServerFile);
|
|
776
776
|
return { entryClientFilePath, entryServerFilePath };
|
|
777
777
|
}
|
|
778
|
+
async function resolveRSCEntryFiles({
|
|
779
|
+
reactRouterConfig
|
|
780
|
+
}) {
|
|
781
|
+
let { appDirectory } = reactRouterConfig;
|
|
782
|
+
let defaultsDirectory = import_pathe3.default.resolve(
|
|
783
|
+
import_pathe3.default.dirname(require.resolve("@react-router/dev/package.json")),
|
|
784
|
+
"dist",
|
|
785
|
+
"config",
|
|
786
|
+
"default-rsc-entries"
|
|
787
|
+
);
|
|
788
|
+
let userEntryClientFile = findEntry(appDirectory, "entry.client", {
|
|
789
|
+
absolute: true
|
|
790
|
+
});
|
|
791
|
+
let userEntryRSCFile = findEntry(appDirectory, "entry.rsc", {
|
|
792
|
+
absolute: true
|
|
793
|
+
});
|
|
794
|
+
let userEntrySSRFile = findEntry(appDirectory, "entry.ssr", {
|
|
795
|
+
absolute: true
|
|
796
|
+
});
|
|
797
|
+
let client = userEntryClientFile ?? import_pathe3.default.join(defaultsDirectory, "entry.client.tsx");
|
|
798
|
+
let rsc = userEntryRSCFile ?? import_pathe3.default.join(defaultsDirectory, "entry.rsc.tsx");
|
|
799
|
+
let ssr = userEntrySSRFile ?? import_pathe3.default.join(defaultsDirectory, "entry.ssr.tsx");
|
|
800
|
+
return { client, rsc, ssr };
|
|
801
|
+
}
|
|
778
802
|
function omitRoutes(config) {
|
|
779
803
|
return {
|
|
780
804
|
...config,
|
|
@@ -3510,6 +3534,34 @@ var reactRouterVitePlugin = () => {
|
|
|
3510
3534
|
}
|
|
3511
3535
|
};
|
|
3512
3536
|
},
|
|
3537
|
+
configurePreviewServer(previewServer) {
|
|
3538
|
+
return () => {
|
|
3539
|
+
previewServer.middlewares.use(async (req, res, next) => {
|
|
3540
|
+
try {
|
|
3541
|
+
let serverBuildDirectory = getServerBuildDirectory(
|
|
3542
|
+
ctx.reactRouterConfig
|
|
3543
|
+
);
|
|
3544
|
+
let serverBuildFile = path6.resolve(
|
|
3545
|
+
serverBuildDirectory,
|
|
3546
|
+
"index.js"
|
|
3547
|
+
);
|
|
3548
|
+
let build = await import(url.pathToFileURL(serverBuildFile).href);
|
|
3549
|
+
let handler = (0, import_react_router2.createRequestHandler)(build, "production");
|
|
3550
|
+
let nodeHandler = async (nodeReq, nodeRes) => {
|
|
3551
|
+
let req2 = fromNodeRequest(nodeReq, nodeRes);
|
|
3552
|
+
let res2 = await handler(
|
|
3553
|
+
req2,
|
|
3554
|
+
await reactRouterDevLoadContext(req2)
|
|
3555
|
+
);
|
|
3556
|
+
await (0, import_node_fetch_server2.sendResponse)(nodeRes, res2);
|
|
3557
|
+
};
|
|
3558
|
+
await nodeHandler(req, res);
|
|
3559
|
+
} catch (error) {
|
|
3560
|
+
next(error);
|
|
3561
|
+
}
|
|
3562
|
+
});
|
|
3563
|
+
};
|
|
3564
|
+
},
|
|
3513
3565
|
writeBundle: {
|
|
3514
3566
|
// After the SSR build is finished, we inspect the Vite manifest for
|
|
3515
3567
|
// the SSR build and move server-only assets to client assets directory
|
|
@@ -4986,7 +5038,6 @@ var import_es_module_lexer3 = require("es-module-lexer");
|
|
|
4986
5038
|
var Path5 = __toESM(require("pathe"));
|
|
4987
5039
|
var babel2 = __toESM(require("@babel/core"));
|
|
4988
5040
|
var import_picocolors5 = __toESM(require("picocolors"));
|
|
4989
|
-
var import_fs = require("fs");
|
|
4990
5041
|
var import_promises3 = require("fs/promises");
|
|
4991
5042
|
var import_pathe6 = __toESM(require("pathe"));
|
|
4992
5043
|
|
|
@@ -5321,13 +5372,16 @@ function isRootRouteFile({
|
|
|
5321
5372
|
|
|
5322
5373
|
// vite/rsc/plugin.ts
|
|
5323
5374
|
function reactRouterRSCVitePlugin() {
|
|
5375
|
+
let runningWithinTheReactRouterMonoRepo = Boolean(
|
|
5376
|
+
arguments && arguments.length === 1 && typeof arguments[0] === "object" && arguments[0] && "__runningWithinTheReactRouterMonoRepo" in arguments[0] && arguments[0].__runningWithinTheReactRouterMonoRepo === true
|
|
5377
|
+
);
|
|
5324
5378
|
let configLoader;
|
|
5325
5379
|
let typegenWatcherPromise;
|
|
5326
5380
|
let viteCommand;
|
|
5327
5381
|
let resolvedViteConfig;
|
|
5328
5382
|
let routeIdByFile;
|
|
5329
5383
|
let logger;
|
|
5330
|
-
|
|
5384
|
+
let entries;
|
|
5331
5385
|
let config;
|
|
5332
5386
|
let rootRouteFile;
|
|
5333
5387
|
function updateConfig(newConfig) {
|
|
@@ -5390,22 +5444,34 @@ ${errors.map((x) => ` - ${x}`).join("\n")}
|
|
|
5390
5444
|
logger = vite2.createLogger(viteUserConfig.logLevel, {
|
|
5391
5445
|
prefix: "[react-router]"
|
|
5392
5446
|
});
|
|
5447
|
+
entries = await resolveRSCEntryFiles({
|
|
5448
|
+
reactRouterConfig: config
|
|
5449
|
+
});
|
|
5450
|
+
let viteNormalizePath = (await import("vite")).normalizePath;
|
|
5393
5451
|
return {
|
|
5394
5452
|
resolve: {
|
|
5395
5453
|
dedupe: [
|
|
5396
5454
|
// https://react.dev/warnings/invalid-hook-call-warning#duplicate-react
|
|
5397
5455
|
"react",
|
|
5456
|
+
"react/jsx-runtime",
|
|
5457
|
+
"react/jsx-dev-runtime",
|
|
5398
5458
|
"react-dom",
|
|
5459
|
+
"react-dom/client",
|
|
5399
5460
|
// Avoid router duplicates since mismatching routers cause `Error:
|
|
5400
5461
|
// You must render this element inside a <Remix> element`.
|
|
5401
5462
|
"react-router",
|
|
5402
5463
|
"react-router/dom",
|
|
5403
|
-
|
|
5464
|
+
"react-router/internal/react-server-client",
|
|
5465
|
+
...hasDependency({ name: "react-router-dom", rootDirectory }) ? ["react-router-dom"] : [],
|
|
5466
|
+
...hasDependency({
|
|
5467
|
+
name: "react-server-dom-webpack",
|
|
5468
|
+
rootDirectory
|
|
5469
|
+
}) ? ["react-server-dom-webpack"] : []
|
|
5404
5470
|
]
|
|
5405
5471
|
},
|
|
5406
5472
|
optimizeDeps: {
|
|
5407
5473
|
entries: getOptimizeDepsEntries({
|
|
5408
|
-
entryClientFilePath:
|
|
5474
|
+
entryClientFilePath: entries.client,
|
|
5409
5475
|
reactRouterConfig: config
|
|
5410
5476
|
}),
|
|
5411
5477
|
esbuildOptions: {
|
|
@@ -5419,8 +5485,17 @@ ${errors.map((x) => ` - ${x}`).join("\n")}
|
|
|
5419
5485
|
"react/jsx-runtime",
|
|
5420
5486
|
"react/jsx-dev-runtime",
|
|
5421
5487
|
"react-dom",
|
|
5422
|
-
|
|
5423
|
-
|
|
5488
|
+
...hasDependency({
|
|
5489
|
+
name: "react-server-dom-webpack",
|
|
5490
|
+
rootDirectory
|
|
5491
|
+
}) ? ["react-server-dom-webpack"] : [],
|
|
5492
|
+
...runningWithinTheReactRouterMonoRepo ? [] : [
|
|
5493
|
+
"react-router",
|
|
5494
|
+
"react-router/dom",
|
|
5495
|
+
"react-router/internal/react-server-client"
|
|
5496
|
+
],
|
|
5497
|
+
"react-router > cookie",
|
|
5498
|
+
"react-router > set-cookie-parser"
|
|
5424
5499
|
]
|
|
5425
5500
|
},
|
|
5426
5501
|
esbuild: {
|
|
@@ -5432,27 +5507,30 @@ ${errors.map((x) => ` - ${x}`).join("\n")}
|
|
|
5432
5507
|
build: {
|
|
5433
5508
|
rollupOptions: {
|
|
5434
5509
|
input: {
|
|
5435
|
-
index:
|
|
5510
|
+
index: entries.client
|
|
5511
|
+
},
|
|
5512
|
+
output: {
|
|
5513
|
+
manualChunks(id) {
|
|
5514
|
+
const normalized = viteNormalizePath(id);
|
|
5515
|
+
if (normalized.includes("node_modules/react/") || normalized.includes("node_modules/react-dom/") || normalized.includes(
|
|
5516
|
+
"node_modules/react-server-dom-webpack/"
|
|
5517
|
+
) || normalized.includes("node_modules/@vitejs/plugin-rsc/")) {
|
|
5518
|
+
return "react";
|
|
5519
|
+
}
|
|
5520
|
+
if (normalized.includes("node_modules/react-router/")) {
|
|
5521
|
+
return "router";
|
|
5522
|
+
}
|
|
5523
|
+
}
|
|
5436
5524
|
}
|
|
5437
5525
|
},
|
|
5438
5526
|
outDir: (0, import_pathe6.join)(config.buildDirectory, "client")
|
|
5439
|
-
},
|
|
5440
|
-
optimizeDeps: {
|
|
5441
|
-
include: [
|
|
5442
|
-
"react-router > cookie",
|
|
5443
|
-
"react-router > set-cookie-parser"
|
|
5444
|
-
]
|
|
5445
5527
|
}
|
|
5446
5528
|
},
|
|
5447
5529
|
rsc: {
|
|
5448
5530
|
build: {
|
|
5449
5531
|
rollupOptions: {
|
|
5450
5532
|
input: {
|
|
5451
|
-
|
|
5452
|
-
// it as `virtual:react-router/unstable_rsc/rsc-entry`
|
|
5453
|
-
// without needing to know the actual file path, which is
|
|
5454
|
-
// important when using the default entries.
|
|
5455
|
-
index: defaultEntries2.rsc
|
|
5533
|
+
index: entries.rsc
|
|
5456
5534
|
},
|
|
5457
5535
|
output: {
|
|
5458
5536
|
entryFileNames: config.serverBuildFile,
|
|
@@ -5460,13 +5538,18 @@ ${errors.map((x) => ` - ${x}`).join("\n")}
|
|
|
5460
5538
|
}
|
|
5461
5539
|
},
|
|
5462
5540
|
outDir: (0, import_pathe6.join)(config.buildDirectory, "server")
|
|
5541
|
+
},
|
|
5542
|
+
resolve: {
|
|
5543
|
+
noExternal: [
|
|
5544
|
+
"@react-router/dev/config/default-rsc-entries/entry.ssr"
|
|
5545
|
+
]
|
|
5463
5546
|
}
|
|
5464
5547
|
},
|
|
5465
5548
|
ssr: {
|
|
5466
5549
|
build: {
|
|
5467
5550
|
rollupOptions: {
|
|
5468
5551
|
input: {
|
|
5469
|
-
index:
|
|
5552
|
+
index: entries.ssr
|
|
5470
5553
|
},
|
|
5471
5554
|
output: {
|
|
5472
5555
|
// Note: We don't set `entryFileNames` here because it's
|
|
@@ -5477,6 +5560,11 @@ ${errors.map((x) => ` - ${x}`).join("\n")}
|
|
|
5477
5560
|
}
|
|
5478
5561
|
},
|
|
5479
5562
|
outDir: (0, import_pathe6.join)(config.buildDirectory, "server/__ssr_build")
|
|
5563
|
+
},
|
|
5564
|
+
resolve: {
|
|
5565
|
+
noExternal: [
|
|
5566
|
+
"@react-router/dev/config/default-rsc-entries/entry.rsc"
|
|
5567
|
+
]
|
|
5480
5568
|
}
|
|
5481
5569
|
}
|
|
5482
5570
|
},
|
|
@@ -5580,12 +5668,6 @@ ${errors.map((x) => ` - ${x}`).join("\n")}
|
|
|
5580
5668
|
(await typegenWatcherPromise)?.close();
|
|
5581
5669
|
}
|
|
5582
5670
|
},
|
|
5583
|
-
{
|
|
5584
|
-
name: "react-router/rsc/virtual-rsc-entry",
|
|
5585
|
-
resolveId(id) {
|
|
5586
|
-
if (id === virtual2.rscEntry.id) return defaultEntries2.rsc;
|
|
5587
|
-
}
|
|
5588
|
-
},
|
|
5589
5671
|
{
|
|
5590
5672
|
name: "react-router/rsc/virtual-route-config",
|
|
5591
5673
|
resolveId(id) {
|
|
@@ -5661,7 +5743,7 @@ ${errors.map((x) => ` - ${x}`).join("\n")}
|
|
|
5661
5743
|
const reactRefreshDir = import_pathe6.default.dirname(
|
|
5662
5744
|
require.resolve("react-refresh/package.json")
|
|
5663
5745
|
);
|
|
5664
|
-
const reactRefreshRuntimePath = import_pathe6.
|
|
5746
|
+
const reactRefreshRuntimePath = (0, import_pathe6.join)(
|
|
5665
5747
|
reactRefreshDir,
|
|
5666
5748
|
"cjs/react-refresh-runtime.development.js"
|
|
5667
5749
|
);
|
|
@@ -5788,7 +5870,6 @@ var virtual2 = {
|
|
|
5788
5870
|
injectHmrRuntime: create("unstable_rsc/inject-hmr-runtime"),
|
|
5789
5871
|
hmrRuntime: create("unstable_rsc/runtime"),
|
|
5790
5872
|
basename: create("unstable_rsc/basename"),
|
|
5791
|
-
rscEntry: create("unstable_rsc/rsc-entry"),
|
|
5792
5873
|
reactRouterServeConfig: create("unstable_rsc/react-router-serve-config")
|
|
5793
5874
|
};
|
|
5794
5875
|
function invalidateVirtualModules2(viteDevServer) {
|
|
@@ -5804,33 +5885,6 @@ function invalidateVirtualModules2(viteDevServer) {
|
|
|
5804
5885
|
function getRootDirectory(viteUserConfig) {
|
|
5805
5886
|
return viteUserConfig.root ?? process.env.REACT_ROUTER_ROOT ?? process.cwd();
|
|
5806
5887
|
}
|
|
5807
|
-
function getDevPackageRoot() {
|
|
5808
|
-
const currentDir = (0, import_pathe6.dirname)(__dirname);
|
|
5809
|
-
let dir = currentDir;
|
|
5810
|
-
while (dir !== (0, import_pathe6.dirname)(dir)) {
|
|
5811
|
-
try {
|
|
5812
|
-
const packageJsonPath = (0, import_pathe6.join)(dir, "package.json");
|
|
5813
|
-
(0, import_fs.readFileSync)(packageJsonPath, "utf-8");
|
|
5814
|
-
return dir;
|
|
5815
|
-
} catch {
|
|
5816
|
-
dir = (0, import_pathe6.dirname)(dir);
|
|
5817
|
-
}
|
|
5818
|
-
}
|
|
5819
|
-
throw new Error("Could not find package.json");
|
|
5820
|
-
}
|
|
5821
|
-
function getDefaultEntries() {
|
|
5822
|
-
const defaultEntriesDir2 = (0, import_pathe6.join)(
|
|
5823
|
-
getDevPackageRoot(),
|
|
5824
|
-
"dist",
|
|
5825
|
-
"config",
|
|
5826
|
-
"default-rsc-entries"
|
|
5827
|
-
);
|
|
5828
|
-
return {
|
|
5829
|
-
rsc: (0, import_pathe6.join)(defaultEntriesDir2, "entry.rsc.tsx"),
|
|
5830
|
-
ssr: (0, import_pathe6.join)(defaultEntriesDir2, "entry.ssr.tsx"),
|
|
5831
|
-
client: (0, import_pathe6.join)(defaultEntriesDir2, "entry.client.tsx")
|
|
5832
|
-
};
|
|
5833
|
-
}
|
|
5834
5888
|
function getModulesWithImporters(modules) {
|
|
5835
5889
|
const visited = /* @__PURE__ */ new Set();
|
|
5836
5890
|
const result = /* @__PURE__ */ new Set();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-router/dev",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.11.0-pre.0",
|
|
4
4
|
"description": "Dev tools and CLI for React Router",
|
|
5
5
|
"homepage": "https://reactrouter.com",
|
|
6
6
|
"bugs": {
|
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
},
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"exports": {
|
|
16
|
+
"./config/default-rsc-entries/entry.client": "./dist/config/default-rsc-entries/entry.client.tsx",
|
|
17
|
+
"./config/default-rsc-entries/entry.rsc": "./dist/config/default-rsc-entries/entry.rsc.tsx",
|
|
18
|
+
"./config/default-rsc-entries/entry.ssr": "./dist/config/default-rsc-entries/entry.ssr.tsx",
|
|
16
19
|
"./config": {
|
|
17
20
|
"types": "./dist/config.d.ts",
|
|
18
21
|
"default": "./dist/config.js"
|
|
@@ -21,6 +24,7 @@
|
|
|
21
24
|
"types": "./dist/routes.d.ts",
|
|
22
25
|
"default": "./dist/routes.js"
|
|
23
26
|
},
|
|
27
|
+
"./rsc-types": "./rsc-types.d.ts",
|
|
24
28
|
"./vite": {
|
|
25
29
|
"types": "./dist/vite.d.ts",
|
|
26
30
|
"default": "./dist/vite.js"
|
|
@@ -44,6 +48,7 @@
|
|
|
44
48
|
"build": {
|
|
45
49
|
"command": "tsup",
|
|
46
50
|
"files": [
|
|
51
|
+
"../../pnpm-workspace.yaml",
|
|
47
52
|
"cli/**",
|
|
48
53
|
"config/**",
|
|
49
54
|
"module-sync-enabled/**",
|
|
@@ -87,7 +92,7 @@
|
|
|
87
92
|
"tinyglobby": "^0.2.14",
|
|
88
93
|
"valibot": "^1.2.0",
|
|
89
94
|
"vite-node": "^3.2.2",
|
|
90
|
-
"@react-router/node": "7.
|
|
95
|
+
"@react-router/node": "7.11.0-pre.0"
|
|
91
96
|
},
|
|
92
97
|
"devDependencies": {
|
|
93
98
|
"@types/babel__core": "^7.20.5",
|
|
@@ -95,31 +100,33 @@
|
|
|
95
100
|
"@types/babel__traverse": "^7.20.7",
|
|
96
101
|
"@types/dedent": "^0.7.0",
|
|
97
102
|
"@types/express": "^4.17.9",
|
|
103
|
+
"@types/jest": "^29.5.4",
|
|
98
104
|
"@types/jsesc": "^3.0.1",
|
|
99
105
|
"@types/lodash": "^4.14.182",
|
|
100
106
|
"@types/node": "^20.0.0",
|
|
101
107
|
"@types/npmcli__package-json": "^4.0.0",
|
|
102
108
|
"@types/semver": "^7.7.0",
|
|
103
|
-
"@vitejs/plugin-rsc": "0.
|
|
109
|
+
"@vitejs/plugin-rsc": "~0.5.7",
|
|
104
110
|
"esbuild-register": "^3.6.0",
|
|
105
111
|
"execa": "5.1.1",
|
|
106
112
|
"express": "^4.19.2",
|
|
107
113
|
"fast-glob": "3.2.11",
|
|
108
114
|
"tsup": "^8.3.0",
|
|
109
|
-
"typescript": "^5.
|
|
115
|
+
"typescript": "^5.4.5",
|
|
110
116
|
"vite": "^6.3.0",
|
|
111
117
|
"wireit": "0.14.9",
|
|
112
118
|
"wrangler": "^4.23.0",
|
|
113
|
-
"@react-router/serve": "7.
|
|
114
|
-
"react-router": "^7.
|
|
119
|
+
"@react-router/serve": "7.11.0-pre.0",
|
|
120
|
+
"react-router": "^7.11.0-pre.0"
|
|
115
121
|
},
|
|
116
122
|
"peerDependencies": {
|
|
117
|
-
"@vitejs/plugin-rsc": "
|
|
123
|
+
"@vitejs/plugin-rsc": "~0.5.7",
|
|
124
|
+
"react-server-dom-webpack": "^19.2.3",
|
|
118
125
|
"typescript": "^5.1.0",
|
|
119
126
|
"vite": "^5.1.0 || ^6.0.0 || ^7.0.0",
|
|
120
127
|
"wrangler": "^3.28.2 || ^4.0.0",
|
|
121
|
-
"@react-router/serve": "^7.
|
|
122
|
-
"react-router": "^7.
|
|
128
|
+
"@react-router/serve": "^7.11.0-pre.0",
|
|
129
|
+
"react-router": "^7.11.0-pre.0"
|
|
123
130
|
},
|
|
124
131
|
"peerDependenciesMeta": {
|
|
125
132
|
"@vitejs/plugin-rsc": {
|
|
@@ -131,6 +138,9 @@
|
|
|
131
138
|
"typescript": {
|
|
132
139
|
"optional": true
|
|
133
140
|
},
|
|
141
|
+
"react-server-dom-webpack": {
|
|
142
|
+
"optional": true
|
|
143
|
+
},
|
|
134
144
|
"wrangler": {
|
|
135
145
|
"optional": true
|
|
136
146
|
}
|
|
@@ -142,6 +152,7 @@
|
|
|
142
152
|
"dist/",
|
|
143
153
|
"module-sync-enabled/",
|
|
144
154
|
"bin.js",
|
|
155
|
+
"rsc-types.d.ts",
|
|
145
156
|
"CHANGELOG.md",
|
|
146
157
|
"LICENSE.md",
|
|
147
158
|
"README.md"
|
package/rsc-types.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
declare module "virtual:react-router/unstable_rsc/routes" {
|
|
2
|
+
import type { unstable_RSCRouteConfig as RSCRouteConfig } from "react-router";
|
|
3
|
+
|
|
4
|
+
const routes: RSCRouteConfig;
|
|
5
|
+
export default routes;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
declare module "virtual:react-router/unstable_rsc/basename" {
|
|
9
|
+
const basename: string;
|
|
10
|
+
export default basename;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare module "virtual:react-router/unstable_rsc/react-router-serve-config" {
|
|
14
|
+
const unstable_reactRouterServeConfig: {
|
|
15
|
+
publicPath: string;
|
|
16
|
+
assetsBuildDirectory: string;
|
|
17
|
+
};
|
|
18
|
+
export default unstable_reactRouterServeConfig;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare module "virtual:react-router/unstable_rsc/inject-hmr-runtime" {}
|