🚀 Socket Launch Week 🚀 Day 1: Introducing .NET Support in Socket.Learn More
Socket
Sign inDemoInstall
Socket

@react-router/serve

Package Overview
Dependencies
Maintainers
1
Versions
320
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-router/serve - npm Package Compare versions

Comparing version

to
0.0.0-experimental-4cf800728

5

bin.js
#!/usr/bin/env node
// If not already set, default `NODE_ENV=production` so React loads the proper
// version in it's CJS entry script
process.env.NODE_ENV = process.env.NODE_ENV ?? "production";
require("./dist/cli");

138

CHANGELOG.md

@@ -1,8 +0,134 @@

# `@remix-run/serve`
# `@react-router/serve`
## 7.0.0-pre.0
## 7.5.1
### Patch Changes
- Updated dependencies:
- `react-router@7.5.1`
- `@react-router/node@7.5.1`
- `@react-router/express@7.5.1`
## 7.5.0
### Patch Changes
- Updated dependencies:
- `react-router@7.5.0`
- `@react-router/node@7.5.0`
- `@react-router/express@7.5.0`
## 7.4.1
### Patch Changes
- Updated dependencies:
- `react-router@7.4.1`
- `@react-router/express@7.4.1`
- `@react-router/node@7.4.1`
## 7.4.0
### Patch Changes
- Updated dependencies:
- `react-router@7.4.0`
- `@react-router/node@7.4.0`
- `@react-router/express@7.4.0`
## 7.3.0
### Patch Changes
- Updated dependencies:
- `react-router@7.3.0`
- `@react-router/express@7.3.0`
- `@react-router/node@7.3.0`
## 7.2.0
### Patch Changes
- Updated dependencies:
- `react-router@7.2.0`
- `@react-router/node@7.2.0`
- `@react-router/express@7.2.0`
## 7.1.5
### Patch Changes
- Updated dependencies:
- `react-router@7.1.5`
- `@react-router/node@7.1.5`
- `@react-router/express@7.1.5`
## 7.1.4
### Patch Changes
- Updated dependencies:
- `react-router@7.1.4`
- `@react-router/node@7.1.4`
- `@react-router/express@7.1.4`
## 7.1.3
### Patch Changes
- Updated dependencies:
- `react-router@7.1.3`
- `@react-router/express@7.1.3`
- `@react-router/node@7.1.3`
## 7.1.2
### Patch Changes
- Updated dependencies:
- `react-router@7.1.2`
- `@react-router/node@7.1.2`
- `@react-router/express@7.1.2`
## 7.1.1
### Patch Changes
- Updated dependencies:
- `react-router@7.1.1`
- `@react-router/express@7.1.1`
- `@react-router/node@7.1.1`
## 7.1.0
### Patch Changes
- Updated dependencies:
- `react-router@7.1.0`
- `@react-router/node@7.1.0`
- `@react-router/express@7.1.0`
## 7.0.2
### Patch Changes
- Updated dependencies:
- `react-router@7.0.2`
- `@react-router/node@7.0.2`
- `@react-router/express@7.0.2`
## 7.0.1
### Patch Changes
- Updated dependencies:
- `react-router@7.0.1`
- `@react-router/express@7.0.1`
- `@react-router/node@7.0.1`
## 7.0.0
### Major Changes
- Remove single_fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
- Remove single fetch future flag. ([#11522](https://github.com/remix-run/react-router/pull/11522))
- update minimum node version to 18 ([#11690](https://github.com/remix-run/react-router/pull/11690))

@@ -22,5 +148,5 @@ - Add `exports` field to all packages ([#11675](https://github.com/remix-run/react-router/pull/11675))

- Updated dependencies:
- `react-router@7.0.0-pre.0`
- `@react-router/express@7.0.0-pre.0`
- `@react-router/node@7.0.0-pre.0`
- `react-router@7.0.0`
- `@react-router/express@7.0.0`
- `@react-router/node@7.0.0`

@@ -27,0 +153,0 @@ ## 2.9.0

2

dist/cli.d.ts

@@ -1,1 +0,1 @@

import "@react-router/node/install";
#!/usr/bin/env node

@@ -0,3 +1,4 @@

#!/usr/bin/env node
/**
* @react-router/serve v0.0.0-experimental-4b431ca46
* @react-router/serve v0.0.0-experimental-4cf800728
*

@@ -11,40 +12,48 @@ * Copyright (c) Remix Software Inc.

*/
'use strict';
"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
require('@react-router/node/install');
var fs = require('node:fs');
var os = require('node:os');
var path = require('node:path');
var url = require('node:url');
var node = require('@react-router/node');
var express$1 = require('@react-router/express');
var compression = require('compression');
var express = require('express');
var morgan = require('morgan');
var sourceMapSupport = require('source-map-support');
var getPort = require('get-port');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
var os__default = /*#__PURE__*/_interopDefaultLegacy(os);
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
var url__default = /*#__PURE__*/_interopDefaultLegacy(url);
var compression__default = /*#__PURE__*/_interopDefaultLegacy(compression);
var express__default = /*#__PURE__*/_interopDefaultLegacy(express);
var morgan__default = /*#__PURE__*/_interopDefaultLegacy(morgan);
var sourceMapSupport__default = /*#__PURE__*/_interopDefaultLegacy(sourceMapSupport);
var getPort__default = /*#__PURE__*/_interopDefaultLegacy(getPort);
// cli.ts
var import_node_fs = __toESM(require("fs"));
var import_node_os = __toESM(require("os"));
var import_node_path = __toESM(require("path"));
var import_node_url = __toESM(require("url"));
var import_express = require("@react-router/express");
var import_compression = __toESM(require("compression"));
var import_express2 = __toESM(require("express"));
var import_morgan = __toESM(require("morgan"));
var import_source_map_support = __toESM(require("source-map-support"));
var import_get_port = __toESM(require("get-port"));
process.env.NODE_ENV = process.env.NODE_ENV ?? "production";
sourceMapSupport__default["default"].install({
retrieveSourceMap: function (source) {
import_source_map_support.default.install({
retrieveSourceMap: function(source) {
let match = source.startsWith("file://");
if (match) {
let filePath = url__default["default"].fileURLToPath(source);
let filePath = import_node_url.default.fileURLToPath(source);
let sourceMapPath = `${filePath}.map`;
if (fs__default["default"].existsSync(sourceMapPath)) {
if (import_node_fs.default.existsSync(sourceMapPath)) {
return {
url: source,
map: fs__default["default"].readFileSync(sourceMapPath, "utf8")
map: import_node_fs.default.readFileSync(sourceMapPath, "utf8")
};

@@ -56,14 +65,11 @@ }

});
node.installGlobals();
run();
function parseNumber(raw) {
if (raw === undefined) return undefined;
if (raw === void 0) return void 0;
let maybe = Number(raw);
if (Number.isNaN(maybe)) return undefined;
if (Number.isNaN(maybe)) return void 0;
return maybe;
}
async function run() {
let port = parseNumber(process.env.PORT) ?? (await getPort__default["default"]({
port: 3000
}));
let port = parseNumber(process.env.PORT) ?? await (0, import_get_port.default)({ port: 3e3 });
let buildPathArg = process.argv[2];

@@ -75,41 +81,38 @@ if (!buildPathArg) {

}
let buildPath = path__default["default"].resolve(buildPathArg);
let build = await import(url__default["default"].pathToFileURL(buildPath).href);
let buildPath = import_node_path.default.resolve(buildPathArg);
let build = await import(import_node_url.default.pathToFileURL(buildPath).href);
let onListen = () => {
var _Object$values$flat$f;
let address = process.env.HOST || ((_Object$values$flat$f = Object.values(os__default["default"].networkInterfaces()).flat().find(ip => String(ip === null || ip === void 0 ? void 0 : ip.family).includes("4") && !(ip !== null && ip !== void 0 && ip.internal))) === null || _Object$values$flat$f === void 0 ? void 0 : _Object$values$flat$f.address);
let address = process.env.HOST || Object.values(import_node_os.default.networkInterfaces()).flat().find((ip) => String(ip?.family).includes("4") && !ip?.internal)?.address;
if (!address) {
console.log(`[react-router-serve] http://localhost:${port}`);
} else {
console.log(`[react-router-serve] http://localhost:${port} (http://${address}:${port})`);
console.log(
`[react-router-serve] http://localhost:${port} (http://${address}:${port})`
);
}
};
let app = express__default["default"]();
let app = (0, import_express2.default)();
app.disable("x-powered-by");
app.use(compression__default["default"]());
app.use(path__default["default"].posix.join(build.publicPath, "assets"), express__default["default"].static(path__default["default"].join(build.assetsBuildDirectory, "assets"), {
immutable: true,
maxAge: "1y"
}));
app.use(build.publicPath, express__default["default"].static(build.assetsBuildDirectory, {
// Don't redirect directory index.html request to include a trailing slash
redirect: false,
setHeaders: function (res, path) {
if (path.endsWith(".data")) {
res.set("Content-Type", "text/x-turbo");
}
}
}));
app.use(express__default["default"].static("public", {
maxAge: "1h"
}));
app.use(morgan__default["default"]("tiny"));
app.all("*", express$1.createRequestHandler({
build,
mode: process.env.NODE_ENV
}));
app.use((0, import_compression.default)());
app.use(
import_node_path.default.posix.join(build.publicPath, "assets"),
import_express2.default.static(import_node_path.default.join(build.assetsBuildDirectory, "assets"), {
immutable: true,
maxAge: "1y"
})
);
app.use(build.publicPath, import_express2.default.static(build.assetsBuildDirectory));
app.use(import_express2.default.static("public", { maxAge: "1h" }));
app.use((0, import_morgan.default)("tiny"));
app.all(
"*",
(0, import_express.createRequestHandler)({
build,
mode: process.env.NODE_ENV
})
);
let server = process.env.HOST ? app.listen(port, process.env.HOST, onListen) : app.listen(port, onListen);
["SIGTERM", "SIGINT"].forEach(signal => {
process.once(signal, () => server === null || server === void 0 ? void 0 : server.close(console.error));
["SIGTERM", "SIGINT"].forEach((signal) => {
process.once(signal, () => server?.close(console.error));
});
}
{
"name": "@react-router/serve",
"version": "0.0.0-experimental-4b431ca46",
"version": "0.0.0-experimental-4cf800728",
"description": "Production application server for React Router",

@@ -20,2 +20,16 @@ "bugs": {

},
"wireit": {
"build": {
"command": "tsup",
"files": [
"*.ts",
"bin.js",
"tsconfig.json",
"package.json"
],
"output": [
"dist/**"
]
}
},
"dependencies": {

@@ -27,7 +41,7 @@ "compression": "^1.7.4",

"source-map-support": "^0.5.21",
"@react-router/express": "0.0.0-experimental-4b431ca46",
"@react-router/node": "0.0.0-experimental-4b431ca46"
"@react-router/express": "0.0.0-experimental-4cf800728",
"@react-router/node": "0.0.0-experimental-4cf800728"
},
"peerDependencies": {
"react-router": "0.0.0-experimental-4b431ca46"
"react-router": "0.0.0-experimental-4cf800728"
},

@@ -38,6 +52,9 @@ "devDependencies": {

"@types/morgan": "^1.9.2",
"@types/source-map-support": "^0.5.6"
"@types/source-map-support": "^0.5.6",
"tsup": "^8.3.0",
"typescript": "^5.1.6",
"wireit": "0.14.9"
},
"engines": {
"node": ">=18.0.0"
"node": ">=20.0.0"
},

@@ -52,4 +69,5 @@ "files": [

"scripts": {
"tsc": "tsc"
"build": "wireit",
"typecheck": "tsc"
}
}

@@ -1,13 +0,5 @@

# Welcome to Remix!
Node.js application server for React Router
[Remix](https://remix.run) is a web framework that helps you build better websites with React.
To get started, open a new shell and run:
```sh
npx create-remix@latest
npm install @react-router/serve
```
Then follow the prompts you see in your terminal.
For more information about Remix, [visit remix.run](https://remix.run)!