@react-router/dev 0.0.0-experimental-479e73b7b → 0.0.0-experimental-320d16107
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/dist/{build-BZ8ZGxs4.js → build-BjhBRtJF.js} +2 -2
- package/dist/cli/index.js +15 -41
- package/dist/config/defaults/entry.client.jsx +12 -0
- package/dist/config/defaults/entry.server.node.jsx +82 -0
- package/dist/config/defaults/entry.server.web.jsx +53 -0
- package/dist/config.js +1 -1
- package/dist/{dev-6WvjrRMD.js → dev-D6YWyrYG.js} +2 -2
- package/dist/{routes-D18xtDiC.js → routes-C3LbSDhy.js} +1 -1
- package/dist/routes.js +2 -2
- package/dist/{typegen-DSDdbRfE.js → typegen-CroVRFny.js} +2 -2
- package/dist/vite.js +5 -5
- package/package.json +9 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v0.0.0-experimental-
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-320d16107
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
|
-
import { _ as getVite, v as preloadVite } from "./typegen-
|
|
11
|
+
import { _ as getVite, v as preloadVite } from "./typegen-CroVRFny.js";
|
|
12
12
|
//#region vite/build.ts
|
|
13
13
|
async function build(root, viteBuildOptions) {
|
|
14
14
|
await preloadVite();
|
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-320d16107
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
6
6
|
*
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @license MIT
|
|
11
11
|
*/
|
|
12
|
-
import { _ as getVite, l as hasNodeDependency, n as watch, t as run$1, u as loadConfig, v as preloadVite } from "../typegen-
|
|
12
|
+
import { _ as getVite, l as hasNodeDependency, n as watch, t as run$1, u as loadConfig, v as preloadVite } from "../typegen-CroVRFny.js";
|
|
13
13
|
import { createRequire } from "node:module";
|
|
14
14
|
import { parseArgs } from "node:util";
|
|
15
15
|
import semver from "semver";
|
|
@@ -23,10 +23,6 @@ import { readPackageJSON } from "pkg-types";
|
|
|
23
23
|
import "react-router";
|
|
24
24
|
import developmentConditionEnabled from "#development-condition-enabled";
|
|
25
25
|
import { spawn } from "node:child_process";
|
|
26
|
-
import * as babel from "@babel/core";
|
|
27
|
-
import babelPluginSyntaxJSX from "@babel/plugin-syntax-jsx";
|
|
28
|
-
import babelPresetTypeScript from "@babel/preset-typescript";
|
|
29
|
-
import prettier from "prettier";
|
|
30
26
|
import process$1 from "node:process";
|
|
31
27
|
import packageJson from "@react-router/dev/package.json" with { type: "json" };
|
|
32
28
|
//#region config/format.ts
|
|
@@ -72,24 +68,6 @@ function formatRoutesAsJsx(routeManifest) {
|
|
|
72
68
|
return output;
|
|
73
69
|
}
|
|
74
70
|
//#endregion
|
|
75
|
-
//#region cli/useJavascript.ts
|
|
76
|
-
async function transpile(tsx, options = {}) {
|
|
77
|
-
let mjs = babel.transformSync(tsx, {
|
|
78
|
-
compact: false,
|
|
79
|
-
cwd: options.cwd,
|
|
80
|
-
filename: options.filename,
|
|
81
|
-
plugins: [babelPluginSyntaxJSX],
|
|
82
|
-
presets: [[babelPresetTypeScript, { jsx: "preserve" }]],
|
|
83
|
-
retainLines: true
|
|
84
|
-
});
|
|
85
|
-
if (!mjs || !mjs.code) throw new Error("Could not parse TypeScript");
|
|
86
|
-
/**
|
|
87
|
-
* Babel's `compact` and `retainLines` options are both bad at formatting code.
|
|
88
|
-
* Use Prettier for nicer formatting.
|
|
89
|
-
*/
|
|
90
|
-
return await prettier.format(mjs.code, { parser: "babel" });
|
|
91
|
-
}
|
|
92
|
-
//#endregion
|
|
93
71
|
//#region vite/profiler.ts
|
|
94
72
|
const getSession = () => global.__reactRouter_profile_session;
|
|
95
73
|
const start = async (callback) => {
|
|
@@ -180,7 +158,7 @@ async function routes(rootDirectory, flags = {}) {
|
|
|
180
158
|
}
|
|
181
159
|
async function build(root, options = {}) {
|
|
182
160
|
root = resolveRootDirectory(root, options);
|
|
183
|
-
let { build } = await import("../build-
|
|
161
|
+
let { build } = await import("../build-BjhBRtJF.js");
|
|
184
162
|
if (options.profile) await start();
|
|
185
163
|
try {
|
|
186
164
|
await build(root, options);
|
|
@@ -190,7 +168,7 @@ async function build(root, options = {}) {
|
|
|
190
168
|
}
|
|
191
169
|
async function dev(root, options = {}) {
|
|
192
170
|
if (developmentConditionEnabled) {
|
|
193
|
-
let { dev } = await import("../dev-
|
|
171
|
+
let { dev } = await import("../dev-D6YWyrYG.js");
|
|
194
172
|
if (options.profile) await start();
|
|
195
173
|
exitHook(() => stop(console.info));
|
|
196
174
|
root = resolveRootDirectory(root, options);
|
|
@@ -273,20 +251,13 @@ async function generateEntry(entry, rootDirectory, flags = {}) {
|
|
|
273
251
|
await copyFile(defaultEntry, outputFile);
|
|
274
252
|
} else {
|
|
275
253
|
let pkgJson = await readPackageJSON(rootDirectory);
|
|
276
|
-
let
|
|
277
|
-
let
|
|
278
|
-
let
|
|
279
|
-
let contents =
|
|
280
|
-
let
|
|
281
|
-
let outputEntry = `${entry}.${useTypeScript ? "tsx" : "jsx"}`;
|
|
254
|
+
let outputExtension = flags.typescript ?? true ? "tsx" : "jsx";
|
|
255
|
+
let defaultEntryClient = path$1.resolve(defaultsDirectory, `entry.client.${outputExtension}`);
|
|
256
|
+
let defaultEntryServer = path$1.resolve(defaultsDirectory, hasNodeDependency(pkgJson.dependencies) && !configResult.value.future.unstable_enableNodeReadableStream ? `entry.server.node.${outputExtension}` : `entry.server.web.${outputExtension}`);
|
|
257
|
+
let contents = entry === "entry.server" ? await createServerEntry(rootDirectory, appDirectory, defaultEntryServer) : await createClientEntry(rootDirectory, appDirectory, defaultEntryClient);
|
|
258
|
+
let outputEntry = `${entry}.${outputExtension}`;
|
|
282
259
|
outputFile = path$1.resolve(appDirectory, outputEntry);
|
|
283
|
-
|
|
284
|
-
let javascript = await transpile(contents, {
|
|
285
|
-
cwd: rootDirectory,
|
|
286
|
-
filename: isServerEntry ? defaultEntryServer : defaultEntryClient
|
|
287
|
-
});
|
|
288
|
-
await writeFile(outputFile, javascript, "utf-8");
|
|
289
|
-
} else await writeFile(outputFile, contents, "utf-8");
|
|
260
|
+
await writeFile(outputFile, contents, "utf-8");
|
|
290
261
|
}
|
|
291
262
|
console.log(colors.blue(`Entry file ${entry} created at ${path$1.relative(rootDirectory, outputFile)}.`));
|
|
292
263
|
}
|
|
@@ -379,7 +350,7 @@ ${colors.blueBright("react-router")}
|
|
|
379
350
|
--json Print the routes as JSON
|
|
380
351
|
\`reveal\` Options:
|
|
381
352
|
--config, -c Use specified Vite config file (string)
|
|
382
|
-
--no-typescript Generate plain JavaScript files
|
|
353
|
+
--no-typescript Generate plain JavaScript files (deprecated; will be removed in v9)
|
|
383
354
|
\`typegen\` Options:
|
|
384
355
|
--watch Automatically regenerate types whenever route config (\`routes.ts\`) or route modules change
|
|
385
356
|
|
|
@@ -516,7 +487,10 @@ async function run(argv = process.argv.slice(2), { isMain = false } = {}) {
|
|
|
516
487
|
return;
|
|
517
488
|
}
|
|
518
489
|
flags.interactive = flags.interactive ?? isMain;
|
|
519
|
-
if (values["no-typescript"])
|
|
490
|
+
if (values["no-typescript"]) {
|
|
491
|
+
console.warn(colors.yellow("The --no-typescript flag is deprecated and will be removed in React Router v9."));
|
|
492
|
+
flags.typescript = false;
|
|
493
|
+
}
|
|
520
494
|
switch (input[0]) {
|
|
521
495
|
case "routes":
|
|
522
496
|
await routes(input[1], flags);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { startTransition, StrictMode } from "react";
|
|
2
|
+
import { hydrateRoot } from "react-dom/client";
|
|
3
|
+
import { HydratedRouter } from "react-router/dom";
|
|
4
|
+
|
|
5
|
+
startTransition(() => {
|
|
6
|
+
hydrateRoot(
|
|
7
|
+
document,
|
|
8
|
+
<StrictMode>
|
|
9
|
+
<HydratedRouter />
|
|
10
|
+
</StrictMode>,
|
|
11
|
+
);
|
|
12
|
+
});
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { PassThrough } from "node:stream";
|
|
2
|
+
|
|
3
|
+
import { createReadableStreamFromReadable } from "@react-router/node";
|
|
4
|
+
import { ServerRouter } from "react-router";
|
|
5
|
+
import { isbot } from "isbot";
|
|
6
|
+
|
|
7
|
+
import { renderToPipeableStream } from "react-dom/server";
|
|
8
|
+
|
|
9
|
+
export const streamTimeout = 5_000;
|
|
10
|
+
|
|
11
|
+
export default function handleRequest(
|
|
12
|
+
request,
|
|
13
|
+
responseStatusCode,
|
|
14
|
+
responseHeaders,
|
|
15
|
+
routerContext,
|
|
16
|
+
loadContext,
|
|
17
|
+
) {
|
|
18
|
+
// https://httpwg.org/specs/rfc9110.html#HEAD
|
|
19
|
+
if (request.method.toUpperCase() === "HEAD") {
|
|
20
|
+
return new Response(null, {
|
|
21
|
+
status: responseStatusCode,
|
|
22
|
+
headers: responseHeaders,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
let shellRendered = false;
|
|
28
|
+
let userAgent = request.headers.get("user-agent");
|
|
29
|
+
|
|
30
|
+
// Ensure requests from bots and SPA Mode renders wait for all content to load before responding
|
|
31
|
+
// https://react.dev/reference/react-dom/server/renderToPipeableStream#waiting-for-all-content-to-load-for-crawlers-and-static-generation
|
|
32
|
+
let readyOption =
|
|
33
|
+
(userAgent && isbot(userAgent)) || routerContext.isSpaMode
|
|
34
|
+
? "onAllReady"
|
|
35
|
+
: "onShellReady";
|
|
36
|
+
|
|
37
|
+
// Abort the rendering stream after the `streamTimeout` so it has time to
|
|
38
|
+
// flush down the rejected boundaries
|
|
39
|
+
let timeoutId = setTimeout(() => abort(), streamTimeout + 1000);
|
|
40
|
+
|
|
41
|
+
const { pipe, abort } = renderToPipeableStream(
|
|
42
|
+
<ServerRouter context={routerContext} url={request.url} />,
|
|
43
|
+
{
|
|
44
|
+
[readyOption]() {
|
|
45
|
+
shellRendered = true;
|
|
46
|
+
const body = new PassThrough({
|
|
47
|
+
final(callback) {
|
|
48
|
+
// Clear the timeout to prevent retaining the closure and memory leak
|
|
49
|
+
clearTimeout(timeoutId);
|
|
50
|
+
timeoutId = undefined;
|
|
51
|
+
callback();
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
const stream = createReadableStreamFromReadable(body);
|
|
55
|
+
|
|
56
|
+
responseHeaders.set("Content-Type", "text/html");
|
|
57
|
+
|
|
58
|
+
pipe(body);
|
|
59
|
+
|
|
60
|
+
resolve(
|
|
61
|
+
new Response(stream, {
|
|
62
|
+
headers: responseHeaders,
|
|
63
|
+
status: responseStatusCode,
|
|
64
|
+
}),
|
|
65
|
+
);
|
|
66
|
+
},
|
|
67
|
+
onShellError(error) {
|
|
68
|
+
reject(error);
|
|
69
|
+
},
|
|
70
|
+
onError(error) {
|
|
71
|
+
responseStatusCode = 500;
|
|
72
|
+
// Log streaming rendering errors from inside the shell. Don't log
|
|
73
|
+
// errors encountered during initial shell rendering since they'll
|
|
74
|
+
// reject and get logged in handleDocumentRequest.
|
|
75
|
+
if (shellRendered) {
|
|
76
|
+
console.error(error);
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ServerRouter } from "react-router";
|
|
2
|
+
import { isbot } from "isbot";
|
|
3
|
+
import { renderToReadableStream } from "react-dom/server";
|
|
4
|
+
|
|
5
|
+
export const streamTimeout = 5_000;
|
|
6
|
+
|
|
7
|
+
export default async function handleRequest(
|
|
8
|
+
request,
|
|
9
|
+
responseStatusCode,
|
|
10
|
+
responseHeaders,
|
|
11
|
+
routerContext,
|
|
12
|
+
_loadContext,
|
|
13
|
+
) {
|
|
14
|
+
// https://httpwg.org/specs/rfc9110.html#HEAD
|
|
15
|
+
if (request.method.toUpperCase() === "HEAD") {
|
|
16
|
+
return new Response(null, {
|
|
17
|
+
status: responseStatusCode,
|
|
18
|
+
headers: responseHeaders,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
let shellRendered = false;
|
|
23
|
+
let userAgent = request.headers.get("user-agent");
|
|
24
|
+
|
|
25
|
+
const body = await renderToReadableStream(
|
|
26
|
+
<ServerRouter context={routerContext} url={request.url} />,
|
|
27
|
+
{
|
|
28
|
+
signal: AbortSignal.timeout(streamTimeout + 1000),
|
|
29
|
+
onError(error) {
|
|
30
|
+
responseStatusCode = 500;
|
|
31
|
+
// Log streaming rendering errors from inside the shell. Don't log
|
|
32
|
+
// errors encountered during initial shell rendering since they'll
|
|
33
|
+
// reject and get logged in handleDocumentRequest.
|
|
34
|
+
if (shellRendered) {
|
|
35
|
+
console.error(error);
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
);
|
|
40
|
+
shellRendered = true;
|
|
41
|
+
|
|
42
|
+
// Ensure requests from bots and SPA Mode renders wait for all content to load before responding
|
|
43
|
+
// https://react.dev/reference/react-dom/server/renderToPipeableStream#waiting-for-all-content-to-load-for-crawlers-and-static-generation
|
|
44
|
+
if ((userAgent && isbot(userAgent)) || routerContext.isSpaMode) {
|
|
45
|
+
await body.allReady;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
responseHeaders.set("Content-Type", "text/html");
|
|
49
|
+
return new Response(body, {
|
|
50
|
+
headers: responseHeaders,
|
|
51
|
+
status: responseStatusCode,
|
|
52
|
+
});
|
|
53
|
+
}
|
package/dist/config.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v0.0.0-experimental-
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-320d16107
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
|
-
import { _ as getVite, v as preloadVite } from "./typegen-
|
|
11
|
+
import { _ as getVite, v as preloadVite } from "./typegen-CroVRFny.js";
|
|
12
12
|
import { n as start, r as stop, t as getSession } from "./cli/index.js";
|
|
13
13
|
import colors from "picocolors";
|
|
14
14
|
//#region vite/dev.ts
|
package/dist/routes.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v0.0.0-experimental-
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-320d16107
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
|
-
import { a as prefix, i as layout, n as getAppDirectory, o as relative, r as index, s as route } from "./routes-
|
|
11
|
+
import { a as prefix, i as layout, n as getAppDirectory, o as relative, r as index, s as route } from "./routes-C3LbSDhy.js";
|
|
12
12
|
export { getAppDirectory, index, layout, prefix, relative, route };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/dev v0.0.0-experimental-
|
|
2
|
+
* @react-router/dev v0.0.0-experimental-320d16107
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
|
-
import { c as setAppDirectory, l as validateRouteConfig, t as configRoutesToRouteManifest, u as invariant } from "./routes-
|
|
11
|
+
import { c as setAppDirectory, l as validateRouteConfig, t as configRoutesToRouteManifest, u as invariant } from "./routes-C3LbSDhy.js";
|
|
12
12
|
import { createRequire } from "node:module";
|
|
13
13
|
import colors from "picocolors";
|
|
14
14
|
import fs from "node:fs";
|
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-320d16107
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
|
-
import { _ as getVite, a as t, c as createConfigLoader, d as resolveEntryFiles, f as resolveRSCEntryFiles, g as getUserBuildRollupOptions, h as defineOptimizeDepsCompilerOptions, i as parse$1, l as hasNodeDependency, m as defineCompilerOptions, n as watch, o as traverse, p as ssrExternals, r as generate, s as configRouteToBranchRoute, v as preloadVite } from "./typegen-
|
|
12
|
-
import { u as invariant } from "./routes-
|
|
11
|
+
import { _ as getVite, a as t, c as createConfigLoader, d as resolveEntryFiles, f as resolveRSCEntryFiles, g as getUserBuildRollupOptions, h as defineOptimizeDepsCompilerOptions, i as parse$1, l as hasNodeDependency, m as defineCompilerOptions, n as watch, o as traverse, p as ssrExternals, r as generate, s as configRouteToBranchRoute, v as preloadVite } from "./typegen-CroVRFny.js";
|
|
12
|
+
import { u as invariant } from "./routes-C3LbSDhy.js";
|
|
13
13
|
import { createRequire } from "node:module";
|
|
14
14
|
import colors from "picocolors";
|
|
15
15
|
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
@@ -21,9 +21,9 @@ import { createRequestHandler, matchRoutes, unstable_setDevServerHooks } from "r
|
|
|
21
21
|
import * as Path from "pathe";
|
|
22
22
|
import path$1, { join } from "pathe";
|
|
23
23
|
import pick from "lodash/pick.js";
|
|
24
|
-
import * as babel from "@babel/core";
|
|
25
24
|
import { createHash } from "node:crypto";
|
|
26
25
|
import * as url from "node:url";
|
|
26
|
+
import * as babel from "@babel/core";
|
|
27
27
|
import { createRequest, sendResponse } from "@remix-run/node-fetch-server";
|
|
28
28
|
import { init, parse } from "es-module-lexer";
|
|
29
29
|
import jsesc from "jsesc";
|
|
@@ -2724,7 +2724,7 @@ const nodeRequire = createRequire(import.meta.url);
|
|
|
2724
2724
|
function hasDependency({ name, rootDirectory }) {
|
|
2725
2725
|
try {
|
|
2726
2726
|
return Boolean(nodeRequire.resolve(name, { paths: [rootDirectory] }));
|
|
2727
|
-
} catch
|
|
2727
|
+
} catch {
|
|
2728
2728
|
return false;
|
|
2729
2729
|
}
|
|
2730
2730
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-router/dev",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.0-experimental-
|
|
4
|
+
"version": "0.0.0-experimental-320d16107",
|
|
5
5
|
"description": "Dev tools and CLI for React Router",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"react",
|
|
@@ -88,8 +88,6 @@
|
|
|
88
88
|
"@babel/core": "^7.29.7",
|
|
89
89
|
"@babel/generator": "^7.29.7",
|
|
90
90
|
"@babel/parser": "^7.29.7",
|
|
91
|
-
"@babel/plugin-syntax-jsx": "^7.29.7",
|
|
92
|
-
"@babel/preset-typescript": "^7.29.7",
|
|
93
91
|
"@babel/traverse": "^7.29.7",
|
|
94
92
|
"@babel/types": "^7.29.7",
|
|
95
93
|
"@remix-run/node-fetch-server": "^0.13.3",
|
|
@@ -105,14 +103,15 @@
|
|
|
105
103
|
"pathe": "^2.0.3",
|
|
106
104
|
"picocolors": "^1.1.1",
|
|
107
105
|
"pkg-types": "^2.3.1",
|
|
108
|
-
"prettier": "^3.8.3",
|
|
109
106
|
"react-refresh": "^0.18.0",
|
|
110
107
|
"semver": "^7.8.1",
|
|
111
108
|
"tinyglobby": "^0.2.16",
|
|
112
109
|
"valibot": "^1.4.1",
|
|
113
|
-
"@react-router/node": "0.0.0-experimental-
|
|
110
|
+
"@react-router/node": "0.0.0-experimental-320d16107"
|
|
114
111
|
},
|
|
115
112
|
"devDependencies": {
|
|
113
|
+
"@babel/plugin-syntax-jsx": "^7.29.7",
|
|
114
|
+
"@babel/preset-typescript": "^7.29.7",
|
|
116
115
|
"@types/babel__core": "^7.20.5",
|
|
117
116
|
"@types/babel__generator": "^7.27.0",
|
|
118
117
|
"@types/babel__traverse": "^7.28.0",
|
|
@@ -127,13 +126,14 @@
|
|
|
127
126
|
"esbuild-register": "^3.6.0",
|
|
128
127
|
"execa": "9.6.1",
|
|
129
128
|
"fast-glob": "3.3.3",
|
|
129
|
+
"prettier": "^3.8.3",
|
|
130
130
|
"tsdown": "^0.22.0",
|
|
131
131
|
"typescript": "^6.0.3",
|
|
132
132
|
"vite": "^7.0.0",
|
|
133
133
|
"wireit": "0.14.12",
|
|
134
134
|
"wrangler": "^4.95.0",
|
|
135
|
-
"@react-router/serve": "0.0.0-experimental-
|
|
136
|
-
"react-router": "^0.0.0-experimental-
|
|
135
|
+
"@react-router/serve": "0.0.0-experimental-320d16107",
|
|
136
|
+
"react-router": "^0.0.0-experimental-320d16107"
|
|
137
137
|
},
|
|
138
138
|
"peerDependencies": {
|
|
139
139
|
"@vitejs/plugin-rsc": "~0.5.26",
|
|
@@ -141,8 +141,8 @@
|
|
|
141
141
|
"typescript": "^5.1.0 || ^6.0.0 || ^7.0.0",
|
|
142
142
|
"vite": "^7.0.0 || ^8.0.0",
|
|
143
143
|
"wrangler": "^4.0.0",
|
|
144
|
-
"@react-router/serve": "^0.0.0-experimental-
|
|
145
|
-
"react-router": "^0.0.0-experimental-
|
|
144
|
+
"@react-router/serve": "^0.0.0-experimental-320d16107",
|
|
145
|
+
"react-router": "^0.0.0-experimental-320d16107"
|
|
146
146
|
},
|
|
147
147
|
"peerDependenciesMeta": {
|
|
148
148
|
"@vitejs/plugin-rsc": {
|