@react-router/node 7.0.0-pre.5 → 7.0.0

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 CHANGED
@@ -1,51 +1,11 @@
1
- # `@remix-run/node`
1
+ # `@react-router/node`
2
2
 
3
- ## 7.0.0-pre.5
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies:
8
- - `react-router@7.0.0-pre.5`
9
-
10
- ## 7.0.0-pre.4
11
-
12
- ### Patch Changes
13
-
14
- - Updated dependencies:
15
- - `react-router@7.0.0-pre.4`
16
-
17
- ## 7.0.0-pre.3
18
-
19
- ### Patch Changes
20
-
21
- - Updated dependencies:
22
- - `react-router@7.0.0-pre.3`
23
-
24
- ## 7.0.0-pre.2
25
-
26
- ### Major Changes
27
-
28
- - Drop support for Node 18, update minimum Node vestion to 20 ([#12171](https://github.com/remix-run/react-router/pull/12171))
29
-
30
- - Remove `installGlobals()` as this should no longer be necessary
31
-
32
- ### Patch Changes
33
-
34
- - Updated dependencies:
35
- - `react-router@7.0.0-pre.2`
36
-
37
- ## 7.0.0-pre.1
38
-
39
- ### Patch Changes
40
-
41
- - Updated dependencies:
42
- - `react-router@7.0.0-pre.1`
43
-
44
- ## 7.0.0-pre.0
3
+ ## 7.0.0
45
4
 
46
5
  ### Major Changes
47
6
 
48
7
  - Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
8
+
49
9
  - For Remix consumers migrating to React Router, the `crypto` global from the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) is now required when using cookie and session APIs. This means that the following APIs are provided from `react-router` rather than platform-specific packages: ([#11837](https://github.com/remix-run/react-router/pull/11837))
50
10
 
51
11
  - `createCookie`
@@ -63,14 +23,22 @@
63
23
  - `createMemorySessionStorageFactory`
64
24
 
65
25
  - update minimum node version to 18 ([#11690](https://github.com/remix-run/react-router/pull/11690))
26
+
66
27
  - Add `exports` field to all packages ([#11675](https://github.com/remix-run/react-router/pull/11675))
28
+
67
29
  - node package no longer re-exports from react-router ([#11702](https://github.com/remix-run/react-router/pull/11702))
68
30
 
31
+ - Drop support for Node 18, update minimum Node vestion to 20 ([#12171](https://github.com/remix-run/react-router/pull/12171))
32
+
33
+ - Remove `installGlobals()` as this should no longer be necessary
34
+
69
35
  ### Patch Changes
70
36
 
37
+ - Add createRequestListener to @react-router/node ([#12319](https://github.com/remix-run/react-router/pull/12319))
71
38
  - Remove unstable upload handler. ([#12015](https://github.com/remix-run/react-router/pull/12015))
39
+ - Remove unneeded dependency on @web3-storage/multipart-parser ([#12274](https://github.com/remix-run/react-router/pull/12274))
72
40
  - Updated dependencies:
73
- - `react-router@7.0.0-pre.0`
41
+ - `react-router@7.0.0`
74
42
 
75
43
  ## 2.9.0
76
44
 
package/dist/index.d.mts CHANGED
@@ -1,6 +1,21 @@
1
- import { SessionData, SessionStorage, SessionIdStorageStrategy } from 'react-router';
1
+ import { RequestListener } from 'node:http';
2
+ import { ServerBuild, AppLoadContext, SessionData, SessionStorage, SessionIdStorageStrategy } from 'react-router';
3
+ import { ClientAddress } from '@mjackson/node-fetch-server';
2
4
  import { Writable, Readable } from 'node:stream';
3
5
 
6
+ interface RequestListenerOptions {
7
+ build: ServerBuild | (() => ServerBuild | Promise<ServerBuild>);
8
+ getLoadContext?: (request: Request, client: ClientAddress) => AppLoadContext | Promise<AppLoadContext>;
9
+ mode?: string;
10
+ }
11
+ /**
12
+ * Creates a request listener that handles requests using Node's built-in HTTP server.
13
+ *
14
+ * @param options Options for creating a request listener.
15
+ * @returns A request listener that can be used with `http.createServer`.
16
+ */
17
+ declare function createRequestListener(options: RequestListenerOptions): RequestListener;
18
+
4
19
  interface FileSessionStorageOptions {
5
20
  /**
6
21
  * The Cookie used to store the session id on the client, or options used
@@ -29,4 +44,4 @@ declare const createReadableStreamFromReadable: (source: Readable & {
29
44
  readableHighWaterMark?: number;
30
45
  }) => ReadableStream<Uint8Array>;
31
46
 
32
- export { createFileSessionStorage, createReadableStreamFromReadable, readableStreamToString, writeAsyncIterableToWritable, writeReadableStreamToWritable };
47
+ export { type RequestListenerOptions, createFileSessionStorage, createReadableStreamFromReadable, createRequestListener, readableStreamToString, writeAsyncIterableToWritable, writeReadableStreamToWritable };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,21 @@
1
- import { SessionData, SessionStorage, SessionIdStorageStrategy } from 'react-router';
1
+ import { RequestListener } from 'node:http';
2
+ import { ServerBuild, AppLoadContext, SessionData, SessionStorage, SessionIdStorageStrategy } from 'react-router';
3
+ import { ClientAddress } from '@mjackson/node-fetch-server';
2
4
  import { Writable, Readable } from 'node:stream';
3
5
 
6
+ interface RequestListenerOptions {
7
+ build: ServerBuild | (() => ServerBuild | Promise<ServerBuild>);
8
+ getLoadContext?: (request: Request, client: ClientAddress) => AppLoadContext | Promise<AppLoadContext>;
9
+ mode?: string;
10
+ }
11
+ /**
12
+ * Creates a request listener that handles requests using Node's built-in HTTP server.
13
+ *
14
+ * @param options Options for creating a request listener.
15
+ * @returns A request listener that can be used with `http.createServer`.
16
+ */
17
+ declare function createRequestListener(options: RequestListenerOptions): RequestListener;
18
+
4
19
  interface FileSessionStorageOptions {
5
20
  /**
6
21
  * The Cookie used to store the session id on the client, or options used
@@ -29,4 +44,4 @@ declare const createReadableStreamFromReadable: (source: Readable & {
29
44
  readableHighWaterMark?: number;
30
45
  }) => ReadableStream<Uint8Array>;
31
46
 
32
- export { createFileSessionStorage, createReadableStreamFromReadable, readableStreamToString, writeAsyncIterableToWritable, writeReadableStreamToWritable };
47
+ export { type RequestListenerOptions, createFileSessionStorage, createReadableStreamFromReadable, createRequestListener, readableStreamToString, writeAsyncIterableToWritable, writeReadableStreamToWritable };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/node v7.0.0-pre.5
2
+ * @react-router/node v7.0.0
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -42,21 +42,33 @@ var react_router_node_exports = {};
42
42
  __export(react_router_node_exports, {
43
43
  createFileSessionStorage: () => createFileSessionStorage,
44
44
  createReadableStreamFromReadable: () => createReadableStreamFromReadable,
45
+ createRequestListener: () => createRequestListener,
45
46
  readableStreamToString: () => readableStreamToString,
46
47
  writeAsyncIterableToWritable: () => writeAsyncIterableToWritable,
47
48
  writeReadableStreamToWritable: () => writeReadableStreamToWritable
48
49
  });
49
50
  module.exports = __toCommonJS(react_router_node_exports);
50
51
 
52
+ // server.ts
53
+ var import_react_router = require("react-router");
54
+ var import_node_fetch_server = require("@mjackson/node-fetch-server");
55
+ function createRequestListener(options) {
56
+ let handleRequest = (0, import_react_router.createRequestHandler)(options.build, options.mode);
57
+ return (0, import_node_fetch_server.createRequestListener)(async (request, client) => {
58
+ let loadContext = await options.getLoadContext?.(request, client);
59
+ return handleRequest(request, loadContext);
60
+ });
61
+ }
62
+
51
63
  // sessions/fileStorage.ts
52
64
  var import_node_fs = require("fs");
53
65
  var path = __toESM(require("path"));
54
- var import_react_router = require("react-router");
66
+ var import_react_router2 = require("react-router");
55
67
  function createFileSessionStorage({
56
68
  cookie,
57
69
  dir
58
70
  }) {
59
- return (0, import_react_router.createSessionStorage)({
71
+ return (0, import_react_router2.createSessionStorage)({
60
72
  cookie,
61
73
  async createData(data, expires) {
62
74
  let content = JSON.stringify({ data, expires });
@@ -244,6 +256,7 @@ var StreamPump = class {
244
256
  0 && (module.exports = {
245
257
  createFileSessionStorage,
246
258
  createReadableStreamFromReadable,
259
+ createRequestListener,
247
260
  readableStreamToString,
248
261
  writeAsyncIterableToWritable,
249
262
  writeReadableStreamToWritable
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/node v7.0.0-pre.5
2
+ * @react-router/node v7.0.0
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -9,6 +9,17 @@
9
9
  * @license MIT
10
10
  */
11
11
 
12
+ // server.ts
13
+ import { createRequestHandler } from "react-router";
14
+ import { createRequestListener as createRequestListener_ } from "@mjackson/node-fetch-server";
15
+ function createRequestListener(options) {
16
+ let handleRequest = createRequestHandler(options.build, options.mode);
17
+ return createRequestListener_(async (request, client) => {
18
+ let loadContext = await options.getLoadContext?.(request, client);
19
+ return handleRequest(request, loadContext);
20
+ });
21
+ }
22
+
12
23
  // sessions/fileStorage.ts
13
24
  import { promises as fsp } from "node:fs";
14
25
  import * as path from "node:path";
@@ -204,6 +215,7 @@ var StreamPump = class {
204
215
  export {
205
216
  createFileSessionStorage,
206
217
  createReadableStreamFromReadable,
218
+ createRequestListener,
207
219
  readableStreamToString,
208
220
  writeAsyncIterableToWritable,
209
221
  writeReadableStreamToWritable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-router/node",
3
- "version": "7.0.0-pre.5",
3
+ "version": "7.0.0",
4
4
  "description": "Node.js platform abstractions for React Router",
5
5
  "bugs": {
6
6
  "url": "https://github.com/remix-run/react-router/issues"
@@ -65,7 +65,7 @@
65
65
  }
66
66
  },
67
67
  "dependencies": {
68
- "@web3-storage/multipart-parser": "^1.0.0",
68
+ "@mjackson/node-fetch-server": "^0.2.0",
69
69
  "source-map-support": "^0.5.21",
70
70
  "stream-slice": "^0.1.2",
71
71
  "undici": "^6.19.2"
@@ -75,11 +75,11 @@
75
75
  "tsup": "^8.3.0",
76
76
  "typescript": "^5.1.6",
77
77
  "wireit": "0.14.9",
78
- "react-router": "7.0.0-pre.5"
78
+ "react-router": "7.0.0"
79
79
  },
80
80
  "peerDependencies": {
81
81
  "typescript": "^5.1.0",
82
- "react-router": "7.0.0-pre.5"
82
+ "react-router": "7.0.0"
83
83
  },
84
84
  "peerDependenciesMeta": {
85
85
  "typescript": {