@react-router/dev 0.0.0-experimental-e41ede670 → 0.0.0-experimental-4d16b23b6
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 +30 -0
- package/bin.js +13 -0
- package/dist/cli/index.js +131 -119
- package/dist/config.js +1 -1
- package/dist/routes.js +1 -1
- package/dist/vite/cloudflare.js +48 -7
- package/dist/vite.js +359 -305
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# `@react-router/dev`
|
|
2
2
|
|
|
3
|
+
## 7.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Fix for a crash when optional args are passed to the CLI ([`5b1ca202f`](https://github.com/remix-run/react-router/commit/5b1ca202f77ef342db0109c6b791d33188077cd0))
|
|
8
|
+
- Updated dependencies:
|
|
9
|
+
- `react-router@7.1.1`
|
|
10
|
+
- `@react-router/node@7.1.1`
|
|
11
|
+
- `@react-router/serve@7.1.1`
|
|
12
|
+
|
|
13
|
+
## 7.1.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- Add support for Vite v6 ([#12469](https://github.com/remix-run/react-router/pull/12469))
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Properly initialize `NODE_ENV` if not already set for compatibility with React 19 ([#12578](https://github.com/remix-run/react-router/pull/12578))
|
|
22
|
+
|
|
23
|
+
- Remove the leftover/unused `abortDelay` prop from `ServerRouter` and update the default `entry.server.tsx` to use the new `streamTimeout` value for Single Fetch ([#12478](https://github.com/remix-run/react-router/pull/12478))
|
|
24
|
+
|
|
25
|
+
- The `abortDelay` functionality was removed in v7 as it was coupled to the `defer` implementation from Remix v2, but this removal of this prop was missed
|
|
26
|
+
- If you were still using this prop in your `entry.server` file, it's likely your app is not aborting streams as you would expect and you will need to adopt the new [`streamTimeout`](https://reactrouter.com/explanation/special-files#streamtimeout) value introduced with Single Fetch
|
|
27
|
+
|
|
28
|
+
- Updated dependencies:
|
|
29
|
+
- `react-router@7.1.0`
|
|
30
|
+
- `@react-router/node@7.1.0`
|
|
31
|
+
- `@react-router/serve@7.1.0`
|
|
32
|
+
|
|
3
33
|
## 7.0.2
|
|
4
34
|
|
|
5
35
|
### Patch Changes
|
package/bin.js
CHANGED
|
@@ -1,2 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
let arg = require("arg");
|
|
3
|
+
|
|
4
|
+
// Minimal replication of our actual parsing in `run.ts`. If not already set,
|
|
5
|
+
// default `NODE_ENV` so React loads the proper version in it's CJS entry script.
|
|
6
|
+
// We have to do this before importing `run.ts` since that is what imports
|
|
7
|
+
// `react` (indirectly via `react-router`)
|
|
8
|
+
let args = arg({}, { argv: process.argv.slice(2), stopAtPositional: true });
|
|
9
|
+
if (args._[0] === "dev") {
|
|
10
|
+
process.env.NODE_ENV = process.env.NODE_ENV ?? "development";
|
|
11
|
+
} else {
|
|
12
|
+
process.env.NODE_ENV = process.env.NODE_ENV ?? "production";
|
|
13
|
+
}
|
|
14
|
+
|
|
2
15
|
require("./dist/cli/index");
|
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-4d16b23b6
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
6
6
|
*
|
|
@@ -55,26 +55,55 @@ var init_invariant = __esm({
|
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
// config/is-react-router-repo.ts
|
|
59
|
+
function isReactRouterRepo() {
|
|
60
|
+
let serverRuntimePath = import_pathe.default.dirname(
|
|
61
|
+
require.resolve("@react-router/node/package.json")
|
|
62
|
+
);
|
|
63
|
+
let serverRuntimeParentDir = import_pathe.default.basename(
|
|
64
|
+
import_pathe.default.resolve(serverRuntimePath, "..")
|
|
65
|
+
);
|
|
66
|
+
return serverRuntimeParentDir === "packages";
|
|
67
|
+
}
|
|
68
|
+
var import_pathe;
|
|
69
|
+
var init_is_react_router_repo = __esm({
|
|
70
|
+
"config/is-react-router-repo.ts"() {
|
|
71
|
+
"use strict";
|
|
72
|
+
import_pathe = __toESM(require("pathe"));
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// vite/vite.ts
|
|
77
|
+
async function preloadVite() {
|
|
78
|
+
vite = await import(viteImportSpecifier);
|
|
61
79
|
}
|
|
62
|
-
function
|
|
63
|
-
invariant(vite, "
|
|
80
|
+
function getVite() {
|
|
81
|
+
invariant(vite, "getVite() called before preloadVite()");
|
|
64
82
|
return vite;
|
|
65
83
|
}
|
|
66
|
-
var vite;
|
|
67
|
-
var
|
|
68
|
-
"vite/
|
|
84
|
+
var import_pathe2, vite, viteImportSpecifier;
|
|
85
|
+
var init_vite = __esm({
|
|
86
|
+
"vite/vite.ts"() {
|
|
69
87
|
"use strict";
|
|
88
|
+
import_pathe2 = __toESM(require("pathe"));
|
|
70
89
|
init_invariant();
|
|
90
|
+
init_is_react_router_repo();
|
|
91
|
+
viteImportSpecifier = isReactRouterRepo() ? (
|
|
92
|
+
// Support testing against different versions of Vite by ensuring that Vite
|
|
93
|
+
// is resolved from the current working directory when running within this
|
|
94
|
+
// repo. If we don't do this, Vite will always be imported relative to this
|
|
95
|
+
// file, which means that it will always resolve to Vite 6.
|
|
96
|
+
`file:///${import_pathe2.default.normalize(
|
|
97
|
+
require.resolve("vite/package.json", { paths: [process.cwd()] })
|
|
98
|
+
).replace("package.json", "dist/node/index.js")}`
|
|
99
|
+
) : "vite";
|
|
71
100
|
}
|
|
72
101
|
});
|
|
73
102
|
|
|
74
103
|
// vite/vite-node.ts
|
|
75
104
|
async function createContext(viteConfig = {}) {
|
|
76
|
-
await
|
|
77
|
-
const vite2 =
|
|
105
|
+
await preloadVite();
|
|
106
|
+
const vite2 = getVite();
|
|
78
107
|
const devServer = await vite2.createServer(
|
|
79
108
|
vite2.mergeConfig(
|
|
80
109
|
{
|
|
@@ -100,11 +129,11 @@ async function createContext(viteConfig = {}) {
|
|
|
100
129
|
const runner = new import_client.ViteNodeRunner({
|
|
101
130
|
root: devServer.config.root,
|
|
102
131
|
base: devServer.config.base,
|
|
103
|
-
fetchModule(
|
|
104
|
-
return server.fetchModule(
|
|
132
|
+
fetchModule(id) {
|
|
133
|
+
return server.fetchModule(id);
|
|
105
134
|
},
|
|
106
|
-
resolveId(
|
|
107
|
-
return server.resolveId(
|
|
135
|
+
resolveId(id, importer) {
|
|
136
|
+
return server.resolveId(id, importer);
|
|
108
137
|
}
|
|
109
138
|
});
|
|
110
139
|
return { devServer, server, runner };
|
|
@@ -116,7 +145,7 @@ var init_vite_node = __esm({
|
|
|
116
145
|
import_server = require("vite-node/server");
|
|
117
146
|
import_client = require("vite-node/client");
|
|
118
147
|
import_source_map = require("vite-node/source-map");
|
|
119
|
-
|
|
148
|
+
init_vite();
|
|
120
149
|
}
|
|
121
150
|
});
|
|
122
151
|
|
|
@@ -149,7 +178,7 @@ function validateRouteConfig({
|
|
|
149
178
|
`Route config in "${routeConfigFile}" is invalid.`,
|
|
150
179
|
root ? `${root}` : [],
|
|
151
180
|
nested ? Object.entries(nested).map(
|
|
152
|
-
([
|
|
181
|
+
([path10, message]) => `Path: routes.${path10}
|
|
153
182
|
${message}`
|
|
154
183
|
) : []
|
|
155
184
|
].flat().join("\n\n")
|
|
@@ -160,24 +189,24 @@ ${message}`
|
|
|
160
189
|
function configRoutesToRouteManifest(appDirectory, routes2, rootId = "root") {
|
|
161
190
|
let routeManifest = {};
|
|
162
191
|
function walk(route, parentId) {
|
|
163
|
-
let
|
|
192
|
+
let id = route.id || createRouteId(route.file);
|
|
164
193
|
let manifestItem = {
|
|
165
|
-
id
|
|
194
|
+
id,
|
|
166
195
|
parentId,
|
|
167
196
|
file: Path.isAbsolute(route.file) ? Path.relative(appDirectory, route.file) : route.file,
|
|
168
197
|
path: route.path,
|
|
169
198
|
index: route.index,
|
|
170
199
|
caseSensitive: route.caseSensitive
|
|
171
200
|
};
|
|
172
|
-
if (routeManifest.hasOwnProperty(
|
|
201
|
+
if (routeManifest.hasOwnProperty(id)) {
|
|
173
202
|
throw new Error(
|
|
174
|
-
`Unable to define routes with duplicate route id: "${
|
|
203
|
+
`Unable to define routes with duplicate route id: "${id}"`
|
|
175
204
|
);
|
|
176
205
|
}
|
|
177
|
-
routeManifest[
|
|
206
|
+
routeManifest[id] = manifestItem;
|
|
178
207
|
if (route.children) {
|
|
179
208
|
for (let child of route.children) {
|
|
180
|
-
walk(child,
|
|
209
|
+
walk(child, id);
|
|
181
210
|
}
|
|
182
211
|
}
|
|
183
212
|
}
|
|
@@ -307,13 +336,13 @@ async function resolveConfig({
|
|
|
307
336
|
"The `prerender` config must be a boolean, an array of string paths, or a function returning a boolean or array of string paths"
|
|
308
337
|
);
|
|
309
338
|
}
|
|
310
|
-
let appDirectory =
|
|
311
|
-
let buildDirectory =
|
|
339
|
+
let appDirectory = import_pathe3.default.resolve(root, userAppDirectory || "app");
|
|
340
|
+
let buildDirectory = import_pathe3.default.resolve(root, userBuildDirectory);
|
|
312
341
|
let rootRouteFile = findEntry(appDirectory, "root");
|
|
313
342
|
if (!rootRouteFile) {
|
|
314
|
-
let rootRouteDisplayPath =
|
|
343
|
+
let rootRouteDisplayPath = import_pathe3.default.relative(
|
|
315
344
|
root,
|
|
316
|
-
|
|
345
|
+
import_pathe3.default.join(appDirectory, "root.tsx")
|
|
317
346
|
);
|
|
318
347
|
return err(
|
|
319
348
|
`Could not find a root route module in the app directory as "${rootRouteDisplayPath}"`
|
|
@@ -325,15 +354,15 @@ async function resolveConfig({
|
|
|
325
354
|
let routeConfigFile = findEntry(appDirectory, "routes");
|
|
326
355
|
try {
|
|
327
356
|
if (!routeConfigFile) {
|
|
328
|
-
let routeConfigDisplayPath =
|
|
357
|
+
let routeConfigDisplayPath = import_pathe3.default.relative(
|
|
329
358
|
root,
|
|
330
|
-
|
|
359
|
+
import_pathe3.default.join(appDirectory, "routes.ts")
|
|
331
360
|
);
|
|
332
361
|
return err(`Route config file not found at "${routeConfigDisplayPath}".`);
|
|
333
362
|
}
|
|
334
363
|
setAppDirectory(appDirectory);
|
|
335
364
|
let routeConfigExport = (await viteNodeContext.runner.executeFile(
|
|
336
|
-
|
|
365
|
+
import_pathe3.default.join(appDirectory, routeConfigFile)
|
|
337
366
|
)).default;
|
|
338
367
|
let routeConfig = await routeConfigExport;
|
|
339
368
|
let result = validateRouteConfig({
|
|
@@ -353,7 +382,7 @@ async function resolveConfig({
|
|
|
353
382
|
import_picocolors.default.red(`Route config in "${routeConfigFile}" is invalid.`),
|
|
354
383
|
"",
|
|
355
384
|
error.loc?.file && error.loc?.column && error.frame ? [
|
|
356
|
-
|
|
385
|
+
import_pathe3.default.relative(appDirectory, error.loc.file) + ":" + error.loc.line + ":" + error.loc.column,
|
|
357
386
|
error.frame.trim?.()
|
|
358
387
|
] : error.stack
|
|
359
388
|
].flat().join("\n")
|
|
@@ -425,8 +454,8 @@ async function createConfigLoader({
|
|
|
425
454
|
);
|
|
426
455
|
fsWatcher.on("all", async (...args) => {
|
|
427
456
|
let [event, rawFilepath] = args;
|
|
428
|
-
let filepath =
|
|
429
|
-
let appFileAddedOrRemoved = appDirectory && (event === "add" || event === "unlink") && filepath.startsWith(
|
|
457
|
+
let filepath = import_pathe3.default.normalize(rawFilepath);
|
|
458
|
+
let appFileAddedOrRemoved = appDirectory && (event === "add" || event === "unlink") && filepath.startsWith(import_pathe3.default.normalize(appDirectory));
|
|
430
459
|
let configCodeUpdated = Boolean(
|
|
431
460
|
viteNodeContext.devServer?.moduleGraph.getModuleById(filepath)
|
|
432
461
|
);
|
|
@@ -467,25 +496,16 @@ async function createConfigLoader({
|
|
|
467
496
|
}
|
|
468
497
|
};
|
|
469
498
|
}
|
|
470
|
-
function isInReactRouterMonorepo() {
|
|
471
|
-
let serverRuntimePath = import_pathe.default.dirname(
|
|
472
|
-
require.resolve("@react-router/node/package.json")
|
|
473
|
-
);
|
|
474
|
-
let serverRuntimeParentDir = import_pathe.default.basename(
|
|
475
|
-
import_pathe.default.resolve(serverRuntimePath, "..")
|
|
476
|
-
);
|
|
477
|
-
return serverRuntimeParentDir === "packages";
|
|
478
|
-
}
|
|
479
499
|
function findEntry(dir, basename2, options) {
|
|
480
500
|
for (let ext of entryExts) {
|
|
481
|
-
let file =
|
|
501
|
+
let file = import_pathe3.default.resolve(dir, basename2 + ext);
|
|
482
502
|
if (import_node_fs.default.existsSync(file)) {
|
|
483
|
-
return options?.absolute ?? false ? file :
|
|
503
|
+
return options?.absolute ?? false ? file : import_pathe3.default.relative(dir, file);
|
|
484
504
|
}
|
|
485
505
|
}
|
|
486
506
|
return void 0;
|
|
487
507
|
}
|
|
488
|
-
var import_node_fs, import_node_child_process, import_package_json,
|
|
508
|
+
var import_node_fs, import_node_child_process, import_package_json, import_pathe3, import_chokidar, import_picocolors, import_pick2, import_omit, import_cloneDeep, import_isEqual, excludedConfigPresetKeys, branchRouteProperties, configRouteToBranchRoute, mergeReactRouterConfig, deepFreeze, ssrExternals, entryExts;
|
|
489
509
|
var init_config = __esm({
|
|
490
510
|
"config/config.ts"() {
|
|
491
511
|
"use strict";
|
|
@@ -493,7 +513,7 @@ var init_config = __esm({
|
|
|
493
513
|
import_node_child_process = require("child_process");
|
|
494
514
|
import_package_json = __toESM(require("@npmcli/package-json"));
|
|
495
515
|
init_vite_node();
|
|
496
|
-
|
|
516
|
+
import_pathe3 = __toESM(require("pathe"));
|
|
497
517
|
import_chokidar = __toESM(require("chokidar"));
|
|
498
518
|
import_picocolors = __toESM(require("picocolors"));
|
|
499
519
|
import_pick2 = __toESM(require("lodash/pick"));
|
|
@@ -502,6 +522,7 @@ var init_config = __esm({
|
|
|
502
522
|
import_isEqual = __toESM(require("lodash/isEqual"));
|
|
503
523
|
init_routes();
|
|
504
524
|
init_detectPackageManager();
|
|
525
|
+
init_is_react_router_repo();
|
|
505
526
|
excludedConfigPresetKeys = ["presets"];
|
|
506
527
|
branchRouteProperties = [
|
|
507
528
|
"id",
|
|
@@ -548,7 +569,7 @@ var init_config = __esm({
|
|
|
548
569
|
});
|
|
549
570
|
return o;
|
|
550
571
|
};
|
|
551
|
-
ssrExternals =
|
|
572
|
+
ssrExternals = isReactRouterRepo() ? [
|
|
552
573
|
// This is only needed within this repo because these packages
|
|
553
574
|
// are linked to a directory outside of node_modules so Vite
|
|
554
575
|
// treats them as internal code by default.
|
|
@@ -636,10 +657,6 @@ function generate(ctx, route) {
|
|
|
636
657
|
export type HeadersArgs = T.HeadersArgs
|
|
637
658
|
export type HeadersFunction = (args: HeadersArgs) => Headers | HeadersInit
|
|
638
659
|
|
|
639
|
-
export type MiddlewareArgs = T.CreateServerMiddlewareArgs<Info>
|
|
640
|
-
export type MiddlewareNextFunction = T.ServerMiddlewareNextFunction
|
|
641
|
-
export type ClientMiddlewareArgs = T.CreateClientMiddlewareArgs<Info>
|
|
642
|
-
export type ClientMiddlewareNextFunction = T.ClientMiddlewareNextFunction
|
|
643
660
|
export type LoaderArgs = T.CreateServerLoaderArgs<Info>
|
|
644
661
|
export type ClientLoaderArgs = T.CreateClientLoaderArgs<Info>
|
|
645
662
|
export type ActionArgs = T.CreateServerActionArgs<Info>
|
|
@@ -699,7 +716,7 @@ var init_generate = __esm({
|
|
|
699
716
|
Path3 = __toESM(require("pathe"));
|
|
700
717
|
Pathe2 = __toESM(require("pathe/utils"));
|
|
701
718
|
init_paths();
|
|
702
|
-
noExtension = (
|
|
719
|
+
noExtension = (path10) => Path3.join(Path3.dirname(path10), Pathe2.filename(path10));
|
|
703
720
|
}
|
|
704
721
|
});
|
|
705
722
|
|
|
@@ -795,34 +812,41 @@ var init_node_adapter = __esm({
|
|
|
795
812
|
});
|
|
796
813
|
|
|
797
814
|
// vite/resolve-file-url.ts
|
|
798
|
-
var
|
|
815
|
+
var path4;
|
|
799
816
|
var init_resolve_file_url = __esm({
|
|
800
817
|
"vite/resolve-file-url.ts"() {
|
|
801
818
|
"use strict";
|
|
802
|
-
|
|
803
|
-
|
|
819
|
+
path4 = __toESM(require("path"));
|
|
820
|
+
init_vite();
|
|
804
821
|
}
|
|
805
822
|
});
|
|
806
823
|
|
|
807
824
|
// vite/styles.ts
|
|
808
|
-
var
|
|
825
|
+
var path5, import_react_router, cssFileRegExp, cssModulesRegExp;
|
|
809
826
|
var init_styles = __esm({
|
|
810
827
|
"vite/styles.ts"() {
|
|
811
828
|
"use strict";
|
|
812
|
-
|
|
829
|
+
path5 = __toESM(require("path"));
|
|
813
830
|
import_react_router = require("react-router");
|
|
814
831
|
init_resolve_file_url();
|
|
832
|
+
init_vite();
|
|
815
833
|
cssFileRegExp = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/;
|
|
816
834
|
cssModulesRegExp = new RegExp(`\\.module${cssFileRegExp.source}`);
|
|
817
835
|
}
|
|
818
836
|
});
|
|
819
837
|
|
|
820
|
-
// vite/
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
838
|
+
// vite/virtual-module.ts
|
|
839
|
+
function create(name) {
|
|
840
|
+
let id = `virtual:react-router/${name}`;
|
|
841
|
+
return {
|
|
842
|
+
id,
|
|
843
|
+
resolvedId: `\0${id}`,
|
|
844
|
+
url: `/@id/__x00__${id}`
|
|
845
|
+
};
|
|
846
|
+
}
|
|
847
|
+
var init_virtual_module = __esm({
|
|
848
|
+
"vite/virtual-module.ts"() {
|
|
824
849
|
"use strict";
|
|
825
|
-
id = (name) => `virtual:react-router/${name}`;
|
|
826
850
|
}
|
|
827
851
|
});
|
|
828
852
|
|
|
@@ -844,14 +868,14 @@ var init_remove_exports = __esm({
|
|
|
844
868
|
});
|
|
845
869
|
|
|
846
870
|
// vite/with-props.ts
|
|
847
|
-
var import_dedent2,
|
|
871
|
+
var import_dedent2, vmod;
|
|
848
872
|
var init_with_props = __esm({
|
|
849
873
|
"vite/with-props.ts"() {
|
|
850
874
|
"use strict";
|
|
851
875
|
import_dedent2 = __toESM(require("dedent"));
|
|
852
876
|
init_babel();
|
|
853
|
-
|
|
854
|
-
|
|
877
|
+
init_virtual_module();
|
|
878
|
+
vmod = create("with-props");
|
|
855
879
|
}
|
|
856
880
|
});
|
|
857
881
|
|
|
@@ -861,7 +885,7 @@ async function resolveViteConfig({
|
|
|
861
885
|
mode,
|
|
862
886
|
root
|
|
863
887
|
}) {
|
|
864
|
-
let vite2 =
|
|
888
|
+
let vite2 = getVite();
|
|
865
889
|
let viteConfig = await vite2.resolveConfig(
|
|
866
890
|
{ mode, configFile, root },
|
|
867
891
|
"build",
|
|
@@ -911,17 +935,17 @@ async function loadPluginContext({
|
|
|
911
935
|
function findConfig(dir, basename2, extensions) {
|
|
912
936
|
for (let ext of extensions) {
|
|
913
937
|
let name = basename2 + ext;
|
|
914
|
-
let file =
|
|
938
|
+
let file = path6.join(dir, name);
|
|
915
939
|
if (fse.existsSync(file)) return file;
|
|
916
940
|
}
|
|
917
941
|
return void 0;
|
|
918
942
|
}
|
|
919
|
-
var import_node_crypto,
|
|
943
|
+
var import_node_crypto, path6, url, fse, babel, import_react_router2, import_es_module_lexer, import_jsesc, import_picocolors3, virtualHmrRuntime, virtualInjectHmrRuntime, virtual, getServerBuildDirectory, defaultEntriesDir, defaultEntries, REACT_REFRESH_HEADER;
|
|
920
944
|
var init_plugin = __esm({
|
|
921
945
|
"vite/plugin.ts"() {
|
|
922
946
|
"use strict";
|
|
923
947
|
import_node_crypto = require("crypto");
|
|
924
|
-
|
|
948
|
+
path6 = __toESM(require("path"));
|
|
925
949
|
url = __toESM(require("url"));
|
|
926
950
|
fse = __toESM(require("fs-extra"));
|
|
927
951
|
babel = __toESM(require("@babel/core"));
|
|
@@ -934,33 +958,35 @@ var init_plugin = __esm({
|
|
|
934
958
|
init_babel();
|
|
935
959
|
init_node_adapter();
|
|
936
960
|
init_styles();
|
|
937
|
-
|
|
961
|
+
init_virtual_module();
|
|
938
962
|
init_resolve_file_url();
|
|
939
963
|
init_combine_urls();
|
|
940
964
|
init_remove_exports();
|
|
941
|
-
|
|
965
|
+
init_vite();
|
|
942
966
|
init_config();
|
|
943
967
|
init_with_props();
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
968
|
+
virtualHmrRuntime = create("hmr-runtime");
|
|
969
|
+
virtualInjectHmrRuntime = create("inject-hmr-runtime");
|
|
970
|
+
virtual = {
|
|
971
|
+
serverBuild: create("server-build"),
|
|
972
|
+
serverManifest: create("server-manifest"),
|
|
973
|
+
browserManifest: create("browser-manifest")
|
|
974
|
+
};
|
|
975
|
+
getServerBuildDirectory = (ctx) => path6.join(
|
|
950
976
|
ctx.reactRouterConfig.buildDirectory,
|
|
951
977
|
"server",
|
|
952
978
|
...ctx.serverBundleBuildConfig ? [ctx.serverBundleBuildConfig.serverBundleId] : []
|
|
953
979
|
);
|
|
954
|
-
defaultEntriesDir =
|
|
955
|
-
|
|
980
|
+
defaultEntriesDir = path6.resolve(
|
|
981
|
+
path6.dirname(require.resolve("@react-router/dev/package.json")),
|
|
956
982
|
"dist",
|
|
957
983
|
"config",
|
|
958
984
|
"defaults"
|
|
959
985
|
);
|
|
960
|
-
defaultEntries = fse.readdirSync(defaultEntriesDir).map((filename3) =>
|
|
986
|
+
defaultEntries = fse.readdirSync(defaultEntriesDir).map((filename3) => path6.join(defaultEntriesDir, filename3));
|
|
961
987
|
invariant(defaultEntries.length > 0, "No default entries found");
|
|
962
988
|
REACT_REFRESH_HEADER = `
|
|
963
|
-
import RefreshRuntime from "${
|
|
989
|
+
import RefreshRuntime from "${virtualHmrRuntime.id}";
|
|
964
990
|
|
|
965
991
|
const inWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;
|
|
966
992
|
let prevRefreshReg;
|
|
@@ -979,21 +1005,7 @@ if (import.meta.hot && !inWebWorker) {
|
|
|
979
1005
|
RefreshRuntime.register(type, __SOURCE__ + " " + id)
|
|
980
1006
|
};
|
|
981
1007
|
window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
|
|
982
|
-
}`.
|
|
983
|
-
REACT_REFRESH_FOOTER = `
|
|
984
|
-
if (import.meta.hot && !inWebWorker) {
|
|
985
|
-
window.$RefreshReg$ = prevRefreshReg;
|
|
986
|
-
window.$RefreshSig$ = prevRefreshSig;
|
|
987
|
-
RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {
|
|
988
|
-
RefreshRuntime.registerExportsForReactRefresh(__SOURCE__, currentExports);
|
|
989
|
-
import.meta.hot.accept((nextExports) => {
|
|
990
|
-
if (!nextExports) return;
|
|
991
|
-
__ROUTE_ID__ && window.__reactRouterRouteModuleUpdates.set(__ROUTE_ID__, nextExports);
|
|
992
|
-
const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate(currentExports, nextExports, __ACCEPT_EXPORTS__);
|
|
993
|
-
if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);
|
|
994
|
-
});
|
|
995
|
-
});
|
|
996
|
-
}`.trim();
|
|
1008
|
+
}`.replaceAll("\n", "");
|
|
997
1009
|
}
|
|
998
1010
|
});
|
|
999
1011
|
|
|
@@ -1043,8 +1055,8 @@ __export(build_exports, {
|
|
|
1043
1055
|
});
|
|
1044
1056
|
function getAddressableRoutes(routes2) {
|
|
1045
1057
|
let nonAddressableIds = /* @__PURE__ */ new Set();
|
|
1046
|
-
for (let
|
|
1047
|
-
let route = routes2[
|
|
1058
|
+
for (let id in routes2) {
|
|
1059
|
+
let route = routes2[id];
|
|
1048
1060
|
if (route.index) {
|
|
1049
1061
|
invariant(
|
|
1050
1062
|
route.parentId,
|
|
@@ -1053,7 +1065,7 @@ function getAddressableRoutes(routes2) {
|
|
|
1053
1065
|
nonAddressableIds.add(route.parentId);
|
|
1054
1066
|
}
|
|
1055
1067
|
if (typeof route.path !== "string" && !route.index) {
|
|
1056
|
-
nonAddressableIds.add(
|
|
1068
|
+
nonAddressableIds.add(id);
|
|
1057
1069
|
}
|
|
1058
1070
|
}
|
|
1059
1071
|
return Object.values(routes2).filter(
|
|
@@ -1084,12 +1096,12 @@ async function getServerBuilds(ctx) {
|
|
|
1084
1096
|
let { normalizePath } = await import("vite");
|
|
1085
1097
|
let resolvedAppDirectory = import_node_path2.default.resolve(rootDirectory, appDirectory);
|
|
1086
1098
|
let rootRelativeRoutes = Object.fromEntries(
|
|
1087
|
-
Object.entries(routes2).map(([
|
|
1099
|
+
Object.entries(routes2).map(([id, route]) => {
|
|
1088
1100
|
let filePath = import_node_path2.default.join(resolvedAppDirectory, route.file);
|
|
1089
1101
|
let rootRelativeFilePath = normalizePath(
|
|
1090
1102
|
import_node_path2.default.relative(rootDirectory, filePath)
|
|
1091
1103
|
);
|
|
1092
|
-
return [
|
|
1104
|
+
return [id, { ...route, file: rootRelativeFilePath }];
|
|
1093
1105
|
})
|
|
1094
1106
|
);
|
|
1095
1107
|
let buildManifest = {
|
|
@@ -1190,7 +1202,7 @@ async function build(root, {
|
|
|
1190
1202
|
sourcemapClient,
|
|
1191
1203
|
sourcemapServer
|
|
1192
1204
|
}) {
|
|
1193
|
-
await
|
|
1205
|
+
await preloadVite();
|
|
1194
1206
|
let viteConfig = await resolveViteConfig({ configFile, mode, root });
|
|
1195
1207
|
const ctx = await extractPluginContext(viteConfig);
|
|
1196
1208
|
if (!ctx) {
|
|
@@ -1200,7 +1212,7 @@ async function build(root, {
|
|
|
1200
1212
|
process.exit(1);
|
|
1201
1213
|
}
|
|
1202
1214
|
let { reactRouterConfig } = ctx;
|
|
1203
|
-
let vite2 =
|
|
1215
|
+
let vite2 = getVite();
|
|
1204
1216
|
async function viteBuild({
|
|
1205
1217
|
ssr,
|
|
1206
1218
|
serverBundleBuildConfig
|
|
@@ -1257,7 +1269,7 @@ var init_build = __esm({
|
|
|
1257
1269
|
init_plugin();
|
|
1258
1270
|
init_config();
|
|
1259
1271
|
init_invariant();
|
|
1260
|
-
|
|
1272
|
+
init_vite();
|
|
1261
1273
|
}
|
|
1262
1274
|
});
|
|
1263
1275
|
|
|
@@ -1278,8 +1290,8 @@ async function dev(root, {
|
|
|
1278
1290
|
port,
|
|
1279
1291
|
strictPort
|
|
1280
1292
|
}) {
|
|
1281
|
-
await
|
|
1282
|
-
let vite2 =
|
|
1293
|
+
await preloadVite();
|
|
1294
|
+
let vite2 = getVite();
|
|
1283
1295
|
let server = await vite2.createServer({
|
|
1284
1296
|
root,
|
|
1285
1297
|
mode,
|
|
@@ -1319,7 +1331,7 @@ var init_dev = __esm({
|
|
|
1319
1331
|
"vite/dev.ts"() {
|
|
1320
1332
|
"use strict";
|
|
1321
1333
|
import_picocolors6 = __toESM(require("picocolors"));
|
|
1322
|
-
|
|
1334
|
+
init_vite();
|
|
1323
1335
|
init_profiler();
|
|
1324
1336
|
}
|
|
1325
1337
|
});
|
|
@@ -1330,7 +1342,7 @@ var import_semver = __toESM(require("semver"));
|
|
|
1330
1342
|
var import_picocolors8 = __toESM(require("picocolors"));
|
|
1331
1343
|
|
|
1332
1344
|
// cli/commands.ts
|
|
1333
|
-
var
|
|
1345
|
+
var path9 = __toESM(require("path"));
|
|
1334
1346
|
var import_fs_extra2 = __toESM(require("fs-extra"));
|
|
1335
1347
|
var import_package_json2 = __toESM(require("@npmcli/package-json"));
|
|
1336
1348
|
var import_exit_hook = __toESM(require("exit-hook"));
|
|
@@ -1416,7 +1428,7 @@ function transpile(tsx, options = {}) {
|
|
|
1416
1428
|
// cli/commands.ts
|
|
1417
1429
|
init_profiler();
|
|
1418
1430
|
init_typegen();
|
|
1419
|
-
|
|
1431
|
+
init_vite();
|
|
1420
1432
|
async function routes(reactRouterRoot, flags = {}) {
|
|
1421
1433
|
let ctx = await loadPluginContext({
|
|
1422
1434
|
root: reactRouterRoot,
|
|
@@ -1488,14 +1500,14 @@ async function generateEntry(entry, reactRouterRoot, flags = {}) {
|
|
|
1488
1500
|
console.error(import_picocolors7.default.red(`No default server entry detected.`));
|
|
1489
1501
|
return;
|
|
1490
1502
|
}
|
|
1491
|
-
let defaultsDirectory =
|
|
1492
|
-
|
|
1503
|
+
let defaultsDirectory = path9.resolve(
|
|
1504
|
+
path9.dirname(require.resolve("@react-router/dev/package.json")),
|
|
1493
1505
|
"dist",
|
|
1494
1506
|
"config",
|
|
1495
1507
|
"defaults"
|
|
1496
1508
|
);
|
|
1497
|
-
let defaultEntryClient =
|
|
1498
|
-
let defaultEntryServer =
|
|
1509
|
+
let defaultEntryClient = path9.resolve(defaultsDirectory, "entry.client.tsx");
|
|
1510
|
+
let defaultEntryServer = path9.resolve(
|
|
1499
1511
|
defaultsDirectory,
|
|
1500
1512
|
`entry.server.node.tsx`
|
|
1501
1513
|
);
|
|
@@ -1504,7 +1516,7 @@ async function generateEntry(entry, reactRouterRoot, flags = {}) {
|
|
|
1504
1516
|
let useTypeScript = flags.typescript ?? true;
|
|
1505
1517
|
let outputExtension = useTypeScript ? "tsx" : "jsx";
|
|
1506
1518
|
let outputEntry = `${entry}.${outputExtension}`;
|
|
1507
|
-
let outputFile2 =
|
|
1519
|
+
let outputFile2 = path9.resolve(appDirectory, outputEntry);
|
|
1508
1520
|
if (!useTypeScript) {
|
|
1509
1521
|
let javascript = transpile(contents, {
|
|
1510
1522
|
cwd: rootDirectory,
|
|
@@ -1516,7 +1528,7 @@ async function generateEntry(entry, reactRouterRoot, flags = {}) {
|
|
|
1516
1528
|
}
|
|
1517
1529
|
console.log(
|
|
1518
1530
|
import_picocolors7.default.blue(
|
|
1519
|
-
`Entry file ${entry} created at ${
|
|
1531
|
+
`Entry file ${entry} created at ${path9.relative(
|
|
1520
1532
|
rootDirectory,
|
|
1521
1533
|
outputFile2
|
|
1522
1534
|
)}.`
|
|
@@ -1525,10 +1537,10 @@ async function generateEntry(entry, reactRouterRoot, flags = {}) {
|
|
|
1525
1537
|
}
|
|
1526
1538
|
async function checkForEntry(rootDirectory, appDirectory, entries2) {
|
|
1527
1539
|
for (let entry of entries2) {
|
|
1528
|
-
let entryPath =
|
|
1540
|
+
let entryPath = path9.resolve(appDirectory, entry);
|
|
1529
1541
|
let exists = await import_fs_extra2.default.pathExists(entryPath);
|
|
1530
1542
|
if (exists) {
|
|
1531
|
-
let relative8 =
|
|
1543
|
+
let relative8 = path9.relative(rootDirectory, entryPath);
|
|
1532
1544
|
console.error(import_picocolors7.default.red(`Entry file ${relative8} already exists.`));
|
|
1533
1545
|
return process.exit(1);
|
|
1534
1546
|
}
|
|
@@ -1547,8 +1559,8 @@ async function createClientEntry(rootDirectory, appDirectory, inputFile) {
|
|
|
1547
1559
|
async function typegen(root, flags) {
|
|
1548
1560
|
root ??= process.cwd();
|
|
1549
1561
|
if (flags.watch) {
|
|
1550
|
-
await
|
|
1551
|
-
const vite2 =
|
|
1562
|
+
await preloadVite();
|
|
1563
|
+
const vite2 = getVite();
|
|
1552
1564
|
const logger = vite2.createLogger("info", { prefix: "[react-router]" });
|
|
1553
1565
|
await watch(root, { logger });
|
|
1554
1566
|
await new Promise(() => {
|
package/dist/config.js
CHANGED
package/dist/routes.js
CHANGED