vite 5.0.0-beta.2 → 5.0.0-beta.3

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.
@@ -13,7 +13,7 @@ import require$$0__default, { existsSync, readFileSync, statSync as statSync$1,
13
13
  import require$$0$5 from 'events';
14
14
  import require$$5 from 'assert';
15
15
  import require$$0$6 from 'util';
16
- import require$$3$2 from 'net';
16
+ import require$$4$1 from 'net';
17
17
  import require$$0$9 from 'url';
18
18
  import require$$1$1 from 'http';
19
19
  import require$$0$7 from 'stream';
@@ -27,19 +27,20 @@ import { CLIENT_ENTRY, OPTIMIZABLE_ENTRY_RE, wildcardHosts, loopbackHosts, VALID
27
27
  import require$$3$1 from 'crypto';
28
28
  import { Buffer as Buffer$1 } from 'node:buffer';
29
29
  import require$$0$8, { createRequire as createRequire$2 } from 'module';
30
+ import { VERSION } from 'rollup';
30
31
  import assert$1 from 'node:assert';
31
32
  import process$1 from 'node:process';
32
33
  import v8 from 'node:v8';
33
- import { VERSION } from 'rollup';
34
34
  import { createServer as createServer$3, STATUS_CODES } from 'node:http';
35
35
  import { createServer as createServer$2 } from 'node:https';
36
36
  import require$$0$a from 'zlib';
37
37
  import require$$0$b from 'buffer';
38
38
  import require$$1$2 from 'https';
39
- import require$$4$1 from 'tls';
39
+ import require$$4$2 from 'tls';
40
40
  import require$$1 from 'worker_threads';
41
41
  import * as qs from 'querystring';
42
42
  import readline from 'node:readline';
43
+ import { EventEmitter as EventEmitter$4 } from 'node:events';
43
44
  import zlib$1, { gzip } from 'node:zlib';
44
45
 
45
46
  import { fileURLToPath as __cjs_fileURLToPath } from 'node:url';
@@ -208,9 +209,6 @@ function alias$1(options = {}) {
208
209
  await Promise.all([...(Array.isArray(options.entries) ? options.entries : []), options].map(({ customResolver }) => { var _a; return customResolver && ((_a = getHookFunction(customResolver.buildStart)) === null || _a === void 0 ? void 0 : _a.call(this, inputOptions)); }));
209
210
  },
210
211
  resolveId(importee, importer, resolveOptions) {
211
- if (!importer) {
212
- return null;
213
- }
214
212
  // First match is supposed to be the correct one
215
213
  const matchedEntry = entries.find((entry) => matches$1(entry.find, importee));
216
214
  if (!matchedEntry) {
@@ -2646,7 +2644,7 @@ const normalizePath$5 = function normalizePath(filename) {
2646
2644
  };
2647
2645
 
2648
2646
  function getMatcherString(id, resolutionBase) {
2649
- if (resolutionBase === false || isAbsolute$1(id) || id.startsWith('*')) {
2647
+ if (resolutionBase === false || isAbsolute$1(id) || id.startsWith('**')) {
2650
2648
  return normalizePath$5(id);
2651
2649
  }
2652
2650
  // resolve('') is valid and will default to process.cwd()
@@ -2695,8 +2693,8 @@ const createFilter$1 = function createFilter(include, exclude, options) {
2695
2693
  };
2696
2694
 
2697
2695
  const reservedWords$1 = 'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public';
2698
- const builtins$1 = 'arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl';
2699
- const forbiddenIdentifiers = new Set(`${reservedWords$1} ${builtins$1}`.split(' '));
2696
+ const builtins = 'arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl';
2697
+ const forbiddenIdentifiers = new Set(`${reservedWords$1} ${builtins}`.split(' '));
2700
2698
  forbiddenIdentifiers.add('');
2701
2699
  const makeLegalIdentifier = function makeLegalIdentifier(str) {
2702
2700
  let identifier = str
@@ -3625,7 +3623,9 @@ minimatch$1.match = (list, pattern, options = {}) => {
3625
3623
 
3626
3624
  // replace stuff like \* with *
3627
3625
  const globUnescape = s => s.replace(/\\(.)/g, '$1');
3626
+ const charUnescape = s => s.replace(/\\([^-\]])/g, '$1');
3628
3627
  const regExpEscape = s => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
3628
+ const braExpEscape = s => s.replace(/[[\]\\]/g, '\\$&');
3629
3629
 
3630
3630
  let Minimatch$1 = class Minimatch {
3631
3631
  constructor (pattern, options) {
@@ -3711,7 +3711,7 @@ let Minimatch$1 = class Minimatch {
3711
3711
  negateOffset++;
3712
3712
  }
3713
3713
 
3714
- if (negateOffset) this.pattern = pattern.substr(negateOffset);
3714
+ if (negateOffset) this.pattern = pattern.slice(negateOffset);
3715
3715
  this.negate = negate;
3716
3716
  }
3717
3717
 
@@ -3893,7 +3893,7 @@ let Minimatch$1 = class Minimatch {
3893
3893
  if (pattern === '') return ''
3894
3894
 
3895
3895
  let re = '';
3896
- let hasMagic = !!options.nocase;
3896
+ let hasMagic = false;
3897
3897
  let escaping = false;
3898
3898
  // ? => one single character
3899
3899
  const patternListStack = [];
@@ -3906,11 +3906,23 @@ let Minimatch$1 = class Minimatch {
3906
3906
  let pl;
3907
3907
  let sp;
3908
3908
  // . and .. never match anything that doesn't start with .,
3909
- // even when options.dot is set.
3910
- const patternStart = pattern.charAt(0) === '.' ? '' // anything
3911
- // not (start or / followed by . or .. followed by / or end)
3912
- : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
3913
- : '(?!\\.)';
3909
+ // even when options.dot is set. However, if the pattern
3910
+ // starts with ., then traversal patterns can match.
3911
+ let dotTravAllowed = pattern.charAt(0) === '.';
3912
+ let dotFileAllowed = options.dot || dotTravAllowed;
3913
+ const patternStart = () =>
3914
+ dotTravAllowed
3915
+ ? ''
3916
+ : dotFileAllowed
3917
+ ? '(?!(?:^|\\/)\\.{1,2}(?:$|\\/))'
3918
+ : '(?!\\.)';
3919
+ const subPatternStart = (p) =>
3920
+ p.charAt(0) === '.'
3921
+ ? ''
3922
+ : options.dot
3923
+ ? '(?!(?:^|\\/)\\.{1,2}(?:$|\\/))'
3924
+ : '(?!\\.)';
3925
+
3914
3926
 
3915
3927
  const clearStateChar = () => {
3916
3928
  if (stateChar) {
@@ -3960,6 +3972,11 @@ let Minimatch$1 = class Minimatch {
3960
3972
  }
3961
3973
 
3962
3974
  case '\\':
3975
+ if (inClass && pattern.charAt(i + 1) === '-') {
3976
+ re += c;
3977
+ continue
3978
+ }
3979
+
3963
3980
  clearStateChar();
3964
3981
  escaping = true;
3965
3982
  continue
@@ -3994,7 +4011,7 @@ let Minimatch$1 = class Minimatch {
3994
4011
  if (options.noext) clearStateChar();
3995
4012
  continue
3996
4013
 
3997
- case '(':
4014
+ case '(': {
3998
4015
  if (inClass) {
3999
4016
  re += '(';
4000
4017
  continue
@@ -4005,46 +4022,64 @@ let Minimatch$1 = class Minimatch {
4005
4022
  continue
4006
4023
  }
4007
4024
 
4008
- patternListStack.push({
4025
+ const plEntry = {
4009
4026
  type: stateChar,
4010
4027
  start: i - 1,
4011
4028
  reStart: re.length,
4012
4029
  open: plTypes[stateChar].open,
4013
- close: plTypes[stateChar].close
4014
- });
4015
- // negation is (?:(?!js)[^/]*)
4016
- re += stateChar === '!' ? '(?:(?!(?:' : '(?:';
4030
+ close: plTypes[stateChar].close,
4031
+ };
4032
+ this.debug(this.pattern, '\t', plEntry);
4033
+ patternListStack.push(plEntry);
4034
+ // negation is (?:(?!(?:js)(?:<rest>))[^/]*)
4035
+ re += plEntry.open;
4036
+ // next entry starts with a dot maybe?
4037
+ if (plEntry.start === 0 && plEntry.type !== '!') {
4038
+ dotTravAllowed = true;
4039
+ re += subPatternStart(pattern.slice(i + 1));
4040
+ }
4017
4041
  this.debug('plType %j %j', stateChar, re);
4018
4042
  stateChar = false;
4019
- continue
4043
+ continue
4044
+ }
4020
4045
 
4021
- case ')':
4022
- if (inClass || !patternListStack.length) {
4046
+ case ')': {
4047
+ const plEntry = patternListStack[patternListStack.length - 1];
4048
+ if (inClass || !plEntry) {
4023
4049
  re += '\\)';
4024
4050
  continue
4025
4051
  }
4052
+ patternListStack.pop();
4026
4053
 
4054
+ // closing an extglob
4027
4055
  clearStateChar();
4028
4056
  hasMagic = true;
4029
- pl = patternListStack.pop();
4057
+ pl = plEntry;
4030
4058
  // negation is (?:(?!js)[^/]*)
4031
4059
  // The others are (?:<pattern>)<type>
4032
4060
  re += pl.close;
4033
4061
  if (pl.type === '!') {
4034
- negativeLists.push(pl);
4062
+ negativeLists.push(Object.assign(pl, { reEnd: re.length }));
4035
4063
  }
4036
- pl.reEnd = re.length;
4037
- continue
4064
+ continue
4065
+ }
4038
4066
 
4039
- case '|':
4040
- if (inClass || !patternListStack.length) {
4067
+ case '|': {
4068
+ const plEntry = patternListStack[patternListStack.length - 1];
4069
+ if (inClass || !plEntry) {
4041
4070
  re += '\\|';
4042
4071
  continue
4043
4072
  }
4044
4073
 
4045
4074
  clearStateChar();
4046
4075
  re += '|';
4047
- continue
4076
+ // next subpattern can start with a dot?
4077
+ if (plEntry.start === 0 && plEntry.type !== '!') {
4078
+ dotTravAllowed = true;
4079
+ re += subPatternStart(pattern.slice(i + 1));
4080
+ }
4081
+ continue
4082
+ }
4048
4083
 
4049
4084
  // these are mostly the same in regexp and glob
4050
4085
  case '[':
@@ -4072,8 +4107,6 @@ let Minimatch$1 = class Minimatch {
4072
4107
  continue
4073
4108
  }
4074
4109
 
4075
- // handle the case where we left a class open.
4076
- // "[z-a]" is valid, equivalent to "\[z-a\]"
4077
4110
  // split where the last [ was, make sure we don't have
4078
4111
  // an invalid re. if so, re-walk the contents of the
4079
4112
  // would-be class to re-translate any characters that
@@ -4082,11 +4115,17 @@ let Minimatch$1 = class Minimatch {
4082
4115
  // without a try/catch and a new RegExp, but it's tricky
4083
4116
  // to do safely. For now, this is safe and works.
4084
4117
  cs = pattern.substring(classStart + 1, i);
4085
-
4086
- // finish up the class.
4118
+ try {
4119
+ RegExp('[' + braExpEscape(charUnescape(cs)) + ']');
4120
+ // looks good, finish up the class.
4121
+ re += c;
4122
+ } catch (er) {
4123
+ // out of order ranges in JS are errors, but in glob syntax,
4124
+ // they're just a range that matches nothing.
4125
+ re = re.substring(0, reClassStart) + '(?:$.)'; // match nothing ever
4126
+ }
4087
4127
  hasMagic = true;
4088
4128
  inClass = false;
4089
- re += c;
4090
4129
  continue
4091
4130
 
4092
4131
  default:
@@ -4110,9 +4149,9 @@ let Minimatch$1 = class Minimatch {
4110
4149
  // this is a huge pita. We now have to re-walk
4111
4150
  // the contents of the would-be class to re-translate
4112
4151
  // any characters that were passed through as-is
4113
- cs = pattern.substr(classStart + 1);
4152
+ cs = pattern.slice(classStart + 1);
4114
4153
  sp = this.parse(cs, SUBPARSE);
4115
- re = re.substr(0, reClassStart) + '\\[' + sp[0];
4154
+ re = re.substring(0, reClassStart) + '\\[' + sp[0];
4116
4155
  hasMagic = hasMagic || sp[1];
4117
4156
  }
4118
4157
 
@@ -4179,14 +4218,16 @@ let Minimatch$1 = class Minimatch {
4179
4218
  // Handle nested stuff like *(*.js|!(*.json)), where open parens
4180
4219
  // mean that we should *not* include the ) in the bit that is considered
4181
4220
  // "after" the negated section.
4182
- const openParensBefore = nlBefore.split('(').length - 1;
4221
+ const closeParensBefore = nlBefore.split(')').length;
4222
+ const openParensBefore = nlBefore.split('(').length - closeParensBefore;
4183
4223
  let cleanAfter = nlAfter;
4184
4224
  for (let i = 0; i < openParensBefore; i++) {
4185
4225
  cleanAfter = cleanAfter.replace(/\)[+*?]?/, '');
4186
4226
  }
4187
4227
  nlAfter = cleanAfter;
4188
4228
 
4189
- const dollar = nlAfter === '' && isSub !== SUBPARSE ? '$' : '';
4229
+ const dollar = nlAfter === '' && isSub !== SUBPARSE ? '(?:$|\\/)' : '';
4230
+
4190
4231
  re = nlBefore + nlFirst + nlAfter + dollar + nlLast;
4191
4232
  }
4192
4233
 
@@ -4198,7 +4239,7 @@ let Minimatch$1 = class Minimatch {
4198
4239
  }
4199
4240
 
4200
4241
  if (addPatternStart) {
4201
- re = patternStart + re;
4242
+ re = patternStart() + re;
4202
4243
  }
4203
4244
 
4204
4245
  // parsing just a piece of a larger pattern.
@@ -4206,6 +4247,11 @@ let Minimatch$1 = class Minimatch {
4206
4247
  return [re, hasMagic]
4207
4248
  }
4208
4249
 
4250
+ // if it's nocase, and the lcase/uppercase don't match, it's magic
4251
+ if (options.nocase && !hasMagic) {
4252
+ hasMagic = pattern.toUpperCase() !== pattern.toLowerCase();
4253
+ }
4254
+
4209
4255
  // skip the regexp for non-magical patterns
4210
4256
  // unescape anything in it, though, so that it'll be
4211
4257
  // an exact match against a file etc.
@@ -4475,6 +4521,12 @@ function setopts (self, pattern, options) {
4475
4521
  pattern = "**/" + pattern;
4476
4522
  }
4477
4523
 
4524
+ self.windowsPathsNoEscape = !!options.windowsPathsNoEscape ||
4525
+ options.allowWindowsEscape === false;
4526
+ if (self.windowsPathsNoEscape) {
4527
+ pattern = pattern.replace(/\\/g, '/');
4528
+ }
4529
+
4478
4530
  self.silent = !!options.silent;
4479
4531
  self.pattern = pattern;
4480
4532
  self.strict = options.strict !== false;
@@ -4530,8 +4582,6 @@ function setopts (self, pattern, options) {
4530
4582
  // Note that they are not supported in Glob itself anyway.
4531
4583
  options.nonegate = true;
4532
4584
  options.nocomment = true;
4533
- // always treat \ in patterns as escapes, not path separators
4534
- options.allowWindowsEscape = true;
4535
4585
 
4536
4586
  self.minimatch = new Minimatch(pattern, options);
4537
4587
  self.options = self.minimatch.options;
@@ -6079,15 +6129,15 @@ function requireGlob () {
6079
6129
  var globExports = requireGlob();
6080
6130
  var glob$1 = /*@__PURE__*/getDefaultExportFromCjs(globExports);
6081
6131
 
6082
- const comma$1 = ','.charCodeAt(0);
6132
+ const comma = ','.charCodeAt(0);
6083
6133
  const semicolon = ';'.charCodeAt(0);
6084
- const chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
6085
- const intToChar$1 = new Uint8Array(64); // 64 possible chars.
6086
- const charToInt$1 = new Uint8Array(128); // z is 122 in ASCII
6087
- for (let i = 0; i < chars$2.length; i++) {
6088
- const c = chars$2.charCodeAt(i);
6089
- intToChar$1[i] = c;
6090
- charToInt$1[c] = i;
6134
+ const chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
6135
+ const intToChar = new Uint8Array(64); // 64 possible chars.
6136
+ const charToInt = new Uint8Array(128); // z is 122 in ASCII
6137
+ for (let i = 0; i < chars$1.length; i++) {
6138
+ const c = chars$1.charCodeAt(i);
6139
+ intToChar[i] = c;
6140
+ charToInt[c] = i;
6091
6141
  }
6092
6142
  // Provide a fallback for older environments.
6093
6143
  const td = typeof TextDecoder !== 'undefined'
@@ -6108,6 +6158,80 @@ const td = typeof TextDecoder !== 'undefined'
6108
6158
  return out;
6109
6159
  },
6110
6160
  };
6161
+ function decode(mappings) {
6162
+ const state = new Int32Array(5);
6163
+ const decoded = [];
6164
+ let index = 0;
6165
+ do {
6166
+ const semi = indexOf(mappings, index);
6167
+ const line = [];
6168
+ let sorted = true;
6169
+ let lastCol = 0;
6170
+ state[0] = 0;
6171
+ for (let i = index; i < semi; i++) {
6172
+ let seg;
6173
+ i = decodeInteger(mappings, i, state, 0); // genColumn
6174
+ const col = state[0];
6175
+ if (col < lastCol)
6176
+ sorted = false;
6177
+ lastCol = col;
6178
+ if (hasMoreVlq(mappings, i, semi)) {
6179
+ i = decodeInteger(mappings, i, state, 1); // sourcesIndex
6180
+ i = decodeInteger(mappings, i, state, 2); // sourceLine
6181
+ i = decodeInteger(mappings, i, state, 3); // sourceColumn
6182
+ if (hasMoreVlq(mappings, i, semi)) {
6183
+ i = decodeInteger(mappings, i, state, 4); // namesIndex
6184
+ seg = [col, state[1], state[2], state[3], state[4]];
6185
+ }
6186
+ else {
6187
+ seg = [col, state[1], state[2], state[3]];
6188
+ }
6189
+ }
6190
+ else {
6191
+ seg = [col];
6192
+ }
6193
+ line.push(seg);
6194
+ }
6195
+ if (!sorted)
6196
+ sort(line);
6197
+ decoded.push(line);
6198
+ index = semi + 1;
6199
+ } while (index <= mappings.length);
6200
+ return decoded;
6201
+ }
6202
+ function indexOf(mappings, index) {
6203
+ const idx = mappings.indexOf(';', index);
6204
+ return idx === -1 ? mappings.length : idx;
6205
+ }
6206
+ function decodeInteger(mappings, pos, state, j) {
6207
+ let value = 0;
6208
+ let shift = 0;
6209
+ let integer = 0;
6210
+ do {
6211
+ const c = mappings.charCodeAt(pos++);
6212
+ integer = charToInt[c];
6213
+ value |= (integer & 31) << shift;
6214
+ shift += 5;
6215
+ } while (integer & 32);
6216
+ const shouldNegate = value & 1;
6217
+ value >>>= 1;
6218
+ if (shouldNegate) {
6219
+ value = -0x80000000 | -value;
6220
+ }
6221
+ state[j] += value;
6222
+ return pos;
6223
+ }
6224
+ function hasMoreVlq(mappings, i, length) {
6225
+ if (i >= length)
6226
+ return false;
6227
+ return mappings.charCodeAt(i) !== comma;
6228
+ }
6229
+ function sort(line) {
6230
+ line.sort(sortComparator$1);
6231
+ }
6232
+ function sortComparator$1(a, b) {
6233
+ return a[0] - b[0];
6234
+ }
6111
6235
  function encode$1(decoded) {
6112
6236
  const state = new Int32Array(5);
6113
6237
  const bufLength = 1024 * 16;
@@ -6138,7 +6262,7 @@ function encode$1(decoded) {
6138
6262
  pos -= subLength;
6139
6263
  }
6140
6264
  if (j > 0)
6141
- buf[pos++] = comma$1;
6265
+ buf[pos++] = comma;
6142
6266
  pos = encodeInteger(buf, pos, state, segment, 0); // genColumn
6143
6267
  if (segment.length === 1)
6144
6268
  continue;
@@ -6162,7 +6286,7 @@ function encodeInteger(buf, pos, state, segment, j) {
6162
6286
  num >>>= 5;
6163
6287
  if (num > 0)
6164
6288
  clamped |= 0b100000;
6165
- buf[pos++] = intToChar$1[clamped];
6289
+ buf[pos++] = intToChar[clamped];
6166
6290
  } while (num > 0);
6167
6291
  return pos;
6168
6292
  }
@@ -7336,7 +7460,7 @@ function isReference(node, parent) {
7336
7460
  return false;
7337
7461
  }
7338
7462
 
7339
- var version$3 = "25.0.3";
7463
+ var version$3 = "25.0.4";
7340
7464
  var peerDependencies = {
7341
7465
  rollup: "^2.68.0||^3.0.0"
7342
7466
  };
@@ -9591,90 +9715,6 @@ function commonjs(options = {}) {
9591
9715
  };
9592
9716
  }
9593
9717
 
9594
- const comma = ','.charCodeAt(0);
9595
- const chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
9596
- const intToChar = new Uint8Array(64); // 64 possible chars.
9597
- const charToInt = new Uint8Array(128); // z is 122 in ASCII
9598
- for (let i = 0; i < chars$1.length; i++) {
9599
- const c = chars$1.charCodeAt(i);
9600
- intToChar[i] = c;
9601
- charToInt[c] = i;
9602
- }
9603
- function decode(mappings) {
9604
- const state = new Int32Array(5);
9605
- const decoded = [];
9606
- let index = 0;
9607
- do {
9608
- const semi = indexOf(mappings, index);
9609
- const line = [];
9610
- let sorted = true;
9611
- let lastCol = 0;
9612
- state[0] = 0;
9613
- for (let i = index; i < semi; i++) {
9614
- let seg;
9615
- i = decodeInteger(mappings, i, state, 0); // genColumn
9616
- const col = state[0];
9617
- if (col < lastCol)
9618
- sorted = false;
9619
- lastCol = col;
9620
- if (hasMoreVlq(mappings, i, semi)) {
9621
- i = decodeInteger(mappings, i, state, 1); // sourcesIndex
9622
- i = decodeInteger(mappings, i, state, 2); // sourceLine
9623
- i = decodeInteger(mappings, i, state, 3); // sourceColumn
9624
- if (hasMoreVlq(mappings, i, semi)) {
9625
- i = decodeInteger(mappings, i, state, 4); // namesIndex
9626
- seg = [col, state[1], state[2], state[3], state[4]];
9627
- }
9628
- else {
9629
- seg = [col, state[1], state[2], state[3]];
9630
- }
9631
- }
9632
- else {
9633
- seg = [col];
9634
- }
9635
- line.push(seg);
9636
- }
9637
- if (!sorted)
9638
- sort(line);
9639
- decoded.push(line);
9640
- index = semi + 1;
9641
- } while (index <= mappings.length);
9642
- return decoded;
9643
- }
9644
- function indexOf(mappings, index) {
9645
- const idx = mappings.indexOf(';', index);
9646
- return idx === -1 ? mappings.length : idx;
9647
- }
9648
- function decodeInteger(mappings, pos, state, j) {
9649
- let value = 0;
9650
- let shift = 0;
9651
- let integer = 0;
9652
- do {
9653
- const c = mappings.charCodeAt(pos++);
9654
- integer = charToInt[c];
9655
- value |= (integer & 31) << shift;
9656
- shift += 5;
9657
- } while (integer & 32);
9658
- const shouldNegate = value & 1;
9659
- value >>>= 1;
9660
- if (shouldNegate) {
9661
- value = -0x80000000 | -value;
9662
- }
9663
- state[j] += value;
9664
- return pos;
9665
- }
9666
- function hasMoreVlq(mappings, i, length) {
9667
- if (i >= length)
9668
- return false;
9669
- return mappings.charCodeAt(i) !== comma;
9670
- }
9671
- function sort(line) {
9672
- line.sort(sortComparator$1);
9673
- }
9674
- function sortComparator$1(a, b) {
9675
- return a[0] - b[0];
9676
- }
9677
-
9678
9718
  // Matches the scheme of a URL, eg "http://"
9679
9719
  const schemeRegex = /^[\w+.-]+:\/\//;
9680
9720
  /**
@@ -11620,16 +11660,16 @@ function findNearestPackageData(basedir, packageCache) {
11620
11660
  return cached;
11621
11661
  }
11622
11662
  const pkgPath = path$o.join(basedir, 'package.json');
11623
- try {
11624
- if (fs$l.statSync(pkgPath, { throwIfNoEntry: false })?.isFile()) {
11663
+ if (tryStatSync(pkgPath)?.isFile()) {
11664
+ try {
11625
11665
  const pkgData = loadPackageData(pkgPath);
11626
11666
  if (packageCache) {
11627
11667
  setFnpdCache(packageCache, pkgData, basedir, originalBasedir);
11628
11668
  }
11629
11669
  return pkgData;
11630
11670
  }
11671
+ catch { }
11631
11672
  }
11632
- catch { }
11633
11673
  const nextBasedir = path$o.dirname(basedir);
11634
11674
  if (nextBasedir === basedir)
11635
11675
  break;
@@ -11834,28 +11874,26 @@ const flattenId = (id) => id
11834
11874
  .replace(replaceNestedIdRE, '___')
11835
11875
  .replace(replaceHashRE, '____');
11836
11876
  const normalizeId = (id) => id.replace(replaceNestedIdRE, ' > ');
11837
- //TODO: revisit later to see if the edge case that "compiling using node v12 code to be run in node v16 in the server" is what we intend to support.
11838
- const builtins = new Set([
11839
- ...builtinModules,
11840
- 'assert/strict',
11841
- 'diagnostics_channel',
11842
- 'dns/promises',
11843
- 'fs/promises',
11844
- 'path/posix',
11845
- 'path/win32',
11846
- 'readline/promises',
11847
- 'stream/consumers',
11848
- 'stream/promises',
11849
- 'stream/web',
11850
- 'timers/promises',
11851
- 'util/types',
11852
- 'wasi',
11853
- ]);
11877
+ // Supported by Node, Deno, Bun
11854
11878
  const NODE_BUILTIN_NAMESPACE = 'node:';
11879
+ // Supported by Deno
11880
+ const NPM_BUILTIN_NAMESPACE = 'npm:';
11881
+ // Supported by Bun
11882
+ const BUN_BUILTIN_NAMESPACE = 'bun:';
11883
+ // Some runtimes like Bun injects namespaced modules here, which is not a node builtin
11884
+ const nodeBuiltins = builtinModules.filter((id) => !id.includes(':'));
11885
+ // TODO: Use `isBuiltin` from `node:module`, but Deno doesn't support it
11855
11886
  function isBuiltin(id) {
11856
- return builtins.has(id.startsWith(NODE_BUILTIN_NAMESPACE)
11857
- ? id.slice(NODE_BUILTIN_NAMESPACE.length)
11858
- : id);
11887
+ if (process.versions.deno && id.startsWith(NPM_BUILTIN_NAMESPACE))
11888
+ return true;
11889
+ if (process.versions.bun && id.startsWith(BUN_BUILTIN_NAMESPACE))
11890
+ return true;
11891
+ return isNodeBuiltin(id);
11892
+ }
11893
+ function isNodeBuiltin(id) {
11894
+ if (id.startsWith(NODE_BUILTIN_NAMESPACE))
11895
+ return true;
11896
+ return nodeBuiltins.includes(id);
11859
11897
  }
11860
11898
  function isInNodeModules$1(id) {
11861
11899
  return id.includes('node_modules');
@@ -11871,7 +11909,7 @@ function isOptimizable(id, optimizeDeps) {
11871
11909
  const bareImportRE = /^(?![a-zA-Z]:)[\w@](?!.*:\/\/)/;
11872
11910
  const deepImportRE = /^([^@][^/]*)\/|^(@[^/]+\/[^/]+)\//;
11873
11911
  // TODO: use import()
11874
- const _require$3 = createRequire$1(import.meta.url);
11912
+ const _require$2 = createRequire$1(import.meta.url);
11875
11913
  // set in bin/vite.js
11876
11914
  const filter = process.env.VITE_DEBUG_FILTER;
11877
11915
  const DEBUG = process.env.DEBUG;
@@ -12061,6 +12099,7 @@ function isDefined(value) {
12061
12099
  }
12062
12100
  function tryStatSync(file) {
12063
12101
  try {
12102
+ // The "throwIfNoEntry" is a performance optimization for cases where the file does not exist
12064
12103
  return fs$l.statSync(file, { throwIfNoEntry: false });
12065
12104
  }
12066
12105
  catch {
@@ -12152,11 +12191,10 @@ function generateCodeFrame(source, start = 0, end) {
12152
12191
  return res.join('\n');
12153
12192
  }
12154
12193
  function isFileReadable(filename) {
12194
+ if (!tryStatSync(filename)) {
12195
+ return false;
12196
+ }
12155
12197
  try {
12156
- // The "throwIfNoEntry" is a performance optimization for cases where the file does not exist
12157
- if (!fs$l.statSync(filename, { throwIfNoEntry: false })) {
12158
- return false;
12159
- }
12160
12198
  // Check if current process has read permission to the file
12161
12199
  fs$l.accessSync(filename, fs$l.constants.R_OK);
12162
12200
  return true;
@@ -12540,7 +12578,7 @@ const usingDynamicImport = typeof jest === 'undefined';
12540
12578
  */
12541
12579
  const dynamicImport = usingDynamicImport
12542
12580
  ? new Function('file', 'return import(file)')
12543
- : _require$3;
12581
+ : _require$2;
12544
12582
  function parseRequest(id) {
12545
12583
  const [_, search] = id.split(requestQuerySplitRE, 2);
12546
12584
  if (!search) {
@@ -12565,7 +12603,7 @@ const requireResolveFromRootWithFallback = (root, id) => {
12565
12603
  }
12566
12604
  // actually resolve
12567
12605
  // Search in the root directory first, and fallback to the default require paths.
12568
- return _require$3.resolve(id, { paths: [root, _dirname] });
12606
+ return _require$2.resolve(id, { paths: [root, _dirname] });
12569
12607
  };
12570
12608
  function emptyCssComments(raw) {
12571
12609
  return raw.replace(multilineCommentsRE$1, (s) => ' '.repeat(s.length));
@@ -15337,6 +15375,13 @@ class Chunk {
15337
15375
  this.end = index;
15338
15376
 
15339
15377
  if (this.edited) {
15378
+ // after split we should save the edit content record into the correct chunk
15379
+ // to make sure sourcemap correct
15380
+ // For example:
15381
+ // ' test'.trim()
15382
+ // split -> ' ' + 'test'
15383
+ // ✔️ edit -> '' + 'test'
15384
+ // ✖️ edit -> 'test' + ''
15340
15385
  // TODO is this block necessary?...
15341
15386
  newChunk.edit('', false);
15342
15387
  this.content = '';
@@ -15365,6 +15410,10 @@ class Chunk {
15365
15410
  if (trimmed.length) {
15366
15411
  if (trimmed !== this.content) {
15367
15412
  this.split(this.start + trimmed.length).edit('', undefined, true);
15413
+ if (this.edited) {
15414
+ // save the change, if it has been edited
15415
+ this.edit(trimmed, this.storeName, true);
15416
+ }
15368
15417
  }
15369
15418
  return true;
15370
15419
  } else {
@@ -15383,7 +15432,11 @@ class Chunk {
15383
15432
 
15384
15433
  if (trimmed.length) {
15385
15434
  if (trimmed !== this.content) {
15386
- this.split(this.end - trimmed.length);
15435
+ const newChunk = this.split(this.end - trimmed.length);
15436
+ if (this.edited) {
15437
+ // save the change, if it has been edited
15438
+ newChunk.edit(trimmed, this.storeName, true);
15439
+ }
15387
15440
  this.edit('', undefined, true);
15388
15441
  }
15389
15442
  return true;
@@ -16773,7 +16826,7 @@ function manifestPlugin(config) {
16773
16826
  this.emitFile({
16774
16827
  fileName: typeof config.build.manifest === 'string'
16775
16828
  ? config.build.manifest
16776
- : 'manifest.json',
16829
+ : '.vite/manifest.json',
16777
16830
  type: 'asset',
16778
16831
  source: jsonStableStringify$1(manifest, { space: 2 }),
16779
16832
  });
@@ -16830,8 +16883,8 @@ function dataURIPlugin() {
16830
16883
  };
16831
16884
  }
16832
16885
 
16833
- /* es-module-lexer 1.3.0 */
16834
- const A=1===new Uint8Array(new Uint16Array([1]).buffer)[0];function parse$e(E,g="@"){if(!C)return init.then((()=>parse$e(E)));const I=E.length+1,o=(C.__heap_base.value||C.__heap_base)+4*I-C.memory.buffer.byteLength;o>0&&C.memory.grow(Math.ceil(o/65536));const D=C.sa(I-1);if((A?B:Q)(E,new Uint16Array(C.memory.buffer,D,I)),!C.parse())throw Object.assign(new Error(`Parse error ${g}:${E.slice(0,C.e()).split("\n").length}:${C.e()-E.lastIndexOf("\n",C.e()-1)}`),{idx:C.e()});const K=[],k=[];for(;C.ri();){const A=C.is(),Q=C.ie(),B=C.ai(),g=C.id(),I=C.ss(),o=C.se();let D;C.ip()&&(D=J(E.slice(-1===g?A-1:A,-1===g?Q+1:Q))),K.push({n:D,s:A,e:Q,ss:I,se:o,d:g,a:B});}for(;C.re();){const A=C.es(),Q=C.ee(),B=C.els(),g=C.ele(),I=E.slice(A,Q),o=I[0],D=B<0?void 0:E.slice(B,g),K=D?D[0]:"";k.push({s:A,e:Q,ls:B,le:g,n:'"'===o||"'"===o?J(I):I,ln:'"'===K||"'"===K?J(D):D});}function J(A){try{return (0, eval)(A)}catch(A){}}return [K,k,!!C.f()]}function Q(A,Q){const B=A.length;let C=0;for(;C<B;){const B=A.charCodeAt(C);Q[C++]=(255&B)<<8|B>>>8;}}function B(A,Q){const B=A.length;let C=0;for(;C<B;)Q[C]=A.charCodeAt(C++);}let C;const init=WebAssembly.compile((E="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9wBGDQFBACgCoAohAQwCC0EAKAKgCiIBQQJqQbAIQQoQLQ0BQQYhAAwCC0EAKAKgCiIBLwECQekARw0AIAEvAQRB9ABHDQBBBCEAIAEvAQZB6ABGDQELQQAgAUF+ajYCoAoPC0EAIAEgAEEBdGo2AqAKAkBBARAnQfsARg0AQQAgATYCoAoPC0EAKAKgCiICIQADQEEAIABBAmo2AqAKAkACQAJAQQEQJyIAQSJGDQAgAEEnRw0BQScQGEEAQQAoAqAKQQJqNgKgCkEBECchAAwCC0EiEBhBAEEAKAKgCkECajYCoApBARAnIQAMAQsgABAqIQALAkAgAEE6Rg0AQQAgATYCoAoPC0EAQQAoAqAKQQJqNgKgCgJAQQEQJyIAQSJGDQAgAEEnRg0AQQAgATYCoAoPCyAAEBhBAEEAKAKgCkECajYCoAoCQAJAQQEQJyIAQSxGDQAgAEH9AEYNAUEAIAE2AqAKDwtBAEEAKAKgCkECajYCoApBARAnQf0ARg0AQQAoAqAKIQAMAQsLQQAoAuQJIgEgAjYCECABQQAoAqAKQQJqNgIMC20BAn8CQAJAA0ACQCAAQf//A3EiAUF3aiICQRdLDQBBASACdEGfgIAEcQ0CCyABQaABRg0BIAAhAiABECYNAkEAIQJBAEEAKAKgCiIAQQJqNgKgCiAALwECIgANAAwCCwsgACECCyACQf//A3ELqwEBBH8CQAJAQQAoAqAKIgIvAQAiA0HhAEYNACABIQQgACEFDAELQQAgAkEEajYCoApBARAnIQJBACgCoAohBQJAAkAgAkEiRg0AIAJBJ0YNACACECoaQQAoAqAKIQQMAQsgAhAYQQBBACgCoApBAmoiBDYCoAoLQQEQJyEDQQAoAqAKIQILAkAgAiAFRg0AIAUgBEEAIAAgACABRiICG0EAIAEgAhsQAgsgAwtyAQR/QQAoAqAKIQBBACgCpAohAQJAAkADQCAAQQJqIQIgACABTw0BAkACQCACLwEAIgNBpH9qDgIBBAALIAIhACADQXZqDgQCAQECAQsgAEEEaiEADAALC0EAIAI2AqAKECJBAA8LQQAgAjYCoApB3QALSQEDf0EAIQMCQCACRQ0AAkADQCAALQAAIgQgAS0AACIFRw0BIAFBAWohASAAQQFqIQAgAkF/aiICDQAMAgsLIAQgBWshAwsgAwsL4gECAEGACAvEAQAAeABwAG8AcgB0AG0AcABvAHIAdABlAHQAYQByAG8AbQB1AG4AYwB0AGkAbwBuAHMAcwBlAHIAdAB2AG8AeQBpAGUAZABlAGwAZQBjAG8AbgB0AGkAbgBpAG4AcwB0AGEAbgB0AHkAYgByAGUAYQByAGUAdAB1AHIAZABlAGIAdQBnAGcAZQBhAHcAYQBpAHQAaAByAHcAaABpAGwAZQBmAG8AcgBpAGYAYwBhAHQAYwBmAGkAbgBhAGwAbABlAGwAcwAAQcQJCxABAAAAAgAAAAAEAAAwOQAA","undefined"!=typeof Buffer?Buffer.from(E,"base64"):Uint8Array.from(atob(E),(A=>A.charCodeAt(0))))).then(WebAssembly.instantiate).then((({exports:A})=>{C=A;}));var E;
16886
+ /* es-module-lexer 1.3.1 */
16887
+ const A=1===new Uint8Array(new Uint16Array([1]).buffer)[0];function parse$e(E,g="@"){if(!C)return init.then((()=>parse$e(E)));const I=E.length+1,o=(C.__heap_base.value||C.__heap_base)+4*I-C.memory.buffer.byteLength;o>0&&C.memory.grow(Math.ceil(o/65536));const K=C.sa(I-1);if((A?B:Q)(E,new Uint16Array(C.memory.buffer,K,I)),!C.parse())throw Object.assign(new Error(`Parse error ${g}:${E.slice(0,C.e()).split("\n").length}:${C.e()-E.lastIndexOf("\n",C.e()-1)}`),{idx:C.e()});const D=[],k=[];for(;C.ri();){const A=C.is(),Q=C.ie(),B=C.ai(),g=C.id(),I=C.ss(),o=C.se();let K;C.ip()&&(K=J(E.slice(-1===g?A-1:A,-1===g?Q+1:Q))),D.push({n:K,s:A,e:Q,ss:I,se:o,d:g,a:B});}for(;C.re();){const A=C.es(),Q=C.ee(),B=C.els(),g=C.ele(),I=E.slice(A,Q),o=I[0],K=B<0?void 0:E.slice(B,g),D=K?K[0]:"";k.push({s:A,e:Q,ls:B,le:g,n:'"'===o||"'"===o?J(I):I,ln:'"'===D||"'"===D?J(K):K});}function J(A){try{return (0, eval)(A)}catch(A){}}return [D,k,!!C.f()]}function Q(A,Q){const B=A.length;let C=0;for(;C<B;){const B=A.charCodeAt(C);Q[C++]=(255&B)<<8|B>>>8;}}function B(A,Q){const B=A.length;let C=0;for(;C<B;)Q[C]=A.charCodeAt(C++);}let C;const init=WebAssembly.compile((E="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DQFBACgCoAohAQwCC0EAKAKgCiIBQQJqQbAIQQoQLQ0BQQYhAAwCC0EAKAKgCiIBLwECQekARw0AIAEvAQRB9ABHDQBBBCEAIAEvAQZB6ABGDQELQQAgAUF+ajYCoAoPC0EAIAEgAEEBdGo2AqAKAkBBARAnQfsARg0AQQAgATYCoAoPC0EAKAKgCiICIQADQEEAIABBAmo2AqAKAkACQAJAQQEQJyIAQSJGDQAgAEEnRw0BQScQGEEAQQAoAqAKQQJqNgKgCkEBECchAAwCC0EiEBhBAEEAKAKgCkECajYCoApBARAnIQAMAQsgABAqIQALAkAgAEE6Rg0AQQAgATYCoAoPC0EAQQAoAqAKQQJqNgKgCgJAQQEQJyIAQSJGDQAgAEEnRg0AQQAgATYCoAoPCyAAEBhBAEEAKAKgCkECajYCoAoCQAJAQQEQJyIAQSxGDQAgAEH9AEYNAUEAIAE2AqAKDwtBAEEAKAKgCkECajYCoApBARAnQf0ARg0AQQAoAqAKIQAMAQsLQQAoAuQJIgEgAjYCECABQQAoAqAKQQJqNgIMC20BAn8CQAJAA0ACQCAAQf//A3EiAUF3aiICQRdLDQBBASACdEGfgIAEcQ0CCyABQaABRg0BIAAhAiABECYNAkEAIQJBAEEAKAKgCiIAQQJqNgKgCiAALwECIgANAAwCCwsgACECCyACQf//A3ELqwEBBH8CQAJAQQAoAqAKIgIvAQAiA0HhAEYNACABIQQgACEFDAELQQAgAkEEajYCoApBARAnIQJBACgCoAohBQJAAkAgAkEiRg0AIAJBJ0YNACACECoaQQAoAqAKIQQMAQsgAhAYQQBBACgCoApBAmoiBDYCoAoLQQEQJyEDQQAoAqAKIQILAkAgAiAFRg0AIAUgBEEAIAAgACABRiICG0EAIAEgAhsQAgsgAwtyAQR/QQAoAqAKIQBBACgCpAohAQJAAkADQCAAQQJqIQIgACABTw0BAkACQCACLwEAIgNBpH9qDgIBBAALIAIhACADQXZqDgQCAQECAQsgAEEEaiEADAALC0EAIAI2AqAKECJBAA8LQQAgAjYCoApB3QALSQEDf0EAIQMCQCACRQ0AAkADQCAALQAAIgQgAS0AACIFRw0BIAFBAWohASAAQQFqIQAgAkF/aiICDQAMAgsLIAQgBWshAwsgAwsL4gECAEGACAvEAQAAeABwAG8AcgB0AG0AcABvAHIAdABlAHQAYQByAG8AbQB1AG4AYwB0AGkAbwBuAHMAcwBlAHIAdAB2AG8AeQBpAGUAZABlAGwAZQBjAG8AbgB0AGkAbgBpAG4AcwB0AGEAbgB0AHkAYgByAGUAYQByAGUAdAB1AHIAZABlAGIAdQBnAGcAZQBhAHcAYQBpAHQAaAByAHcAaABpAGwAZQBmAG8AcgBpAGYAYwBhAHQAYwBmAGkAbgBhAGwAbABlAGwAcwAAQcQJCxABAAAAAgAAAAAEAAAwOQAA","undefined"!=typeof Buffer?Buffer.from(E,"base64"):Uint8Array.from(atob(E),(A=>A.charCodeAt(0))))).then(WebAssembly.instantiate).then((({exports:A})=>{C=A;}));var E;
16835
16888
 
16836
16889
  var convertSourceMap$1 = {};
16837
16890
 
@@ -20025,12 +20078,12 @@ function getSettings$2(settingsOrOptions = {}) {
20025
20078
 
20026
20079
  /*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
20027
20080
 
20028
- let promise;
20081
+ let promise$1;
20029
20082
 
20030
20083
  var queueMicrotask_1 = typeof queueMicrotask === 'function'
20031
20084
  ? queueMicrotask.bind(typeof window !== 'undefined' ? window : commonjsGlobal)
20032
20085
  // reuse resolved promise, and allocate it lazily
20033
- : cb => (promise || (promise = Promise.resolve()))
20086
+ : cb => (promise$1 || (promise$1 = Promise.resolve()))
20034
20087
  .then(cb)
20035
20088
  .catch(err => setTimeout(() => { throw err }, 0));
20036
20089
 
@@ -37503,48 +37556,59 @@ main$1.exports.populate = DotenvModule.populate;
37503
37556
 
37504
37557
  main$1.exports = DotenvModule;
37505
37558
 
37559
+ // like String.prototype.search but returns the last index
37560
+ function _searchLast (str, rgx) {
37561
+ const matches = Array.from(str.matchAll(rgx));
37562
+ return matches.length > 0 ? matches.slice(-1)[0].index : -1
37563
+ }
37564
+
37506
37565
  function _interpolate (envValue, environment, config) {
37507
- const matches = envValue.match(/(.?\${*[\w]*(?::-[\w/]*)?}*)/g) || [];
37566
+ // find the last unescaped dollar sign in the
37567
+ // value so that we can evaluate it
37568
+ const lastUnescapedDollarSignIndex = _searchLast(envValue, /(?!(?<=\\))\$/g);
37508
37569
 
37509
- return matches.reduce(function (newEnv, match, index) {
37510
- const parts = /(.?)\${*([\w]*(?::-[\w/]*)?)?}*/g.exec(match);
37511
- if (!parts || parts.length === 0) {
37512
- return newEnv
37513
- }
37570
+ // If we couldn't match any unescaped dollar sign
37571
+ // let's return the string as is
37572
+ if (lastUnescapedDollarSignIndex === -1) return envValue
37514
37573
 
37515
- const prefix = parts[1];
37574
+ // This is the right-most group of variables in the string
37575
+ const rightMostGroup = envValue.slice(lastUnescapedDollarSignIndex);
37516
37576
 
37517
- let value, replacePart;
37577
+ /**
37578
+ * This finds the inner most variable/group divided
37579
+ * by variable name and default value (if present)
37580
+ * (
37581
+ * (?!(?<=\\))\$ // only match dollar signs that are not escaped
37582
+ * {? // optional opening curly brace
37583
+ * ([\w]+) // match the variable name
37584
+ * (?::-([^}\\]*))? // match an optional default value
37585
+ * }? // optional closing curly brace
37586
+ * )
37587
+ */
37588
+ const matchGroup = /((?!(?<=\\))\${?([\w]+)(?::-([^}\\]*))?}?)/;
37589
+ const match = rightMostGroup.match(matchGroup);
37590
+
37591
+ if (match != null) {
37592
+ const [, group, variableName, defaultValue] = match;
37593
+
37594
+ return _interpolate(
37595
+ envValue.replace(
37596
+ group,
37597
+ environment[variableName] ||
37598
+ defaultValue ||
37599
+ config.parsed[variableName] ||
37600
+ ''
37601
+ ),
37602
+ environment,
37603
+ config
37604
+ )
37605
+ }
37518
37606
 
37519
- if (prefix === '\\') {
37520
- replacePart = parts[0];
37521
- value = replacePart.replace('\\$', '$');
37522
- } else {
37523
- // PATCH: compatible with env variables ended with unescaped $
37524
- if(!parts[2]) {
37525
- return newEnv
37526
- }
37527
- const keyParts = parts[2].split(':-');
37528
- const key = keyParts[0];
37529
- replacePart = parts[0].substring(prefix.length);
37530
- // process.env value 'wins' over .env file's value
37531
- value = Object.prototype.hasOwnProperty.call(environment, key)
37532
- ? environment[key]
37533
- : (config.parsed[key] || keyParts[1] || '');
37534
-
37535
- // If the value is found, remove nested expansions.
37536
- if (keyParts.length > 1 && value) {
37537
- const replaceNested = matches[index + 1];
37538
- matches[index + 1] = '';
37539
-
37540
- newEnv = newEnv.replace(replaceNested, '');
37541
- }
37542
- // Resolve recursive interpolations
37543
- value = _interpolate(value, environment, config);
37544
- }
37607
+ return envValue
37608
+ }
37545
37609
 
37546
- return newEnv.replace(replacePart, value)
37547
- }, envValue)
37610
+ function _resolveEscapeSequences (value) {
37611
+ return value.replace(/\\\$/g, '$')
37548
37612
  }
37549
37613
 
37550
37614
  function expand (config) {
@@ -37552,9 +37616,13 @@ function expand (config) {
37552
37616
  const environment = config.ignoreProcessEnv ? {} : process.env;
37553
37617
 
37554
37618
  for (const configKey in config.parsed) {
37555
- const value = Object.prototype.hasOwnProperty.call(environment, configKey) ? environment[configKey] : config.parsed[configKey];
37619
+ const value = Object.prototype.hasOwnProperty.call(environment, configKey)
37620
+ ? environment[configKey]
37621
+ : config.parsed[configKey];
37556
37622
 
37557
- config.parsed[configKey] = _interpolate(value, environment, config);
37623
+ config.parsed[configKey] = _resolveEscapeSequences(
37624
+ _interpolate(value, environment, config)
37625
+ );
37558
37626
  }
37559
37627
 
37560
37628
  // PATCH: don't write to process.env
@@ -38688,8 +38756,8 @@ function cssPostPlugin(config) {
38688
38756
  let pureCssChunks;
38689
38757
  // when there are multiple rollup outputs and extracting CSS, only emit once,
38690
38758
  // since output formats have no effect on the generated CSS.
38691
- let outputToExtractedCSSMap;
38692
38759
  let hasEmitted = false;
38760
+ let chunkCSSMap;
38693
38761
  const rollupOptionsOutput = config.build.rollupOptions.output;
38694
38762
  const assetFileNames = (Array.isArray(rollupOptionsOutput)
38695
38763
  ? rollupOptionsOutput[0]
@@ -38714,8 +38782,8 @@ function cssPostPlugin(config) {
38714
38782
  renderStart() {
38715
38783
  // Ensure new caches for every build (i.e. rebuilding in watch mode)
38716
38784
  pureCssChunks = new Set();
38717
- outputToExtractedCSSMap = new Map();
38718
38785
  hasEmitted = false;
38786
+ chunkCSSMap = new Map();
38719
38787
  emitTasks = [];
38720
38788
  },
38721
38789
  async transform(css, id, options) {
@@ -38944,7 +39012,7 @@ function cssPostPlugin(config) {
38944
39012
  else {
38945
39013
  chunkCSS = resolveAssetUrlsInCss(chunkCSS, cssBundleName);
38946
39014
  // finalizeCss is called for the aggregated chunk in generateBundle
38947
- outputToExtractedCSSMap.set(opts, (outputToExtractedCSSMap.get(opts) || '') + chunkCSS);
39015
+ chunkCSSMap.set(chunk.fileName, chunkCSS);
38948
39016
  }
38949
39017
  return null;
38950
39018
  },
@@ -39005,8 +39073,26 @@ function cssPostPlugin(config) {
39005
39073
  delete bundle[`${fileName}.map`];
39006
39074
  });
39007
39075
  }
39008
- let extractedCss = outputToExtractedCSSMap.get(opts);
39009
- if (extractedCss && !hasEmitted) {
39076
+ function extractCss() {
39077
+ let css = '';
39078
+ const collected = new Set();
39079
+ const prelimaryNameToChunkMap = new Map(Object.values(bundle)
39080
+ .filter((chunk) => chunk.type === 'chunk')
39081
+ .map((chunk) => [chunk.preliminaryFileName, chunk]));
39082
+ function collect(fileName) {
39083
+ const chunk = bundle[fileName];
39084
+ if (!chunk || chunk.type !== 'chunk' || collected.has(chunk))
39085
+ return;
39086
+ collected.add(chunk);
39087
+ chunk.imports.forEach(collect);
39088
+ css += chunkCSSMap.get(chunk.preliminaryFileName) ?? '';
39089
+ }
39090
+ for (const chunkName of chunkCSSMap.keys())
39091
+ collect(prelimaryNameToChunkMap.get(chunkName)?.fileName ?? '');
39092
+ return css;
39093
+ }
39094
+ let extractedCss = !hasEmitted && extractCss();
39095
+ if (extractedCss) {
39010
39096
  hasEmitted = true;
39011
39097
  extractedCss = await finalizeCss(extractedCss, true, config);
39012
39098
  this.emitFile({
@@ -39313,8 +39399,8 @@ function createCachedImport(imp) {
39313
39399
  return cached;
39314
39400
  };
39315
39401
  }
39316
- const importPostcssImport = createCachedImport(() => import('./dep-13ae786e.js').then(function (n) { return n.i; }));
39317
- const importPostcssModules = createCachedImport(() => import('./dep-5c5f3875.js').then(function (n) { return n.i; }));
39402
+ const importPostcssImport = createCachedImport(() => import('./dep-68c42983.js').then(function (n) { return n.i; }));
39403
+ const importPostcssModules = createCachedImport(() => import('./dep-9586b1f1.js').then(function (n) { return n.i; }));
39318
39404
  const importPostcss = createCachedImport(() => import('postcss'));
39319
39405
  /**
39320
39406
  * @experimental
@@ -39613,14 +39699,14 @@ async function hoistAtRules(css) {
39613
39699
  }
39614
39700
  const loadedPreprocessors = {};
39615
39701
  // TODO: use dynamic import
39616
- const _require$2 = createRequire$1(import.meta.url);
39702
+ const _require$1 = createRequire$1(import.meta.url);
39617
39703
  function loadPreprocessor(lang, root) {
39618
39704
  if (lang in loadedPreprocessors) {
39619
39705
  return loadedPreprocessors[lang];
39620
39706
  }
39621
39707
  try {
39622
39708
  const resolved = requireResolveFromRootWithFallback(root, lang);
39623
- return (loadedPreprocessors[lang] = _require$2(resolved));
39709
+ return (loadedPreprocessors[lang] = _require$1(resolved));
39624
39710
  }
39625
39711
  catch (e) {
39626
39712
  if (e.code === 'MODULE_NOT_FOUND') {
@@ -40636,55 +40722,6 @@ function importAssertions(Parser) {
40636
40722
  }
40637
40723
 
40638
40724
  const debug$d = createDebugger('vite:ssr-external');
40639
- /**
40640
- * Converts "parent > child" syntax to just "child"
40641
- */
40642
- function stripNesting(packages) {
40643
- return packages.map((s) => {
40644
- const arr = s.split('>');
40645
- return arr[arr.length - 1].trim();
40646
- });
40647
- }
40648
- /**
40649
- * Heuristics for determining whether a dependency should be externalized for
40650
- * server-side rendering.
40651
- */
40652
- function cjsSsrResolveExternals(config, knownImports) {
40653
- // strip nesting since knownImports may be passed in from optimizeDeps which
40654
- // supports a "parent > child" syntax
40655
- knownImports = stripNesting(knownImports);
40656
- const ssrConfig = config.ssr;
40657
- if (ssrConfig?.noExternal === true) {
40658
- return [];
40659
- }
40660
- const ssrExternals = new Set();
40661
- const seen = new Set();
40662
- ssrConfig?.external?.forEach((id) => {
40663
- ssrExternals.add(id);
40664
- seen.add(id);
40665
- });
40666
- cjsSsrCollectExternals(config.root, config.resolve, ssrExternals, seen, config.logger);
40667
- const importedDeps = knownImports.map(getNpmPackageName).filter(isDefined);
40668
- for (const dep of importedDeps) {
40669
- // Assume external if not yet seen
40670
- // At this point, the project root and any linked packages have had their dependencies checked,
40671
- // so we can safely mark any knownImports not yet seen as external. They are guaranteed to be
40672
- // dependencies of packages in node_modules.
40673
- if (!seen.has(dep)) {
40674
- ssrExternals.add(dep);
40675
- }
40676
- }
40677
- // ensure `vite/dynamic-import-polyfill` is bundled (issue #1865)
40678
- ssrExternals.delete('vite');
40679
- let externals = [...ssrExternals];
40680
- if (ssrConfig?.noExternal) {
40681
- externals = externals.filter(createFilter(undefined, ssrConfig.noExternal, { resolve: false }));
40682
- }
40683
- return externals;
40684
- }
40685
- const CJS_CONTENT_RE = /\bmodule\.exports\b|\bexports[.[]|\brequire\s*\(|\bObject\.(?:defineProperty|defineProperties|assign)\s*\(\s*exports\b/;
40686
- // TODO: use import()
40687
- const _require$1 = createRequire$1(import.meta.url);
40688
40725
  const isSsrExternalCache = new WeakMap();
40689
40726
  function shouldExternalizeForSSR(id, importer, config) {
40690
40727
  let isSsrExternal = isSsrExternalCache.get(config);
@@ -40774,115 +40811,6 @@ function createIsSsrExternal(config) {
40774
40811
  return external;
40775
40812
  };
40776
40813
  }
40777
- // When config.experimental.buildSsrCjsExternalHeuristics is enabled, this function
40778
- // is used reverting to the Vite 2.9 SSR externalization heuristics
40779
- function cjsSsrCollectExternals(root, resolveOptions, ssrExternals, seen, logger) {
40780
- const rootPkgPath = lookupFile(root, ['package.json']);
40781
- if (!rootPkgPath) {
40782
- return;
40783
- }
40784
- const rootPkgContent = fs$l.readFileSync(rootPkgPath, 'utf-8');
40785
- if (!rootPkgContent) {
40786
- return;
40787
- }
40788
- const rootPkg = JSON.parse(rootPkgContent);
40789
- const deps = {
40790
- ...rootPkg.devDependencies,
40791
- ...rootPkg.dependencies,
40792
- };
40793
- const internalResolveOptions = {
40794
- ...resolveOptions,
40795
- root,
40796
- isProduction: false,
40797
- isBuild: true,
40798
- };
40799
- const depsToTrace = new Set();
40800
- for (const id in deps) {
40801
- if (seen.has(id))
40802
- continue;
40803
- seen.add(id);
40804
- let esmEntry;
40805
- let requireEntry;
40806
- try {
40807
- esmEntry = tryNodeResolve(id, undefined, internalResolveOptions, true, // we set `targetWeb` to `true` to get the ESM entry
40808
- undefined, true)?.id;
40809
- // normalizePath required for windows. tryNodeResolve uses normalizePath
40810
- // which returns with '/', require.resolve returns with '\\'
40811
- requireEntry = normalizePath$3(_require$1.resolve(id, { paths: [root] }));
40812
- }
40813
- catch (e) {
40814
- // no main entry, but deep imports may be allowed
40815
- const pkgDir = resolvePackageData(id, root)?.dir;
40816
- if (pkgDir) {
40817
- if (isInNodeModules$1(pkgDir)) {
40818
- ssrExternals.add(id);
40819
- }
40820
- else {
40821
- depsToTrace.add(path$o.dirname(pkgDir));
40822
- }
40823
- continue;
40824
- }
40825
- // resolve failed, assume include
40826
- debug$d?.(`Failed to resolve entries for package "${id}"\n`, e);
40827
- continue;
40828
- }
40829
- // no esm entry but has require entry
40830
- if (!esmEntry) {
40831
- ssrExternals.add(id);
40832
- }
40833
- // trace the dependencies of linked packages
40834
- else if (!isInNodeModules$1(esmEntry)) {
40835
- const pkgDir = resolvePackageData(id, root)?.dir;
40836
- if (pkgDir) {
40837
- depsToTrace.add(pkgDir);
40838
- }
40839
- }
40840
- // has separate esm/require entry, assume require entry is cjs
40841
- else if (esmEntry !== requireEntry) {
40842
- ssrExternals.add(id);
40843
- }
40844
- // if we're externalizing ESM and CJS should basically just always do it?
40845
- // or are there others like SystemJS / AMD that we'd need to handle?
40846
- // for now, we'll just leave this as is
40847
- else if (/\.m?js$/.test(esmEntry)) {
40848
- const pkg = resolvePackageData(id, root)?.data;
40849
- if (!pkg) {
40850
- continue;
40851
- }
40852
- if (pkg.type === 'module' || esmEntry.endsWith('.mjs')) {
40853
- ssrExternals.add(id);
40854
- continue;
40855
- }
40856
- // check if the entry is cjs
40857
- const content = fs$l.readFileSync(esmEntry, 'utf-8');
40858
- if (CJS_CONTENT_RE.test(content)) {
40859
- ssrExternals.add(id);
40860
- continue;
40861
- }
40862
- logger.warn(`${id} doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.`);
40863
- }
40864
- }
40865
- for (const depRoot of depsToTrace) {
40866
- cjsSsrCollectExternals(depRoot, resolveOptions, ssrExternals, seen, logger);
40867
- }
40868
- }
40869
- function cjsShouldExternalizeForSSR(id, externals) {
40870
- if (!externals) {
40871
- return false;
40872
- }
40873
- const should = externals.some((e) => {
40874
- if (id === e) {
40875
- return true;
40876
- }
40877
- // deep imports, check ext before externalizing - only externalize
40878
- // extension-less imports and explicit .js imports
40879
- if (id.startsWith(withTrailingSlash(e)) &&
40880
- (!path$o.extname(id) || id.endsWith('.js'))) {
40881
- return true;
40882
- }
40883
- });
40884
- return should;
40885
- }
40886
40814
 
40887
40815
  /**
40888
40816
  * https://github.com/rollup/plugins/blob/master/packages/json/src/index.js
@@ -42478,12 +42406,7 @@ function importAnalysisPlugin(config) {
42478
42406
  }
42479
42407
  // skip ssr external
42480
42408
  if (ssr) {
42481
- if (config.legacy?.buildSsrCjsExternalHeuristics) {
42482
- if (cjsShouldExternalizeForSSR(specifier, server._ssrExternals)) {
42483
- return;
42484
- }
42485
- }
42486
- else if (shouldExternalizeForSSR(specifier, importer, config)) {
42409
+ if (shouldExternalizeForSSR(specifier, importer, config)) {
42487
42410
  return;
42488
42411
  }
42489
42412
  if (isBuiltin(specifier)) {
@@ -43859,6 +43782,33 @@ function metadataPlugin() {
43859
43782
  };
43860
43783
  }
43861
43784
 
43785
+ // Astring is a tiny and fast JavaScript code generator from an ESTree-compliant AST.
43786
+ //
43787
+ // Astring was written by David Bonnet and released under an MIT license.
43788
+ //
43789
+ // The Git repository for Astring is available at:
43790
+ // https://github.com/davidbonnet/astring.git
43791
+ //
43792
+ // Please use the GitHub bug tracker to report issues:
43793
+ // https://github.com/davidbonnet/astring/issues
43794
+
43795
+
43796
+ /* c8 ignore if */
43797
+ if (!String.prototype.repeat) {
43798
+ /* c8 ignore next */
43799
+ throw new Error(
43800
+ 'String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation',
43801
+ )
43802
+ }
43803
+
43804
+ /* c8 ignore if */
43805
+ if (!String.prototype.endsWith) {
43806
+ /* c8 ignore next */
43807
+ throw new Error(
43808
+ 'String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation',
43809
+ )
43810
+ }
43811
+
43862
43812
  class VariableDynamicImportError extends Error {}
43863
43813
 
43864
43814
  /* eslint-disable-next-line no-template-curly-in-string */
@@ -44172,7 +44122,7 @@ async function resolvePlugins(config, prePlugins, normalPlugins, postPlugins) {
44172
44122
  ssrConfig: config.ssr,
44173
44123
  asSrc: true,
44174
44124
  getDepsOptimizer: (ssr) => getDepsOptimizer(config, ssr),
44175
- shouldExternalize: isBuild && config.build.ssr && config.ssr?.format !== 'cjs'
44125
+ shouldExternalize: isBuild && config.build.ssr
44176
44126
  ? (id, importer) => shouldExternalizeForSSR(id, importer, config)
44177
44127
  : undefined,
44178
44128
  }),
@@ -46289,6 +46239,7 @@ async function loadCachedDepOptimizationMetadata(config, ssr, force = config.opt
46289
46239
  config.logger.info('Forced re-optimization of dependencies');
46290
46240
  }
46291
46241
  // Start with a fresh cache
46242
+ debug$8?.(colors$1.green(`removing old cache dir ${depsCacheDir}`));
46292
46243
  await fsp.rm(depsCacheDir, { recursive: true, force: true });
46293
46244
  }
46294
46245
  /**
@@ -46347,6 +46298,7 @@ function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.command
46347
46298
  fs$l.mkdirSync(processingCacheDir, { recursive: true });
46348
46299
  // a hint for Node.js
46349
46300
  // all files in the cache directory should be recognized as ES modules
46301
+ debug$8?.(colors$1.green(`creating package.json in ${processingCacheDir}`));
46350
46302
  fs$l.writeFileSync(path$o.resolve(processingCacheDir, 'package.json'), `{\n "type": "module"\n}\n`);
46351
46303
  const metadata = initDepsOptimizerMetadata(config, ssr);
46352
46304
  metadata.browserHash = getOptimizedBrowserHash(metadata.hash, depsFromOptimizedDepInfo(depsInfo));
@@ -46363,6 +46315,7 @@ function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.command
46363
46315
  cleaned = true;
46364
46316
  // No need to wait, we can clean up in the background because temp folders
46365
46317
  // are unique per run
46318
+ debug$8?.(colors$1.green(`removing cache dir ${processingCacheDir}`));
46366
46319
  fsp.rm(processingCacheDir, { recursive: true, force: true }).catch(() => {
46367
46320
  // Ignore errors
46368
46321
  });
@@ -46381,6 +46334,7 @@ function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.command
46381
46334
  // Write metadata file, then commit the processing folder to the global deps cache
46382
46335
  // Rewire the file paths from the temporal processing dir to the final deps cache dir
46383
46336
  const dataPath = path$o.join(processingCacheDir, '_metadata.json');
46337
+ debug$8?.(colors$1.green(`creating _metadata.json in ${processingCacheDir}`));
46384
46338
  fs$l.writeFileSync(dataPath, stringifyDepsOptimizerMetadata(metadata, depsCacheDir));
46385
46339
  // In order to minimize the time where the deps folder isn't in a consistent state,
46386
46340
  // we first rename the old depsCacheDir to a temporal path, then we rename the
@@ -46393,18 +46347,26 @@ function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.command
46393
46347
  const temporalPath = depsCacheDir + getTempSuffix();
46394
46348
  const depsCacheDirPresent = fs$l.existsSync(depsCacheDir);
46395
46349
  if (isWindows$4) {
46396
- if (depsCacheDirPresent)
46350
+ if (depsCacheDirPresent) {
46351
+ debug$8?.(colors$1.green(`renaming ${depsCacheDir} to ${temporalPath}`));
46397
46352
  await safeRename(depsCacheDir, temporalPath);
46353
+ }
46354
+ debug$8?.(colors$1.green(`renaming ${processingCacheDir} to ${depsCacheDir}`));
46398
46355
  await safeRename(processingCacheDir, depsCacheDir);
46399
46356
  }
46400
46357
  else {
46401
- if (depsCacheDirPresent)
46358
+ if (depsCacheDirPresent) {
46359
+ debug$8?.(colors$1.green(`renaming ${depsCacheDir} to ${temporalPath}`));
46402
46360
  fs$l.renameSync(depsCacheDir, temporalPath);
46361
+ }
46362
+ debug$8?.(colors$1.green(`renaming ${processingCacheDir} to ${depsCacheDir}`));
46403
46363
  fs$l.renameSync(processingCacheDir, depsCacheDir);
46404
46364
  }
46405
46365
  // Delete temporal path in the background
46406
- if (depsCacheDirPresent)
46366
+ if (depsCacheDirPresent) {
46367
+ debug$8?.(colors$1.green(`removing cache temp dir ${temporalPath}`));
46407
46368
  fsp.rm(temporalPath, { recursive: true, force: true });
46369
+ }
46408
46370
  },
46409
46371
  };
46410
46372
  if (!qualifiedIds.length) {
@@ -46601,11 +46563,6 @@ async function prepareEsbuildOptimizerRun(resolvedConfig, depsInfo, ssr, process
46601
46563
  });
46602
46564
  return { context, idToExports };
46603
46565
  }
46604
- async function findKnownImports(config, ssr) {
46605
- const { deps } = await scanImports(config).result;
46606
- await addManuallyIncludedOptimizeDeps(deps, config, ssr);
46607
- return Object.keys(deps);
46608
- }
46609
46566
  async function addManuallyIncludedOptimizeDeps(deps, config, ssr, extra = [], filter) {
46610
46567
  const { logger } = config;
46611
46568
  const optimizeDeps = getDepOptimizationConfig(config, ssr);
@@ -46957,6 +46914,7 @@ async function cleanupDepsCacheStaleDirs(config) {
46957
46914
  const stats = await fsp.stat(tempDirPath).catch((_) => null);
46958
46915
  if (stats?.mtime &&
46959
46916
  Date.now() - stats.mtime.getTime() > MAX_TEMP_DIR_AGE_MS) {
46917
+ debug$8?.(`removing stale cache temp dir ${tempDirPath}`);
46960
46918
  await fsp.rm(tempDirPath, { recursive: true, force: true });
46961
46919
  }
46962
46920
  }
@@ -47013,7 +46971,6 @@ var index$1 = {
47013
46971
  depsLogString: depsLogString,
47014
46972
  discoverProjectDependencies: discoverProjectDependencies,
47015
46973
  extractExportsData: extractExportsData,
47016
- findKnownImports: findKnownImports,
47017
46974
  getDepHash: getDepHash,
47018
46975
  getDepsCacheDir: getDepsCacheDir,
47019
46976
  getDepsOptimizer: getDepsOptimizer,
@@ -47582,7 +47539,7 @@ function ssrManifestPlugin(config) {
47582
47539
  this.emitFile({
47583
47540
  fileName: typeof config.build.ssrManifest === 'string'
47584
47541
  ? config.build.ssrManifest
47585
- : 'ssr-manifest.json',
47542
+ : '.vite/ssr-manifest.json',
47586
47543
  type: 'asset',
47587
47544
  source: jsonStableStringify$1(ssrManifest, { space: 2 }),
47588
47545
  });
@@ -47624,6 +47581,28 @@ function resolveChokidarOptions(config, options) {
47624
47581
  };
47625
47582
  return resolvedWatchOptions;
47626
47583
  }
47584
+ class NoopWatcher extends EventEmitter$4 {
47585
+ options;
47586
+ constructor(options) {
47587
+ super();
47588
+ this.options = options;
47589
+ }
47590
+ add() {
47591
+ return this;
47592
+ }
47593
+ unwatch() {
47594
+ return this;
47595
+ }
47596
+ getWatched() {
47597
+ return {};
47598
+ }
47599
+ async close() {
47600
+ // noop
47601
+ }
47602
+ }
47603
+ function createNoopWatcher(options) {
47604
+ return new NoopWatcher(options);
47605
+ }
47627
47606
 
47628
47607
  /**
47629
47608
  * make sure systemjs register wrap to had complete parameters in system format
@@ -47851,8 +47830,13 @@ function hasWorkspacePackageJSON(root) {
47851
47830
  if (!isFileReadable(path)) {
47852
47831
  return false;
47853
47832
  }
47854
- const content = JSON.parse(fs$l.readFileSync(path, 'utf-8')) || {};
47855
- return !!content.workspaces;
47833
+ try {
47834
+ const content = JSON.parse(fs$l.readFileSync(path, 'utf-8')) || {};
47835
+ return !!content.workspaces;
47836
+ }
47837
+ catch {
47838
+ return false;
47839
+ }
47856
47840
  }
47857
47841
  function hasRootFile(root) {
47858
47842
  return ROOT_FILES.some((file) => fs$l.existsSync(join$2(root, file)));
@@ -48539,14 +48523,6 @@ async function build(inlineConfig = {}) {
48539
48523
  const outDir = resolve(options.outDir);
48540
48524
  // inject ssr arg to plugin load/transform hooks
48541
48525
  const plugins = (ssr ? config.plugins.map((p) => injectSsrFlagToHooks(p)) : config.plugins);
48542
- const userExternal = options.rollupOptions?.external;
48543
- let external = userExternal;
48544
- // In CJS, we can pass the externals to rollup as is. In ESM, we need to
48545
- // do it in the resolve plugin so we can add the resolved extension for
48546
- // deep node_modules imports
48547
- if (ssr && config.legacy?.buildSsrCjsExternalHeuristics) {
48548
- external = await cjsSsrResolveExternal(config, userExternal);
48549
- }
48550
48526
  if (isDepsOptimizerEnabled(config, ssr)) {
48551
48527
  await initDepsOptimizer(config);
48552
48528
  }
@@ -48560,7 +48536,7 @@ async function build(inlineConfig = {}) {
48560
48536
  ...options.rollupOptions,
48561
48537
  input,
48562
48538
  plugins,
48563
- external,
48539
+ external: options.rollupOptions?.external,
48564
48540
  onwarn(warning, warn) {
48565
48541
  onRollupWarning(warning, warn, config);
48566
48542
  },
@@ -48586,8 +48562,7 @@ async function build(inlineConfig = {}) {
48586
48562
  }
48587
48563
  const ssrNodeBuild = ssr && config.ssr.target === 'node';
48588
48564
  const ssrWorkerBuild = ssr && config.ssr.target === 'webworker';
48589
- const cjsSsrBuild = ssr && config.ssr.format === 'cjs';
48590
- const format = output.format || (cjsSsrBuild ? 'cjs' : 'es');
48565
+ const format = output.format || 'es';
48591
48566
  const jsExt = ssrNodeBuild || libOptions
48592
48567
  ? resolveOutputJsExtension(format, findNearestPackageData(config.root, config.packageCache)?.data
48593
48568
  .type)
@@ -48596,7 +48571,7 @@ async function build(inlineConfig = {}) {
48596
48571
  dir: outDir,
48597
48572
  // Default format is 'es' for regular and for SSR builds
48598
48573
  format,
48599
- exports: cjsSsrBuild ? 'named' : 'auto',
48574
+ exports: 'auto',
48600
48575
  sourcemap: options.sourcemap,
48601
48576
  name: libOptions ? libOptions.name : undefined,
48602
48577
  // es2015 enables `generatedCode.symbols`
@@ -48837,30 +48812,6 @@ function onRollupWarning(warning, warn, config) {
48837
48812
  viteWarn(warning);
48838
48813
  }
48839
48814
  }
48840
- async function cjsSsrResolveExternal(config, user) {
48841
- // see if we have cached deps data available
48842
- let knownImports;
48843
- const dataPath = path$o.join(getDepsCacheDir(config, false), '_metadata.json');
48844
- try {
48845
- const data = JSON.parse(fs$l.readFileSync(dataPath, 'utf-8'));
48846
- knownImports = Object.keys(data.optimized);
48847
- }
48848
- catch (e) { }
48849
- if (!knownImports) {
48850
- // no dev deps optimization data, do a fresh scan
48851
- knownImports = await findKnownImports(config, false); // needs to use non-ssr
48852
- }
48853
- const ssrExternals = cjsSsrResolveExternals(config, knownImports);
48854
- return (id, parentId, isResolved) => {
48855
- const isExternal = cjsShouldExternalizeForSSR(id, ssrExternals);
48856
- if (isExternal) {
48857
- return true;
48858
- }
48859
- if (user) {
48860
- return resolveUserExternal(user, id, parentId, isResolved);
48861
- }
48862
- };
48863
- }
48864
48815
  function resolveUserExternal(user, id, parentId, isResolved) {
48865
48816
  if (typeof user === 'function') {
48866
48817
  return user(id, parentId, isResolved);
@@ -49848,7 +49799,7 @@ function requireNode () {
49848
49799
 
49849
49800
  case 'PIPE':
49850
49801
  case 'TCP':
49851
- var net = require$$3$2;
49802
+ var net = require$$4$1;
49852
49803
  stream = new net.Socket({
49853
49804
  fd: fd,
49854
49805
  readable: false,
@@ -56664,7 +56615,7 @@ async function instantiateModule(url, server, context = { global }, urlStack = [
56664
56615
  // In node@12+ we can use dynamic import to load CJS and ESM
56665
56616
  async function nodeImport(id, importer, resolveOptions) {
56666
56617
  let url;
56667
- if (id.startsWith('node:') || id.startsWith('data:') || isBuiltin(id)) {
56618
+ if (id.startsWith('data:') || isBuiltin(id)) {
56668
56619
  url = id;
56669
56620
  }
56670
56621
  else {
@@ -57884,7 +57835,7 @@ function bindCLIShortcuts(server, opts) {
57884
57835
  if (opts?.print) {
57885
57836
  server.config.logger.info(colors$1.dim(colors$1.green(' ➜')) +
57886
57837
  colors$1.dim(' press ') +
57887
- colors$1.bold('h') +
57838
+ colors$1.bold('h + enter') +
57888
57839
  colors$1.dim(' to show help'));
57889
57840
  }
57890
57841
  const shortcuts = (opts?.customShortcuts ?? [])
@@ -57893,21 +57844,6 @@ function bindCLIShortcuts(server, opts) {
57893
57844
  .concat(isDev ? BASE_DEV_SHORTCUTS : BASE_PREVIEW_SHORTCUTS);
57894
57845
  let actionRunning = false;
57895
57846
  const onInput = async (input) => {
57896
- // ctrl+c or ctrl+d
57897
- if (input === '\x03' || input === '\x04') {
57898
- try {
57899
- if (isDev) {
57900
- await server.close();
57901
- }
57902
- else {
57903
- server.httpServer.close();
57904
- }
57905
- }
57906
- finally {
57907
- process.exit(1);
57908
- }
57909
- return;
57910
- }
57911
57847
  if (actionRunning)
57912
57848
  return;
57913
57849
  if (input === 'h') {
@@ -57915,7 +57851,7 @@ function bindCLIShortcuts(server, opts) {
57915
57851
  '',
57916
57852
  colors$1.bold(' Shortcuts'),
57917
57853
  ...shortcuts.map((shortcut) => colors$1.dim(' press ') +
57918
- colors$1.bold(shortcut.key) +
57854
+ colors$1.bold(`${shortcut.key} + enter`) +
57919
57855
  colors$1.dim(` to ${shortcut.description}`)),
57920
57856
  ].join('\n'));
57921
57857
  }
@@ -57926,11 +57862,9 @@ function bindCLIShortcuts(server, opts) {
57926
57862
  await shortcut.action(server);
57927
57863
  actionRunning = false;
57928
57864
  };
57929
- process.stdin.setRawMode(true);
57930
- process.stdin.on('data', onInput).setEncoding('utf8').resume();
57931
- server.httpServer.on('close', () => {
57932
- process.stdin.off('data', onInput).pause();
57933
- });
57865
+ const rl = readline.createInterface({ input: process.stdin });
57866
+ rl.on('line', onInput);
57867
+ server.httpServer.on('close', () => rl.close());
57934
57868
  }
57935
57869
  function isDevServer(server) {
57936
57870
  return 'pluginContainer' in server;
@@ -58859,12 +58793,21 @@ const { concat, toArrayBuffer, unmask } = bufferUtilExports;
58859
58793
  const { isValidStatusCode: isValidStatusCode$1, isValidUTF8 } = validationExports;
58860
58794
 
58861
58795
  const FastBuffer = Buffer[Symbol.species];
58796
+ const promise = Promise.resolve();
58797
+
58798
+ //
58799
+ // `queueMicrotask()` is not available in Node.js < 11.
58800
+ //
58801
+ const queueTask =
58802
+ typeof queueMicrotask === 'function' ? queueMicrotask : queueMicrotaskShim;
58803
+
58862
58804
  const GET_INFO = 0;
58863
58805
  const GET_PAYLOAD_LENGTH_16 = 1;
58864
58806
  const GET_PAYLOAD_LENGTH_64 = 2;
58865
58807
  const GET_MASK = 3;
58866
58808
  const GET_DATA = 4;
58867
58809
  const INFLATING = 5;
58810
+ const WAIT_MICROTASK = 6;
58868
58811
 
58869
58812
  /**
58870
58813
  * HyBi Receiver implementation.
@@ -59003,9 +58946,19 @@ let Receiver$1 = class Receiver extends Writable$1 {
59003
58946
  case GET_DATA:
59004
58947
  err = this.getData(cb);
59005
58948
  break;
58949
+ case INFLATING:
58950
+ this._loop = false;
58951
+ return;
59006
58952
  default:
59007
- // `INFLATING`
58953
+ //
58954
+ // `WAIT_MICROTASK`.
58955
+ //
59008
58956
  this._loop = false;
58957
+
58958
+ queueTask(() => {
58959
+ this._state = GET_INFO;
58960
+ this.startLoop(cb);
58961
+ });
59009
58962
  return;
59010
58963
  }
59011
58964
  } while (this._loop);
@@ -59388,7 +59341,7 @@ let Receiver$1 = class Receiver extends Writable$1 {
59388
59341
  }
59389
59342
  }
59390
59343
 
59391
- this._state = GET_INFO;
59344
+ this._state = WAIT_MICROTASK;
59392
59345
  }
59393
59346
 
59394
59347
  /**
@@ -59405,6 +59358,8 @@ let Receiver$1 = class Receiver extends Writable$1 {
59405
59358
  if (data.length === 0) {
59406
59359
  this.emit('conclude', 1005, EMPTY_BUFFER$2);
59407
59360
  this.end();
59361
+
59362
+ this._state = GET_INFO;
59408
59363
  } else {
59409
59364
  const code = data.readUInt16BE(0);
59410
59365
 
@@ -59436,14 +59391,16 @@ let Receiver$1 = class Receiver extends Writable$1 {
59436
59391
 
59437
59392
  this.emit('conclude', code, buf);
59438
59393
  this.end();
59394
+
59395
+ this._state = GET_INFO;
59439
59396
  }
59440
59397
  } else if (this._opcode === 0x09) {
59441
59398
  this.emit('ping', data);
59399
+ this._state = WAIT_MICROTASK;
59442
59400
  } else {
59443
59401
  this.emit('pong', data);
59402
+ this._state = WAIT_MICROTASK;
59444
59403
  }
59445
-
59446
- this._state = GET_INFO;
59447
59404
  }
59448
59405
  };
59449
59406
 
@@ -59472,7 +59429,36 @@ function error(ErrorCtor, message, prefix, statusCode, errorCode) {
59472
59429
  return err;
59473
59430
  }
59474
59431
 
59475
- /* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^net|tls$" }] */
59432
+ /**
59433
+ * A shim for `queueMicrotask()`.
59434
+ *
59435
+ * @param {Function} cb Callback
59436
+ */
59437
+ function queueMicrotaskShim(cb) {
59438
+ promise.then(cb).catch(throwErrorNextTick);
59439
+ }
59440
+
59441
+ /**
59442
+ * Throws an error.
59443
+ *
59444
+ * @param {Error} err The error to throw
59445
+ * @private
59446
+ */
59447
+ function throwError(err) {
59448
+ throw err;
59449
+ }
59450
+
59451
+ /**
59452
+ * Throws an error in the next tick.
59453
+ *
59454
+ * @param {Error} err The error to throw
59455
+ * @private
59456
+ */
59457
+ function throwErrorNextTick(err) {
59458
+ process.nextTick(throwError, err);
59459
+ }
59460
+
59461
+ /* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Duplex" }] */
59476
59462
  const { randomFillSync } = require$$3$1;
59477
59463
 
59478
59464
  const PerMessageDeflate$2 = permessageDeflate;
@@ -59490,7 +59476,7 @@ let Sender$1 = class Sender {
59490
59476
  /**
59491
59477
  * Creates a Sender instance.
59492
59478
  *
59493
- * @param {(net.Socket|tls.Socket)} socket The connection socket
59479
+ * @param {Duplex} socket The connection socket
59494
59480
  * @param {Object} [extensions] An object containing the negotiated extensions
59495
59481
  * @param {Function} [generateMask] The function used to generate the masking
59496
59482
  * key
@@ -60439,13 +60425,13 @@ function format$1(extensions) {
60439
60425
 
60440
60426
  var extension$1 = { format: format$1, parse: parse$2 };
60441
60427
 
60442
- /* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Readable$" }] */
60428
+ /* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Duplex|Readable$" }] */
60443
60429
 
60444
60430
  const EventEmitter$1 = require$$0$5;
60445
60431
  const https$2 = require$$1$2;
60446
60432
  const http$3 = require$$1$1;
60447
- const net = require$$3$2;
60448
- const tls = require$$4$1;
60433
+ const net = require$$4$1;
60434
+ const tls = require$$4$2;
60449
60435
  const { randomBytes, createHash: createHash$1 } = require$$3$1;
60450
60436
  const { URL: URL$2 } = require$$0$9;
60451
60437
 
@@ -60627,8 +60613,7 @@ let WebSocket$1 = class WebSocket extends EventEmitter$1 {
60627
60613
  /**
60628
60614
  * Set up the socket and the internal resources.
60629
60615
  *
60630
- * @param {(net.Socket|tls.Socket)} socket The network socket between the
60631
- * server and client
60616
+ * @param {Duplex} socket The network socket between the server and client
60632
60617
  * @param {Buffer} head The first packet of the upgraded stream
60633
60618
  * @param {Object} options Options object
60634
60619
  * @param {Function} [options.generateMask] The function used to generate the
@@ -60661,8 +60646,11 @@ let WebSocket$1 = class WebSocket extends EventEmitter$1 {
60661
60646
  receiver.on('ping', receiverOnPing);
60662
60647
  receiver.on('pong', receiverOnPong);
60663
60648
 
60664
- socket.setTimeout(0);
60665
- socket.setNoDelay();
60649
+ //
60650
+ // These methods may not be available if `socket` is just a `Duplex`.
60651
+ //
60652
+ if (socket.setTimeout) socket.setTimeout(0);
60653
+ if (socket.setNoDelay) socket.setNoDelay();
60666
60654
 
60667
60655
  if (head.length > 0) socket.unshift(head);
60668
60656
 
@@ -61105,24 +61093,30 @@ function initAsClient(websocket, address, protocols, options) {
61105
61093
 
61106
61094
  if (address instanceof URL$2) {
61107
61095
  parsedUrl = address;
61108
- websocket._url = address.href;
61109
61096
  } else {
61110
61097
  try {
61111
61098
  parsedUrl = new URL$2(address);
61112
61099
  } catch (e) {
61113
61100
  throw new SyntaxError(`Invalid URL: ${address}`);
61114
61101
  }
61102
+ }
61115
61103
 
61116
- websocket._url = address;
61104
+ if (parsedUrl.protocol === 'http:') {
61105
+ parsedUrl.protocol = 'ws:';
61106
+ } else if (parsedUrl.protocol === 'https:') {
61107
+ parsedUrl.protocol = 'wss:';
61117
61108
  }
61118
61109
 
61110
+ websocket._url = parsedUrl.href;
61111
+
61119
61112
  const isSecure = parsedUrl.protocol === 'wss:';
61120
61113
  const isIpcUrl = parsedUrl.protocol === 'ws+unix:';
61121
61114
  let invalidUrlMessage;
61122
61115
 
61123
61116
  if (parsedUrl.protocol !== 'ws:' && !isSecure && !isIpcUrl) {
61124
61117
  invalidUrlMessage =
61125
- 'The URL\'s protocol must be one of "ws:", "wss:", or "ws+unix:"';
61118
+ 'The URL\'s protocol must be one of "ws:", "wss:", ' +
61119
+ '"http:", "https", or "ws+unix:"';
61126
61120
  } else if (isIpcUrl && !parsedUrl.pathname) {
61127
61121
  invalidUrlMessage = "The URL's pathname is empty";
61128
61122
  } else if (parsedUrl.hash) {
@@ -61656,7 +61650,7 @@ function resume(stream) {
61656
61650
  }
61657
61651
 
61658
61652
  /**
61659
- * The listener of the `net.Socket` `'close'` event.
61653
+ * The listener of the socket `'close'` event.
61660
61654
  *
61661
61655
  * @private
61662
61656
  */
@@ -61707,7 +61701,7 @@ function socketOnClose() {
61707
61701
  }
61708
61702
 
61709
61703
  /**
61710
- * The listener of the `net.Socket` `'data'` event.
61704
+ * The listener of the socket `'data'` event.
61711
61705
  *
61712
61706
  * @param {Buffer} chunk A chunk of data
61713
61707
  * @private
@@ -61719,7 +61713,7 @@ function socketOnData(chunk) {
61719
61713
  }
61720
61714
 
61721
61715
  /**
61722
- * The listener of the `net.Socket` `'end'` event.
61716
+ * The listener of the socket `'end'` event.
61723
61717
  *
61724
61718
  * @private
61725
61719
  */
@@ -61732,7 +61726,7 @@ function socketOnEnd() {
61732
61726
  }
61733
61727
 
61734
61728
  /**
61735
- * The listener of the `net.Socket` `'error'` event.
61729
+ * The listener of the socket `'error'` event.
61736
61730
  *
61737
61731
  * @private
61738
61732
  */
@@ -61809,7 +61803,7 @@ function parse(header) {
61809
61803
 
61810
61804
  var subprotocol$1 = { parse };
61811
61805
 
61812
- /* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^net|tls|https$" }] */
61806
+ /* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^Duplex$" }] */
61813
61807
 
61814
61808
  const EventEmitter = require$$0$5;
61815
61809
  const http$2 = require$$1$1;
@@ -62027,8 +62021,7 @@ class WebSocketServer extends EventEmitter {
62027
62021
  * Handle a HTTP Upgrade request.
62028
62022
  *
62029
62023
  * @param {http.IncomingMessage} req The request object
62030
- * @param {(net.Socket|tls.Socket)} socket The network socket between the
62031
- * server and client
62024
+ * @param {Duplex} socket The network socket between the server and client
62032
62025
  * @param {Buffer} head The first packet of the upgraded stream
62033
62026
  * @param {Function} cb Callback
62034
62027
  * @public
@@ -62152,8 +62145,7 @@ class WebSocketServer extends EventEmitter {
62152
62145
  * @param {String} key The value of the `Sec-WebSocket-Key` header
62153
62146
  * @param {Set} protocols The subprotocols
62154
62147
  * @param {http.IncomingMessage} req The request object
62155
- * @param {(net.Socket|tls.Socket)} socket The network socket between the
62156
- * server and client
62148
+ * @param {Duplex} socket The network socket between the server and client
62157
62149
  * @param {Buffer} head The first packet of the upgraded stream
62158
62150
  * @param {Function} cb Callback
62159
62151
  * @throws {Error} If called more than once with the same socket
@@ -62283,7 +62275,7 @@ function socketOnError() {
62283
62275
  /**
62284
62276
  * Close the connection when preconditions are not fulfilled.
62285
62277
  *
62286
- * @param {(net.Socket|tls.Socket)} socket The socket of the upgrade request
62278
+ * @param {Duplex} socket The socket of the upgrade request
62287
62279
  * @param {Number} code The HTTP response status code
62288
62280
  * @param {String} [message] The HTTP response body
62289
62281
  * @param {Object} [headers] Additional HTTP response headers
@@ -62324,7 +62316,7 @@ function abortHandshake(socket, code, message, headers) {
62324
62316
  *
62325
62317
  * @param {WebSocketServer} server The WebSocket server
62326
62318
  * @param {http.IncomingMessage} req The request object
62327
- * @param {(net.Socket|tls.Socket)} socket The socket of the upgrade request
62319
+ * @param {Duplex} socket The socket of the upgrade request
62328
62320
  * @param {Number} code The HTTP response status code
62329
62321
  * @param {String} message The HTTP response body
62330
62322
  * @private
@@ -65670,9 +65662,13 @@ async function _createServer(inlineConfig = {}, options) {
65670
65662
  if (httpServer) {
65671
65663
  setClientErrorHandler(httpServer, config.logger);
65672
65664
  }
65673
- const watcher = chokidar.watch(
65674
- // config file dependencies and env file might be outside of root
65675
- [root, ...config.configFileDependencies, config.envDir], resolvedWatchOptions);
65665
+ // eslint-disable-next-line eqeqeq
65666
+ const watchEnabled = serverConfig.watch !== null;
65667
+ const watcher = watchEnabled
65668
+ ? chokidar.watch(
65669
+ // config file dependencies and env file might be outside of root
65670
+ [root, ...config.configFileDependencies, config.envDir], resolvedWatchOptions)
65671
+ : createNoopWatcher(resolvedWatchOptions);
65676
65672
  const moduleGraph = new ModuleGraph((url, ssr) => container.resolveId(url, undefined, { ssr }));
65677
65673
  const container = await createPluginContainer(config, moduleGraph, watcher);
65678
65674
  const closeHttpServer = createServerCloseFn(httpServer);
@@ -65697,9 +65693,6 @@ async function _createServer(inlineConfig = {}, options) {
65697
65693
  if (isDepsOptimizerEnabled(config, true)) {
65698
65694
  await initDevSsrDepsOptimizer(config, server);
65699
65695
  }
65700
- if (config.legacy?.buildSsrCjsExternalHeuristics) {
65701
- await updateCjsSsrExternals(server);
65702
- }
65703
65696
  return ssrLoadModule(url, server, undefined, undefined, opts?.fixStacktrace);
65704
65697
  },
65705
65698
  ssrFixStacktrace(e) {
@@ -65785,7 +65778,6 @@ async function _createServer(inlineConfig = {}, options) {
65785
65778
  }
65786
65779
  return server._restartPromise;
65787
65780
  },
65788
- _ssrExternals: null,
65789
65781
  _restartPromise: null,
65790
65782
  _importGlobMap: new Map(),
65791
65783
  _forceOptimizeOnRestart: false,
@@ -66091,26 +66083,6 @@ async function restartServer(server) {
66091
66083
  bindCLIShortcuts(newServer, shortcutsOptions);
66092
66084
  }
66093
66085
  }
66094
- async function updateCjsSsrExternals(server) {
66095
- if (!server._ssrExternals) {
66096
- let knownImports = [];
66097
- // Important! We use the non-ssr optimized deps to find known imports
66098
- // Only the explicitly defined deps are optimized during dev SSR, so
66099
- // we use the generated list from the scanned deps in regular dev.
66100
- // This is part of the v2 externalization heuristics and it is kept
66101
- // for backwards compatibility in case user needs to fallback to the
66102
- // legacy scheme. It may be removed in a future v3 minor.
66103
- const depsOptimizer = getDepsOptimizer(server.config, false); // non-ssr
66104
- if (depsOptimizer) {
66105
- await depsOptimizer.scanProcessing;
66106
- knownImports = [
66107
- ...Object.keys(depsOptimizer.metadata.optimized),
66108
- ...Object.keys(depsOptimizer.metadata.discovered),
66109
- ];
66110
- }
66111
- server._ssrExternals = cjsSsrResolveExternals(server.config, knownImports);
66112
- }
66113
- }
66114
66086
 
66115
66087
  var index = {
66116
66088
  __proto__: null,
@@ -66340,13 +66312,11 @@ var preview$1 = {
66340
66312
  resolvePreviewOptions: resolvePreviewOptions
66341
66313
  };
66342
66314
 
66343
- function resolveSSROptions(ssr, preserveSymlinks, buildSsrCjsExternalHeuristics) {
66315
+ function resolveSSROptions(ssr, preserveSymlinks) {
66344
66316
  ssr ??= {};
66345
66317
  const optimizeDeps = ssr.optimizeDeps ?? {};
66346
- const format = buildSsrCjsExternalHeuristics ? 'cjs' : 'esm';
66347
66318
  const target = 'node';
66348
66319
  return {
66349
- format,
66350
66320
  target,
66351
66321
  ...ssr,
66352
66322
  optimizeDeps: {
@@ -66552,7 +66522,7 @@ async function resolveConfig(inlineConfig, command, defaultMode = 'development',
66552
66522
  ? path$o.resolve(resolvedRoot, typeof publicDir === 'string' ? publicDir : 'public')
66553
66523
  : '';
66554
66524
  const server = resolveServerOptions(resolvedRoot, config.server, logger);
66555
- const ssr = resolveSSROptions(config.ssr, resolveOptions.preserveSymlinks, config.legacy?.buildSsrCjsExternalHeuristics);
66525
+ const ssr = resolveSSROptions(config.ssr, resolveOptions.preserveSymlinks);
66556
66526
  const middlewareMode = config?.server?.middlewareMode;
66557
66527
  const optimizeDeps = config.optimizeDeps || {};
66558
66528
  const BASE_URL = resolvedBase;
@@ -66698,11 +66668,14 @@ assetFileNames isn't equal for every build.rollupOptions.output. A single patter
66698
66668
  }
66699
66669
  }
66700
66670
  // Warn about removal of experimental features
66701
- if (config.legacy?.buildSsrCjsExternalHeuristics ||
66671
+ if (
66672
+ // @ts-expect-error Option removed
66673
+ config.legacy?.buildSsrCjsExternalHeuristics ||
66674
+ // @ts-expect-error Option removed
66702
66675
  config.ssr?.format === 'cjs') {
66703
66676
  resolved.logger.warn(colors$1.yellow(`
66704
- (!) Experimental legacy.buildSsrCjsExternalHeuristics and ssr.format: 'cjs' are going to be removed in Vite 5.
66705
- Find more information and give feedback at https://github.com/vitejs/vite/discussions/13816.
66677
+ (!) Experimental legacy.buildSsrCjsExternalHeuristics and ssr.format were be removed in Vite 5.
66678
+ The only SSR Output format is ESM. Find more information at https://github.com/vitejs/vite/discussions/13816.
66706
66679
  `));
66707
66680
  }
66708
66681
  return resolved;
@@ -66816,7 +66789,6 @@ async function bundleConfigFile(fileName, isESM) {
66816
66789
  const result = await build$3({
66817
66790
  absWorkingDir: process.cwd(),
66818
66791
  entryPoints: [fileName],
66819
- outfile: 'out.js',
66820
66792
  write: false,
66821
66793
  target: ['node18'],
66822
66794
  platform: 'node',
@@ -66865,11 +66837,13 @@ async function bundleConfigFile(fileName, isESM) {
66865
66837
  build.onResolve({ filter: /^[^.].*/ }, async ({ path: id, importer, kind }) => {
66866
66838
  if (kind === 'entry-point' ||
66867
66839
  path$o.isAbsolute(id) ||
66868
- isBuiltin(id)) {
66840
+ isNodeBuiltin(id)) {
66869
66841
  return;
66870
66842
  }
66871
- // partial deno support as `npm:` does not work with esbuild
66872
- if (id.startsWith('npm:')) {
66843
+ // With the `isNodeBuiltin` check above, this check captures if the builtin is a
66844
+ // non-node built-in, which esbuild doesn't know how to handle. In that case, we
66845
+ // externalize it so the non-node runtime handles it instead.
66846
+ if (isBuiltin(id)) {
66873
66847
  return { external: true };
66874
66848
  }
66875
66849
  const isImport = isESM || kind === 'dynamic-import';