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