New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@react-router/node

Package Overview
Dependencies
Maintainers
1
Versions
685
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-router/node - npm Package Compare versions

Comparing version
0.0.0-experimental-2eb7164
to
0.0.0-experimental-303421afa
+76
-0
CHANGELOG.md
# `@react-router/node`
## 7.9.6
### Patch Changes
- Updated dependencies:
- `react-router@7.9.6`
## 7.9.5
### Patch Changes
- Updated dependencies:
- `react-router@7.9.5`
## 7.9.4
### Patch Changes
- Validate format of incoming session ids in `createFileSessionStorage` ([#14426](https://github.com/remix-run/react-router/pull/14426))
- Updated dependencies:
- `react-router@7.9.4`
## 7.9.3
### Patch Changes
- Updated dependencies:
- `react-router@7.9.3`
## 7.9.2
### Patch Changes
- Updated dependencies:
- `react-router@7.9.2`
## 7.9.1
### Patch Changes
- Updated dependencies:
- `react-router@7.9.1`
## 7.9.0
### Minor Changes
- Stabilize middleware and context APIs. ([#14215](https://github.com/remix-run/react-router/pull/14215))
We have removed the `unstable_` prefix from the following APIs and they are now considered stable and ready for production use:
- [`RouterContextProvider`](https://reactrouter.com/api/utils/RouterContextProvider)
- [`createContext`](https://reactrouter.com/api/utils/createContext)
- `createBrowserRouter` [`getContext`](https://reactrouter.com/api/data-routers/createBrowserRouter#optsgetcontext) option
- `<HydratedRouter>` [`getContext`](https://reactrouter.com/api/framework-routers/HydratedRouter#getcontext) prop
Please see the [Middleware Docs](https://reactrouter.com/how-to/middleware), the [Middleware RFC](https://github.com/remix-run/remix/discussions/7642), and the [Client-side Context RFC](https://github.com/remix-run/react-router/discussions/9856) for more information.
### Patch Changes
- Updated dependencies:
- `react-router@7.9.0`
## 7.8.2
### Patch Changes
- Updated dependencies:
- `react-router@7.8.2`
## 7.8.1
### Patch Changes
- Updated dependencies:
- `react-router@7.8.1`
## 7.8.0

@@ -4,0 +80,0 @@

+3
-3
import { RequestListener } from 'node:http';
import { ServerBuild, UNSAFE_MiddlewareEnabled, unstable_RouterContextProvider, AppLoadContext, SessionData, SessionIdStorageStrategy, SessionStorage } from 'react-router';
import { ServerBuild, UNSAFE_MiddlewareEnabled, RouterContextProvider, AppLoadContext, SessionData, SessionIdStorageStrategy, SessionStorage } from 'react-router';
import { ClientAddress } from '@mjackson/node-fetch-server';

@@ -9,3 +9,3 @@ import { Readable, Writable } from 'node:stream';

build: ServerBuild | (() => ServerBuild | Promise<ServerBuild>);
getLoadContext?: (request: Request, client: ClientAddress) => UNSAFE_MiddlewareEnabled extends true ? MaybePromise<unstable_RouterContextProvider> : MaybePromise<AppLoadContext>;
getLoadContext?: (request: Request, client: ClientAddress) => UNSAFE_MiddlewareEnabled extends true ? MaybePromise<RouterContextProvider> : MaybePromise<AppLoadContext>;
mode?: string;

@@ -38,3 +38,3 @@ }

*
* @see https://remix.run/utils/sessions#createfilesessionstorage-node
* @see https://api.reactrouter.com/v7/functions/_react_router_node.createFileSessionStorage
*/

@@ -41,0 +41,0 @@ declare function createFileSessionStorage<Data = SessionData, FlashData = Data>({ cookie, dir, }: FileSessionStorageOptions): SessionStorage<Data, FlashData>;

import { RequestListener } from 'node:http';
import { ServerBuild, UNSAFE_MiddlewareEnabled, unstable_RouterContextProvider, AppLoadContext, SessionData, SessionIdStorageStrategy, SessionStorage } from 'react-router';
import { ServerBuild, UNSAFE_MiddlewareEnabled, RouterContextProvider, AppLoadContext, SessionData, SessionIdStorageStrategy, SessionStorage } from 'react-router';
import { ClientAddress } from '@mjackson/node-fetch-server';

@@ -9,3 +9,3 @@ import { Readable, Writable } from 'node:stream';

build: ServerBuild | (() => ServerBuild | Promise<ServerBuild>);
getLoadContext?: (request: Request, client: ClientAddress) => UNSAFE_MiddlewareEnabled extends true ? MaybePromise<unstable_RouterContextProvider> : MaybePromise<AppLoadContext>;
getLoadContext?: (request: Request, client: ClientAddress) => UNSAFE_MiddlewareEnabled extends true ? MaybePromise<RouterContextProvider> : MaybePromise<AppLoadContext>;
mode?: string;

@@ -38,3 +38,3 @@ }

*
* @see https://remix.run/utils/sessions#createfilesessionstorage-node
* @see https://api.reactrouter.com/v7/functions/_react_router_node.createFileSessionStorage
*/

@@ -41,0 +41,0 @@ declare function createFileSessionStorage<Data = SessionData, FlashData = Data>({ cookie, dir, }: FileSessionStorageOptions): SessionStorage<Data, FlashData>;

/**
* @react-router/node v0.0.0-experimental-2eb7164
* @react-router/node v0.0.0-experimental-303421afa
*

@@ -80,2 +80,5 @@ * Copyright (c) Remix Software Inc.

let file = getFile(dir, id);
if (!file) {
throw new Error("Error generating session");
}
await import_node_fs.promises.mkdir(path.dirname(file), { recursive: true });

@@ -92,2 +95,5 @@ await import_node_fs.promises.writeFile(file, content, { encoding: "utf-8", flag: "wx" });

let file = getFile(dir, id);
if (!file) {
return null;
}
let content = JSON.parse(await import_node_fs.promises.readFile(file, "utf-8"));

@@ -109,2 +115,5 @@ let data = content.data;

let file = getFile(dir, id);
if (!file) {
return;
}
await import_node_fs.promises.mkdir(path.dirname(file), { recursive: true });

@@ -117,4 +126,8 @@ await import_node_fs.promises.writeFile(file, content, "utf-8");

}
let file = getFile(dir, id);
if (!file) {
return;
}
try {
await import_node_fs.promises.unlink(getFile(dir, id));
await import_node_fs.promises.unlink(file);
} catch (error) {

@@ -127,2 +140,5 @@ if (error.code !== "ENOENT") throw error;

function getFile(dir, id) {
if (!/^[0-9a-f]{16}$/i.test(id)) {
return null;
}
return path.join(dir, id.slice(0, 4), id.slice(4));

@@ -129,0 +145,0 @@ }

/**
* @react-router/node v0.0.0-experimental-2eb7164
* @react-router/node v0.0.0-experimental-303421afa
*

@@ -40,2 +40,5 @@ * Copyright (c) Remix Software Inc.

let file = getFile(dir, id);
if (!file) {
throw new Error("Error generating session");
}
await fsp.mkdir(path.dirname(file), { recursive: true });

@@ -52,2 +55,5 @@ await fsp.writeFile(file, content, { encoding: "utf-8", flag: "wx" });

let file = getFile(dir, id);
if (!file) {
return null;
}
let content = JSON.parse(await fsp.readFile(file, "utf-8"));

@@ -69,2 +75,5 @@ let data = content.data;

let file = getFile(dir, id);
if (!file) {
return;
}
await fsp.mkdir(path.dirname(file), { recursive: true });

@@ -77,4 +86,8 @@ await fsp.writeFile(file, content, "utf-8");

}
let file = getFile(dir, id);
if (!file) {
return;
}
try {
await fsp.unlink(getFile(dir, id));
await fsp.unlink(file);
} catch (error) {

@@ -87,2 +100,5 @@ if (error.code !== "ENOENT") throw error;

function getFile(dir, id) {
if (!/^[0-9a-f]{16}$/i.test(id)) {
return null;
}
return path.join(dir, id.slice(0, 4), id.slice(4));

@@ -89,0 +105,0 @@ }

{
"name": "@react-router/node",
"version": "0.0.0-experimental-2eb7164",
"version": "0.0.0-experimental-303421afa",
"description": "Node.js platform abstractions for React Router",

@@ -55,7 +55,7 @@ "bugs": {

"wireit": "0.14.9",
"react-router": "0.0.0-experimental-2eb7164"
"react-router": "0.0.0-experimental-303421afa"
},
"peerDependencies": {
"typescript": "^5.1.0",
"react-router": "0.0.0-experimental-2eb7164"
"react-router": "0.0.0-experimental-303421afa"
},

@@ -62,0 +62,0 @@ "peerDependenciesMeta": {