Socket
Socket
Sign inDemoInstall

@miniflare/http-server

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@miniflare/http-server - npm Package Compare versions

Comparing version 2.0.0-next.3 to 2.0.0-rc.1

10

dist/src/index.d.ts

@@ -5,3 +5,2 @@ /// <reference types="node" />

import { Clock } from '@miniflare/shared';
import { Compatibility } from '@miniflare/shared';
import { CorePluginSignatures } from '@miniflare/core';

@@ -11,5 +10,5 @@ import http from 'http';

import { IncomingRequestCfProperties } from '@miniflare/core';
import { Log } from '@miniflare/shared';
import { MiniflareCore } from '@miniflare/core';
import { Plugin } from '@miniflare/shared';
import { PluginContext } from '@miniflare/shared';
import { Request as Request_2 } from '@miniflare/core';

@@ -19,3 +18,2 @@ import { RequestInfo as RequestInfo_2 } from 'undici';

import { SetupResult } from '@miniflare/shared';
import StandardWebSocket from 'ws';
import { URL as URL_2 } from 'url';

@@ -32,4 +30,2 @@

export declare function createWebSocketUpgradeListener<Plugins extends CorePluginSignatures>(mf: MiniflareCore<Plugins>, listener: RequestListener): WebSocketUpgradeListener;
export declare function getAccessibleHosts(ipv4?: boolean): string[];

@@ -79,3 +75,3 @@

readonly httpsEnabled: boolean;
constructor(log: Log, compat: Compatibility, options?: HTTPOptions, defaults?: HTTPPluginDefaults);
constructor(ctx: PluginContext, options?: HTTPOptions, defaults?: HTTPPluginDefaults);
getRequestMeta(req: http.IncomingMessage): Awaitable<RequestMeta>;

@@ -118,4 +114,2 @@ get httpsOptions(): ProcessedHTTPSOptions | undefined;

export declare type WebSocketUpgradeListener = (ws: StandardWebSocket, req: http.IncomingMessage) => void;
export { }

50

dist/src/index.js

@@ -57,3 +57,3 @@ var __defProp = Object.defineProperty;

var defaultCertRoot = path.resolve(".mf", "cert");
var defaultCfPath = path.resolve(".mf", "cf.json");
var defaultCfPath = path.resolve("node_modules", ".mf", "cf.json");
var defaultCfFetch = process.env.NODE_ENV !== "test";

@@ -96,4 +96,4 @@ var defaultCfFetchEndpoint = "https://workers.cloudflare.com/cf.json";

var HTTPPlugin = class extends Plugin {
constructor(log, compat, options, defaults = {}) {
super(log, compat);
constructor(ctx, options, defaults = {}) {
super(ctx);
this.defaults = defaults;

@@ -160,5 +160,5 @@ this.assignOptions(options);

await fs.writeFile(cfPath, cfText, "utf8");
this.log.info("Updated Request cf object cache!");
this.ctx.log.info("Updated Request cf object cache!");
} catch (e) {
this.log.error(e);
this.ctx.log.error(e);
}

@@ -184,3 +184,3 @@ }

if (regenerate) {
this.log.info("Generating new self-signed certificate...");
this.ctx.log.info("Generating new self-signed certificate...");
const selfSigned = await import("selfsigned");

@@ -390,2 +390,3 @@ const certAttrs = [

req.headers["cf-visitor"] ??= `{"scheme":"${proto}"}`;
req.headers["host"] = url.host;
const headers = new Headers();

@@ -531,14 +532,2 @@ for (const [name, values] of Object.entries(req.headers)) {

}
function createWebSocketUpgradeListener(mf, listener) {
return async (ws, req) => {
const response = await listener(req);
const webSocket = response?.webSocket;
if (response?.status !== 101 || !webSocket) {
ws.close(1002, "Protocol Error");
mf.log.error(new TypeError("Web Socket request did not return status 101 Switching Protocols response with Web Socket"));
return;
}
await coupleWebSocket(ws, webSocket);
};
}
async function createServer(mf, options) {

@@ -555,10 +544,24 @@ const plugins = await mf.getPlugins();

}
const upgrader = createWebSocketUpgradeListener(mf, listener);
const webSocketServer = new WebSocketServer({ noServer: true });
webSocketServer.on("connection", upgrader);
const liveReloadServer = new WebSocketServer({ noServer: true });
server.on("upgrade", (request, socket, head) => {
server.on("upgrade", async (request, socket, head) => {
const { pathname } = new URL(request.url ?? "", "http://localhost");
const server2 = pathname === "/cdn-cgi/mf/reload" ? liveReloadServer : webSocketServer;
server2.handleUpgrade(request, socket, head, (ws) => server2.emit("connection", ws, request));
if (pathname === "/cdn-cgi/mf/reload") {
liveReloadServer.handleUpgrade(request, socket, head, (ws) => {
liveReloadServer.emit("connection", ws, request);
});
} else {
const response = await listener(request);
const webSocket = response?.webSocket;
if (response?.status !== 101 || !webSocket) {
socket.write("HTTP/1.1 500 Internal Server Error\r\n\r\n");
socket.destroy();
mf.log.error(new TypeError("Web Socket request did not return status 101 Switching Protocols response with Web Socket"));
return;
}
webSocketServer.handleUpgrade(request, socket, head, (ws) => {
void coupleWebSocket(ws, webSocket);
webSocketServer.emit("connection", ws, request);
});
}
});

@@ -599,3 +602,2 @@ const reloadListener = () => {

createServer,
createWebSocketUpgradeListener,
getAccessibleHosts,

@@ -602,0 +604,0 @@ startServer

{
"name": "@miniflare/http-server",
"version": "2.0.0-next.3",
"version": "2.0.0-rc.1",
"description": "HTTP server module for Miniflare: a fun, full-featured, fully-local simulator for Cloudflare Workers",

@@ -39,5 +39,5 @@ "keywords": [

"dependencies": {
"@miniflare/core": "2.0.0-next.3",
"@miniflare/shared": "2.0.0-next.3",
"@miniflare/web-sockets": "2.0.0-next.3",
"@miniflare/core": "2.0.0-rc.1",
"@miniflare/shared": "2.0.0-rc.1",
"@miniflare/web-sockets": "2.0.0-rc.1",
"kleur": "^4.1.4",

@@ -50,5 +50,5 @@ "selfsigned": "^1.10.11",

"devDependencies": {
"@miniflare/shared-test": "2.0.0-next.3",
"@miniflare/shared-test": "2.0.0-rc.1",
"@types/node-forge": "^0.10.4"
}
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc