wrangler 2.20.1 → 2.20.2

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.
@@ -36618,7 +36618,7 @@ var require_websocket2 = __commonJS({
36618
36618
  init_import_meta_url();
36619
36619
  var EventEmitter3 = require("events");
36620
36620
  var https2 = require("https");
36621
- var http3 = require("http");
36621
+ var http2 = require("http");
36622
36622
  var net3 = require("net");
36623
36623
  var tls = require("tls");
36624
36624
  var { randomBytes, createHash } = require("crypto");
@@ -36979,7 +36979,7 @@ var require_websocket2 = __commonJS({
36979
36979
  const isSecure = parsedUrl.protocol === "wss:" || parsedUrl.protocol === "https:";
36980
36980
  const defaultPort = isSecure ? 443 : 80;
36981
36981
  const key = randomBytes(16).toString("base64");
36982
- const get = isSecure ? https2.get : http3.get;
36982
+ const get = isSecure ? https2.get : http2.get;
36983
36983
  let perMessageDeflate;
36984
36984
  opts.createConnection = isSecure ? tlsConnect : netConnect;
36985
36985
  opts.defaultPort = opts.defaultPort || defaultPort;
@@ -37407,7 +37407,7 @@ var require_websocket_server = __commonJS({
37407
37407
  "use strict";
37408
37408
  init_import_meta_url();
37409
37409
  var EventEmitter3 = require("events");
37410
- var http3 = require("http");
37410
+ var http2 = require("http");
37411
37411
  var https2 = require("https");
37412
37412
  var net3 = require("net");
37413
37413
  var tls = require("tls");
@@ -37443,8 +37443,8 @@ var require_websocket_server = __commonJS({
37443
37443
  );
37444
37444
  }
37445
37445
  if (options14.port != null) {
37446
- this._server = http3.createServer((req, res) => {
37447
- const body = http3.STATUS_CODES[426];
37446
+ this._server = http2.createServer((req, res) => {
37447
+ const body = http2.STATUS_CODES[426];
37448
37448
  res.writeHead(426, {
37449
37449
  "Content-Length": body.length,
37450
37450
  "Content-Type": "text/plain"
@@ -37636,7 +37636,7 @@ var require_websocket_server = __commonJS({
37636
37636
  __name(socketOnError, "socketOnError");
37637
37637
  function abortHandshake(socket, code, message, headers) {
37638
37638
  if (socket.writable) {
37639
- message = message || http3.STATUS_CODES[code];
37639
+ message = message || http2.STATUS_CODES[code];
37640
37640
  headers = {
37641
37641
  Connection: "close",
37642
37642
  "Content-Type": "text/html",
@@ -37644,7 +37644,7 @@ var require_websocket_server = __commonJS({
37644
37644
  ...headers
37645
37645
  };
37646
37646
  socket.write(
37647
- `HTTP/1.1 ${code} ${http3.STATUS_CODES[code]}\r
37647
+ `HTTP/1.1 ${code} ${http2.STATUS_CODES[code]}\r
37648
37648
  ` + Object.keys(headers).map((h) => `${h}: ${headers[h]}`).join("\r\n") + "\r\n\r\n" + message
37649
37649
  );
37650
37650
  }
@@ -82856,10 +82856,10 @@ var require_methods = __commonJS({
82856
82856
  "../../node_modules/methods/index.js"(exports2, module2) {
82857
82857
  "use strict";
82858
82858
  init_import_meta_url();
82859
- var http3 = require("http");
82859
+ var http2 = require("http");
82860
82860
  module2.exports = getCurrentNodeMethods() || getBasicNodeMethods();
82861
82861
  function getCurrentNodeMethods() {
82862
- return http3.METHODS && http3.METHODS.map(/* @__PURE__ */ __name(function lowerCaseMethod(method) {
82862
+ return http2.METHODS && http2.METHODS.map(/* @__PURE__ */ __name(function lowerCaseMethod(method) {
82863
82863
  return method.toLowerCase();
82864
82864
  }, "lowerCaseMethod"));
82865
82865
  }
@@ -86297,7 +86297,7 @@ var require_application = __commonJS({
86297
86297
  var query = require_query();
86298
86298
  var debug = require_src4()("express:application");
86299
86299
  var View = require_view();
86300
- var http3 = require("http");
86300
+ var http2 = require("http");
86301
86301
  var compileETag = require_utils5().compileETag;
86302
86302
  var compileQueryParser = require_utils5().compileQueryParser;
86303
86303
  var compileTrust = require_utils5().compileTrust;
@@ -86546,7 +86546,7 @@ var require_application = __commonJS({
86546
86546
  tryRender(view, renderOptions, done);
86547
86547
  }, "render");
86548
86548
  app.listen = /* @__PURE__ */ __name(function listen() {
86549
- var server2 = http3.createServer(this);
86549
+ var server2 = http2.createServer(this);
86550
86550
  return server2.listen.apply(server2, arguments);
86551
86551
  }, "listen");
86552
86552
  function logerror(err) {
@@ -87205,12 +87205,12 @@ var require_request3 = __commonJS({
87205
87205
  var deprecate = require_depd()("express");
87206
87206
  var isIP = require("net").isIP;
87207
87207
  var typeis = require_type_is();
87208
- var http3 = require("http");
87208
+ var http2 = require("http");
87209
87209
  var fresh = require_fresh();
87210
87210
  var parseRange = require_range_parser();
87211
87211
  var parse5 = require_parseurl();
87212
87212
  var proxyaddr = require_proxy_addr();
87213
- var req = Object.create(http3.IncomingMessage.prototype);
87213
+ var req = Object.create(http2.IncomingMessage.prototype);
87214
87214
  module2.exports = req;
87215
87215
  req.get = req.header = /* @__PURE__ */ __name(function header(name) {
87216
87216
  if (!name) {
@@ -87633,7 +87633,7 @@ var require_response2 = __commonJS({
87633
87633
  var deprecate = require_depd()("express");
87634
87634
  var encodeUrl = require_encodeurl();
87635
87635
  var escapeHtml = require_escape_html();
87636
- var http3 = require("http");
87636
+ var http2 = require("http");
87637
87637
  var isAbsolute = require_utils5().isAbsolute;
87638
87638
  var onFinished = require_on_finished();
87639
87639
  var path44 = require("path");
@@ -87649,7 +87649,7 @@ var require_response2 = __commonJS({
87649
87649
  var mime = send.mime;
87650
87650
  var resolve17 = path44.resolve;
87651
87651
  var vary = require_vary();
87652
- var res = Object.create(http3.ServerResponse.prototype);
87652
+ var res = Object.create(http2.ServerResponse.prototype);
87653
87653
  module2.exports = res;
87654
87654
  var charsetRegExp = /;\s*charset\s*=/;
87655
87655
  res.status = /* @__PURE__ */ __name(function status(code) {
@@ -102152,7 +102152,7 @@ var require_websocket3 = __commonJS({
102152
102152
  init_import_meta_url();
102153
102153
  var EventEmitter3 = require("events");
102154
102154
  var https2 = require("https");
102155
- var http3 = require("http");
102155
+ var http2 = require("http");
102156
102156
  var net3 = require("net");
102157
102157
  var tls = require("tls");
102158
102158
  var { randomBytes, createHash } = require("crypto");
@@ -102552,7 +102552,7 @@ var require_websocket3 = __commonJS({
102552
102552
  }
102553
102553
  const defaultPort = isSecure ? 443 : 80;
102554
102554
  const key = randomBytes(16).toString("base64");
102555
- const get = isSecure ? https2.get : http3.get;
102555
+ const get = isSecure ? https2.get : http2.get;
102556
102556
  const protocolSet = /* @__PURE__ */ new Set();
102557
102557
  let perMessageDeflate;
102558
102558
  opts.createConnection = isSecure ? tlsConnect : netConnect;
@@ -102936,7 +102936,7 @@ var require_websocket_server2 = __commonJS({
102936
102936
  "use strict";
102937
102937
  init_import_meta_url();
102938
102938
  var EventEmitter3 = require("events");
102939
- var http3 = require("http");
102939
+ var http2 = require("http");
102940
102940
  var https2 = require("https");
102941
102941
  var net3 = require("net");
102942
102942
  var tls = require("tls");
@@ -102975,8 +102975,8 @@ var require_websocket_server2 = __commonJS({
102975
102975
  );
102976
102976
  }
102977
102977
  if (options14.port != null) {
102978
- this._server = http3.createServer((req, res) => {
102979
- const body = http3.STATUS_CODES[426];
102978
+ this._server = http2.createServer((req, res) => {
102979
+ const body = http2.STATUS_CODES[426];
102980
102980
  res.writeHead(426, {
102981
102981
  "Content-Length": body.length,
102982
102982
  "Content-Type": "text/plain"
@@ -103203,7 +103203,7 @@ var require_websocket_server2 = __commonJS({
103203
103203
  __name(socketOnError, "socketOnError");
103204
103204
  function abortHandshake(socket, code, message, headers) {
103205
103205
  if (socket.writable) {
103206
- message = message || http3.STATUS_CODES[code];
103206
+ message = message || http2.STATUS_CODES[code];
103207
103207
  headers = {
103208
103208
  Connection: "close",
103209
103209
  "Content-Type": "text/html",
@@ -103211,7 +103211,7 @@ var require_websocket_server2 = __commonJS({
103211
103211
  ...headers
103212
103212
  };
103213
103213
  socket.write(
103214
- `HTTP/1.1 ${code} ${http3.STATUS_CODES[code]}\r
103214
+ `HTTP/1.1 ${code} ${http2.STATUS_CODES[code]}\r
103215
103215
  ` + Object.keys(headers).map((h) => `${h}: ${headers[h]}`).join("\r\n") + "\r\n\r\n" + message
103216
103216
  );
103217
103217
  }
@@ -126541,14 +126541,14 @@ var import_undici16 = __toESM(require_undici());
126541
126541
 
126542
126542
  // src/dev-registry.ts
126543
126543
  init_import_meta_url();
126544
- var import_http = __toESM(require("http"));
126545
126544
  var import_net = __toESM(require("net"));
126545
+ var import_node_http = require("node:http");
126546
126546
  var import_body_parser = __toESM(require_body_parser());
126547
126547
  var import_express = __toESM(require_express2());
126548
126548
  var import_http_terminator = __toESM(require_src7());
126549
126549
  var import_undici = __toESM(require_undici());
126550
- var DEV_REGISTRY_PORT = "6284";
126551
- var DEV_REGISTRY_HOST = `http://localhost:${DEV_REGISTRY_PORT}`;
126550
+ var DEV_REGISTRY_PORT = 6284;
126551
+ var DEV_REGISTRY_HOST = `http://127.0.0.1:${DEV_REGISTRY_PORT}`;
126552
126552
  var server;
126553
126553
  var terminator;
126554
126554
  async function isPortAvailable() {
@@ -126564,7 +126564,7 @@ async function isPortAvailable() {
126564
126564
  netServer.close();
126565
126565
  resolve17(true);
126566
126566
  });
126567
- netServer.listen(DEV_REGISTRY_PORT);
126567
+ netServer.listen(DEV_REGISTRY_PORT, "127.0.0.1");
126568
126568
  });
126569
126569
  }
126570
126570
  __name(isPortAvailable, "isPortAvailable");
@@ -126585,9 +126585,9 @@ async function startWorkerRegistry() {
126585
126585
  workers = {};
126586
126586
  res.json(null);
126587
126587
  });
126588
- server = import_http.default.createServer(app);
126588
+ server = (0, import_node_http.createServer)(app);
126589
126589
  terminator = (0, import_http_terminator.createHttpTerminator)({ server });
126590
- server.listen(DEV_REGISTRY_PORT);
126590
+ server.listen(DEV_REGISTRY_PORT, "127.0.0.1");
126591
126591
  server.once("error", (err) => {
126592
126592
  if (err.code !== "EADDRINUSE") {
126593
126593
  throw err;
@@ -128788,7 +128788,7 @@ var import_websocket_server = __toESM(require_websocket_server2(), 1);
128788
128788
  var wrapper_default = import_websocket.default;
128789
128789
 
128790
128790
  // package.json
128791
- var version = "2.20.1";
128791
+ var version = "2.20.2";
128792
128792
  var package_default = {
128793
128793
  name: "wrangler",
128794
128794
  version,
@@ -128911,7 +128911,7 @@ var package_default = {
128911
128911
  "@cloudflare/workers-types": "^4.20221111.1",
128912
128912
  "@iarna/toml": "^3.0.0",
128913
128913
  "@microsoft/api-extractor": "^7.28.3",
128914
- "@miniflare/tre": "3.0.0-next.13",
128914
+ "@miniflare/tre": "3.0.0-next.14",
128915
128915
  "@types/better-sqlite3": "^7.6.0",
128916
128916
  "@types/busboy": "^1.5.0",
128917
128917
  "@types/command-exists": "^1.2.0",
@@ -128992,8 +128992,8 @@ var package_default = {
128992
128992
 
128993
128993
  // src/proxy.ts
128994
128994
  init_import_meta_url();
128995
- var import_node_http = require("node:http");
128996
- var import_node_http2 = require("node:http2");
128995
+ var import_node_http2 = require("node:http");
128996
+ var import_node_http22 = require("node:http2");
128997
128997
  var import_node_https = require("node:https");
128998
128998
  var import_node_https2 = __toESM(require("node:https"));
128999
128999
  var import_node_os5 = require("node:os");
@@ -129425,7 +129425,7 @@ function configureProxyServer({
129425
129425
  }
129426
129426
  const cleanupListeners = [];
129427
129427
  logger.debug("PREVIEW URL:", `https://${previewToken.host}`);
129428
- const remote = (0, import_node_http2.connect)(`https://${previewToken.host}`);
129428
+ const remote = (0, import_node_http22.connect)(`https://${previewToken.host}`);
129429
129429
  cleanupListeners.push(() => remote.destroy());
129430
129430
  remote.on("close", retryServerSetup);
129431
129431
  cleanupListeners.push(() => remote.off("close", retryServerSetup));
@@ -129558,7 +129558,7 @@ var HTTP1_HEADERS = /* @__PURE__ */ new Set([
129558
129558
  "http2-settings"
129559
129559
  ]);
129560
129560
  async function createProxyServer(localProtocol) {
129561
- const server2 = localProtocol === "https" ? (0, import_node_https.createServer)(await getHttpsOptions()) : (0, import_node_http.createServer)();
129561
+ const server2 = localProtocol === "https" ? (0, import_node_https.createServer)(await getHttpsOptions()) : (0, import_node_http2.createServer)();
129562
129562
  return server2.on("upgrade", (req) => {
129563
129563
  logger.log(
129564
129564
  new Date().toLocaleTimeString(),
@@ -129620,7 +129620,7 @@ async function waitForPortToBeAvailable(port2, options14) {
129620
129620
  doResolve();
129621
129621
  return;
129622
129622
  }
129623
- const server2 = (0, import_node_http.createServer)();
129623
+ const server2 = (0, import_node_http2.createServer)();
129624
129624
  const terminator2 = (0, import_http_terminator2.createHttpTerminator)({
129625
129625
  server: server2,
129626
129626
  gracefulTerminationTimeout: 0
@@ -129655,6 +129655,48 @@ function getAccessibleHosts2() {
129655
129655
  __name(getAccessibleHosts2, "getAccessibleHosts");
129656
129656
 
129657
129657
  // src/inspect.ts
129658
+ var ALLOWED_HOST_HOSTNAMES = ["127.0.0.1", "[::1]", "localhost"];
129659
+ var ALLOWED_ORIGIN_HOSTNAMES = [
129660
+ "devtools.devprod.cloudflare.dev",
129661
+ "cloudflare-devtools.pages.dev",
129662
+ /^[a-z0-9]+\.cloudflare-devtools\.pages\.dev$/,
129663
+ "127.0.0.1",
129664
+ "[::1]",
129665
+ "localhost"
129666
+ ];
129667
+ function validateWebSocketHandshake(req) {
129668
+ const hostHeader = req.headers.host;
129669
+ if (hostHeader == null)
129670
+ return false;
129671
+ try {
129672
+ const host = new import_node_url6.URL(`http://${hostHeader}`);
129673
+ if (!ALLOWED_HOST_HOSTNAMES.includes(host.hostname))
129674
+ return false;
129675
+ } catch {
129676
+ return false;
129677
+ }
129678
+ let originHeader = req.headers.origin;
129679
+ if (originHeader === null && req.headers["user-agent"] === void 0) {
129680
+ originHeader = "http://localhost";
129681
+ }
129682
+ if (originHeader == null)
129683
+ return false;
129684
+ try {
129685
+ const origin = new import_node_url6.URL(originHeader);
129686
+ const allowed = ALLOWED_ORIGIN_HOSTNAMES.some((rule) => {
129687
+ if (typeof rule === "string")
129688
+ return origin.hostname === rule;
129689
+ else
129690
+ return rule.test(origin.hostname);
129691
+ });
129692
+ if (!allowed)
129693
+ return false;
129694
+ } catch {
129695
+ return false;
129696
+ }
129697
+ return true;
129698
+ }
129699
+ __name(validateWebSocketHandshake, "validateWebSocketHandshake");
129658
129700
  function useInspector(props) {
129659
129701
  const inspectorIdRef = (0, import_react2.useRef)(randomId());
129660
129702
  const [localWebSocket, setLocalWebSocket] = (0, import_react2.useState)();
@@ -129677,7 +129719,7 @@ function useInspector(props) {
129677
129719
  case "/json/list":
129678
129720
  {
129679
129721
  res.setHeader("Content-Type", "application/json");
129680
- const localHost = `localhost:${props.port}/ws`;
129722
+ const localHost = `127.0.0.1:${props.port}/ws`;
129681
129723
  const devtoolsFrontendUrl = `devtools://devtools/bundled/js_app.html?experiments=true&v8only=true&ws=${localHost}`;
129682
129724
  const devtoolsFrontendUrlCompat = `devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=${localHost}`;
129683
129725
  res.end(
@@ -129712,7 +129754,11 @@ function useInspector(props) {
129712
129754
  });
129713
129755
  }
129714
129756
  const wsServer = wsServerRef.current;
129715
- wsServer.on("connection", (ws) => {
129757
+ wsServer.on("connection", (ws, req) => {
129758
+ if (!validateWebSocketHandshake(req)) {
129759
+ ws.close(1008, "Unauthorised");
129760
+ return;
129761
+ }
129716
129762
  if (wsServer.clients.size > 1) {
129717
129763
  logger.error(
129718
129764
  "Tried to open a new devtools window when a previous one was already open."
@@ -129739,7 +129785,7 @@ function useInspector(props) {
129739
129785
  timeout: 2e3,
129740
129786
  abortSignal: abortController.signal
129741
129787
  });
129742
- server2.listen(props.port);
129788
+ server2.listen(props.port, "127.0.0.1");
129743
129789
  }
129744
129790
  __name(startInspectorProxy, "startInspectorProxy");
129745
129791
  startInspectorProxy().catch((err) => {
@@ -130162,7 +130208,7 @@ __name(logConsoleMessage, "logConsoleMessage");
130162
130208
  var openInspector = /* @__PURE__ */ __name(async (inspectorPort, worker) => {
130163
130209
  const query = new URLSearchParams();
130164
130210
  query.set("theme", "systemPreferred");
130165
- query.set("ws", `localhost:${inspectorPort}/ws`);
130211
+ query.set("ws", `127.0.0.1:${inspectorPort}/ws`);
130166
130212
  if (worker)
130167
130213
  query.set("domain", worker);
130168
130214
  const url3 = `https://devtools.devprod.cloudflare.dev/js_app?${query.toString()}`;
@@ -132348,7 +132394,7 @@ async function transformMf2OptionsToMf3Options({
132348
132394
  __name(transformMf2OptionsToMf3Options, "transformMf2OptionsToMf3Options");
132349
132395
  var miniflare3Module;
132350
132396
  async function getMiniflare3() {
132351
- return miniflare3Module ??= await npxImport("@miniflare/tre@3.0.0-next.13");
132397
+ return miniflare3Module ??= await npxImport("@miniflare/tre@3.0.0-next.14");
132352
132398
  }
132353
132399
  __name(getMiniflare3, "getMiniflare3");
132354
132400