@react-router/dev 0.0.0-experimental-ecd35cd60 → 0.0.0-experimental-49eef6a01

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/cli/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/cli/run.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/colors.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/config.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -232,11 +232,11 @@ async function resolveEntryFiles({
232
232
  throw new Error(`Could not determine server runtime. Please install @react-router/node, or provide a custom entry.server.tsx/jsx file in your app directory.`);
233
233
  }
234
234
  if (!deps["isbot"]) {
235
- console.log("adding `isbot` to your package.json, you should commit this change");
235
+ console.log("adding `isbot@5` to your package.json, you should commit this change");
236
236
  pkgJson.update({
237
237
  dependencies: {
238
238
  ...pkgJson.content.dependencies,
239
- isbot: "^4"
239
+ isbot: "^5"
240
240
  }
241
241
  });
242
242
  await pkgJson.save();
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * as cli from "./cli/index";
2
2
  export type { Manifest as AssetsManifest } from "./manifest";
3
3
  export type { BuildManifest, Preset, ServerBundlesFunction, VitePluginConfig, } from "./config";
4
- export { vitePlugin } from "./vite";
4
+ export { vitePlugin, cloudflareDevProxyVitePlugin } from "./vite";
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -14,8 +14,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
15
  var index = require('./cli/index.js');
16
16
  var index$1 = require('./vite/index.js');
17
+ var cloudflareDevProxy = require('./vite/cloudflare-dev-proxy.js');
17
18
 
18
19
 
19
20
 
20
21
  exports.cli = index;
21
22
  exports.vitePlugin = index$1.vitePlugin;
23
+ exports.cloudflareDevProxyVitePlugin = cloudflareDevProxy.cloudflareDevProxyVitePlugin;
package/dist/invariant.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -0,0 +1,15 @@
1
+ import { type AppLoadContext } from "react-router";
2
+ import { type Plugin } from "vite";
3
+ import { type GetPlatformProxyOptions, type PlatformProxy } from "wrangler";
4
+ type CfProperties = Record<string, unknown>;
5
+ type LoadContext<Env, Cf extends CfProperties> = {
6
+ cloudflare: Omit<PlatformProxy<Env, Cf>, "dispose">;
7
+ };
8
+ type GetLoadContext<Env, Cf extends CfProperties> = (args: {
9
+ request: Request;
10
+ context: LoadContext<Env, Cf>;
11
+ }) => AppLoadContext | Promise<AppLoadContext>;
12
+ export declare const cloudflareDevProxyVitePlugin: <Env, Cf extends CfProperties>({ getLoadContext, ...options }?: {
13
+ getLoadContext?: GetLoadContext<Env, Cf>;
14
+ } & GetPlatformProxyOptions) => Plugin;
15
+ export {};
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
+ *
4
+ * Copyright (c) Remix Software Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ 'use strict';
12
+
13
+ Object.defineProperty(exports, '__esModule', { value: true });
14
+
15
+ var reactRouter = require('react-router');
16
+ var wrangler = require('wrangler');
17
+ var nodeAdapter = require('./node-adapter.js');
18
+
19
+ let serverBuildId = "virtual:react-router/server-build";
20
+ const PLUGIN_NAME = "react-router-cloudflare-vite-dev-proxy";
21
+ const cloudflareDevProxyVitePlugin = ({
22
+ getLoadContext,
23
+ ...options
24
+ } = {}) => {
25
+ return {
26
+ name: PLUGIN_NAME,
27
+ config: () => ({
28
+ ssr: {
29
+ resolve: {
30
+ externalConditions: ["workerd", "worker"]
31
+ }
32
+ }
33
+ }),
34
+ configResolved: viteConfig => {
35
+ let pluginIndex = name => viteConfig.plugins.findIndex(plugin => plugin.name === name);
36
+ let reactRouterPluginIndex = pluginIndex("react-router");
37
+ if (reactRouterPluginIndex >= 0 && reactRouterPluginIndex < pluginIndex(PLUGIN_NAME)) {
38
+ throw new Error(`The "${PLUGIN_NAME}" plugin should be placed before the React Router plugin in your Vite config file`);
39
+ }
40
+ },
41
+ configureServer: async viteDevServer => {
42
+ // Do not include `dispose` in Cloudflare context
43
+ let {
44
+ dispose,
45
+ ...cloudflare
46
+ } = await wrangler.getPlatformProxy(options);
47
+ let context = {
48
+ cloudflare
49
+ };
50
+ return () => {
51
+ if (!viteDevServer.config.server.middlewareMode) {
52
+ viteDevServer.middlewares.use(async (nodeReq, nodeRes, next) => {
53
+ try {
54
+ let build = await viteDevServer.ssrLoadModule(serverBuildId);
55
+ let handler = reactRouter.createRequestHandler(build, "development");
56
+ let req = nodeAdapter.fromNodeRequest(nodeReq);
57
+ let loadContext = getLoadContext ? await getLoadContext({
58
+ request: req,
59
+ context
60
+ }) : context;
61
+ let res = await handler(req, loadContext);
62
+ await nodeAdapter.toNodeRequest(res, nodeRes);
63
+ } catch (error) {
64
+ next(error);
65
+ }
66
+ });
67
+ }
68
+ };
69
+ }
70
+ };
71
+ };
72
+
73
+ exports.cloudflareDevProxyVitePlugin = cloudflareDevProxyVitePlugin;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/vite/dev.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,2 +1,3 @@
1
1
  import type { ReactRouterVitePlugin } from "./plugin";
2
2
  export declare const vitePlugin: ReactRouterVitePlugin;
3
+ export { cloudflareDevProxyVitePlugin } from "./cloudflare-dev-proxy";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -12,6 +12,13 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
+ require('react-router');
16
+ require('wrangler');
17
+ require('node:events');
18
+ require('node:stream');
19
+ require('set-cookie-parser');
20
+ require('@react-router/node');
21
+
15
22
  const vitePlugin = (...args) => {
16
23
  let {
17
24
  reactRouterVitePlugin
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -510,7 +510,7 @@ const reactRouterVitePlugin = _config => {
510
510
  // This is only needed within this repo because these packages
511
511
  // are linked to a directory outside of node_modules so Vite
512
512
  // treats them as internal code by default.
513
- "react-router", "react-router-dom", "@react-router/dev", "@react-router/express", "@react-router/node", "@react-router/serve"] : undefined
513
+ "react-router", "react-router-dom", "@react-router/cloudflare", "@react-router/dev", "@react-router/express", "@react-router/node", "@react-router/serve"] : undefined
514
514
  },
515
515
  optimizeDeps: {
516
516
  include: [
@@ -1146,19 +1146,20 @@ async function handlePrerender(viteConfig, reactRouterConfig, serverBuildDirecto
1146
1146
  }
1147
1147
  await prerenderRoute(handler, path, clientBuildDirectory, reactRouterConfig, viteConfig, requestInit);
1148
1148
  }
1149
- async function prerenderData(handler, prerenderPath, clientBuildDirectory, reactRouterConfig, viteConfig, requestInit) {
1150
- let normalizedPath = `${reactRouterConfig.basename}${prerenderPath === "/" ? "/_root.data" : `${prerenderPath.replace(/\/$/, "")}.data`}`.replace(/\/\/+/g, "/");
1151
- let request = new Request(`http://localhost${normalizedPath}`, requestInit);
1152
- let response = await handler(request);
1153
- let data = await response.text();
1154
- validatePrerenderedResponse(response, data, "Prerender", normalizedPath);
1155
- // Write out the .data file
1156
- let outdir = path__namespace.relative(process.cwd(), clientBuildDirectory);
1157
- let outfile = path__namespace.join(outdir, normalizedPath.split("/").join(path__namespace.sep));
1158
- await fse__namespace.ensureDir(path__namespace.dirname(outfile));
1159
- await fse__namespace.outputFile(outfile, data);
1160
- viteConfig.logger.info(`Prerender: Generated ${colors__default["default"].bold(outfile)}`);
1161
- }
1149
+ await prerenderManifest(build, clientBuildDirectory, reactRouterConfig, viteConfig);
1150
+ }
1151
+ async function prerenderData(handler, prerenderPath, clientBuildDirectory, reactRouterConfig, viteConfig, requestInit) {
1152
+ let normalizedPath = `${reactRouterConfig.basename}${prerenderPath === "/" ? "/_root.data" : `${prerenderPath.replace(/\/$/, "")}.data`}`.replace(/\/\/+/g, "/");
1153
+ let request = new Request(`http://localhost${normalizedPath}`, requestInit);
1154
+ let response = await handler(request);
1155
+ let data = await response.text();
1156
+ validatePrerenderedResponse(response, data, "Prerender", normalizedPath);
1157
+ // Write out the .data file
1158
+ let outdir = path__namespace.relative(process.cwd(), clientBuildDirectory);
1159
+ let outfile = path__namespace.join(outdir, ...normalizedPath.split("/"));
1160
+ await fse__namespace.ensureDir(path__namespace.dirname(outfile));
1161
+ await fse__namespace.outputFile(outfile, data);
1162
+ viteConfig.logger.info(`Prerender: Generated ${colors__default["default"].bold(outfile)}`);
1162
1163
  }
1163
1164
  async function prerenderRoute(handler, prerenderPath, clientBuildDirectory, reactRouterConfig, viteConfig, requestInit) {
1164
1165
  let normalizedPath = `${reactRouterConfig.basename}${prerenderPath}/`.replace(/\/\/+/g, "/");
@@ -1176,6 +1177,18 @@ async function prerenderRoute(handler, prerenderPath, clientBuildDirectory, reac
1176
1177
  await fse__namespace.outputFile(outfile, html);
1177
1178
  viteConfig.logger.info(`Prerender: Generated ${colors__default["default"].bold(outfile)}`);
1178
1179
  }
1180
+ async function prerenderManifest(build, clientBuildDirectory, reactRouterConfig, viteConfig) {
1181
+ let normalizedPath = `${reactRouterConfig.basename}/__manifest`.replace(/\/\/+/g, "/");
1182
+ let outdir = path__namespace.relative(process.cwd(), clientBuildDirectory);
1183
+ let outfile = path__namespace.join(outdir, ...normalizedPath.split("/"));
1184
+ await fse__namespace.ensureDir(path__namespace.dirname(outfile));
1185
+ let manifestData = JSON.stringify({
1186
+ notFoundPaths: [],
1187
+ patches: build.assets.routes
1188
+ });
1189
+ await fse__namespace.outputFile(outfile, manifestData);
1190
+ viteConfig.logger.info(`Prerender: Generated ${colors__default["default"].bold(outfile)}`);
1191
+ }
1179
1192
  function validatePrerenderedResponse(response, html, prefix, path) {
1180
1193
  if (response.status !== 200) {
1181
1194
  throw new Error(`${prefix}: Received a ${response.status} status code from ` + `\`entry.server.tsx\` while prerendering the \`${path}\` ` + `path.\n${html}`);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/vite/vmod.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-ecd35cd60
2
+ * @react-router/dev v0.0.0-experimental-49eef6a01
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-router/dev",
3
- "version": "0.0.0-experimental-ecd35cd60",
3
+ "version": "0.0.0-experimental-49eef6a01",
4
4
  "description": "Dev tools and CLI for React Router",
5
5
  "homepage": "https://reactrouter.com",
6
6
  "bugs": {
@@ -14,6 +14,13 @@
14
14
  "license": "MIT",
15
15
  "main": "dist/index.js",
16
16
  "typings": "dist/index.d.ts",
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "default": "./dist/index.js"
21
+ },
22
+ "./package.json": "./package.json"
23
+ },
17
24
  "bin": {
18
25
  "react-router": "bin.js"
19
26
  },
@@ -43,7 +50,7 @@
43
50
  "react-refresh": "^0.14.0",
44
51
  "semver": "^7.3.7",
45
52
  "set-cookie-parser": "^2.6.0",
46
- "@react-router/node": "0.0.0-experimental-ecd35cd60"
53
+ "@react-router/node": "0.0.0-experimental-49eef6a01"
47
54
  },
48
55
  "devDependencies": {
49
56
  "@types/babel__core": "^7.20.5",
@@ -67,14 +74,16 @@
67
74
  "strip-ansi": "^6.0.1",
68
75
  "tiny-invariant": "^1.2.0",
69
76
  "vite": "^5.1.0",
70
- "react-router": "^0.0.0-experimental-ecd35cd60",
71
- "@react-router/serve": "0.0.0-experimental-ecd35cd60"
77
+ "wrangler": "^3.28.2",
78
+ "@react-router/serve": "0.0.0-experimental-49eef6a01",
79
+ "react-router": "^0.0.0-experimental-49eef6a01"
72
80
  },
73
81
  "peerDependencies": {
74
82
  "typescript": "^5.1.0",
75
83
  "vite": "^5.1.0",
76
- "@react-router/serve": "^0.0.0-experimental-ecd35cd60",
77
- "react-router": "^0.0.0-experimental-ecd35cd60"
84
+ "wrangler": "^3.28.2",
85
+ "@react-router/serve": "^0.0.0-experimental-49eef6a01",
86
+ "react-router": "^0.0.0-experimental-49eef6a01"
78
87
  },
79
88
  "peerDependenciesMeta": {
80
89
  "@react-router/serve": {
@@ -82,6 +91,9 @@
82
91
  },
83
92
  "typescript": {
84
93
  "optional": true
94
+ },
95
+ "wrangler": {
96
+ "optional": true
85
97
  }
86
98
  },
87
99
  "engines": {