vite 4.2.0-beta.0 → 4.2.0-beta.1

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.

Potentially problematic release.


This version of vite might be problematic. Click here for more details.

@@ -4,7 +4,7 @@ import { URL as URL$3, URLSearchParams, parse as parse$i, pathToFileURL } from '
4
4
  import { performance } from 'node:perf_hooks';
5
5
  import { createRequire as createRequire$1, builtinModules } from 'node:module';
6
6
  import require$$0$3 from 'tty';
7
- import { transform as transform$2, formatMessages, build as build$3 } from 'esbuild';
7
+ import esbuild, { transform as transform$2, formatMessages, build as build$3 } from 'esbuild';
8
8
  import require$$0$4, { win32, posix, isAbsolute as isAbsolute$1, resolve as resolve$3, relative as relative$1, basename as basename$1, extname, dirname as dirname$1, join as join$1, sep, normalize } from 'path';
9
9
  import * as require$$0$2 from 'fs';
10
10
  import require$$0__default, { existsSync, readFileSync, statSync as statSync$1, promises as promises$1, readdirSync } from 'fs';
@@ -25,6 +25,7 @@ import resolve$4 from 'resolve';
25
25
  import { CLIENT_ENTRY, OPTIMIZABLE_ENTRY_RE, DEFAULT_EXTENSIONS as DEFAULT_EXTENSIONS$1, wildcardHosts, loopbackHosts, VALID_ID_PREFIX, NULL_BYTE_PLACEHOLDER, FS_PREFIX, CLIENT_PUBLIC_PATH, ENV_PUBLIC_PATH, ENV_ENTRY, DEFAULT_MAIN_FIELDS, SPECIAL_QUERY_RE, DEP_VERSION_RE, KNOWN_ASSET_TYPES, CSS_LANGS_RE, CLIENT_DIR, JS_TYPES_RE, ESBUILD_MODULES_TARGET, VERSION as VERSION$1, VITE_PACKAGE_DIR, DEFAULT_DEV_PORT, DEFAULT_PREVIEW_PORT, DEFAULT_ASSETS_RE, DEFAULT_CONFIG_FILES } from '../constants.js';
26
26
  import require$$5$1 from 'crypto';
27
27
  import { Buffer as Buffer$1 } from 'node:buffer';
28
+ import fsp from 'node:fs/promises';
28
29
  import require$$0$8, { createRequire as createRequire$2 } from 'module';
29
30
  import assert$1 from 'node:assert';
30
31
  import process$1 from 'node:process';
@@ -15978,8 +15979,8 @@ function dataURIPlugin() {
15978
15979
  };
15979
15980
  }
15980
15981
 
15981
- /* es-module-lexer 1.1.0 */
15982
- 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,K=(C.__heap_base.value||C.__heap_base)+4*I-C.memory.buffer.byteLength;K>0&&C.memory.grow(Math.ceil(K/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 o=[],D=[];for(;C.ri();){const A=C.is(),Q=C.ie(),B=C.ai(),g=C.id(),I=C.ss(),K=C.se();let k;C.ip()&&(k=w(E.slice(-1===g?A-1:A,-1===g?Q+1:Q))),o.push({n:k,s:A,e:Q,ss:I,se:K,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),K=I[0],k=B<0?void 0:E.slice(B,g),o=k?k[0]:"";D.push({s:A,e:Q,ls:B,le:g,n:'"'===K||"'"===K?w(I):I,ln:'"'===o||"'"===o?w(k):k});}function w(A){try{return (0, eval)(A)}catch(A){}}return [o,D,!!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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","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;
15982
+ /* es-module-lexer 1.2.0 */
15983
+ 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="AGFzbQEAAAABKghgAX8Bf2AEf39/fwBgAAF/YAAAYAF/AGADf39/AX9gAn9/AX9gAn9/AAMvLgABAQICAgICAgICAgICAgICAgIAAwMDBAQAAAADAAAAAAMDAAUGAAAABwAGAgUEBQFwAQEBBQMBAAEGDwJ/AUGw8gALfwBBsPIACwdwEwZtZW1vcnkCAAJzYQAAAWUAAwJpcwAEAmllAAUCc3MABgJzZQAHAmFpAAgCaWQACQJpcAAKAmVzAAsCZWUADANlbHMADQNlbGUADgJyaQAPAnJlABABZgARBXBhcnNlABILX19oZWFwX2Jhc2UDAQrAOy5oAQF/QQAgADYC9AlBACgC0AkiASAAQQF0aiIAQQA7AQBBACAAQQJqIgA2AvgJQQAgADYC/AlBAEEANgLUCUEAQQA2AuQJQQBBADYC3AlBAEEANgLYCUEAQQA2AuwJQQBBADYC4AkgAQufAQEDf0EAKALkCSEEQQBBACgC/AkiBTYC5AlBACAENgLoCUEAIAVBIGo2AvwJIARBHGpB1AkgBBsgBTYCAEEAKALICSEEQQAoAsQJIQYgBSABNgIAIAUgADYCCCAFIAIgAkECakEAIAYgA0YbIAQgA0YbNgIMIAUgAzYCFCAFQQA2AhAgBSACNgIEIAVBADYCHCAFQQAoAsQJIANGOgAYC1YBAX9BACgC7AkiBEEQakHYCSAEG0EAKAL8CSIENgIAQQAgBDYC7AlBACAEQRRqNgL8CSAEQQA2AhAgBCADNgIMIAQgAjYCCCAEIAE2AgQgBCAANgIACwgAQQAoAoAKCxUAQQAoAtwJKAIAQQAoAtAJa0EBdQseAQF/QQAoAtwJKAIEIgBBACgC0AlrQQF1QX8gABsLFQBBACgC3AkoAghBACgC0AlrQQF1Cx4BAX9BACgC3AkoAgwiAEEAKALQCWtBAXVBfyAAGwseAQF/QQAoAtwJKAIQIgBBACgC0AlrQQF1QX8gABsLOwEBfwJAQQAoAtwJKAIUIgBBACgCxAlHDQBBfw8LAkAgAEEAKALICUcNAEF+DwsgAEEAKALQCWtBAXULCwBBACgC3AktABgLFQBBACgC4AkoAgBBACgC0AlrQQF1CxUAQQAoAuAJKAIEQQAoAtAJa0EBdQseAQF/QQAoAuAJKAIIIgBBACgC0AlrQQF1QX8gABsLHgEBf0EAKALgCSgCDCIAQQAoAtAJa0EBdUF/IAAbCyUBAX9BAEEAKALcCSIAQRxqQdQJIAAbKAIAIgA2AtwJIABBAEcLJQEBf0EAQQAoAuAJIgBBEGpB2AkgABsoAgAiADYC4AkgAEEARwsIAEEALQCECgvmDAEGfyMAQYDQAGsiACQAQQBBAToAhApBAEEAKALMCTYCjApBAEEAKALQCUF+aiIBNgKgCkEAIAFBACgC9AlBAXRqIgI2AqQKQQBBADsBhgpBAEEAOwGICkEAQQA6AJAKQQBBADYCgApBAEEAOgDwCUEAIABBgBBqNgKUCkEAIAA2ApgKQQBBADoAnAoCQAJAAkACQANAQQAgAUECaiIDNgKgCiABIAJPDQECQCADLwEAIgJBd2pBBUkNAAJAAkACQAJAAkAgAkGbf2oOBQEICAgCAAsgAkEgRg0EIAJBL0YNAyACQTtGDQIMBwtBAC8BiAoNASADEBNFDQEgAUEEakGCCEEKEC0NARAUQQAtAIQKDQFBAEEAKAKgCiIBNgKMCgwHCyADEBNFDQAgAUEEakGMCEEKEC0NABAVC0EAQQAoAqAKNgKMCgwBCwJAIAEvAQQiA0EqRg0AIANBL0cNBBAWDAELQQEQFwtBACgCpAohAkEAKAKgCiEBDAALC0EAIQIgAyEBQQAtAPAJDQIMAQtBACABNgKgCkEAQQA6AIQKCwNAQQAgAUECaiIDNgKgCgJAAkACQAJAAkACQAJAAkACQCABQQAoAqQKTw0AIAMvAQAiAkF3akEFSQ0IAkACQAJAAkACQAJAAkACQAJAAkAgAkFgag4KEhEGEREREQUBAgALAkACQAJAAkAgAkGgf2oOCgsUFAMUARQUFAIACyACQYV/ag4DBRMGCQtBAC8BiAoNEiADEBNFDRIgAUEEakGCCEEKEC0NEhAUDBILIAMQE0UNESABQQRqQYwIQQoQLQ0REBUMEQsgAxATRQ0QIAEpAARC7ICEg7COwDlSDRAgAS8BDCIDQXdqIgFBF0sNDkEBIAF0QZ+AgARxRQ0ODA8LQQBBAC8BiAoiAUEBajsBiApBACgClAogAUEDdGoiAUEBNgIAIAFBACgCjAo2AgQMDwtBAC8BiAoiAkUNC0EAIAJBf2oiBDsBiApBAC8BhgoiAkUNDiACQQJ0QQAoApgKakF8aigCACIFKAIUQQAoApQKIARB//8DcUEDdGooAgRHDQ4CQCAFKAIEDQAgBSADNgIEC0EAIAJBf2o7AYYKIAUgAUEEajYCDAwOCwJAQQAoAowKIgEvAQBBKUcNAEEAKALkCSIDRQ0AIAMoAgQgAUcNAEEAQQAoAugJIgM2AuQJAkAgA0UNACADQQA2AhwMAQtBAEEANgLUCQtBAEEALwGICiIDQQFqOwGICkEAKAKUCiADQQN0aiIDQQZBAkEALQCcChs2AgAgAyABNgIEQQBBADoAnAoMDQtBAC8BiAoiAUUNCUEAIAFBf2oiATsBiApBACgClAogAUH//wNxQQN0aigCAEEERg0EDAwLQScQGAwLC0EiEBgMCgsgAkEvRw0JAkACQCABLwEEIgFBKkYNACABQS9HDQEQFgwMC0EBEBcMCwsCQAJAQQAoAowKIgEvAQAiAxAZRQ0AAkACQCADQVVqDgQACAEDCAsgAUF+ai8BAEErRg0GDAcLIAFBfmovAQBBLUYNBQwGCwJAIANB/QBGDQAgA0EpRw0FQQAoApQKQQAvAYgKQQN0aigCBBAaRQ0FDAYLQQAoApQKQQAvAYgKQQN0aiICKAIEEBsNBSACKAIAQQZGDQUMBAsgAUF+ai8BAEFQakH//wNxQQpJDQMMBAtBACgClApBAC8BiAoiAUEDdCIDakEAKAKMCjYCBEEAIAFBAWo7AYgKQQAoApQKIANqQQM2AgALEBwMBwtBAC0A8AlBAC8BhgpBAC8BiApyckUhAgwJCyABEB0NACADRQ0AIANBL0ZBAC0AkApBAEdxDQAgAUF+aiEBQQAoAtAJIQICQANAIAFBAmoiBCACTQ0BQQAgATYCjAogAS8BACEDIAFBfmoiBCEBIAMQHkUNAAsgBEECaiEEC0EBIQUgA0H//wNxEB9FDQEgBEF+aiEBAkADQCABQQJqIgMgAk0NAUEAIAE2AowKIAEvAQAhAyABQX5qIgQhASADEB8NAAsgBEECaiEDCyADECBFDQEQIUEAQQA6AJAKDAULECFBACEFC0EAIAU6AJAKDAMLECJBACECDAULIANBoAFHDQELQQBBAToAnAoLQQBBACgCoAo2AowKC0EAKAKgCiEBDAALCyAAQYDQAGokACACCxoAAkBBACgC0AkgAEcNAEEBDwsgAEF+ahAjC80JAQV/QQBBACgCoAoiAEEMaiIBNgKgCkEAKALsCSECQQEQJyEDAkACQAJAAkACQAJAAkACQAJAAkBBACgCoAoiBCABRw0AIAMQJkUNAQsCQAJAAkACQCADQSpGDQAgA0H7AEcNAUEAIARBAmo2AqAKQQEQJyEEQQAoAqAKIQEDQAJAAkAgBEH//wNxIgNBIkYNACADQSdGDQAgAxAqGkEAKAKgCiEDDAELIAMQGEEAQQAoAqAKQQJqIgM2AqAKC0EBECcaAkAgASADECsiBEEsRw0AQQBBACgCoApBAmo2AqAKQQEQJyEEC0EAKAKgCiEDIARB/QBGDQMgAyABRg0NIAMhASADQQAoAqQKTQ0ADA0LC0EAIARBAmo2AqAKQQEQJxpBACgCoAoiAyADECsaDAILQQBBADoAhAoCQAJAAkACQAJAAkAgA0Gff2oODAIIBAEIAwgICAgIBQALIANB9gBGDQQMBwtBACAEQQ5qIgM2AqAKAkACQAJAQQEQJ0Gff2oOBgAQAhAQARALQQAoAqAKIgEpAAJC84Dkg+CNwDFSDQ8gAS8BChAfRQ0PQQAgAUEKajYCoApBABAnGgtBACgCoAoiAUECakGiCEEOEC0NDiABLwEQIgBBd2oiAkEXSw0LQQEgAnRBn4CABHFFDQsMDAtBACgCoAoiASkAAkLsgISDsI7AOVINDSABLwEKIgBBd2oiAkEXTQ0HDAgLQQAgBEEKajYCoApBABAnGkEAKAKgCiEEC0EAIARBEGo2AqAKAkBBARAnIgRBKkcNAEEAQQAoAqAKQQJqNgKgCkEBECchBAtBACgCoAohAyAEECoaIANBACgCoAoiBCADIAQQAkEAQQAoAqAKQX5qNgKgCg8LAkAgBCkAAkLsgISDsI7AOVINACAELwEKEB5FDQBBACAEQQpqNgKgCkEBECchBEEAKAKgCiEDIAQQKhogA0EAKAKgCiIEIAMgBBACQQBBACgCoApBfmo2AqAKDwtBACAEQQRqIgQ2AqAKC0EAIARBBGoiAzYCoApBAEEAOgCECgJAA0BBACADQQJqNgKgCkEBECchBEEAKAKgCiEDIAQQKkEgckH7AEYNAUEAKAKgCiIEIANGDQQgAyAEIAMgBBACQQEQJ0EsRw0BQQAoAqAKIQMMAAsLQQBBACgCoApBfmo2AqAKDwtBACADQQJqNgKgCgtBARAnIQRBACgCoAohAwJAIARB5gBHDQAgA0ECakGcCEEGEC0NAEEAIANBCGo2AqAKIABBARAnECkgAkEQakHYCSACGyEDA0AgAygCACIDRQ0CIANCADcCCCADQRBqIQMMAAsLQQAgA0F+ajYCoAoLDwtBASACdEGfgIAEcQ0BCyAAQaABRg0AIABB+wBHDQQLQQAgAUEKajYCoApBARAnIgFB+wBGDQMMAgsCQCAAQVhqDgMBAwEACyAAQaABRw0CC0EAIAFBEGo2AqAKAkBBARAnIgFBKkcNAEEAQQAoAqAKQQJqNgKgCkEBECchAQsgAUEoRg0BC0EAKAKgCiECIAEQKhpBACgCoAoiASACTQ0AIAQgAyACIAEQAkEAQQAoAqAKQX5qNgKgCg8LIAQgA0EAQQAQAkEAIARBDGo2AqAKDwsQIgvUBgEEf0EAQQAoAqAKIgBBDGoiATYCoAoCQAJAAkACQAJAAkACQAJAAkACQEEBECciAkFZag4IBAIBBAEBAQMACyACQSJGDQMgAkH7AEYNBAtBACgCoAogAUcNAkEAIABBCmo2AqAKDwtBACgClApBAC8BiAoiAkEDdGoiAUEAKAKgCjYCBEEAIAJBAWo7AYgKIAFBBTYCAEEAKAKMCi8BAEEuRg0DQQBBACgCoAoiAUECajYCoApBARAnIQIgAEEAKAKgCkEAIAEQAUEAQQAvAYYKIgFBAWo7AYYKQQAoApgKIAFBAnRqQQAoAuQJNgIAAkAgAkEiRg0AIAJBJ0YNAEEAQQAoAqAKQX5qNgKgCg8LIAIQGEEAQQAoAqAKQQJqIgI2AqAKAkACQAJAQQEQJ0FXag4EAQICAAILQQBBACgCoApBAmo2AqAKQQEQJxpBACgC5AkiASACNgIEIAFBAToAGCABQQAoAqAKIgI2AhBBACACQX5qNgKgCg8LQQAoAuQJIgEgAjYCBCABQQE6ABhBAEEALwGICkF/ajsBiAogAUEAKAKgCkECajYCDEEAQQAvAYYKQX9qOwGGCg8LQQBBACgCoApBfmo2AqAKDwtBAEEAKAKgCkECajYCoApBARAnQe0ARw0CQQAoAqAKIgJBAmpBlghBBhAtDQICQEEAKAKMCiIBECgNACABLwEAQS5GDQMLIAAgACACQQhqQQAoAsgJEAEPC0EALwGICg0CQQAoAqAKIQJBACgCpAohAwNAIAIgA08NBQJAAkAgAi8BACIBQSdGDQAgAUEiRw0BCyAAIAEQKQ8LQQAgAkECaiICNgKgCgwACwtBACgCoAohAkEALwGICg0CAkADQAJAAkACQCACQQAoAqQKTw0AQQEQJyICQSJGDQEgAkEnRg0BIAJB/QBHDQJBAEEAKAKgCkECajYCoAoLQQEQJyEBQQAoAqAKIQICQCABQeYARw0AIAJBAmpBnAhBBhAtDQgLQQAgAkEIajYCoApBARAnIgJBIkYNAyACQSdGDQMMBwsgAhAYC0EAQQAoAqAKQQJqIgI2AqAKDAALCyAAIAIQKQsPC0EAQQAoAqAKQX5qNgKgCg8LQQAgAkF+ajYCoAoPCxAiC0cBA39BACgCoApBAmohAEEAKAKkCiEBAkADQCAAIgJBfmogAU8NASACQQJqIQAgAi8BAEF2ag4EAQAAAQALC0EAIAI2AqAKC5gBAQN/QQBBACgCoAoiAUECajYCoAogAUEGaiEBQQAoAqQKIQIDQAJAAkACQCABQXxqIAJPDQAgAUF+ai8BACEDAkACQCAADQAgA0EqRg0BIANBdmoOBAIEBAIECyADQSpHDQMLIAEvAQBBL0cNAkEAIAFBfmo2AqAKDAELIAFBfmohAQtBACABNgKgCg8LIAFBAmohAQwACwuIAQEEf0EAKAKgCiEBQQAoAqQKIQICQAJAA0AgASIDQQJqIQEgAyACTw0BIAEvAQAiBCAARg0CAkAgBEHcAEYNACAEQXZqDgQCAQECAQsgA0EEaiEBIAMvAQRBDUcNACADQQZqIAEgAy8BBkEKRhshAQwACwtBACABNgKgChAiDwtBACABNgKgCgtsAQF/AkACQCAAQV9qIgFBBUsNAEEBIAF0QTFxDQELIABBRmpB//8DcUEGSQ0AIABBKUcgAEFYakH//wNxQQdJcQ0AAkAgAEGlf2oOBAEAAAEACyAAQf0ARyAAQYV/akH//wNxQQRJcQ8LQQELLgEBf0EBIQECQCAAQZYJQQUQJA0AIABBoAlBAxAkDQAgAEGmCUECECQhAQsgAQuDAQECf0EBIQECQAJAAkACQAJAAkAgAC8BACICQUVqDgQFBAQBAAsCQCACQZt/ag4EAwQEAgALIAJBKUYNBCACQfkARw0DIABBfmpBsglBBhAkDwsgAEF+ai8BAEE9Rg8LIABBfmpBqglBBBAkDwsgAEF+akG+CUEDECQPC0EAIQELIAEL3gEBBH9BACgCoAohAEEAKAKkCiEBAkACQAJAA0AgACICQQJqIQAgAiABTw0BAkACQAJAIAAvAQAiA0Gkf2oOBQIDAwMBAAsgA0EkRw0CIAIvAQRB+wBHDQJBACACQQRqIgA2AqAKQQBBAC8BiAoiAkEBajsBiApBACgClAogAkEDdGoiAkEENgIAIAIgADYCBA8LQQAgADYCoApBAEEALwGICkF/aiIAOwGICkEAKAKUCiAAQf//A3FBA3RqKAIAQQNHDQMMBAsgAkEEaiEADAALC0EAIAA2AqAKCxAiCwu0AwECf0EAIQECQAJAAkACQAJAAkACQAJAAkACQCAALwEAQZx/ag4UAAECCQkJCQMJCQQFCQkGCQcJCQgJCwJAAkAgAEF+ai8BAEGXf2oOBAAKCgEKCyAAQXxqQboIQQIQJA8LIABBfGpBvghBAxAkDwsCQAJAAkAgAEF+ai8BAEGNf2oOAwABAgoLAkAgAEF8ai8BACICQeEARg0AIAJB7ABHDQogAEF6akHlABAlDwsgAEF6akHjABAlDwsgAEF8akHECEEEECQPCyAAQXxqQcwIQQYQJA8LIABBfmovAQBB7wBHDQYgAEF8ai8BAEHlAEcNBgJAIABBemovAQAiAkHwAEYNACACQeMARw0HIABBeGpB2AhBBhAkDwsgAEF4akHkCEECECQPCyAAQX5qQegIQQQQJA8LQQEhASAAQX5qIgBB6QAQJQ0EIABB8AhBBRAkDwsgAEF+akHkABAlDwsgAEF+akH6CEEHECQPCyAAQX5qQYgJQQQQJA8LAkAgAEF+ai8BACICQe8ARg0AIAJB5QBHDQEgAEF8akHuABAlDwsgAEF8akGQCUEDECQhAQsgAQs0AQF/QQEhAQJAIABBd2pB//8DcUEFSQ0AIABBgAFyQaABRg0AIABBLkcgABAmcSEBCyABCzABAX8CQAJAIABBd2oiAUEXSw0AQQEgAXRBjYCABHENAQsgAEGgAUYNAEEADwtBAQtOAQJ/QQAhAQJAAkAgAC8BACICQeUARg0AIAJB6wBHDQEgAEF+akHoCEEEECQPCyAAQX5qLwEAQfUARw0AIABBfGpBzAhBBhAkIQELIAELcAECfwJAAkADQEEAQQAoAqAKIgBBAmoiATYCoAogAEEAKAKkCk8NAQJAAkACQCABLwEAIgFBpX9qDgIBAgALAkAgAUF2ag4EBAMDBAALIAFBL0cNAgwECxAsGgwBC0EAIABBBGo2AqAKDAALCxAiCws1AQF/QQBBAToA8AlBACgCoAohAEEAQQAoAqQKQQJqNgKgCkEAIABBACgC0AlrQQF1NgKACgtDAQJ/QQEhAQJAIAAvAQAiAkF3akH//wNxQQVJDQAgAkGAAXJBoAFGDQBBACEBIAIQJkUNACACQS5HIAAQKHIPCyABC0YBA39BACEDAkAgACACQQF0IgJrIgRBAmoiAEEAKALQCSIFSQ0AIAAgASACEC0NAAJAIAAgBUcNAEEBDwsgBBAjIQMLIAMLPQECf0EAIQICQEEAKALQCSIDIABLDQAgAC8BACABRw0AAkAgAyAARw0AQQEPCyAAQX5qLwEAEB4hAgsgAgtoAQJ/QQEhAQJAAkAgAEFfaiICQQVLDQBBASACdEExcQ0BCyAAQfj/A3FBKEYNACAAQUZqQf//A3FBBkkNAAJAIABBpX9qIgJBA0sNACACQQFHDQELIABBhX9qQf//A3FBBEkhAQsgAQucAQEDf0EAKAKgCiEBAkADQAJAAkAgAS8BACICQS9HDQACQCABLwECIgFBKkYNACABQS9HDQQQFgwCCyAAEBcMAQsCQAJAIABFDQAgAkF3aiIBQRdLDQFBASABdEGfgIAEcUUNAQwCCyACEB9FDQMMAQsgAkGgAUcNAgtBAEEAKAKgCiIDQQJqIgE2AqAKIANBACgCpApJDQALCyACCzEBAX9BACEBAkAgAC8BAEEuRw0AIABBfmovAQBBLkcNACAAQXxqLwEAQS5GIQELIAELwgMBAX8CQCABQSJGDQAgAUEnRg0AECIPC0EAKAKgCiECIAEQGCAAIAJBAmpBACgCoApBACgCxAkQAUEAQQAoAqAKQQJqNgKgCkEAECchAEEAKAKgCiEBAkACQCAAQeEARw0AIAFBAmpBsAhBChAtRQ0BC0EAIAFBfmo2AqAKDwtBACABQQxqNgKgCgJAQQEQJ0H7AEYNAEEAIAE2AqAKDwtBACgCoAoiAiEAA0BBACAAQQJqNgKgCgJAAkACQEEBECciAEEiRg0AIABBJ0cNAUEnEBhBAEEAKAKgCkECajYCoApBARAnIQAMAgtBIhAYQQBBACgCoApBAmo2AqAKQQEQJyEADAELIAAQKiEACwJAIABBOkYNAEEAIAE2AqAKDwtBAEEAKAKgCkECajYCoAoCQEEBECciAEEiRg0AIABBJ0YNAEEAIAE2AqAKDwsgABAYQQBBACgCoApBAmo2AqAKAkACQEEBECciAEEsRg0AIABB/QBGDQFBACABNgKgCg8LQQBBACgCoApBAmo2AqAKQQEQJ0H9AEYNAEEAKAKgCiEADAELC0EAKALkCSIBIAI2AhAgAUEAKAKgCkECajYCDAttAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgAUGgAUYNASAAIQIgARAmDQJBACECQQBBACgCoAoiAEECajYCoAogAC8BAiIADQAMAgsLIAAhAgsgAkH//wNxC6sBAQR/AkACQEEAKAKgCiICLwEAIgNB4QBGDQAgASEEIAAhBQwBC0EAIAJBBGo2AqAKQQEQJyECQQAoAqAKIQUCQAJAIAJBIkYNACACQSdGDQAgAhAqGkEAKAKgCiEEDAELIAIQGEEAQQAoAqAKQQJqIgQ2AqAKC0EBECchA0EAKAKgCiECCwJAIAIgBUYNACAFIARBACAAIAAgAUYiAhtBACABIAIbEAILIAMLcgEEf0EAKAKgCiEAQQAoAqQKIQECQAJAA0AgAEECaiECIAAgAU8NAQJAAkAgAi8BACIDQaR/ag4CAQQACyACIQAgA0F2ag4EAgEBAgELIABBBGohAAwACwtBACACNgKgChAiQQAPC0EAIAI2AqAKQd0AC0kBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASABQQFqIQEgAEEBaiEAIAJBf2oiAg0ADAILCyAEIAVrIQMLIAMLC+IBAgBBgAgLxAEAAHgAcABvAHIAdABtAHAAbwByAHQAZQB0AGEAcgBvAG0AdQBuAGMAdABpAG8AbgBzAHMAZQByAHQAdgBvAHkAaQBlAGQAZQBsAGUAYwBvAG4AdABpAG4AaQBuAHMAdABhAG4AdAB5AGIAcgBlAGEAcgBlAHQAdQByAGQAZQBiAHUAZwBnAGUAYQB3AGEAaQB0AGgAcgB3AGgAaQBsAGUAZgBvAHIAaQBmAGMAYQB0AGMAZgBpAG4AYQBsAGwAZQBsAHMAAEHECQsQAQAAAAIAAAAABAAAMDkAAA==","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;
15983
15984
 
15984
15985
  const isDebug$6 = !!process.env.DEBUG;
15985
15986
  const debug$e = createDebugger('vite:sourcemap', {
@@ -16037,7 +16038,7 @@ function getCodeWithSourcemap(type, code, map) {
16037
16038
  return code;
16038
16039
  }
16039
16040
 
16040
- function e(e,n,r){throw new Error(r?`No known conditions for "${n}" specifier in "${e}" package`:`Missing "${n}" specifier in "${e}" package`)}function n(n,i,o,f){let s,u,l=r(n,o),c=function(e){let n=new Set(["default",...e.conditions||[]]);return e.unsafe||n.add(e.require?"require":"import"),e.unsafe||n.add(e.browser?"browser":"node"),n}(f||{}),a=i[l];if(void 0===a){let e,n,r,t;for(t in i)n&&t.length<n.length||("/"===t[t.length-1]&&l.startsWith(t)?(u=l.substring(t.length),n=t):t.length>1&&(r=t.indexOf("*",2),~r&&(e=RegExp("^"+t.substring(0,r)+"(.*)"+t.substring(1+r)).exec(l),e&&e[1]&&(u=e[1],n=t))));a=i[n];}return a||e(n,l),s=t(a,c),s||e(n,l,1),u&&function(e,n){let r,t=0,i=e.length,o=/[*]/g;for(;t<i;t++)e[t]=o.test(r=e[t])?r.replace(o,n):r+n;}(s,u),s}function r(e,n,r){if(e===n||"."===n)return ".";let t=e+"/",i=t.length,o=n.slice(0,i)===t,f=o?n.slice(i):n;return "#"===f[0]?f:o||!r?"./"===f.slice(0,2)?f:"./"+f:f}function t(e,n,r){if(e){if("string"==typeof e)return r&&r.add(e),[e];let i,o;if(Array.isArray(e)){for(o=r||new Set,i=0;i<e.length;i++)t(e[i],n,o);if(!r&&o.size)return [...o]}else for(i in e)if(n.has(i))return t(e[i],n,r)}}function o(e,r,t){let i,o=e.exports;if(o){if("string"==typeof o)o={".":o};else for(i in o){"."!==i[0]&&(o={".":o});break}return n(e.name,o,r||".",t)}}
16041
+ function e(e,n,r){throw new Error(r?`No known conditions for "${n}" specifier in "${e}" package`:`Missing "${n}" specifier in "${e}" package`)}function n(n,i,o,f){let s,u,l=r(n,o),c=function(e){let n=new Set(["default",...e.conditions||[]]);return e.unsafe||n.add(e.require?"require":"import"),e.unsafe||n.add(e.browser?"browser":"node"),n}(f||{}),a=i[l];if(void 0===a){let e,n,r,t;for(t in i)n&&t.length<n.length||("/"===t[t.length-1]&&l.startsWith(t)?(u=l.substring(t.length),n=t):t.length>1&&(r=t.indexOf("*",2),~r&&(e=RegExp("^"+t.substring(0,r)+"(.*)"+t.substring(1+r)).exec(l),e&&e[1]&&(u=e[1],n=t))));a=i[n];}return a||e(n,l),s=t(a,c),s||e(n,l,1),u&&function(e,n){let r,t=0,i=e.length,o=/[*]/g,f=/[/]$/;for(;t<i;t++)e[t]=o.test(r=e[t])?r.replace(o,n):f.test(r)?r+n:r;}(s,u),s}function r(e,n,r){if(e===n||"."===n)return ".";let t=e+"/",i=t.length,o=n.slice(0,i)===t,f=o?n.slice(i):n;return "#"===f[0]?f:o||!r?"./"===f.slice(0,2)?f:"./"+f:f}function t(e,n,r){if(e){if("string"==typeof e)return r&&r.add(e),[e];let i,o;if(Array.isArray(e)){for(o=r||new Set,i=0;i<e.length;i++)t(e[i],n,o);if(!r&&o.size)return [...o]}else for(i in e)if(n.has(i))return t(e[i],n,r)}}function o(e,r,t){let i,o=e.exports;if(o){if("string"==typeof o)o={".":o};else for(i in o){"."!==i[0]&&(o={".":o});break}return n(e.name,o,r||".",t)}}function f(e,r,t){if(e.imports)return n(e.name,e.imports,r,t)}
16041
16042
 
16042
16043
  // This file was generated. Do not modify manually!
16043
16044
  var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
@@ -22508,6 +22509,7 @@ const browserExternalId = '__vite-browser-external';
22508
22509
  // special id for packages that are optional peer deps
22509
22510
  const optionalPeerDepId = '__vite-optional-peer-dep';
22510
22511
  const nodeModulesInPathRE = /(?:^|\/)node_modules\//;
22512
+ const subpathImportsPrefix = '#';
22511
22513
  const isDebug$4 = process.env.DEBUG;
22512
22514
  const debug$c = createDebugger('vite:resolve-details', {
22513
22515
  onlyWhenFocused: true,
@@ -22533,6 +22535,22 @@ function resolvePlugin(resolveOptions) {
22533
22535
  ...resolveOptions,
22534
22536
  scan: resolveOpts?.scan ?? resolveOptions.scan,
22535
22537
  };
22538
+ const resolveSubpathImports = (id, importer) => {
22539
+ if (!importer || !id.startsWith(subpathImportsPrefix))
22540
+ return;
22541
+ const basedir = path$o.dirname(importer);
22542
+ const pkgJsonPath = lookupFile(basedir, ['package.json'], {
22543
+ pathOnly: true,
22544
+ });
22545
+ if (!pkgJsonPath)
22546
+ return;
22547
+ const pkgData = loadPackageData(pkgJsonPath, options.preserveSymlinks);
22548
+ return resolveExportsOrImports(pkgData.data, id, options, targetWeb, 'imports');
22549
+ };
22550
+ const resolvedImports = resolveSubpathImports(id, importer);
22551
+ if (resolvedImports) {
22552
+ id = resolvedImports;
22553
+ }
22536
22554
  if (importer) {
22537
22555
  const _importer = isWorkerRequest(importer)
22538
22556
  ? splitFileAndPostfix(importer).file
@@ -23102,7 +23120,7 @@ function resolvePackageEntry(id, { dir, data, setResolvedCache, getResolvedCache
23102
23120
  // resolve exports field with highest priority
23103
23121
  // using https://github.com/lukeed/resolve.exports
23104
23122
  if (data.exports) {
23105
- entryPoint = resolveExports(data, '.', options, targetWeb);
23123
+ entryPoint = resolveExportsOrImports(data, '.', options, targetWeb, 'exports');
23106
23124
  }
23107
23125
  const resolvedFromExports = !!entryPoint;
23108
23126
  // if exports resolved to .mjs, still resolve other fields.
@@ -23198,7 +23216,7 @@ function packageEntryFailure(id, details) {
23198
23216
  (details ? ': ' + details : '.'));
23199
23217
  }
23200
23218
  const conditionalConditions = new Set(['production', 'development', 'module']);
23201
- function resolveExports(pkg, key, options, targetWeb) {
23219
+ function resolveExportsOrImports(pkg, key, options, targetWeb, type) {
23202
23220
  const overrideConditions = options.overrideConditions
23203
23221
  ? new Set(options.overrideConditions)
23204
23222
  : undefined;
@@ -23221,7 +23239,8 @@ function resolveExports(pkg, key, options, targetWeb) {
23221
23239
  else if (options.conditions.length > 0) {
23222
23240
  conditions.push(...options.conditions);
23223
23241
  }
23224
- const result = o(pkg, key, {
23242
+ const fn = type === 'imports' ? f : o;
23243
+ const result = fn(pkg, key, {
23225
23244
  browser: targetWeb && !conditions.includes('node'),
23226
23245
  require: options.isRequire && !conditions.includes('import'),
23227
23246
  conditions,
@@ -23240,7 +23259,7 @@ function resolveDeepImport(id, { webResolvedImports, setResolvedCache, getResolv
23240
23259
  if (isObject$2(exportsField) && !Array.isArray(exportsField)) {
23241
23260
  // resolve without postfix (see #7098)
23242
23261
  const { file, postfix } = splitFileAndPostfix(relativeId);
23243
- const exportsId = resolveExports(data, file, options, targetWeb);
23262
+ const exportsId = resolveExportsOrImports(data, file, options, targetWeb, 'exports');
23244
23263
  if (exportsId !== undefined) {
23245
23264
  relativeId = exportsId + postfix;
23246
23265
  }
@@ -23286,8 +23305,9 @@ function tryResolveBrowserMapping(id, importer, options, isFilePath, externalize
23286
23305
  const mapId = isFilePath ? './' + slash$1(path$o.relative(pkg.dir, id)) : id;
23287
23306
  const browserMappedPath = mapWithBrowserField(mapId, pkg.data.browser);
23288
23307
  if (browserMappedPath) {
23289
- const fsPath = path$o.join(pkg.dir, browserMappedPath);
23290
- if ((res = tryFsResolve(fsPath, options))) {
23308
+ if ((res = bareImportRE.test(browserMappedPath)
23309
+ ? tryNodeResolve(browserMappedPath, importer, options, true)?.id
23310
+ : tryFsResolve(path$o.join(pkg.dir, browserMappedPath), options))) {
23291
23311
  isDebug$4 &&
23292
23312
  debug$c(`[browser mapped] ${picocolorsExports.cyan(id)} -> ${picocolorsExports.dim(res)}`);
23293
23313
  idToPkgMap.set(res, pkg);
@@ -36456,6 +36476,322 @@ function stripLiteral(code) {
36456
36476
  }
36457
36477
  }
36458
36478
 
36479
+ var mainExports = {};
36480
+ var main$1 = {
36481
+ get exports(){ return mainExports; },
36482
+ set exports(v){ mainExports = v; },
36483
+ };
36484
+
36485
+ var name = "dotenv";
36486
+ var version$1 = "16.0.3";
36487
+ var description = "Loads environment variables from .env file";
36488
+ var main = "lib/main.js";
36489
+ var types = "lib/main.d.ts";
36490
+ var exports = {
36491
+ ".": {
36492
+ require: "./lib/main.js",
36493
+ types: "./lib/main.d.ts",
36494
+ "default": "./lib/main.js"
36495
+ },
36496
+ "./config": "./config.js",
36497
+ "./config.js": "./config.js",
36498
+ "./lib/env-options": "./lib/env-options.js",
36499
+ "./lib/env-options.js": "./lib/env-options.js",
36500
+ "./lib/cli-options": "./lib/cli-options.js",
36501
+ "./lib/cli-options.js": "./lib/cli-options.js",
36502
+ "./package.json": "./package.json"
36503
+ };
36504
+ var scripts = {
36505
+ "dts-check": "tsc --project tests/types/tsconfig.json",
36506
+ lint: "standard",
36507
+ "lint-readme": "standard-markdown",
36508
+ pretest: "npm run lint && npm run dts-check",
36509
+ test: "tap tests/*.js --100 -Rspec",
36510
+ prerelease: "npm test",
36511
+ release: "standard-version"
36512
+ };
36513
+ var repository = {
36514
+ type: "git",
36515
+ url: "git://github.com/motdotla/dotenv.git"
36516
+ };
36517
+ var keywords = [
36518
+ "dotenv",
36519
+ "env",
36520
+ ".env",
36521
+ "environment",
36522
+ "variables",
36523
+ "config",
36524
+ "settings"
36525
+ ];
36526
+ var readmeFilename = "README.md";
36527
+ var license = "BSD-2-Clause";
36528
+ var devDependencies = {
36529
+ "@types/node": "^17.0.9",
36530
+ decache: "^4.6.1",
36531
+ dtslint: "^3.7.0",
36532
+ sinon: "^12.0.1",
36533
+ standard: "^16.0.4",
36534
+ "standard-markdown": "^7.1.0",
36535
+ "standard-version": "^9.3.2",
36536
+ tap: "^15.1.6",
36537
+ tar: "^6.1.11",
36538
+ typescript: "^4.5.4"
36539
+ };
36540
+ var engines = {
36541
+ node: ">=12"
36542
+ };
36543
+ var require$$3 = {
36544
+ name: name,
36545
+ version: version$1,
36546
+ description: description,
36547
+ main: main,
36548
+ types: types,
36549
+ exports: exports,
36550
+ scripts: scripts,
36551
+ repository: repository,
36552
+ keywords: keywords,
36553
+ readmeFilename: readmeFilename,
36554
+ license: license,
36555
+ devDependencies: devDependencies,
36556
+ engines: engines
36557
+ };
36558
+
36559
+ const fs$9 = require$$0__default;
36560
+ const path$9 = require$$0$4;
36561
+ const os$2 = require$$2;
36562
+ const packageJson = require$$3;
36563
+
36564
+ const version = packageJson.version;
36565
+
36566
+ const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;
36567
+
36568
+ // Parser src into an Object
36569
+ function parse$9 (src) {
36570
+ const obj = {};
36571
+
36572
+ // Convert buffer to string
36573
+ let lines = src.toString();
36574
+
36575
+ // Convert line breaks to same format
36576
+ lines = lines.replace(/\r\n?/mg, '\n');
36577
+
36578
+ let match;
36579
+ while ((match = LINE.exec(lines)) != null) {
36580
+ const key = match[1];
36581
+
36582
+ // Default undefined or null to empty string
36583
+ let value = (match[2] || '');
36584
+
36585
+ // Remove whitespace
36586
+ value = value.trim();
36587
+
36588
+ // Check if double quoted
36589
+ const maybeQuote = value[0];
36590
+
36591
+ // Remove surrounding quotes
36592
+ value = value.replace(/^(['"`])([\s\S]*)\1$/mg, '$2');
36593
+
36594
+ // Expand newlines if double quoted
36595
+ if (maybeQuote === '"') {
36596
+ value = value.replace(/\\n/g, '\n');
36597
+ value = value.replace(/\\r/g, '\r');
36598
+ }
36599
+
36600
+ // Add to object
36601
+ obj[key] = value;
36602
+ }
36603
+
36604
+ return obj
36605
+ }
36606
+
36607
+ function _log (message) {
36608
+ console.log(`[dotenv@${version}][DEBUG] ${message}`);
36609
+ }
36610
+
36611
+ function _resolveHome (envPath) {
36612
+ return envPath[0] === '~' ? path$9.join(os$2.homedir(), envPath.slice(1)) : envPath
36613
+ }
36614
+
36615
+ // Populates process.env from .env file
36616
+ function config (options) {
36617
+ let dotenvPath = path$9.resolve(process.cwd(), '.env');
36618
+ let encoding = 'utf8';
36619
+ const debug = Boolean(options && options.debug);
36620
+ const override = Boolean(options && options.override);
36621
+
36622
+ if (options) {
36623
+ if (options.path != null) {
36624
+ dotenvPath = _resolveHome(options.path);
36625
+ }
36626
+ if (options.encoding != null) {
36627
+ encoding = options.encoding;
36628
+ }
36629
+ }
36630
+
36631
+ try {
36632
+ // Specifying an encoding returns a string instead of a buffer
36633
+ const parsed = DotenvModule.parse(fs$9.readFileSync(dotenvPath, { encoding }));
36634
+
36635
+ Object.keys(parsed).forEach(function (key) {
36636
+ if (!Object.prototype.hasOwnProperty.call(process.env, key)) {
36637
+ process.env[key] = parsed[key];
36638
+ } else {
36639
+ if (override === true) {
36640
+ process.env[key] = parsed[key];
36641
+ }
36642
+
36643
+ if (debug) {
36644
+ if (override === true) {
36645
+ _log(`"${key}" is already defined in \`process.env\` and WAS overwritten`);
36646
+ } else {
36647
+ _log(`"${key}" is already defined in \`process.env\` and was NOT overwritten`);
36648
+ }
36649
+ }
36650
+ }
36651
+ });
36652
+
36653
+ return { parsed }
36654
+ } catch (e) {
36655
+ if (debug) {
36656
+ _log(`Failed to load ${dotenvPath} ${e.message}`);
36657
+ }
36658
+
36659
+ return { error: e }
36660
+ }
36661
+ }
36662
+
36663
+ const DotenvModule = {
36664
+ config,
36665
+ parse: parse$9
36666
+ };
36667
+
36668
+ mainExports.config = DotenvModule.config;
36669
+ var parse_1$1 = mainExports.parse = DotenvModule.parse;
36670
+ main$1.exports = DotenvModule;
36671
+
36672
+ function _interpolate (envValue, environment, config) {
36673
+ const matches = envValue.match(/(.?\${*[\w]*(?::-[\w/]*)?}*)/g) || [];
36674
+
36675
+ return matches.reduce(function (newEnv, match, index) {
36676
+ const parts = /(.?)\${*([\w]*(?::-[\w/]*)?)?}*/g.exec(match);
36677
+ if (!parts || parts.length === 0) {
36678
+ return newEnv
36679
+ }
36680
+
36681
+ const prefix = parts[1];
36682
+
36683
+ let value, replacePart;
36684
+
36685
+ if (prefix === '\\') {
36686
+ replacePart = parts[0];
36687
+ value = replacePart.replace('\\$', '$');
36688
+ } else {
36689
+ // PATCH: compatible with env variables ended with unescaped $
36690
+ if(!parts[2]) {
36691
+ return newEnv
36692
+ }
36693
+ const keyParts = parts[2].split(':-');
36694
+ const key = keyParts[0];
36695
+ replacePart = parts[0].substring(prefix.length);
36696
+ // process.env value 'wins' over .env file's value
36697
+ value = Object.prototype.hasOwnProperty.call(environment, key)
36698
+ ? environment[key]
36699
+ : (config.parsed[key] || keyParts[1] || '');
36700
+
36701
+ // If the value is found, remove nested expansions.
36702
+ if (keyParts.length > 1 && value) {
36703
+ const replaceNested = matches[index + 1];
36704
+ matches[index + 1] = '';
36705
+
36706
+ newEnv = newEnv.replace(replaceNested, '');
36707
+ }
36708
+ // Resolve recursive interpolations
36709
+ value = _interpolate(value, environment, config);
36710
+ }
36711
+
36712
+ return newEnv.replace(replacePart, value)
36713
+ }, envValue)
36714
+ }
36715
+
36716
+ function expand (config) {
36717
+ // if ignoring process.env, use a blank object
36718
+ const environment = config.ignoreProcessEnv ? {} : process.env;
36719
+
36720
+ for (const configKey in config.parsed) {
36721
+ const value = Object.prototype.hasOwnProperty.call(environment, configKey) ? environment[configKey] : config.parsed[configKey];
36722
+
36723
+ config.parsed[configKey] = _interpolate(value, environment, config);
36724
+ }
36725
+
36726
+ // PATCH: don't write to process.env
36727
+ // for (const processKey in config.parsed) {
36728
+ // environment[processKey] = config.parsed[processKey]
36729
+ // }
36730
+
36731
+ return config
36732
+ }
36733
+
36734
+ var expand_1 = expand;
36735
+
36736
+ function loadEnv(mode, envDir, prefixes = 'VITE_') {
36737
+ if (mode === 'local') {
36738
+ throw new Error(`"local" cannot be used as a mode name because it conflicts with ` +
36739
+ `the .local postfix for .env files.`);
36740
+ }
36741
+ prefixes = arraify(prefixes);
36742
+ const env = {};
36743
+ const envFiles = [
36744
+ /** default file */ `.env`,
36745
+ /** local file */ `.env.local`,
36746
+ /** mode file */ `.env.${mode}`,
36747
+ /** mode local file */ `.env.${mode}.local`,
36748
+ ];
36749
+ const parsed = Object.fromEntries(envFiles.flatMap((file) => {
36750
+ const path = lookupFile(envDir, [file], {
36751
+ pathOnly: true,
36752
+ rootDir: envDir,
36753
+ });
36754
+ if (!path)
36755
+ return [];
36756
+ return Object.entries(parse_1$1(fs$l.readFileSync(path)));
36757
+ }));
36758
+ // test NODE_ENV override before expand as otherwise process.env.NODE_ENV would override this
36759
+ if (parsed.NODE_ENV && process.env.VITE_USER_NODE_ENV === undefined) {
36760
+ process.env.VITE_USER_NODE_ENV = parsed.NODE_ENV;
36761
+ }
36762
+ // support BROWSER and BROWSER_ARGS env variables
36763
+ if (parsed.BROWSER && process.env.BROWSER === undefined) {
36764
+ process.env.BROWSER = parsed.BROWSER;
36765
+ }
36766
+ if (parsed.BROWSER_ARGS && process.env.BROWSER_ARGS === undefined) {
36767
+ process.env.BROWSER_ARGS = parsed.BROWSER_ARGS;
36768
+ }
36769
+ // let environment variables use each other
36770
+ // `expand` patched in patches/dotenv-expand@9.0.0.patch
36771
+ expand_1({ parsed });
36772
+ // only keys that start with prefix are exposed to client
36773
+ for (const [key, value] of Object.entries(parsed)) {
36774
+ if (prefixes.some((prefix) => key.startsWith(prefix))) {
36775
+ env[key] = value;
36776
+ }
36777
+ }
36778
+ // check if there are actual env variables starting with VITE_*
36779
+ // these are typically provided inline and should be prioritized
36780
+ for (const key in process.env) {
36781
+ if (prefixes.some((prefix) => key.startsWith(prefix))) {
36782
+ env[key] = process.env[key];
36783
+ }
36784
+ }
36785
+ return env;
36786
+ }
36787
+ function resolveEnvPrefix({ envPrefix = 'VITE_', }) {
36788
+ envPrefix = arraify(envPrefix);
36789
+ if (envPrefix.some((prefix) => prefix === '')) {
36790
+ throw new Error(`envPrefix option contains value '', which could lead unexpected exposure of sensitive information.`);
36791
+ }
36792
+ return envPrefix;
36793
+ }
36794
+
36459
36795
  const modulePreloadPolyfillId = 'vite/modulepreload-polyfill';
36460
36796
  const resolvedModulePreloadPolyfillId = '\0' + modulePreloadPolyfillId;
36461
36797
  function modulePreloadPolyfillPlugin(config) {
@@ -36696,6 +37032,7 @@ function handleParseError(parserError, html, filePath) {
36696
37032
  function buildHtmlPlugin(config) {
36697
37033
  const [preHooks, normalHooks, postHooks] = resolveHtmlTransforms(config.plugins);
36698
37034
  preHooks.unshift(preImportMapHook(config));
37035
+ normalHooks.unshift(htmlEnvHook(config));
36699
37036
  postHooks.push(postImportMapHook());
36700
37037
  const processedHtml = new Map();
36701
37038
  const isExcludedUrl = (url) => url.startsWith('#') ||
@@ -37125,6 +37462,36 @@ function postImportMapHook() {
37125
37462
  return html;
37126
37463
  };
37127
37464
  }
37465
+ /**
37466
+ * Support `%ENV_NAME%` syntax in html files
37467
+ */
37468
+ function htmlEnvHook(config) {
37469
+ const pattern = /%(\S+?)%/g;
37470
+ const envPrefix = resolveEnvPrefix({ envPrefix: config.envPrefix });
37471
+ const env = { ...config.env };
37472
+ // account for user env defines
37473
+ for (const key in config.define) {
37474
+ if (key.startsWith(`import.meta.env.`)) {
37475
+ const val = config.define[key];
37476
+ env[key.slice(16)] = typeof val === 'string' ? val : JSON.stringify(val);
37477
+ }
37478
+ }
37479
+ return (html, ctx) => {
37480
+ return html.replace(pattern, (text, key) => {
37481
+ if (key in env) {
37482
+ return env[key];
37483
+ }
37484
+ else {
37485
+ if (envPrefix.some((prefix) => key.startsWith(prefix))) {
37486
+ const relativeHtml = normalizePath$3(path$o.relative(config.root, ctx.filename));
37487
+ config.logger.warn(picocolorsExports.yellow(picocolorsExports.bold(`(!) ${text} is not defined in env variables found in /${relativeHtml}. ` +
37488
+ `Is the variable mistyped?`)));
37489
+ }
37490
+ return text;
37491
+ }
37492
+ });
37493
+ };
37494
+ }
37128
37495
  function resolveHtmlTransforms(plugins) {
37129
37496
  const preHooks = [];
37130
37497
  const normalHooks = [];
@@ -37767,6 +38134,7 @@ function createCSSResolvers(config) {
37767
38134
  (cssResolve = config.createResolver({
37768
38135
  extensions: ['.css'],
37769
38136
  mainFields: ['style'],
38137
+ conditions: ['style'],
37770
38138
  tryIndex: false,
37771
38139
  preferRelative: true,
37772
38140
  })));
@@ -37776,6 +38144,7 @@ function createCSSResolvers(config) {
37776
38144
  (sassResolve = config.createResolver({
37777
38145
  extensions: ['.scss', '.sass', '.css'],
37778
38146
  mainFields: ['sass', 'style'],
38147
+ conditions: ['sass', 'style'],
37779
38148
  tryIndex: true,
37780
38149
  tryPrefix: '_',
37781
38150
  preferRelative: true,
@@ -37786,6 +38155,7 @@ function createCSSResolvers(config) {
37786
38155
  (lessResolve = config.createResolver({
37787
38156
  extensions: ['.less', '.css'],
37788
38157
  mainFields: ['less', 'style'],
38158
+ conditions: ['less', 'style'],
37789
38159
  tryIndex: false,
37790
38160
  preferRelative: true,
37791
38161
  })));
@@ -37894,7 +38264,7 @@ async function compileCSS(id, code, config, urlReplacer) {
37894
38264
  }));
37895
38265
  }
37896
38266
  if (isModule) {
37897
- postcssPlugins.unshift((await import('./dep-51508e52.js').then(function (n) { return n.i; })).default({
38267
+ postcssPlugins.unshift((await import('./dep-d2a7fe01.js').then(function (n) { return n.i; })).default({
37898
38268
  ...modulesOptions,
37899
38269
  localsConvention: modulesOptions?.localsConvention,
37900
38270
  getJSON(cssFileName, _modules, outputFileName) {
@@ -38554,6 +38924,11 @@ const styl = async (source, root, options) => {
38554
38924
  const importsDeps = (options.imports ?? []).map((dep) => path$o.resolve(dep));
38555
38925
  try {
38556
38926
  const ref = nodeStylus(content, options);
38927
+ if (options.define) {
38928
+ for (const key in options.define) {
38929
+ ref.define(key, options.define[key]);
38930
+ }
38931
+ }
38557
38932
  if (options.enableSourcemap) {
38558
38933
  ref.set('sourcemap', {
38559
38934
  comment: false,
@@ -40128,7 +40503,7 @@ function totalist(dir, callback, pre='') {
40128
40503
  * @param {Request} req
40129
40504
  * @returns {ParsedURL|void}
40130
40505
  */
40131
- function parse$9(req) {
40506
+ function parse$8(req) {
40132
40507
  let raw = req.url;
40133
40508
  if (raw == null) return;
40134
40509
 
@@ -40310,7 +40685,7 @@ function sirv (dir, opts={}) {
40310
40685
 
40311
40686
  return function (req, res, next) {
40312
40687
  let extns = [''];
40313
- let pathname = parse$9(req).pathname;
40688
+ let pathname = parse$8(req).pathname;
40314
40689
  let val = req.headers['accept-encoding'] || '';
40315
40690
  if (gzips && val.includes('gzip')) extns.unshift(...gzips);
40316
40691
  if (brots && /(br|brotli)/i.test(val)) extns.unshift(...brots);
@@ -40693,12 +41068,27 @@ async function loadAndTransform(id, url, server, options, timestamp) {
40693
41068
  }
40694
41069
  for (let sourcesIndex = 0; sourcesIndex < map.sources.length; ++sourcesIndex) {
40695
41070
  const sourcePath = map.sources[sourcesIndex];
41071
+ if (!sourcePath)
41072
+ continue;
41073
+ const sourcemapPath = `${mod.file}.map`;
41074
+ const ignoreList = config.server.sourcemapIgnoreList(path$o.isAbsolute(sourcePath)
41075
+ ? sourcePath
41076
+ : path$o.resolve(path$o.dirname(sourcemapPath), sourcePath), sourcemapPath);
41077
+ if (typeof ignoreList !== 'boolean') {
41078
+ logger.warn('sourcemapIgnoreList function must return a boolean.');
41079
+ }
41080
+ if (ignoreList) {
41081
+ if (map.x_google_ignoreList === undefined) {
41082
+ map.x_google_ignoreList = [];
41083
+ }
41084
+ if (!map.x_google_ignoreList.includes(sourcesIndex)) {
41085
+ map.x_google_ignoreList.push(sourcesIndex);
41086
+ }
41087
+ }
40696
41088
  // Rewrite sources to relative paths to give debuggers the chance
40697
41089
  // to resolve and display them in a meaningful way (rather than
40698
41090
  // with absolute paths).
40699
- if (sourcePath &&
40700
- path$o.isAbsolute(sourcePath) &&
40701
- path$o.isAbsolute(mod.file)) {
41091
+ if (path$o.isAbsolute(sourcePath) && path$o.isAbsolute(mod.file)) {
40702
41092
  map.sources[sourcesIndex] = path$o.relative(path$o.dirname(mod.file), sourcePath);
40703
41093
  }
40704
41094
  }
@@ -42701,7 +43091,9 @@ async function createPluginContainer(config, moduleGraph, watcher) {
42701
43091
  };
42702
43092
  err.frame = err.frame || generateCodeFrame(err.id, err.loc);
42703
43093
  }
42704
- if (err.loc && ctx instanceof TransformContext) {
43094
+ if (ctx instanceof TransformContext &&
43095
+ typeof err.loc?.line === 'number' &&
43096
+ typeof err.loc?.column === 'number') {
42705
43097
  const rawSourceMap = ctx._getCombinedSourcemap();
42706
43098
  if (rawSourceMap) {
42707
43099
  const traced = new TraceMap(rawSourceMap);
@@ -42732,6 +43124,11 @@ async function createPluginContainer(config, moduleGraph, watcher) {
42732
43124
  }
42733
43125
  }
42734
43126
  }
43127
+ if (typeof err.loc?.column !== 'number' &&
43128
+ typeof err.loc?.line !== 'number' &&
43129
+ !err.loc?.file) {
43130
+ delete err.loc;
43131
+ }
42735
43132
  return err;
42736
43133
  }
42737
43134
  class TransformContext extends Context {
@@ -42968,9 +43365,82 @@ const htmlTypesRE = /\.(html|vue|svelte|astro|imba)$/;
42968
43365
  // since even missed imports can be caught at runtime, and false positives will
42969
43366
  // simply be ignored.
42970
43367
  const importsRE = /(?<!\/\/.*)(?<=^|;|\*\/)\s*import(?!\s+type)(?:[\w*{}\n\r\t, ]+from)?\s*("[^"]+"|'[^']+')\s*(?=$|;|\/\/|\/\*)/gm;
42971
- async function scanImports(config) {
43368
+ function scanImports(config) {
42972
43369
  // Only used to scan non-ssr code
42973
43370
  const start = performance.now();
43371
+ const deps = {};
43372
+ const missing = {};
43373
+ let entries;
43374
+ const scanContext = { cancelled: false };
43375
+ const esbuildContext = computeEntries(config).then((computedEntries) => {
43376
+ entries = computedEntries;
43377
+ if (!entries.length) {
43378
+ if (!config.optimizeDeps.entries && !config.optimizeDeps.include) {
43379
+ config.logger.warn(picocolorsExports.yellow('(!) Could not auto-determine entry point from rollupOptions or html files ' +
43380
+ 'and there are no explicit optimizeDeps.include patterns. ' +
43381
+ 'Skipping dependency pre-bundling.'));
43382
+ }
43383
+ return;
43384
+ }
43385
+ if (scanContext.cancelled)
43386
+ return;
43387
+ debug$8(`Crawling dependencies using entries:\n ${entries.join('\n ')}`);
43388
+ return prepareEsbuildScanner(config, entries, deps, missing, scanContext);
43389
+ });
43390
+ const result = esbuildContext
43391
+ .then((context) => {
43392
+ function disposeContext() {
43393
+ return context?.dispose().catch((e) => {
43394
+ config.logger.error('Failed to dispose esbuild context', { error: e });
43395
+ });
43396
+ }
43397
+ if (!context || scanContext?.cancelled) {
43398
+ disposeContext();
43399
+ return { deps: {}, missing: {} };
43400
+ }
43401
+ return context
43402
+ .rebuild()
43403
+ .then(() => {
43404
+ return {
43405
+ // Ensure a fixed order so hashes are stable and improve logs
43406
+ deps: orderedDependencies(deps),
43407
+ missing,
43408
+ };
43409
+ })
43410
+ .finally(() => {
43411
+ return disposeContext();
43412
+ });
43413
+ })
43414
+ .catch(async (e) => {
43415
+ const prependMessage = picocolorsExports.red(`\
43416
+ Failed to scan for dependencies from entries:
43417
+ ${entries.join('\n')}
43418
+
43419
+ `);
43420
+ if (e.errors) {
43421
+ const msgs = await formatMessages(e.errors, {
43422
+ kind: 'error',
43423
+ color: true,
43424
+ });
43425
+ e.message = prependMessage + msgs.join('\n');
43426
+ }
43427
+ else {
43428
+ e.message = prependMessage + e.message;
43429
+ }
43430
+ throw e;
43431
+ })
43432
+ .finally(() => {
43433
+ debug$8(`Scan completed in ${(performance.now() - start).toFixed(2)}ms:`, deps);
43434
+ });
43435
+ return {
43436
+ cancel: async () => {
43437
+ scanContext.cancelled = true;
43438
+ return esbuildContext.then((context) => context?.cancel());
43439
+ },
43440
+ result,
43441
+ };
43442
+ }
43443
+ async function computeEntries(config) {
42974
43444
  let entries = [];
42975
43445
  const explicitEntryPatterns = config.optimizeDeps.entries;
42976
43446
  const buildInput = config.build.rollupOptions?.input;
@@ -42998,61 +43468,27 @@ async function scanImports(config) {
42998
43468
  // Non-supported entry file types and virtual files should not be scanned for
42999
43469
  // dependencies.
43000
43470
  entries = entries.filter((entry) => isScannable(entry) && fs$l.existsSync(entry));
43001
- if (!entries.length) {
43002
- if (!explicitEntryPatterns && !config.optimizeDeps.include) {
43003
- config.logger.warn(picocolorsExports.yellow('(!) Could not auto-determine entry point from rollupOptions or html files ' +
43004
- 'and there are no explicit optimizeDeps.include patterns. ' +
43005
- 'Skipping dependency pre-bundling.'));
43006
- }
43007
- return { deps: {}, missing: {} };
43008
- }
43009
- else {
43010
- debug$8(`Crawling dependencies using entries:\n ${entries.join('\n ')}`);
43011
- }
43012
- const deps = {};
43013
- const missing = {};
43471
+ return entries;
43472
+ }
43473
+ async function prepareEsbuildScanner(config, entries, deps, missing, scanContext) {
43014
43474
  const container = await createPluginContainer(config);
43475
+ if (scanContext?.cancelled)
43476
+ return;
43015
43477
  const plugin = esbuildScanPlugin(config, container, deps, missing, entries);
43016
43478
  const { plugins = [], ...esbuildOptions } = config.optimizeDeps?.esbuildOptions ?? {};
43017
- try {
43018
- await build$3({
43019
- absWorkingDir: process.cwd(),
43020
- write: false,
43021
- stdin: {
43022
- contents: entries.map((e) => `import ${JSON.stringify(e)}`).join('\n'),
43023
- loader: 'js',
43024
- },
43025
- bundle: true,
43026
- format: 'esm',
43027
- logLevel: 'silent',
43028
- plugins: [...plugins, plugin],
43029
- ...esbuildOptions,
43030
- });
43031
- }
43032
- catch (e) {
43033
- const prependMessage = picocolorsExports.red(`\
43034
- Failed to scan for dependencies from entries:
43035
- ${entries.join('\n')}
43036
-
43037
- `);
43038
- if (e.errors) {
43039
- const msgs = await formatMessages(e.errors, {
43040
- kind: 'error',
43041
- color: true,
43042
- });
43043
- e.message = prependMessage + msgs.join('\n');
43044
- }
43045
- else {
43046
- e.message = prependMessage + e.message;
43047
- }
43048
- throw e;
43049
- }
43050
- debug$8(`Scan completed in ${(performance.now() - start).toFixed(2)}ms:`, deps);
43051
- return {
43052
- // Ensure a fixed order so hashes are stable and improve logs
43053
- deps: orderedDependencies(deps),
43054
- missing,
43055
- };
43479
+ return await esbuild.context({
43480
+ absWorkingDir: process.cwd(),
43481
+ write: false,
43482
+ stdin: {
43483
+ contents: entries.map((e) => `import ${JSON.stringify(e)}`).join('\n'),
43484
+ loader: 'js',
43485
+ },
43486
+ bundle: true,
43487
+ format: 'esm',
43488
+ logLevel: 'silent',
43489
+ plugins: [...plugins, plugin],
43490
+ ...esbuildOptions,
43491
+ });
43056
43492
  }
43057
43493
  function orderedDependencies(deps) {
43058
43494
  const depsList = Object.entries(deps);
@@ -43491,13 +43927,15 @@ async function createDepsOptimizer(config, server) {
43491
43927
  let currentlyProcessing = false;
43492
43928
  // If there wasn't a cache or it is outdated, we need to prepare a first run
43493
43929
  let firstRunCalled = !!cachedMetadata;
43494
- let postScanOptimizationResult;
43930
+ let optimizationResult;
43931
+ let discover;
43495
43932
  let optimizingNewDeps;
43496
43933
  async function close() {
43497
43934
  closed = true;
43498
43935
  await Promise.allSettled([
43936
+ discover?.cancel(),
43499
43937
  depsOptimizer.scanProcessing,
43500
- postScanOptimizationResult,
43938
+ optimizationResult?.cancel(),
43501
43939
  optimizingNewDeps,
43502
43940
  ]);
43503
43941
  }
@@ -43522,7 +43960,9 @@ async function createDepsOptimizer(config, server) {
43522
43960
  setTimeout(async () => {
43523
43961
  try {
43524
43962
  debuggerViteDeps(picocolorsExports.green(`scanning for dependencies...`));
43525
- const deps = await discoverProjectDependencies(config);
43963
+ discover = discoverProjectDependencies(config);
43964
+ const deps = await discover.result;
43965
+ discover = undefined;
43526
43966
  debuggerViteDeps(picocolorsExports.green(Object.keys(deps).length > 0
43527
43967
  ? `dependencies found by scanner: ${depsLogString(Object.keys(deps))}`
43528
43968
  : `no dependencies found by scanner`));
@@ -43539,7 +43979,7 @@ async function createDepsOptimizer(config, server) {
43539
43979
  // run on the background, but we wait until crawling has ended
43540
43980
  // to decide if we send this result to the browser or we need to
43541
43981
  // do another optimize step
43542
- postScanOptimizationResult = runOptimizeDeps(config, knownDeps);
43982
+ optimizationResult = runOptimizeDeps(config, knownDeps);
43543
43983
  }
43544
43984
  catch (e) {
43545
43985
  logger.error(e.stack || e.message);
@@ -43573,7 +44013,8 @@ async function createDepsOptimizer(config, server) {
43573
44013
  // respect insertion order to keep the metadata file stable
43574
44014
  const knownDeps = prepareKnownDeps();
43575
44015
  startNextDiscoveredBatch();
43576
- return await runOptimizeDeps(config, knownDeps);
44016
+ optimizationResult = runOptimizeDeps(config, knownDeps);
44017
+ return await optimizationResult.result;
43577
44018
  }
43578
44019
  function prepareKnownDeps() {
43579
44020
  const knownDeps = {};
@@ -43814,9 +44255,9 @@ async function createDepsOptimizer(config, server) {
43814
44255
  // Await for the scan+optimize step running in the background
43815
44256
  // It normally should be over by the time crawling of user code ended
43816
44257
  await depsOptimizer.scanProcessing;
43817
- if (!isBuild && postScanOptimizationResult) {
43818
- const result = await postScanOptimizationResult;
43819
- postScanOptimizationResult = undefined;
44258
+ if (!isBuild && optimizationResult) {
44259
+ const result = await optimizationResult.result;
44260
+ optimizationResult = undefined;
43820
44261
  const scanDeps = Object.keys(result.metadata.optimized);
43821
44262
  if (scanDeps.length === 0 && crawlDeps.length === 0) {
43822
44263
  debuggerViteDeps(picocolorsExports.green(`✨ no dependencies found by the scanner or crawling static imports`));
@@ -43984,12 +44425,12 @@ async function optimizeDeps(config, force = config.optimizeDeps.force, asCommand
43984
44425
  if (cachedMetadata) {
43985
44426
  return cachedMetadata;
43986
44427
  }
43987
- const deps = await discoverProjectDependencies(config);
44428
+ const deps = await discoverProjectDependencies(config).result;
43988
44429
  const depsString = depsLogString(Object.keys(deps));
43989
44430
  log(picocolorsExports.green(`Optimizing dependencies:\n ${depsString}`));
43990
44431
  await addManuallyIncludedOptimizeDeps(deps, config, ssr);
43991
44432
  const depsInfo = toDiscoveredDependencies(config, deps, ssr);
43992
- const result = await runOptimizeDeps(config, depsInfo);
44433
+ const result = await runOptimizeDeps(config, depsInfo).result;
43993
44434
  await result.commit();
43994
44435
  return result.metadata;
43995
44436
  }
@@ -44015,7 +44456,7 @@ async function optimizeServerSsrDeps(config) {
44015
44456
  const deps = {};
44016
44457
  await addManuallyIncludedOptimizeDeps(deps, config, ssr, alsoInclude, noExternalFilter);
44017
44458
  const depsInfo = toDiscoveredDependencies(config, deps, true);
44018
- const result = await runOptimizeDeps(config, depsInfo, true);
44459
+ const result = await runOptimizeDeps(config, depsInfo, true).result;
44019
44460
  await result.commit();
44020
44461
  return result.metadata;
44021
44462
  }
@@ -44072,15 +44513,20 @@ function loadCachedDepOptimizationMetadata(config, ssr, force = config.optimizeD
44072
44513
  * Initial optimizeDeps at server start. Perform a fast scan using esbuild to
44073
44514
  * find deps to pre-bundle and include user hard-coded dependencies
44074
44515
  */
44075
- async function discoverProjectDependencies(config) {
44076
- const { deps, missing } = await scanImports(config);
44077
- const missingIds = Object.keys(missing);
44078
- if (missingIds.length) {
44079
- throw new Error(`The following dependencies are imported but could not be resolved:\n\n ${missingIds
44080
- .map((id) => `${picocolorsExports.cyan(id)} ${picocolorsExports.white(picocolorsExports.dim(`(imported by ${missing[id]})`))}`)
44081
- .join(`\n `)}\n\nAre they installed?`);
44082
- }
44083
- return deps;
44516
+ function discoverProjectDependencies(config) {
44517
+ const { cancel, result } = scanImports(config);
44518
+ return {
44519
+ cancel,
44520
+ result: result.then(({ deps, missing }) => {
44521
+ const missingIds = Object.keys(missing);
44522
+ if (missingIds.length) {
44523
+ throw new Error(`The following dependencies are imported but could not be resolved:\n\n ${missingIds
44524
+ .map((id) => `${picocolorsExports.cyan(id)} ${picocolorsExports.white(picocolorsExports.dim(`(imported by ${missing[id]})`))}`)
44525
+ .join(`\n `)}\n\nAre they installed?`);
44526
+ }
44527
+ return deps;
44528
+ }),
44529
+ };
44084
44530
  }
44085
44531
  function toDiscoveredDependencies(config, deps, ssr, timestamp) {
44086
44532
  const browserHash = getOptimizedBrowserHash(getDepHash(config, ssr), deps, timestamp);
@@ -44114,9 +44560,9 @@ function depsLogString(qualifiedIds) {
44114
44560
  * Internally, Vite uses this function to prepare a optimizeDeps run. When Vite starts, we can get
44115
44561
  * the metadata and start the server without waiting for the optimizeDeps processing to be completed
44116
44562
  */
44117
- async function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.command === 'build' &&
44563
+ function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.command === 'build' &&
44118
44564
  !!resolvedConfig.build.ssr) {
44119
- const isBuild = resolvedConfig.command === 'build';
44565
+ const optimizerContext = { cancelled: false };
44120
44566
  const config = {
44121
44567
  ...resolvedConfig,
44122
44568
  command: 'build',
@@ -44141,22 +44587,111 @@ async function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.co
44141
44587
  // to wait here. Code that needs to access the cached deps needs to await
44142
44588
  // the optimizedDepInfo.processing promise for each dep
44143
44589
  const qualifiedIds = Object.keys(depsInfo);
44144
- const processingResult = {
44590
+ let cleaned = false;
44591
+ const cleanUp = () => {
44592
+ if (!cleaned) {
44593
+ cleaned = true;
44594
+ fs$l.rmSync(processingCacheDir, { recursive: true, force: true });
44595
+ }
44596
+ };
44597
+ const createProcessingResult = () => ({
44145
44598
  metadata,
44146
44599
  async commit() {
44600
+ if (cleaned) {
44601
+ throw new Error(`Vite Internal Error: Can't commit optimizeDeps processing result, it has already been cancelled.`);
44602
+ }
44147
44603
  // Write metadata file, delete `deps` folder and rename the `processing` folder to `deps`
44148
44604
  // Processing is done, we can now replace the depsCacheDir with processingCacheDir
44149
44605
  // Rewire the file paths from the temporal processing dir to the final deps cache dir
44150
44606
  await removeDir(depsCacheDir);
44151
44607
  await renameDir(processingCacheDir, depsCacheDir);
44152
44608
  },
44153
- cancel() {
44154
- fs$l.rmSync(processingCacheDir, { recursive: true, force: true });
44155
- },
44156
- };
44609
+ cancel: cleanUp,
44610
+ });
44157
44611
  if (!qualifiedIds.length) {
44158
- return processingResult;
44612
+ return {
44613
+ cancel: async () => cleanUp(),
44614
+ result: Promise.resolve(createProcessingResult()),
44615
+ };
44159
44616
  }
44617
+ const start = performance.now();
44618
+ const preparedRun = prepareEsbuildOptimizerRun(resolvedConfig, depsInfo, ssr, processingCacheDir, optimizerContext);
44619
+ const result = preparedRun.then(({ context, idToExports }) => {
44620
+ function disposeContext() {
44621
+ return context?.dispose().catch((e) => {
44622
+ config.logger.error('Failed to dispose esbuild context', { error: e });
44623
+ });
44624
+ }
44625
+ if (!context || optimizerContext.cancelled) {
44626
+ disposeContext();
44627
+ return createProcessingResult();
44628
+ }
44629
+ return context
44630
+ .rebuild()
44631
+ .then((result) => {
44632
+ const meta = result.metafile;
44633
+ // the paths in `meta.outputs` are relative to `process.cwd()`
44634
+ const processingCacheDirOutputPath = path$o.relative(process.cwd(), processingCacheDir);
44635
+ for (const id in depsInfo) {
44636
+ const output = esbuildOutputFromId(meta.outputs, id, processingCacheDir);
44637
+ const { exportsData, ...info } = depsInfo[id];
44638
+ addOptimizedDepInfo(metadata, 'optimized', {
44639
+ ...info,
44640
+ // We only need to hash the output.imports in to check for stability, but adding the hash
44641
+ // and file path gives us a unique hash that may be useful for other things in the future
44642
+ fileHash: getHash(metadata.hash +
44643
+ depsInfo[id].file +
44644
+ JSON.stringify(output.imports)),
44645
+ browserHash: metadata.browserHash,
44646
+ // After bundling we have more information and can warn the user about legacy packages
44647
+ // that require manual configuration
44648
+ needsInterop: needsInterop(config, ssr, id, idToExports[id], output),
44649
+ });
44650
+ }
44651
+ for (const o of Object.keys(meta.outputs)) {
44652
+ if (!o.match(jsMapExtensionRE)) {
44653
+ const id = path$o
44654
+ .relative(processingCacheDirOutputPath, o)
44655
+ .replace(jsExtensionRE, '');
44656
+ const file = getOptimizedDepPath(id, resolvedConfig, ssr);
44657
+ if (!findOptimizedDepInfoInRecord(metadata.optimized, (depInfo) => depInfo.file === file)) {
44658
+ addOptimizedDepInfo(metadata, 'chunks', {
44659
+ id,
44660
+ file,
44661
+ needsInterop: false,
44662
+ browserHash: metadata.browserHash,
44663
+ });
44664
+ }
44665
+ }
44666
+ }
44667
+ const dataPath = path$o.join(processingCacheDir, '_metadata.json');
44668
+ writeFile(dataPath, stringifyDepsOptimizerMetadata(metadata, depsCacheDir));
44669
+ debug$7(`deps bundled in ${(performance.now() - start).toFixed(2)}ms`);
44670
+ return createProcessingResult();
44671
+ })
44672
+ .finally(() => {
44673
+ return disposeContext();
44674
+ });
44675
+ });
44676
+ result.catch(() => {
44677
+ cleanUp();
44678
+ });
44679
+ return {
44680
+ async cancel() {
44681
+ optimizerContext.cancelled = true;
44682
+ const { context } = await preparedRun;
44683
+ await context?.cancel();
44684
+ cleanUp();
44685
+ },
44686
+ result,
44687
+ };
44688
+ }
44689
+ async function prepareEsbuildOptimizerRun(resolvedConfig, depsInfo, ssr, processingCacheDir, optimizerContext) {
44690
+ const isBuild = resolvedConfig.command === 'build';
44691
+ const config = {
44692
+ ...resolvedConfig,
44693
+ command: 'build',
44694
+ };
44160
44695
  // esbuild generates nested directory output with lowest common ancestor base
44161
44696
  // this is unpredictable and makes it difficult to analyze entry / output
44162
44697
  // mapping. So what we do here is:
@@ -44183,6 +44718,8 @@ async function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.co
44183
44718
  flatIdDeps[flatId] = src;
44184
44719
  idToExports[id] = exportsData;
44185
44720
  }
44721
+ if (optimizerContext.cancelled)
44722
+ return { context: undefined, idToExports };
44186
44723
  // esbuild automatically replaces process.env.NODE_ENV for platform 'browser'
44187
44724
  // In lib mode, we need to keep process.env.NODE_ENV untouched, so to at build
44188
44725
  // time we replace it by __vite_process_env_NODE_ENV. This placeholder will be
@@ -44214,8 +44751,7 @@ async function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.co
44214
44751
  plugins.push(esbuildCjsExternalPlugin(external, platform));
44215
44752
  }
44216
44753
  plugins.push(esbuildDepPlugin(flatIdDeps, external, config, ssr));
44217
- const start = performance.now();
44218
- const result = await build$3({
44754
+ const context = await esbuild.context({
44219
44755
  absWorkingDir: process.cwd(),
44220
44756
  entryPoints: Object.keys(flatIdDeps),
44221
44757
  bundle: true,
@@ -44248,46 +44784,10 @@ async function runOptimizeDeps(resolvedConfig, depsInfo, ssr = resolvedConfig.co
44248
44784
  ...esbuildOptions.supported,
44249
44785
  },
44250
44786
  });
44251
- const meta = result.metafile;
44252
- // the paths in `meta.outputs` are relative to `process.cwd()`
44253
- const processingCacheDirOutputPath = path$o.relative(process.cwd(), processingCacheDir);
44254
- for (const id in depsInfo) {
44255
- const output = esbuildOutputFromId(meta.outputs, id, processingCacheDir);
44256
- const { exportsData, ...info } = depsInfo[id];
44257
- addOptimizedDepInfo(metadata, 'optimized', {
44258
- ...info,
44259
- // We only need to hash the output.imports in to check for stability, but adding the hash
44260
- // and file path gives us a unique hash that may be useful for other things in the future
44261
- fileHash: getHash(metadata.hash + depsInfo[id].file + JSON.stringify(output.imports)),
44262
- browserHash: metadata.browserHash,
44263
- // After bundling we have more information and can warn the user about legacy packages
44264
- // that require manual configuration
44265
- needsInterop: needsInterop(config, ssr, id, idToExports[id], output),
44266
- });
44267
- }
44268
- for (const o of Object.keys(meta.outputs)) {
44269
- if (!o.match(jsMapExtensionRE)) {
44270
- const id = path$o
44271
- .relative(processingCacheDirOutputPath, o)
44272
- .replace(jsExtensionRE, '');
44273
- const file = getOptimizedDepPath(id, resolvedConfig, ssr);
44274
- if (!findOptimizedDepInfoInRecord(metadata.optimized, (depInfo) => depInfo.file === file)) {
44275
- addOptimizedDepInfo(metadata, 'chunks', {
44276
- id,
44277
- file,
44278
- needsInterop: false,
44279
- browserHash: metadata.browserHash,
44280
- });
44281
- }
44282
- }
44283
- }
44284
- const dataPath = path$o.join(processingCacheDir, '_metadata.json');
44285
- writeFile(dataPath, stringifyDepsOptimizerMetadata(metadata, depsCacheDir));
44286
- debug$7(`deps bundled in ${(performance.now() - start).toFixed(2)}ms`);
44287
- return processingResult;
44787
+ return { context, idToExports };
44288
44788
  }
44289
44789
  async function findKnownImports(config, ssr) {
44290
- const deps = (await scanImports(config)).deps;
44790
+ const { deps } = await scanImports(config).result;
44291
44791
  await addManuallyIncludedOptimizeDeps(deps, config, ssr);
44292
44792
  return Object.keys(deps);
44293
44793
  }
@@ -44361,7 +44861,10 @@ function getDepsCacheDir(config, ssr) {
44361
44861
  return getDepsCacheDirPrefix(config) + getDepsCacheSuffix(config, ssr);
44362
44862
  }
44363
44863
  function getProcessingDepsCacheDir(config, ssr) {
44364
- return (getDepsCacheDirPrefix(config) + getDepsCacheSuffix(config, ssr) + '_temp');
44864
+ return (getDepsCacheDirPrefix(config) +
44865
+ getDepsCacheSuffix(config, ssr) +
44866
+ '_temp_' +
44867
+ getHash(Date.now().toString()));
44365
44868
  }
44366
44869
  function getDepsCacheDirPrefix(config) {
44367
44870
  return normalizePath$3(path$o.resolve(config.cacheDir, 'deps'));
@@ -44624,11 +45127,33 @@ async function optimizedDepNeedsInterop(metadata, file, config, ssr) {
44624
45127
  }
44625
45128
  return depInfo?.needsInterop;
44626
45129
  }
45130
+ const MAX_TEMP_DIR_AGE_MS = 24 * 60 * 60 * 1000;
45131
+ async function cleanupDepsCacheStaleDirs(config) {
45132
+ try {
45133
+ const cacheDir = path$o.resolve(config.cacheDir);
45134
+ if (fs$l.existsSync(cacheDir)) {
45135
+ const dirents = await fsp.readdir(cacheDir, { withFileTypes: true });
45136
+ for (const dirent of dirents) {
45137
+ if (dirent.isDirectory() && dirent.name.includes('_temp_')) {
45138
+ const tempDirPath = path$o.resolve(config.cacheDir, dirent.name);
45139
+ const { mtime } = await fsp.stat(tempDirPath);
45140
+ if (Date.now() - mtime.getTime() > MAX_TEMP_DIR_AGE_MS) {
45141
+ await removeDir(tempDirPath);
45142
+ }
45143
+ }
45144
+ }
45145
+ }
45146
+ }
45147
+ catch (err) {
45148
+ config.logger.error(err);
45149
+ }
45150
+ }
44627
45151
 
44628
45152
  var index$1 = {
44629
45153
  __proto__: null,
44630
45154
  addManuallyIncludedOptimizeDeps: addManuallyIncludedOptimizeDeps,
44631
45155
  addOptimizedDepInfo: addOptimizedDepInfo,
45156
+ cleanupDepsCacheStaleDirs: cleanupDepsCacheStaleDirs,
44632
45157
  createIsOptimizedDepUrl: createIsOptimizedDepUrl,
44633
45158
  debuggerViteDeps: debuggerViteDeps,
44634
45159
  depsFromOptimizedDepInfo: depsFromOptimizedDepInfo,
@@ -44907,6 +45432,8 @@ function buildImportAnalysisPlugin(config) {
44907
45432
  (source.slice(expStart, start).includes('from') || isDynamicImport) &&
44908
45433
  // already has ?used query (by import.meta.glob)
44909
45434
  !specifier.match(/\?used(&|$)/) &&
45435
+ // don't append ?used when SPECIAL_QUERY_RE exists
45436
+ !specifier.match(SPECIAL_QUERY_RE) &&
44910
45437
  // edge case for package names ending with .css (e.g normalize.css)
44911
45438
  !(bareImportRE.test(specifier) && !specifier.includes('/'))) {
44912
45439
  const url = specifier.replace(/\?|$/, (m) => `?used${m ? '&' : ''}`);
@@ -45326,323 +45853,7 @@ function searchForWorkspaceRoot(current, root = searchForPackageRoot(current)) {
45326
45853
  return searchForWorkspaceRoot(dir, root);
45327
45854
  }
45328
45855
 
45329
- var mainExports = {};
45330
- var main$1 = {
45331
- get exports(){ return mainExports; },
45332
- set exports(v){ mainExports = v; },
45333
- };
45334
-
45335
- var name = "dotenv";
45336
- var version$1 = "16.0.3";
45337
- var description = "Loads environment variables from .env file";
45338
- var main = "lib/main.js";
45339
- var types = "lib/main.d.ts";
45340
- var exports = {
45341
- ".": {
45342
- require: "./lib/main.js",
45343
- types: "./lib/main.d.ts",
45344
- "default": "./lib/main.js"
45345
- },
45346
- "./config": "./config.js",
45347
- "./config.js": "./config.js",
45348
- "./lib/env-options": "./lib/env-options.js",
45349
- "./lib/env-options.js": "./lib/env-options.js",
45350
- "./lib/cli-options": "./lib/cli-options.js",
45351
- "./lib/cli-options.js": "./lib/cli-options.js",
45352
- "./package.json": "./package.json"
45353
- };
45354
- var scripts = {
45355
- "dts-check": "tsc --project tests/types/tsconfig.json",
45356
- lint: "standard",
45357
- "lint-readme": "standard-markdown",
45358
- pretest: "npm run lint && npm run dts-check",
45359
- test: "tap tests/*.js --100 -Rspec",
45360
- prerelease: "npm test",
45361
- release: "standard-version"
45362
- };
45363
- var repository = {
45364
- type: "git",
45365
- url: "git://github.com/motdotla/dotenv.git"
45366
- };
45367
- var keywords = [
45368
- "dotenv",
45369
- "env",
45370
- ".env",
45371
- "environment",
45372
- "variables",
45373
- "config",
45374
- "settings"
45375
- ];
45376
- var readmeFilename = "README.md";
45377
- var license = "BSD-2-Clause";
45378
- var devDependencies = {
45379
- "@types/node": "^17.0.9",
45380
- decache: "^4.6.1",
45381
- dtslint: "^3.7.0",
45382
- sinon: "^12.0.1",
45383
- standard: "^16.0.4",
45384
- "standard-markdown": "^7.1.0",
45385
- "standard-version": "^9.3.2",
45386
- tap: "^15.1.6",
45387
- tar: "^6.1.11",
45388
- typescript: "^4.5.4"
45389
- };
45390
- var engines = {
45391
- node: ">=12"
45392
- };
45393
- var require$$3 = {
45394
- name: name,
45395
- version: version$1,
45396
- description: description,
45397
- main: main,
45398
- types: types,
45399
- exports: exports,
45400
- scripts: scripts,
45401
- repository: repository,
45402
- keywords: keywords,
45403
- readmeFilename: readmeFilename,
45404
- license: license,
45405
- devDependencies: devDependencies,
45406
- engines: engines
45407
- };
45408
-
45409
- const fs$9 = require$$0__default;
45410
- const path$9 = require$$0$4;
45411
- const os$2 = require$$2;
45412
- const packageJson = require$$3;
45413
-
45414
- const version = packageJson.version;
45415
-
45416
- const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;
45417
-
45418
- // Parser src into an Object
45419
- function parse$8 (src) {
45420
- const obj = {};
45421
-
45422
- // Convert buffer to string
45423
- let lines = src.toString();
45424
-
45425
- // Convert line breaks to same format
45426
- lines = lines.replace(/\r\n?/mg, '\n');
45427
-
45428
- let match;
45429
- while ((match = LINE.exec(lines)) != null) {
45430
- const key = match[1];
45431
-
45432
- // Default undefined or null to empty string
45433
- let value = (match[2] || '');
45434
-
45435
- // Remove whitespace
45436
- value = value.trim();
45437
-
45438
- // Check if double quoted
45439
- const maybeQuote = value[0];
45440
-
45441
- // Remove surrounding quotes
45442
- value = value.replace(/^(['"`])([\s\S]*)\1$/mg, '$2');
45443
-
45444
- // Expand newlines if double quoted
45445
- if (maybeQuote === '"') {
45446
- value = value.replace(/\\n/g, '\n');
45447
- value = value.replace(/\\r/g, '\r');
45448
- }
45449
-
45450
- // Add to object
45451
- obj[key] = value;
45452
- }
45453
-
45454
- return obj
45455
- }
45456
-
45457
- function _log (message) {
45458
- console.log(`[dotenv@${version}][DEBUG] ${message}`);
45459
- }
45460
-
45461
- function _resolveHome (envPath) {
45462
- return envPath[0] === '~' ? path$9.join(os$2.homedir(), envPath.slice(1)) : envPath
45463
- }
45464
-
45465
- // Populates process.env from .env file
45466
- function config (options) {
45467
- let dotenvPath = path$9.resolve(process.cwd(), '.env');
45468
- let encoding = 'utf8';
45469
- const debug = Boolean(options && options.debug);
45470
- const override = Boolean(options && options.override);
45471
-
45472
- if (options) {
45473
- if (options.path != null) {
45474
- dotenvPath = _resolveHome(options.path);
45475
- }
45476
- if (options.encoding != null) {
45477
- encoding = options.encoding;
45478
- }
45479
- }
45480
-
45481
- try {
45482
- // Specifying an encoding returns a string instead of a buffer
45483
- const parsed = DotenvModule.parse(fs$9.readFileSync(dotenvPath, { encoding }));
45484
-
45485
- Object.keys(parsed).forEach(function (key) {
45486
- if (!Object.prototype.hasOwnProperty.call(process.env, key)) {
45487
- process.env[key] = parsed[key];
45488
- } else {
45489
- if (override === true) {
45490
- process.env[key] = parsed[key];
45491
- }
45492
-
45493
- if (debug) {
45494
- if (override === true) {
45495
- _log(`"${key}" is already defined in \`process.env\` and WAS overwritten`);
45496
- } else {
45497
- _log(`"${key}" is already defined in \`process.env\` and was NOT overwritten`);
45498
- }
45499
- }
45500
- }
45501
- });
45502
-
45503
- return { parsed }
45504
- } catch (e) {
45505
- if (debug) {
45506
- _log(`Failed to load ${dotenvPath} ${e.message}`);
45507
- }
45508
-
45509
- return { error: e }
45510
- }
45511
- }
45512
-
45513
- const DotenvModule = {
45514
- config,
45515
- parse: parse$8
45516
- };
45517
-
45518
- mainExports.config = DotenvModule.config;
45519
- var parse_1$1 = mainExports.parse = DotenvModule.parse;
45520
- main$1.exports = DotenvModule;
45521
-
45522
- function _interpolate (envValue, environment, config) {
45523
- const matches = envValue.match(/(.?\${*[\w]*(?::-[\w/]*)?}*)/g) || [];
45524
-
45525
- return matches.reduce(function (newEnv, match, index) {
45526
- const parts = /(.?)\${*([\w]*(?::-[\w/]*)?)?}*/g.exec(match);
45527
- if (!parts || parts.length === 0) {
45528
- return newEnv
45529
- }
45530
-
45531
- const prefix = parts[1];
45532
-
45533
- let value, replacePart;
45534
-
45535
- if (prefix === '\\') {
45536
- replacePart = parts[0];
45537
- value = replacePart.replace('\\$', '$');
45538
- } else {
45539
- // PATCH: compatible with env variables ended with unescaped $
45540
- if(!parts[2]) {
45541
- return newEnv
45542
- }
45543
- const keyParts = parts[2].split(':-');
45544
- const key = keyParts[0];
45545
- replacePart = parts[0].substring(prefix.length);
45546
- // process.env value 'wins' over .env file's value
45547
- value = Object.prototype.hasOwnProperty.call(environment, key)
45548
- ? environment[key]
45549
- : (config.parsed[key] || keyParts[1] || '');
45550
-
45551
- // If the value is found, remove nested expansions.
45552
- if (keyParts.length > 1 && value) {
45553
- const replaceNested = matches[index + 1];
45554
- matches[index + 1] = '';
45555
-
45556
- newEnv = newEnv.replace(replaceNested, '');
45557
- }
45558
- // Resolve recursive interpolations
45559
- value = _interpolate(value, environment, config);
45560
- }
45561
-
45562
- return newEnv.replace(replacePart, value)
45563
- }, envValue)
45564
- }
45565
-
45566
- function expand (config) {
45567
- // if ignoring process.env, use a blank object
45568
- const environment = config.ignoreProcessEnv ? {} : process.env;
45569
-
45570
- for (const configKey in config.parsed) {
45571
- const value = Object.prototype.hasOwnProperty.call(environment, configKey) ? environment[configKey] : config.parsed[configKey];
45572
-
45573
- config.parsed[configKey] = _interpolate(value, environment, config);
45574
- }
45575
-
45576
- // PATCH: don't write to process.env
45577
- // for (const processKey in config.parsed) {
45578
- // environment[processKey] = config.parsed[processKey]
45579
- // }
45580
-
45581
- return config
45582
- }
45583
-
45584
- var expand_1 = expand;
45585
-
45586
- function loadEnv(mode, envDir, prefixes = 'VITE_') {
45587
- if (mode === 'local') {
45588
- throw new Error(`"local" cannot be used as a mode name because it conflicts with ` +
45589
- `the .local postfix for .env files.`);
45590
- }
45591
- prefixes = arraify(prefixes);
45592
- const env = {};
45593
- const envFiles = [
45594
- /** default file */ `.env`,
45595
- /** local file */ `.env.local`,
45596
- /** mode file */ `.env.${mode}`,
45597
- /** mode local file */ `.env.${mode}.local`,
45598
- ];
45599
- const parsed = Object.fromEntries(envFiles.flatMap((file) => {
45600
- const path = lookupFile(envDir, [file], {
45601
- pathOnly: true,
45602
- rootDir: envDir,
45603
- });
45604
- if (!path)
45605
- return [];
45606
- return Object.entries(parse_1$1(fs$l.readFileSync(path)));
45607
- }));
45608
- // test NODE_ENV override before expand as otherwise process.env.NODE_ENV would override this
45609
- if (parsed.NODE_ENV && process.env.VITE_USER_NODE_ENV === undefined) {
45610
- process.env.VITE_USER_NODE_ENV = parsed.NODE_ENV;
45611
- }
45612
- // support BROWSER and BROWSER_ARGS env variables
45613
- if (parsed.BROWSER && process.env.BROWSER === undefined) {
45614
- process.env.BROWSER = parsed.BROWSER;
45615
- }
45616
- if (parsed.BROWSER_ARGS && process.env.BROWSER_ARGS === undefined) {
45617
- process.env.BROWSER_ARGS = parsed.BROWSER_ARGS;
45618
- }
45619
- // let environment variables use each other
45620
- // `expand` patched in patches/dotenv-expand@9.0.0.patch
45621
- expand_1({ parsed });
45622
- // only keys that start with prefix are exposed to client
45623
- for (const [key, value] of Object.entries(parsed)) {
45624
- if (prefixes.some((prefix) => key.startsWith(prefix))) {
45625
- env[key] = value;
45626
- }
45627
- }
45628
- // check if there are actual env variables starting with VITE_*
45629
- // these are typically provided inline and should be prioritized
45630
- for (const key in process.env) {
45631
- if (prefixes.some((prefix) => key.startsWith(prefix))) {
45632
- env[key] = process.env[key];
45633
- }
45634
- }
45635
- return env;
45636
- }
45637
- function resolveEnvPrefix({ envPrefix = 'VITE_', }) {
45638
- envPrefix = arraify(envPrefix);
45639
- if (envPrefix.some((prefix) => prefix === '')) {
45640
- throw new Error(`envPrefix option contains value '', which could lead unexpected exposure of sensitive information.`);
45641
- }
45642
- return envPrefix;
45643
- }
45644
-
45645
- function resolveBuildOptions(raw, logger) {
45856
+ function resolveBuildOptions(raw, logger, root) {
45646
45857
  const deprecatedPolyfillModulePreload = raw?.polyfillModulePreload;
45647
45858
  if (raw) {
45648
45859
  const { polyfillModulePreload, ...rest } = raw;
@@ -45713,8 +45924,16 @@ function resolveBuildOptions(raw, logger) {
45713
45924
  resolved.target = ESBUILD_MODULES_TARGET;
45714
45925
  }
45715
45926
  else if (resolved.target === 'esnext' && resolved.minify === 'terser') {
45716
- // esnext + terser: limit to es2021 so it can be minified by terser
45717
- resolved.target = 'es2021';
45927
+ try {
45928
+ const terserPackageJsonPath = requireResolveFromRootWithFallback(root, 'terser/package.json');
45929
+ const terserPackageJson = JSON.parse(fs$l.readFileSync(terserPackageJsonPath, 'utf-8'));
45930
+ const v = terserPackageJson.version.split('.');
45931
+ if (v[0] === '5' && v[1] < 16) {
45932
+ // esnext + terser 5.16<: limit to es2021 so it can be minified by terser
45933
+ resolved.target = 'es2021';
45934
+ }
45935
+ }
45936
+ catch { }
45718
45937
  }
45719
45938
  if (!resolved.cssTarget) {
45720
45939
  resolved.cssTarget = resolved.target;
@@ -59209,7 +59428,7 @@ var debug_1 = function () {
59209
59428
  if (!debug$3) {
59210
59429
  try {
59211
59430
  /* eslint global-require: off */
59212
- debug$3 = require("debug")("follow-redirects");
59431
+ debug$3 = srcExports$1("follow-redirects");
59213
59432
  }
59214
59433
  catch (error) { /* */ }
59215
59434
  if (typeof debug$3 !== "function") {
@@ -60455,6 +60674,9 @@ function proxyMiddleware(httpServer, options, config) {
60455
60674
  opts = { target: opts, changeOrigin: true };
60456
60675
  }
60457
60676
  const proxy = httpProxy.createProxyServer(opts);
60677
+ if (opts.configure) {
60678
+ opts.configure(proxy, opts);
60679
+ }
60458
60680
  proxy.on('error', (err, req, originalRes) => {
60459
60681
  // When it is ws proxy, res is net.Socket
60460
60682
  const res = originalRes;
@@ -60479,9 +60701,6 @@ function proxyMiddleware(httpServer, options, config) {
60479
60701
  res.end();
60480
60702
  }
60481
60703
  });
60482
- if (opts.configure) {
60483
- opts.configure(proxy, opts);
60484
- }
60485
60704
  // clone before saving because http-proxy mutates the options
60486
60705
  proxies[context] = [proxy, { ...opts }];
60487
60706
  });
@@ -60868,6 +61087,7 @@ function createDevHtmlTransformFn(server) {
60868
61087
  return applyHtmlTransforms(html, [
60869
61088
  preImportMapHook(server.config),
60870
61089
  ...preHooks,
61090
+ htmlEnvHook(server.config),
60871
61091
  devHtmlHook,
60872
61092
  ...normalHooks,
60873
61093
  ...postHooks,
@@ -62701,6 +62921,9 @@ async function createServer(inlineConfig = {}) {
62701
62921
  else {
62702
62922
  await initServer();
62703
62923
  }
62924
+ // Fire a clean up of stale cache dirs, in case old processes didn't
62925
+ // terminate correctly. Don't await this promise
62926
+ cleanupDepsCacheStaleDirs(config);
62704
62927
  return server;
62705
62928
  }
62706
62929
  async function startServer(server, inlinePort) {
@@ -62757,6 +62980,10 @@ function resolveServerOptions(root, raw, logger) {
62757
62980
  const server = {
62758
62981
  preTransformRequests: true,
62759
62982
  ...raw,
62983
+ sourcemapIgnoreList: raw?.sourcemapIgnoreList === false
62984
+ ? () => false
62985
+ : raw?.sourcemapIgnoreList ||
62986
+ ((sourcePath) => sourcePath.includes('node_modules')),
62760
62987
  middlewareMode: !!raw?.middlewareMode,
62761
62988
  };
62762
62989
  let allowDirs = server.fs?.allow;
@@ -63215,7 +63442,7 @@ async function resolveConfig(inlineConfig, command, defaultMode = 'development',
63215
63442
  ? '/'
63216
63443
  : './'
63217
63444
  : resolveBaseUrl(config.base, isBuild, logger) ?? '/';
63218
- const resolvedBuildOptions = resolveBuildOptions(config.build, logger);
63445
+ const resolvedBuildOptions = resolveBuildOptions(config.build, logger, resolvedRoot);
63219
63446
  // resolve cache directory
63220
63447
  const pkgPath = lookupFile(resolvedRoot, [`package.json`], { pathOnly: true });
63221
63448
  const cacheDir = normalizePath$3(config.cacheDir