@react-router/dev 7.9.1-pre.0 → 7.9.2-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 +15 -4
- package/dist/cli/index.js +5 -8
- package/dist/config/default-rsc-entries/entry.rsc.tsx +3 -0
- package/dist/config/default-rsc-entries/entry.ssr.tsx +2 -4
- package/dist/config.js +1 -1
- package/dist/routes.js +1 -1
- package/dist/vite/cloudflare.js +6 -72
- package/dist/vite.d.ts +3 -1
- package/dist/vite.js +1021 -175
- package/package.json +9 -14
- package/dist/internal.d.ts +0 -9
- package/dist/internal.js +0 -2307
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
# `@react-router/dev`
|
|
2
2
|
|
|
3
|
-
## 7.9.
|
|
3
|
+
## 7.9.2-pre.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Add unstable support for RSC Framework Mode ([#14336](https://github.com/remix-run/react-router/pull/14336))
|
|
8
|
+
- Switch internal vite plugin Response logic to use `@remix-run/node-fetch-server` ([#13927](https://github.com/remix-run/react-router/pull/13927))
|
|
9
|
+
- Updated dependencies:
|
|
10
|
+
- `react-router@7.9.2-pre.0`
|
|
11
|
+
- `@react-router/node@7.9.2-pre.0`
|
|
12
|
+
- `@react-router/serve@7.9.2-pre.0`
|
|
13
|
+
|
|
14
|
+
## 7.9.1
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
|
6
17
|
|
|
7
18
|
- Fix internal `Future` interface naming from `middleware` -> `v8_middleware` ([#14327](https://github.com/remix-run/react-router/pull/14327))
|
|
8
19
|
- Updated dependencies:
|
|
9
|
-
- `react-router@7.9.1
|
|
10
|
-
- `@react-router/node@7.9.1
|
|
11
|
-
- `@react-router/serve@7.9.1
|
|
20
|
+
- `react-router@7.9.1`
|
|
21
|
+
- `@react-router/node@7.9.1`
|
|
22
|
+
- `@react-router/serve@7.9.1`
|
|
12
23
|
|
|
13
24
|
## 7.9.0
|
|
14
25
|
|
package/dist/cli/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @react-router/dev v7.9.
|
|
3
|
+
* @react-router/dev v7.9.2-pre.0
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
6
6
|
*
|
|
@@ -1331,15 +1331,11 @@ var init_has_rsc_plugin = __esm({
|
|
|
1331
1331
|
});
|
|
1332
1332
|
|
|
1333
1333
|
// vite/node-adapter.ts
|
|
1334
|
-
var
|
|
1334
|
+
var import_node_fetch_server;
|
|
1335
1335
|
var init_node_adapter = __esm({
|
|
1336
1336
|
"vite/node-adapter.ts"() {
|
|
1337
1337
|
"use strict";
|
|
1338
|
-
|
|
1339
|
-
import_node_tls = require("tls");
|
|
1340
|
-
import_node_stream = require("stream");
|
|
1341
|
-
import_set_cookie_parser = require("set-cookie-parser");
|
|
1342
|
-
import_node = require("@react-router/node");
|
|
1338
|
+
import_node_fetch_server = require("@remix-run/node-fetch-server");
|
|
1343
1339
|
init_invariant();
|
|
1344
1340
|
}
|
|
1345
1341
|
});
|
|
@@ -1752,7 +1748,7 @@ function resolveEnvironmentsOptions(environmentResolvers, resolverOptions) {
|
|
|
1752
1748
|
function isNonNullable(x) {
|
|
1753
1749
|
return x != null;
|
|
1754
1750
|
}
|
|
1755
|
-
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;
|
|
1751
|
+
var import_node_crypto, import_node_fs3, import_promises2, path7, url, babel2, import_node_fetch_server2, 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;
|
|
1756
1752
|
var init_plugin = __esm({
|
|
1757
1753
|
"vite/plugin.ts"() {
|
|
1758
1754
|
"use strict";
|
|
@@ -1762,6 +1758,7 @@ var init_plugin = __esm({
|
|
|
1762
1758
|
path7 = __toESM(require("path"));
|
|
1763
1759
|
url = __toESM(require("url"));
|
|
1764
1760
|
babel2 = __toESM(require("@babel/core"));
|
|
1761
|
+
import_node_fetch_server2 = require("@remix-run/node-fetch-server");
|
|
1765
1762
|
import_react_router2 = require("react-router");
|
|
1766
1763
|
import_es_module_lexer = require("es-module-lexer");
|
|
1767
1764
|
import_pick3 = __toESM(require("lodash/pick"));
|
|
@@ -10,6 +10,7 @@ import { unstable_matchRSCServerRequest as matchRSCServerRequest } from "react-r
|
|
|
10
10
|
|
|
11
11
|
import routes from "virtual:react-router/unstable_rsc/routes";
|
|
12
12
|
import basename from "virtual:react-router/unstable_rsc/basename";
|
|
13
|
+
import unstable_reactRouterServeConfig from "virtual:react-router/unstable_rsc/react-router-serve-config";
|
|
13
14
|
|
|
14
15
|
export async function fetchServer(request: Request) {
|
|
15
16
|
return await matchRSCServerRequest({
|
|
@@ -30,6 +31,8 @@ export async function fetchServer(request: Request) {
|
|
|
30
31
|
});
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
export { unstable_reactRouterServeConfig };
|
|
35
|
+
|
|
33
36
|
export default async function handler(request: Request) {
|
|
34
37
|
const ssr = await import.meta.viteRsc.loadModule<
|
|
35
38
|
typeof import("./entry.ssr")
|
|
@@ -18,16 +18,14 @@ export default async function handler(
|
|
|
18
18
|
fetchServer,
|
|
19
19
|
createFromReadableStream,
|
|
20
20
|
async renderHTML(getPayload) {
|
|
21
|
-
const payload =
|
|
22
|
-
const formState =
|
|
23
|
-
payload.type === "render" ? await payload.formState : undefined;
|
|
21
|
+
const payload = getPayload();
|
|
24
22
|
|
|
25
23
|
return ReactDomServer.renderToReadableStream(
|
|
26
24
|
<RSCStaticRouter getPayload={getPayload} />,
|
|
27
25
|
{
|
|
28
26
|
bootstrapScriptContent,
|
|
29
27
|
signal: request.signal,
|
|
30
|
-
formState,
|
|
28
|
+
formState: await payload.formState,
|
|
31
29
|
},
|
|
32
30
|
);
|
|
33
31
|
},
|
package/dist/config.js
CHANGED
package/dist/routes.js
CHANGED
package/dist/vite/cloudflare.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v7.9.
|
|
2
|
+
* @react-router/dev v7.9.2-pre.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -45,14 +45,11 @@ __export(cloudflare_exports, {
|
|
|
45
45
|
module.exports = __toCommonJS(cloudflare_exports);
|
|
46
46
|
|
|
47
47
|
// vite/cloudflare-dev-proxy.ts
|
|
48
|
+
var import_node_fetch_server2 = require("@remix-run/node-fetch-server");
|
|
48
49
|
var import_react_router = require("react-router");
|
|
49
50
|
|
|
50
51
|
// vite/node-adapter.ts
|
|
51
|
-
var
|
|
52
|
-
var import_node_tls = require("tls");
|
|
53
|
-
var import_node_stream = require("stream");
|
|
54
|
-
var import_set_cookie_parser = require("set-cookie-parser");
|
|
55
|
-
var import_node = require("@react-router/node");
|
|
52
|
+
var import_node_fetch_server = require("@remix-run/node-fetch-server");
|
|
56
53
|
|
|
57
54
|
// invariant.ts
|
|
58
55
|
function invariant(value, message) {
|
|
@@ -65,76 +62,13 @@ function invariant(value, message) {
|
|
|
65
62
|
}
|
|
66
63
|
|
|
67
64
|
// vite/node-adapter.ts
|
|
68
|
-
function fromNodeHeaders(nodeReq) {
|
|
69
|
-
let nodeHeaders = nodeReq.headers;
|
|
70
|
-
if (nodeReq.httpVersionMajor >= 2) {
|
|
71
|
-
nodeHeaders = { ...nodeHeaders };
|
|
72
|
-
if (nodeHeaders[":authority"]) {
|
|
73
|
-
nodeHeaders.host = nodeHeaders[":authority"];
|
|
74
|
-
}
|
|
75
|
-
delete nodeHeaders[":authority"];
|
|
76
|
-
delete nodeHeaders[":method"];
|
|
77
|
-
delete nodeHeaders[":path"];
|
|
78
|
-
delete nodeHeaders[":scheme"];
|
|
79
|
-
}
|
|
80
|
-
let headers = new Headers();
|
|
81
|
-
for (let [key, values] of Object.entries(nodeHeaders)) {
|
|
82
|
-
if (values) {
|
|
83
|
-
if (Array.isArray(values)) {
|
|
84
|
-
for (let value of values) {
|
|
85
|
-
headers.append(key, value);
|
|
86
|
-
}
|
|
87
|
-
} else {
|
|
88
|
-
headers.set(key, values);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return headers;
|
|
93
|
-
}
|
|
94
65
|
function fromNodeRequest(nodeReq, nodeRes) {
|
|
95
|
-
let protocol = nodeReq.socket instanceof import_node_tls.TLSSocket && nodeReq.socket.encrypted ? "https" : "http";
|
|
96
|
-
let origin = nodeReq.headers.origin && "null" !== nodeReq.headers.origin ? nodeReq.headers.origin : `${protocol}://${nodeReq.headers.host}`;
|
|
97
66
|
invariant(
|
|
98
67
|
nodeReq.originalUrl,
|
|
99
68
|
"Expected `nodeReq.originalUrl` to be defined"
|
|
100
69
|
);
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
let init = {
|
|
104
|
-
method: nodeReq.method,
|
|
105
|
-
headers: fromNodeHeaders(nodeReq),
|
|
106
|
-
signal: controller.signal
|
|
107
|
-
};
|
|
108
|
-
nodeRes.on("finish", () => controller = null);
|
|
109
|
-
nodeRes.on("close", () => controller?.abort());
|
|
110
|
-
if (nodeReq.method !== "GET" && nodeReq.method !== "HEAD") {
|
|
111
|
-
init.body = (0, import_node.createReadableStreamFromReadable)(nodeReq);
|
|
112
|
-
init.duplex = "half";
|
|
113
|
-
}
|
|
114
|
-
return new Request(url.href, init);
|
|
115
|
-
}
|
|
116
|
-
async function toNodeRequest(res, nodeRes) {
|
|
117
|
-
nodeRes.statusCode = res.status;
|
|
118
|
-
if (!nodeRes.req || nodeRes.req.httpVersionMajor < 2) {
|
|
119
|
-
nodeRes.statusMessage = res.statusText;
|
|
120
|
-
}
|
|
121
|
-
let cookiesStrings = [];
|
|
122
|
-
for (let [name, value] of res.headers) {
|
|
123
|
-
if (name === "set-cookie") {
|
|
124
|
-
cookiesStrings.push(...(0, import_set_cookie_parser.splitCookiesString)(value));
|
|
125
|
-
} else nodeRes.setHeader(name, value);
|
|
126
|
-
}
|
|
127
|
-
if (cookiesStrings.length) {
|
|
128
|
-
nodeRes.setHeader("set-cookie", cookiesStrings);
|
|
129
|
-
}
|
|
130
|
-
if (res.body) {
|
|
131
|
-
let responseBody = res.body;
|
|
132
|
-
let readable = import_node_stream.Readable.from(responseBody);
|
|
133
|
-
readable.pipe(nodeRes);
|
|
134
|
-
await (0, import_node_events.once)(readable, "end");
|
|
135
|
-
} else {
|
|
136
|
-
nodeRes.end();
|
|
137
|
-
}
|
|
70
|
+
nodeReq.url = nodeReq.originalUrl;
|
|
71
|
+
return (0, import_node_fetch_server.createRequest)(nodeReq, nodeRes);
|
|
138
72
|
}
|
|
139
73
|
|
|
140
74
|
// vite/vite.ts
|
|
@@ -884,7 +818,7 @@ var cloudflareDevProxyVitePlugin = (options = {}) => {
|
|
|
884
818
|
context ??= await getContext();
|
|
885
819
|
let loadContext = getLoadContext ? await getLoadContext({ request: req, context }) : context;
|
|
886
820
|
let res = await handler(req, loadContext);
|
|
887
|
-
await
|
|
821
|
+
await (0, import_node_fetch_server2.sendResponse)(nodeRes, res);
|
|
888
822
|
} catch (error) {
|
|
889
823
|
next(error);
|
|
890
824
|
}
|
package/dist/vite.d.ts
CHANGED
|
@@ -8,4 +8,6 @@ type ReactRouterVitePlugin = () => Vite.Plugin[];
|
|
|
8
8
|
*/
|
|
9
9
|
declare const reactRouterVitePlugin: ReactRouterVitePlugin;
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
declare function reactRouterRSCVitePlugin(): Vite.PluginOption[];
|
|
12
|
+
|
|
13
|
+
export { reactRouterVitePlugin as reactRouter, reactRouterRSCVitePlugin as unstable_reactRouterRSC };
|