@react-router/dev 0.0.0-experimental-f2b42587c → 0.0.0-experimental-3b8ea09a1
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 +62 -0
- package/dist/cli/index.js +37 -31
- package/dist/config.js +1 -1
- package/dist/routes.js +1 -1
- package/dist/vite/cloudflare.d.ts +1 -1
- package/dist/vite/cloudflare.js +7 -5
- package/dist/vite.js +42 -29
- package/package.json +8 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,67 @@
|
|
|
1
1
|
# `@react-router/dev`
|
|
2
2
|
|
|
3
|
+
## 7.6.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Avoid additional `with-props` chunk in Framework Mode by moving route module component prop logic from the Vite plugin to `react-router` ([#13650](https://github.com/remix-run/react-router/pull/13650))
|
|
8
|
+
|
|
9
|
+
- When `future.unstable_viteEnvironmentApi` is enabled and an absolute Vite `base` has been configured, ensure critical CSS is handled correctly during development ([#13598](https://github.com/remix-run/react-router/pull/13598))
|
|
10
|
+
|
|
11
|
+
- Update `vite-node` ([#13673](https://github.com/remix-run/react-router/pull/13673))
|
|
12
|
+
|
|
13
|
+
- Fix typegen for non-{.js,.jsx,.ts,.tsx} routes like .mdx ([#12453](https://github.com/remix-run/react-router/pull/12453))
|
|
14
|
+
|
|
15
|
+
- Fix href types for optional dynamic params ([#13725](https://github.com/remix-run/react-router/pull/13725))
|
|
16
|
+
|
|
17
|
+
7.6.1 introduced fixes for `href` when using optional static segments,
|
|
18
|
+
but those fixes caused regressions with how optional dynamic params worked in 7.6.0:
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
// 7.6.0
|
|
22
|
+
href("/users/:id?"); // ✅
|
|
23
|
+
href("/users/:id?", { id: 1 }); // ✅
|
|
24
|
+
|
|
25
|
+
// 7.6.1
|
|
26
|
+
href("/users/:id?"); // ❌
|
|
27
|
+
href("/users/:id?", { id: 1 }); // ❌
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Now, optional static segments are expanded into different paths for `href`, but optional dynamic params are not.
|
|
31
|
+
This way `href` can unambiguously refer to an exact URL path, all while keeping the number of path options to a minimum.
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
// 7.6.2
|
|
35
|
+
|
|
36
|
+
// path: /users/:id?/edit?
|
|
37
|
+
href("
|
|
38
|
+
// ^ suggestions when cursor is here:
|
|
39
|
+
//
|
|
40
|
+
// /users/:id?
|
|
41
|
+
// /users/:id?/edit
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Additionally, you can pass `params` from component props without needing to narrow them manually:
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
declare const params: { id?: number };
|
|
48
|
+
|
|
49
|
+
// 7.6.0
|
|
50
|
+
href("/users/:id?", params);
|
|
51
|
+
|
|
52
|
+
// 7.6.1
|
|
53
|
+
href("/users/:id?", params); // ❌
|
|
54
|
+
"id" in params ? href("/users/:id", params) : href("/users"); // works... but is annoying
|
|
55
|
+
|
|
56
|
+
// 7.6.2
|
|
57
|
+
href("/users/:id?", params); // restores behavior of 7.6.0
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- Updated dependencies:
|
|
61
|
+
- `react-router@7.6.2`
|
|
62
|
+
- `@react-router/node@7.6.2`
|
|
63
|
+
- `@react-router/serve@7.6.2`
|
|
64
|
+
|
|
3
65
|
## 7.6.1
|
|
4
66
|
|
|
5
67
|
### Patch Changes
|
package/dist/cli/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @react-router/dev v0.0.0-experimental-
|
|
3
|
+
* @react-router/dev v0.0.0-experimental-3b8ea09a1
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
6
6
|
*
|
|
@@ -130,6 +130,10 @@ async function createContext({
|
|
|
130
130
|
}) {
|
|
131
131
|
await preloadVite();
|
|
132
132
|
const vite2 = getVite();
|
|
133
|
+
const [{ ViteNodeServer }, { ViteNodeRunner }] = await Promise.all([
|
|
134
|
+
import("vite-node/server"),
|
|
135
|
+
import("vite-node/client")
|
|
136
|
+
]);
|
|
133
137
|
const devServer = await vite2.createServer({
|
|
134
138
|
root,
|
|
135
139
|
mode,
|
|
@@ -159,11 +163,11 @@ async function createContext({
|
|
|
159
163
|
plugins: []
|
|
160
164
|
});
|
|
161
165
|
await devServer.pluginContainer.buildStart({});
|
|
162
|
-
const server = new
|
|
166
|
+
const server = new ViteNodeServer(devServer);
|
|
163
167
|
(0, import_source_map.installSourcemapsSupport)({
|
|
164
168
|
getSourceMap: (source) => server.getSourceMap(source)
|
|
165
169
|
});
|
|
166
|
-
const runner = new
|
|
170
|
+
const runner = new ViteNodeRunner({
|
|
167
171
|
root: devServer.config.root,
|
|
168
172
|
base: devServer.config.base,
|
|
169
173
|
fetchModule(id) {
|
|
@@ -175,12 +179,10 @@ async function createContext({
|
|
|
175
179
|
});
|
|
176
180
|
return { devServer, server, runner };
|
|
177
181
|
}
|
|
178
|
-
var
|
|
182
|
+
var import_source_map;
|
|
179
183
|
var init_vite_node = __esm({
|
|
180
184
|
"vite/vite-node.ts"() {
|
|
181
185
|
"use strict";
|
|
182
|
-
import_server = require("vite-node/server");
|
|
183
|
-
import_client = require("vite-node/client");
|
|
184
186
|
import_source_map = require("vite-node/source-map");
|
|
185
187
|
init_vite();
|
|
186
188
|
init_ssr_externals();
|
|
@@ -928,7 +930,7 @@ function generateRoutes(ctx) {
|
|
|
928
930
|
lineages.set(route.id, lineage2);
|
|
929
931
|
const fullpath2 = fullpath(lineage2);
|
|
930
932
|
if (!fullpath2) continue;
|
|
931
|
-
const pages =
|
|
933
|
+
const pages = expand(fullpath2);
|
|
932
934
|
pages.forEach((page) => allPages.add(page));
|
|
933
935
|
lineage2.forEach(({ id }) => {
|
|
934
936
|
let routePages = routeToPages.get(id);
|
|
@@ -1136,9 +1138,13 @@ function getRouteAnnotations({
|
|
|
1136
1138
|
}
|
|
1137
1139
|
function relativeImportSource(from, to) {
|
|
1138
1140
|
let path8 = Path3.relative(Path3.dirname(from), to);
|
|
1141
|
+
let extension = Path3.extname(path8);
|
|
1139
1142
|
path8 = Path3.join(Path3.dirname(path8), Pathe.filename(path8));
|
|
1140
1143
|
if (!path8.startsWith("../")) path8 = "./" + path8;
|
|
1141
|
-
|
|
1144
|
+
if (!extension || /\.(js|ts)x?$/.test(extension)) {
|
|
1145
|
+
extension = ".js";
|
|
1146
|
+
}
|
|
1147
|
+
return path8 + extension;
|
|
1142
1148
|
}
|
|
1143
1149
|
function rootDirsPath(ctx, typesPath) {
|
|
1144
1150
|
const rel = Path3.relative(typesDirectory(ctx), typesPath);
|
|
@@ -1157,28 +1163,27 @@ function paramsType(path8) {
|
|
|
1157
1163
|
})
|
|
1158
1164
|
);
|
|
1159
1165
|
}
|
|
1160
|
-
function
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
...
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
);
|
|
1176
|
-
|
|
1177
|
-
result.
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
);
|
|
1166
|
+
function expand(fullpath2) {
|
|
1167
|
+
function recurse(segments2, index) {
|
|
1168
|
+
if (index === segments2.length) return [""];
|
|
1169
|
+
const segment = segments2[index];
|
|
1170
|
+
const isOptional = segment.endsWith("?");
|
|
1171
|
+
const isDynamic = segment.startsWith(":");
|
|
1172
|
+
const required = segment.replace(/\?$/, "");
|
|
1173
|
+
const keep = !isOptional || isDynamic;
|
|
1174
|
+
const kept = isDynamic ? segment : required;
|
|
1175
|
+
const withoutSegment = recurse(segments2, index + 1);
|
|
1176
|
+
const withSegment = withoutSegment.map((rest) => [kept, rest].join("/"));
|
|
1177
|
+
if (keep) return withSegment;
|
|
1178
|
+
return [...withoutSegment, ...withSegment];
|
|
1179
|
+
}
|
|
1180
|
+
const segments = fullpath2.split("/");
|
|
1181
|
+
const expanded = /* @__PURE__ */ new Set();
|
|
1182
|
+
for (let result of recurse(segments, 0)) {
|
|
1183
|
+
if (result !== "/") result = result.replace(/\/$/, "");
|
|
1184
|
+
expanded.add(result);
|
|
1185
|
+
}
|
|
1186
|
+
return expanded;
|
|
1182
1187
|
}
|
|
1183
1188
|
var import_dedent, Path3, Pathe, t2;
|
|
1184
1189
|
var init_generate = __esm({
|
|
@@ -1631,7 +1636,7 @@ function resolveEnvironmentsOptions(environmentResolvers, resolverOptions) {
|
|
|
1631
1636
|
function isNonNullable(x) {
|
|
1632
1637
|
return x != null;
|
|
1633
1638
|
}
|
|
1634
|
-
var import_node_crypto, fs4, path6, url, fse, babel2, import_react_router2, import_es_module_lexer, import_pick3, import_jsesc, import_picocolors4, 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;
|
|
1639
|
+
var import_node_crypto, fs4, path6, url, fse, babel2, import_react_router2, import_es_module_lexer, import_tinyglobby, import_pick3, import_jsesc, import_picocolors4, 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;
|
|
1635
1640
|
var init_plugin = __esm({
|
|
1636
1641
|
"vite/plugin.ts"() {
|
|
1637
1642
|
"use strict";
|
|
@@ -1643,6 +1648,7 @@ var init_plugin = __esm({
|
|
|
1643
1648
|
babel2 = __toESM(require("@babel/core"));
|
|
1644
1649
|
import_react_router2 = require("react-router");
|
|
1645
1650
|
import_es_module_lexer = require("es-module-lexer");
|
|
1651
|
+
import_tinyglobby = require("tinyglobby");
|
|
1646
1652
|
import_pick3 = __toESM(require("lodash/pick"));
|
|
1647
1653
|
import_jsesc = __toESM(require("jsesc"));
|
|
1648
1654
|
import_picocolors4 = __toESM(require("picocolors"));
|
package/dist/config.js
CHANGED
package/dist/routes.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UNSAFE_MiddlewareEnabled, unstable_InitialContext, AppLoadContext } from 'react-router';
|
|
2
2
|
import { Plugin } from 'vite';
|
|
3
|
-
import {
|
|
3
|
+
import { GetPlatformProxyOptions, PlatformProxy } from 'wrangler';
|
|
4
4
|
|
|
5
5
|
type MaybePromise<T> = T | Promise<T>;
|
|
6
6
|
type CfProperties = Record<string, unknown>;
|
package/dist/vite/cloudflare.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v0.0.0-experimental-
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-3b8ea09a1
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -175,8 +175,6 @@ var import_node_child_process = require("child_process");
|
|
|
175
175
|
var import_package_json = __toESM(require("@npmcli/package-json"));
|
|
176
176
|
|
|
177
177
|
// vite/vite-node.ts
|
|
178
|
-
var import_server = require("vite-node/server");
|
|
179
|
-
var import_client = require("vite-node/client");
|
|
180
178
|
var import_source_map = require("vite-node/source-map");
|
|
181
179
|
|
|
182
180
|
// vite/ssr-externals.ts
|
|
@@ -202,6 +200,10 @@ async function createContext({
|
|
|
202
200
|
}) {
|
|
203
201
|
await preloadVite();
|
|
204
202
|
const vite2 = getVite();
|
|
203
|
+
const [{ ViteNodeServer }, { ViteNodeRunner }] = await Promise.all([
|
|
204
|
+
import("vite-node/server"),
|
|
205
|
+
import("vite-node/client")
|
|
206
|
+
]);
|
|
205
207
|
const devServer = await vite2.createServer({
|
|
206
208
|
root,
|
|
207
209
|
mode,
|
|
@@ -231,11 +233,11 @@ async function createContext({
|
|
|
231
233
|
plugins: []
|
|
232
234
|
});
|
|
233
235
|
await devServer.pluginContainer.buildStart({});
|
|
234
|
-
const server = new
|
|
236
|
+
const server = new ViteNodeServer(devServer);
|
|
235
237
|
(0, import_source_map.installSourcemapsSupport)({
|
|
236
238
|
getSourceMap: (source) => server.getSourceMap(source)
|
|
237
239
|
});
|
|
238
|
-
const runner = new
|
|
240
|
+
const runner = new ViteNodeRunner({
|
|
239
241
|
root: devServer.config.root,
|
|
240
242
|
base: devServer.config.base,
|
|
241
243
|
fetchModule(id) {
|
package/dist/vite.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v0.0.0-experimental-
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-3b8ea09a1
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -53,6 +53,7 @@ var fse = __toESM(require("fs-extra"));
|
|
|
53
53
|
var babel = __toESM(require("@babel/core"));
|
|
54
54
|
var import_react_router2 = require("react-router");
|
|
55
55
|
var import_es_module_lexer = require("es-module-lexer");
|
|
56
|
+
var import_tinyglobby = require("tinyglobby");
|
|
56
57
|
var import_pick3 = __toESM(require("lodash/pick"));
|
|
57
58
|
var import_jsesc = __toESM(require("jsesc"));
|
|
58
59
|
var import_picocolors3 = __toESM(require("picocolors"));
|
|
@@ -69,8 +70,6 @@ var import_node_child_process = require("child_process");
|
|
|
69
70
|
var import_package_json = __toESM(require("@npmcli/package-json"));
|
|
70
71
|
|
|
71
72
|
// vite/vite-node.ts
|
|
72
|
-
var import_server = require("vite-node/server");
|
|
73
|
-
var import_client = require("vite-node/client");
|
|
74
73
|
var import_source_map = require("vite-node/source-map");
|
|
75
74
|
|
|
76
75
|
// vite/vite.ts
|
|
@@ -140,6 +139,10 @@ async function createContext({
|
|
|
140
139
|
}) {
|
|
141
140
|
await preloadVite();
|
|
142
141
|
const vite2 = getVite();
|
|
142
|
+
const [{ ViteNodeServer }, { ViteNodeRunner }] = await Promise.all([
|
|
143
|
+
import("vite-node/server"),
|
|
144
|
+
import("vite-node/client")
|
|
145
|
+
]);
|
|
143
146
|
const devServer = await vite2.createServer({
|
|
144
147
|
root,
|
|
145
148
|
mode,
|
|
@@ -169,11 +172,11 @@ async function createContext({
|
|
|
169
172
|
plugins: []
|
|
170
173
|
});
|
|
171
174
|
await devServer.pluginContainer.buildStart({});
|
|
172
|
-
const server = new
|
|
175
|
+
const server = new ViteNodeServer(devServer);
|
|
173
176
|
(0, import_source_map.installSourcemapsSupport)({
|
|
174
177
|
getSourceMap: (source) => server.getSourceMap(source)
|
|
175
178
|
});
|
|
176
|
-
const runner = new
|
|
179
|
+
const runner = new ViteNodeRunner({
|
|
177
180
|
root: devServer.config.root,
|
|
178
181
|
base: devServer.config.base,
|
|
179
182
|
fetchModule(id) {
|
|
@@ -915,7 +918,7 @@ function generateRoutes(ctx) {
|
|
|
915
918
|
lineages.set(route.id, lineage2);
|
|
916
919
|
const fullpath2 = fullpath(lineage2);
|
|
917
920
|
if (!fullpath2) continue;
|
|
918
|
-
const pages =
|
|
921
|
+
const pages = expand(fullpath2);
|
|
919
922
|
pages.forEach((page) => allPages.add(page));
|
|
920
923
|
lineage2.forEach(({ id }) => {
|
|
921
924
|
let routePages = routeToPages.get(id);
|
|
@@ -1123,9 +1126,13 @@ function getRouteAnnotations({
|
|
|
1123
1126
|
}
|
|
1124
1127
|
function relativeImportSource(from, to) {
|
|
1125
1128
|
let path6 = Path3.relative(Path3.dirname(from), to);
|
|
1129
|
+
let extension = Path3.extname(path6);
|
|
1126
1130
|
path6 = Path3.join(Path3.dirname(path6), Pathe.filename(path6));
|
|
1127
1131
|
if (!path6.startsWith("../")) path6 = "./" + path6;
|
|
1128
|
-
|
|
1132
|
+
if (!extension || /\.(js|ts)x?$/.test(extension)) {
|
|
1133
|
+
extension = ".js";
|
|
1134
|
+
}
|
|
1135
|
+
return path6 + extension;
|
|
1129
1136
|
}
|
|
1130
1137
|
function rootDirsPath(ctx, typesPath) {
|
|
1131
1138
|
const rel = Path3.relative(typesDirectory(ctx), typesPath);
|
|
@@ -1144,28 +1151,27 @@ function paramsType(path6) {
|
|
|
1144
1151
|
})
|
|
1145
1152
|
);
|
|
1146
1153
|
}
|
|
1147
|
-
function
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1154
|
+
function expand(fullpath2) {
|
|
1155
|
+
function recurse(segments2, index) {
|
|
1156
|
+
if (index === segments2.length) return [""];
|
|
1157
|
+
const segment = segments2[index];
|
|
1158
|
+
const isOptional = segment.endsWith("?");
|
|
1159
|
+
const isDynamic = segment.startsWith(":");
|
|
1160
|
+
const required = segment.replace(/\?$/, "");
|
|
1161
|
+
const keep = !isOptional || isDynamic;
|
|
1162
|
+
const kept = isDynamic ? segment : required;
|
|
1163
|
+
const withoutSegment = recurse(segments2, index + 1);
|
|
1164
|
+
const withSegment = withoutSegment.map((rest) => [kept, rest].join("/"));
|
|
1165
|
+
if (keep) return withSegment;
|
|
1166
|
+
return [...withoutSegment, ...withSegment];
|
|
1155
1167
|
}
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
result
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
)
|
|
1162
|
-
);
|
|
1163
|
-
if (isOptional) {
|
|
1164
|
-
result.push(...restExploded);
|
|
1168
|
+
const segments = fullpath2.split("/");
|
|
1169
|
+
const expanded = /* @__PURE__ */ new Set();
|
|
1170
|
+
for (let result of recurse(segments, 0)) {
|
|
1171
|
+
if (result !== "/") result = result.replace(/\/$/, "");
|
|
1172
|
+
expanded.add(result);
|
|
1165
1173
|
}
|
|
1166
|
-
return
|
|
1167
|
-
(exploded) => path6.startsWith("/") && exploded === "" ? "/" : exploded
|
|
1168
|
-
);
|
|
1174
|
+
return expanded;
|
|
1169
1175
|
}
|
|
1170
1176
|
|
|
1171
1177
|
// typegen/index.ts
|
|
@@ -2966,6 +2972,7 @@ var reactRouterVitePlugin = () => {
|
|
|
2966
2972
|
config: async (_viteUserConfig, _viteConfigEnv) => {
|
|
2967
2973
|
await preloadVite();
|
|
2968
2974
|
let vite2 = getVite();
|
|
2975
|
+
let viteMajorVersion = parseInt(vite2.version.split(".")[0], 10);
|
|
2969
2976
|
viteUserConfig = _viteUserConfig;
|
|
2970
2977
|
viteConfigEnv = _viteConfigEnv;
|
|
2971
2978
|
viteCommand = viteConfigEnv.command;
|
|
@@ -3024,7 +3031,13 @@ var reactRouterVitePlugin = () => {
|
|
|
3024
3031
|
...Object.values(ctx.reactRouterConfig.routes).map(
|
|
3025
3032
|
(route) => resolveRelativeRouteFilePath(route, ctx.reactRouterConfig)
|
|
3026
3033
|
)
|
|
3027
|
-
]
|
|
3034
|
+
].map(
|
|
3035
|
+
(entry) => (
|
|
3036
|
+
// In Vite 7, the `optimizeDeps.entries` option only accepts glob patterns.
|
|
3037
|
+
// In prior versions, absolute file paths were treated differently.
|
|
3038
|
+
viteMajorVersion >= 7 ? (0, import_tinyglobby.escapePath)(entry) : entry
|
|
3039
|
+
)
|
|
3040
|
+
) : [],
|
|
3028
3041
|
include: [
|
|
3029
3042
|
// Pre-bundle React dependencies to avoid React duplicates,
|
|
3030
3043
|
// even if React dependencies are not direct dependencies.
|
|
@@ -3271,7 +3284,7 @@ var reactRouterVitePlugin = () => {
|
|
|
3271
3284
|
if (ctx.reactRouterConfig.future.unstable_viteEnvironmentApi) {
|
|
3272
3285
|
viteDevServer.middlewares.use(async (req, res, next) => {
|
|
3273
3286
|
let [reqPathname, reqSearch] = (req.url ?? "").split("?");
|
|
3274
|
-
if (reqPathname
|
|
3287
|
+
if (reqPathname.endsWith("/@react-router/critical.css")) {
|
|
3275
3288
|
let pathname = new URLSearchParams(reqSearch).get("pathname");
|
|
3276
3289
|
if (!pathname) {
|
|
3277
3290
|
return next("No pathname provided");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-router/dev",
|
|
3
|
-
"version": "0.0.0-experimental-
|
|
3
|
+
"version": "0.0.0-experimental-3b8ea09a1",
|
|
4
4
|
"description": "Dev tools and CLI for React Router",
|
|
5
5
|
"homepage": "https://reactrouter.com",
|
|
6
6
|
"bugs": {
|
|
@@ -84,9 +84,10 @@
|
|
|
84
84
|
"react-refresh": "^0.14.0",
|
|
85
85
|
"semver": "^7.3.7",
|
|
86
86
|
"set-cookie-parser": "^2.6.0",
|
|
87
|
+
"tinyglobby": "^0.2.14",
|
|
87
88
|
"valibot": "^0.41.0",
|
|
88
89
|
"vite-node": "^3.1.4",
|
|
89
|
-
"@react-router/node": "0.0.0-experimental-
|
|
90
|
+
"@react-router/node": "0.0.0-experimental-3b8ea09a1"
|
|
90
91
|
},
|
|
91
92
|
"devDependencies": {
|
|
92
93
|
"@types/babel__core": "^7.20.5",
|
|
@@ -110,15 +111,15 @@
|
|
|
110
111
|
"vite": "^6.1.0",
|
|
111
112
|
"wireit": "0.14.9",
|
|
112
113
|
"wrangler": "^4.2.0",
|
|
113
|
-
"@react-router/serve": "0.0.0-experimental-
|
|
114
|
-
"react-router": "^0.0.0-experimental-
|
|
114
|
+
"@react-router/serve": "0.0.0-experimental-3b8ea09a1",
|
|
115
|
+
"react-router": "^0.0.0-experimental-3b8ea09a1"
|
|
115
116
|
},
|
|
116
117
|
"peerDependencies": {
|
|
117
118
|
"typescript": "^5.1.0",
|
|
118
|
-
"vite": "^5.1.0 || ^6.0.0",
|
|
119
|
+
"vite": "^5.1.0 || ^6.0.0 || ^7.0.0",
|
|
119
120
|
"wrangler": "^3.28.2 || ^4.0.0",
|
|
120
|
-
"react-router": "^0.0.0-experimental-
|
|
121
|
-
"
|
|
121
|
+
"@react-router/serve": "^0.0.0-experimental-3b8ea09a1",
|
|
122
|
+
"react-router": "^0.0.0-experimental-3b8ea09a1"
|
|
122
123
|
},
|
|
123
124
|
"peerDependenciesMeta": {
|
|
124
125
|
"@react-router/serve": {
|