nitro 3.0.260415-beta → 3.0.260429-beta

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.
Files changed (50) hide show
  1. package/dist/THIRD-PARTY-LICENSES.md +32 -2
  2. package/dist/_build/common.mjs +43 -29
  3. package/dist/_build/rolldown.mjs +1 -1
  4. package/dist/_build/rollup.mjs +2 -2
  5. package/dist/_build/vite.build.mjs +1 -1
  6. package/dist/_chunks/nitro.mjs +5 -5
  7. package/dist/_chunks/nitro2.mjs +1 -1
  8. package/dist/_chunks/nitro3.mjs +1 -1
  9. package/dist/_chunks/nitro4.mjs +2 -2
  10. package/dist/_chunks/utils.mjs +2 -2
  11. package/dist/_common.mjs +1 -1
  12. package/dist/_dev.mjs +3 -2
  13. package/dist/_libs/c12+rc9.mjs +21 -9
  14. package/dist/_libs/hasown+resolve+deepmerge.mjs +47 -34
  15. package/dist/_libs/httpxy.d.mts +1 -3
  16. package/dist/_libs/httpxy.mjs +5 -5
  17. package/dist/_libs/nypm+tinyexec.mjs +129 -98
  18. package/dist/_libs/pkg-types.d.mts +7 -4
  19. package/dist/_libs/plugin-inject.mjs +3 -1
  20. package/dist/_libs/pluginutils.mjs +4 -2
  21. package/dist/_libs/readdirp+chokidar.mjs +2 -1
  22. package/dist/_libs/{unimport+unplugin.mjs → unimport+unplugin+oxc-parser.mjs} +49 -37
  23. package/dist/_libs/unplugin+unimport.d.mts +1 -1
  24. package/dist/_presets.mjs +2 -1
  25. package/dist/cli/_chunks/build.mjs +1 -1
  26. package/dist/cli/_chunks/deploy.mjs +1 -1
  27. package/dist/cli/_chunks/dev.mjs +1 -1
  28. package/dist/cli/_chunks/list.mjs +1 -1
  29. package/dist/cli/_chunks/prepare.mjs +1 -1
  30. package/dist/cli/_chunks/preview.mjs +1 -1
  31. package/dist/cli/_chunks/run.mjs +1 -1
  32. package/dist/docs/0.docs/5.cache.md +53 -9
  33. package/dist/node_modules/ufo/dist/index.mjs +2 -2
  34. package/dist/node_modules/ufo/package.json +9 -9
  35. package/dist/presets/azure/runtime/azure-swa.mjs +2 -0
  36. package/dist/runtime/internal/route-rules.d.mts +1 -0
  37. package/dist/runtime/internal/route-rules.mjs +29 -1
  38. package/dist/runtime/internal/routes/scalar.mjs +1 -0
  39. package/dist/types/index.d.mts +922 -64
  40. package/dist/vite.d.mts +1 -1
  41. package/dist/vite.mjs +11 -5
  42. package/package.json +28 -27
  43. package/dist/_libs/_.mjs +0 -2
  44. package/dist/_libs/_2.mjs +0 -2
  45. package/dist/_libs/_3.mjs +0 -2
  46. package/dist/_libs/_4.mjs +0 -2
  47. package/dist/_libs/_5.mjs +0 -2
  48. package/dist/_libs/_6.mjs +0 -2
  49. package/dist/_libs/_7.mjs +0 -2
  50. package/dist/_libs/escape-string-regexp.mjs +0 -5
@@ -95,20 +95,24 @@ var require_homedir = /* @__PURE__ */ __commonJSMin(((exports, module) => {
95
95
  module.exports = __require("os").homedir || function homedir() {
96
96
  var home = process.env.HOME;
97
97
  var user = process.env.LOGNAME || process.env.USER || process.env.LNAME || process.env.USERNAME;
98
- if (process.platform === "win32") return process.env.USERPROFILE || process.env.HOMEDRIVE + process.env.HOMEPATH || home || null;
98
+ if (process.platform === "win32") return process.env.USERPROFILE || process.env.HOMEDRIVE && process.env.HOMEPATH && process.env.HOMEDRIVE + process.env.HOMEPATH || home || null;
99
99
  if (process.platform === "darwin") return home || (user ? "/Users/" + user : null);
100
100
  if (process.platform === "linux") return home || (process.getuid() === 0 ? "/root" : user ? "/home/" + user : null);
101
101
  return home || null;
102
102
  };
103
103
  }));
104
+ var require_es_errors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
105
+ module.exports = Error;
106
+ }));
104
107
  var require_caller = /* @__PURE__ */ __commonJSMin(((exports, module) => {
108
+ var $Error = require_es_errors();
105
109
  module.exports = function() {
106
- var origPrepareStackTrace = Error.prepareStackTrace;
107
- Error.prepareStackTrace = function(_, stack) {
110
+ var origPrepareStackTrace = $Error.prepareStackTrace;
111
+ $Error.prepareStackTrace = function(_, stack) {
108
112
  return stack;
109
113
  };
110
- var stack = (/* @__PURE__ */ new Error()).stack;
111
- Error.prepareStackTrace = origPrepareStackTrace;
114
+ var stack = new $Error().stack;
115
+ $Error.prepareStackTrace = origPrepareStackTrace;
112
116
  return stack[2].getFileName();
113
117
  };
114
118
  }));
@@ -158,7 +162,7 @@ var require_node_modules_paths = /* @__PURE__ */ __commonJSMin(((exports, module
158
162
  var parse = path$3.parse || require_path_parse();
159
163
  var driveLetterRegex = /^([A-Za-z]:)/;
160
164
  var uncPathRegex = /^\\\\/;
161
- var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) {
165
+ function getNodeModulesDirs(absoluteStart, modules) {
162
166
  var prefix = "/";
163
167
  if (driveLetterRegex.test(absoluteStart)) prefix = "";
164
168
  else if (uncPathRegex.test(absoluteStart)) prefix = "\\\\";
@@ -173,7 +177,7 @@ var require_node_modules_paths = /* @__PURE__ */ __commonJSMin(((exports, module
173
177
  return path$3.resolve(prefix, aPath, moduleDir);
174
178
  }));
175
179
  }, []);
176
- };
180
+ }
177
181
  module.exports = function nodeModulesPaths(start, opts, request) {
178
182
  var modules = opts && opts.moduleDirectory ? [].concat(opts.moduleDirectory) : ["node_modules"];
179
183
  if (opts && typeof opts.paths === "function") return opts.paths(request, start, function() {
@@ -457,6 +461,9 @@ var require_is_core_module = /* @__PURE__ */ __commonJSMin(((exports, module) =>
457
461
  return hasOwn(data, x) && versionIncluded(nodeVersion, data[x]);
458
462
  };
459
463
  }));
464
+ var require_type = /* @__PURE__ */ __commonJSMin(((exports, module) => {
465
+ module.exports = TypeError;
466
+ }));
460
467
  var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
461
468
  var fs$2 = __require("fs");
462
469
  var getHomedir = require_homedir();
@@ -465,14 +472,17 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
465
472
  var nodeModulesPaths = require_node_modules_paths();
466
473
  var normalizeOptions = require_normalize_options();
467
474
  var isCore = require_is_core_module();
475
+ var $Error = require_es_errors();
476
+ var $TypeError = require_type();
468
477
  var realpathFS = process.platform !== "win32" && fs$2.realpath && typeof fs$2.realpath.native === "function" ? fs$2.realpath.native : fs$2.realpath;
469
478
  var relativePathRegex = /^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/;
470
479
  var windowsDriveRegex = /^\w:[/\\]*$/;
471
480
  var nodeModulesRegex = /[/\\]node_modules[/\\]*$/;
472
481
  var homedir = getHomedir();
473
- var defaultPaths = function() {
482
+ function defaultPaths() {
483
+ if (!homedir) return [];
474
484
  return [path$2.join(homedir, ".node_modules"), path$2.join(homedir, ".node_libraries")];
475
- };
485
+ }
476
486
  var defaultIsFile = function isFile(file, cb) {
477
487
  fs$2.stat(file, function(err, stat) {
478
488
  if (!err) return cb(null, stat.isFile() || stat.isFIFO());
@@ -493,11 +503,11 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
493
503
  else cb(null, realpathErr ? x : realPath);
494
504
  });
495
505
  };
496
- var maybeRealpath = function maybeRealpath(realpath, x, opts, cb) {
506
+ function maybeRealpath(realpath, x, opts, cb) {
497
507
  if (opts && opts.preserveSymlinks === false) realpath(x, cb);
498
508
  else cb(null, x);
499
- };
500
- var defaultReadPackage = function defaultReadPackage(readFile, pkgfile, cb) {
509
+ }
510
+ function defaultReadPackage(readFile, pkgfile, cb) {
501
511
  readFile(pkgfile, function(readFileErr, body) {
502
512
  if (readFileErr) cb(readFileErr);
503
513
  else try {
@@ -506,12 +516,12 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
506
516
  cb(null);
507
517
  }
508
518
  });
509
- };
510
- var getPackageCandidates = function getPackageCandidates(x, start, opts) {
519
+ }
520
+ function getPackageCandidates(x, start, opts) {
511
521
  var dirs = nodeModulesPaths(start, opts, x);
512
522
  for (var i = 0; i < dirs.length; i++) dirs[i] = path$2.join(dirs[i], x);
513
523
  return dirs;
514
- };
524
+ }
515
525
  module.exports = function resolve(x, options, callback) {
516
526
  var cb = callback;
517
527
  var opts = options;
@@ -520,7 +530,7 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
520
530
  opts = {};
521
531
  }
522
532
  if (typeof x !== "string") {
523
- var err = /* @__PURE__ */ new TypeError("Path must be a string.");
533
+ var err = new $TypeError("Path must be a string.");
524
534
  return process.nextTick(function() {
525
535
  cb(err);
526
536
  });
@@ -532,7 +542,7 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
532
542
  var realpath = opts.realpath || defaultRealpath;
533
543
  var readPackage = opts.readPackage || defaultReadPackage;
534
544
  if (opts.readFile && opts.readPackage) {
535
- var conflictErr = /* @__PURE__ */ new TypeError("`readFile` and `readPackage` are mutually exclusive.");
545
+ var conflictErr = new $TypeError("`readFile` and `readPackage` are mutually exclusive.");
536
546
  return process.nextTick(function() {
537
547
  cb(conflictErr);
538
548
  });
@@ -562,7 +572,7 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
562
572
  else cb(null, realN, pkg);
563
573
  });
564
574
  else {
565
- var moduleError = /* @__PURE__ */ new Error("Cannot find module '" + x + "' from '" + parent + "'");
575
+ var moduleError = new $Error("Cannot find module '" + x + "' from '" + parent + "'");
566
576
  moduleError.code = "MODULE_NOT_FOUND";
567
577
  cb(moduleError);
568
578
  }
@@ -578,7 +588,7 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
578
588
  else cb(null, realD, pkg);
579
589
  });
580
590
  else {
581
- var moduleError = /* @__PURE__ */ new Error("Cannot find module '" + x + "' from '" + parent + "'");
591
+ var moduleError = new $Error("Cannot find module '" + x + "' from '" + parent + "'");
582
592
  moduleError.code = "MODULE_NOT_FOUND";
583
593
  cb(moduleError);
584
594
  }
@@ -605,7 +615,7 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
605
615
  var rfile = path$2.relative(dir, file);
606
616
  var rel = rfile.slice(0, rfile.length - exts[0].length);
607
617
  var r = opts.pathFilter(pkg, x, rel);
608
- if (r) return load([""].concat(extensions.slice()), path$2.resolve(dir, r), pkg);
618
+ if (r) return load([""].concat(extensions), path$2.resolve(dir, r), pkg);
609
619
  }
610
620
  isFile(file, onex);
611
621
  }
@@ -626,7 +636,7 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
626
636
  isFile(pkgfile, function(err, ex) {
627
637
  if (!ex) return loadpkg(path$2.dirname(dir), cb);
628
638
  readPackage(readFile, pkgfile, function(err, pkgParam) {
629
- if (err) cb(err);
639
+ if (err) return cb(err);
630
640
  var pkg = pkgParam;
631
641
  if (pkg && opts.packageFilter) pkg = opts.packageFilter(pkg, pkgfile);
632
642
  cb(null, pkg, dir);
@@ -653,7 +663,7 @@ var require_async = /* @__PURE__ */ __commonJSMin(((exports, module) => {
653
663
  if (pkg && opts.packageFilter) pkg = opts.packageFilter(pkg, pkgfile);
654
664
  if (pkg && pkg.main) {
655
665
  if (typeof pkg.main !== "string") {
656
- var mainError = /* @__PURE__ */ new TypeError("package “" + pkg.name + "” `main` must be a string");
666
+ var mainError = new $TypeError("package “" + pkg.name + "” `main` must be a string");
657
667
  mainError.code = "INVALID_PACKAGE_MAIN";
658
668
  return cb(mainError);
659
669
  }
@@ -892,6 +902,8 @@ var require_sync = /* @__PURE__ */ __commonJSMin(((exports, module) => {
892
902
  var isCore = require_is_core_module();
893
903
  var fs$1 = __require("fs");
894
904
  var path$1 = __require("path");
905
+ var $Error = require_es_errors();
906
+ var $TypeError = require_type();
895
907
  var getHomedir = require_homedir();
896
908
  var caller = require_caller();
897
909
  var nodeModulesPaths = require_node_modules_paths();
@@ -901,9 +913,10 @@ var require_sync = /* @__PURE__ */ __commonJSMin(((exports, module) => {
901
913
  var windowsDriveRegex = /^\w:[/\\]*$/;
902
914
  var nodeModulesRegex = /[/\\]node_modules[/\\]*$/;
903
915
  var homedir = getHomedir();
904
- var defaultPaths = function() {
916
+ function defaultPaths() {
917
+ if (!homedir) return [];
905
918
  return [path$1.join(homedir, ".node_modules"), path$1.join(homedir, ".node_libraries")];
906
- };
919
+ }
907
920
  var defaultIsFile = function isFile(file) {
908
921
  try {
909
922
  var stat = fs$1.statSync(file, { throwIfNoEntry: false });
@@ -930,30 +943,30 @@ var require_sync = /* @__PURE__ */ __commonJSMin(((exports, module) => {
930
943
  }
931
944
  return x;
932
945
  };
933
- var maybeRealpathSync = function maybeRealpathSync(realpathSync, x, opts) {
946
+ function maybeRealpathSync(realpathSync, x, opts) {
934
947
  if (opts && opts.preserveSymlinks === false) return realpathSync(x);
935
948
  return x;
936
- };
937
- var defaultReadPackageSync = function defaultReadPackageSync(readFileSync, pkgfile) {
949
+ }
950
+ function defaultReadPackageSync(readFileSync, pkgfile) {
938
951
  var body = readFileSync(pkgfile);
939
952
  try {
940
953
  return JSON.parse(body);
941
954
  } catch (jsonErr) {}
942
- };
943
- var getPackageCandidates = function getPackageCandidates(x, start, opts) {
955
+ }
956
+ function getPackageCandidates(x, start, opts) {
944
957
  var dirs = nodeModulesPaths(start, opts, x);
945
958
  for (var i = 0; i < dirs.length; i++) dirs[i] = path$1.join(dirs[i], x);
946
959
  return dirs;
947
- };
960
+ }
948
961
  module.exports = function resolveSync(x, options) {
949
- if (typeof x !== "string") throw new TypeError("Path must be a string.");
962
+ if (typeof x !== "string") throw new $TypeError("Path must be a string.");
950
963
  var opts = normalizeOptions(x, options);
951
964
  var isFile = opts.isFile || defaultIsFile;
952
965
  var readFileSync = opts.readFileSync || fs$1.readFileSync;
953
966
  var isDirectory = opts.isDirectory || defaultIsDir;
954
967
  var realpathSync = opts.realpathSync || defaultRealpathSync;
955
968
  var readPackageSync = opts.readPackageSync || defaultReadPackageSync;
956
- if (opts.readFileSync && opts.readPackageSync) throw new TypeError("`readFileSync` and `readPackageSync` are mutually exclusive.");
969
+ if (opts.readFileSync && opts.readPackageSync) throw new $TypeError("`readFileSync` and `readPackageSync` are mutually exclusive.");
957
970
  var packageIterator = opts.packageIterator;
958
971
  var extensions = opts.extensions || [".js"];
959
972
  var includeCoreModules = opts.includeCoreModules !== false;
@@ -971,7 +984,7 @@ var require_sync = /* @__PURE__ */ __commonJSMin(((exports, module) => {
971
984
  var n = loadNodeModulesSync(x, absoluteStart);
972
985
  if (n) return maybeRealpathSync(realpathSync, n, opts);
973
986
  }
974
- var err = /* @__PURE__ */ new Error("Cannot find module '" + x + "' from '" + parent + "'");
987
+ var err = new $Error("Cannot find module '" + x + "' from '" + parent + "'");
975
988
  err.code = "MODULE_NOT_FOUND";
976
989
  throw err;
977
990
  function loadAsFileSync(x) {
@@ -1009,7 +1022,7 @@ var require_sync = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1009
1022
  if (pkg && opts.packageFilter) pkg = opts.packageFilter(pkg, x);
1010
1023
  if (pkg && pkg.main) {
1011
1024
  if (typeof pkg.main !== "string") {
1012
- var mainError = /* @__PURE__ */ new TypeError("package “" + pkg.name + "” `main` must be a string");
1025
+ var mainError = new $TypeError("package “" + pkg.name + "” `main` must be a string");
1013
1026
  mainError.code = "INVALID_PACKAGE_MAIN";
1014
1027
  throw mainError;
1015
1028
  }
@@ -3,7 +3,6 @@ import * as stream from "node:stream";
3
3
  import http, { IncomingMessage } from "node:http";
4
4
  import http2 from "node:http2";
5
5
  import { Socket } from "node:net";
6
- //#region src/types.d.ts
7
6
  interface ProxyTargetDetailed {
8
7
  host?: string;
9
8
  port?: number | string;
@@ -81,6 +80,5 @@ interface ProxyServerOptions {
81
80
  followRedirects?: boolean | number;
82
81
  /** Buffer */
83
82
  buffer?: stream.Stream;
84
- } //#endregion
85
- //#region src/middleware/_utils.d.ts
83
+ }
86
84
  export { ProxyServerOptions as t };
@@ -49,7 +49,7 @@ function setupOutgoing(outgoing, options, req, forward) {
49
49
  if (options.ca) outgoing.ca = options.ca;
50
50
  if (isSSL.test(options[forward || "target"].protocol ?? "http")) outgoing.rejectUnauthorized = options.secure === void 0 ? true : options.secure;
51
51
  if (options.agent !== void 0) outgoing.agent = options.agent || false;
52
- else if (req.httpVersionMajor > 1) outgoing.agent = false;
52
+ else if (req.httpVersionMajor > 1 || upgradeHeader.test(req.headers.connection || "")) outgoing.agent = false;
53
53
  else {
54
54
  const targetProto = options[forward || "target"].protocol ?? "http";
55
55
  outgoing.agent = isSSL.test(targetProto) ? defaultAgents.https : defaultAgents.http;
@@ -248,7 +248,7 @@ const webIncomingMiddleware = [
248
248
  "proto"
249
249
  ]) {
250
250
  const key = "x-forwarded-" + header;
251
- if (!req.headers[key]) req.headers[key] = values[header];
251
+ if (!req.headers[key] && values[header] !== void 0) req.headers[key] = values[header];
252
252
  }
253
253
  req.headers["x-forwarded-host"] = req.headers["x-forwarded-host"] || req.headers[":authority"] || req.headers.host || "";
254
254
  }),
@@ -406,7 +406,7 @@ const websocketIncomingMiddleware = [
406
406
  "proto"
407
407
  ]) {
408
408
  const key = "x-forwarded-" + header;
409
- if (!req.headers[key]) req.headers[key] = values[header];
409
+ if (!req.headers[key] && values[header] !== void 0) req.headers[key] = values[header];
410
410
  }
411
411
  }),
412
412
  defineProxyMiddleware((req, socket, options, server, head, callback) => {
@@ -477,7 +477,7 @@ var ProxyServer = class extends EventEmitter {
477
477
  this.web = _createProxyFn("web", this);
478
478
  this.ws = _createProxyFn("ws", this);
479
479
  }
480
- listen(port, hostname) {
480
+ listen(port, hostname, listeningListener) {
481
481
  const closure = (req, res) => {
482
482
  return this.web(req, res);
483
483
  };
@@ -492,7 +492,7 @@ var ProxyServer = class extends EventEmitter {
492
492
  if (this.options.ws) this._server.on("upgrade", (req, socket, head) => {
493
493
  this.ws(req, socket, this.options, head).catch(() => {});
494
494
  });
495
- this._server.listen(port, hostname);
495
+ this._server.listen(port, hostname, listeningListener);
496
496
  return this;
497
497
  }
498
498
  close(callback) {