2025-11-05 02:05:43 +00:00
let SOURCEMAPPING _URL = "sourceMa" ;
SOURCEMAPPING _URL += "ppingURL" ;
const isWindows = typeof process < "u" && process . platform === "win32" ;
function unwrapId ( id ) {
return id . startsWith ( "/@id/" ) ? id . slice ( 5 ) . replace ( "__x00__" , "\0" ) : id ;
}
const windowsSlashRE = /\\/g ;
function slash ( p ) {
return p . replace ( windowsSlashRE , "/" ) ;
}
const postfixRE = /[?#].*$/ ;
function cleanUrl ( url ) {
return url . replace ( postfixRE , "" ) ;
}
function isPrimitive ( value ) {
return ! value || typeof value != "object" && typeof value != "function" ;
}
const AsyncFunction = async function ( ) { } . constructor ;
let asyncFunctionDeclarationPaddingLineCount ;
function getAsyncFunctionDeclarationPaddingLineCount ( ) {
if ( asyncFunctionDeclarationPaddingLineCount === void 0 ) {
let body = "/*code*/" , source = new AsyncFunction ( "a" , "b" , body ) . toString ( ) ;
asyncFunctionDeclarationPaddingLineCount = source . slice ( 0 , source . indexOf ( body ) ) . split ( "\n" ) . length - 1 ;
}
return asyncFunctionDeclarationPaddingLineCount ;
}
function promiseWithResolvers ( ) {
let resolve$1 , reject ;
return {
promise : new Promise ( ( _resolve , _reject ) => {
resolve$1 = _resolve , reject = _reject ;
} ) ,
resolve : resolve$1 ,
reject
} ;
}
const _DRIVE _LETTER _START _RE = /^[A-Za-z]:\// ;
function normalizeWindowsPath ( input = "" ) {
return input && input . replace ( /\\/g , "/" ) . replace ( _DRIVE _LETTER _START _RE , ( r ) => r . toUpperCase ( ) ) ;
}
const _IS _ABSOLUTE _RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/ , _DRIVE _LETTER _RE = /^[A-Za-z]:$/ ;
function cwd ( ) {
return typeof process < "u" && typeof process . cwd == "function" ? process . cwd ( ) . replace ( /\\/g , "/" ) : "/" ;
}
const resolve = function ( ... arguments _ ) {
arguments _ = arguments _ . map ( ( argument ) => normalizeWindowsPath ( argument ) ) ;
let resolvedPath = "" , resolvedAbsolute = ! 1 ;
for ( let index = arguments _ . length - 1 ; index >= - 1 && ! resolvedAbsolute ; index -- ) {
let path = index >= 0 ? arguments _ [ index ] : cwd ( ) ;
! path || path . length === 0 || ( resolvedPath = ` ${ path } / ${ resolvedPath } ` , resolvedAbsolute = isAbsolute ( path ) ) ;
}
return resolvedPath = normalizeString ( resolvedPath , ! resolvedAbsolute ) , resolvedAbsolute && ! isAbsolute ( resolvedPath ) ? ` / ${ resolvedPath } ` : resolvedPath . length > 0 ? resolvedPath : "." ;
} ;
function normalizeString ( path , allowAboveRoot ) {
let res = "" , lastSegmentLength = 0 , lastSlash = - 1 , dots = 0 , char = null ;
for ( let index = 0 ; index <= path . length ; ++ index ) {
if ( index < path . length ) char = path [ index ] ;
else if ( char === "/" ) break ;
else char = "/" ;
if ( char === "/" ) {
if ( ! ( lastSlash === index - 1 || dots === 1 ) ) if ( dots === 2 ) {
if ( res . length < 2 || lastSegmentLength !== 2 || res [ res . length - 1 ] !== "." || res [ res . length - 2 ] !== "." ) {
if ( res . length > 2 ) {
let lastSlashIndex = res . lastIndexOf ( "/" ) ;
lastSlashIndex === - 1 ? ( res = "" , lastSegmentLength = 0 ) : ( res = res . slice ( 0 , lastSlashIndex ) , lastSegmentLength = res . length - 1 - res . lastIndexOf ( "/" ) ) , lastSlash = index , dots = 0 ;
continue ;
} else if ( res . length > 0 ) {
res = "" , lastSegmentLength = 0 , lastSlash = index , dots = 0 ;
continue ;
}
}
allowAboveRoot && ( res += res . length > 0 ? "/.." : ".." , lastSegmentLength = 2 ) ;
} else res . length > 0 ? res += ` / ${ path . slice ( lastSlash + 1 , index ) } ` : res = path . slice ( lastSlash + 1 , index ) , lastSegmentLength = index - lastSlash - 1 ;
lastSlash = index , dots = 0 ;
} else char === "." && dots !== - 1 ? ++ dots : dots = - 1 ;
}
return res ;
}
const isAbsolute = function ( p ) {
return _IS _ABSOLUTE _RE . test ( p ) ;
} , dirname = function ( p ) {
let segments = normalizeWindowsPath ( p ) . replace ( /\/$/ , "" ) . split ( "/" ) . slice ( 0 , - 1 ) ;
return segments . length === 1 && _DRIVE _LETTER _RE . test ( segments [ 0 ] ) && ( segments [ 0 ] += "/" ) , segments . join ( "/" ) || ( isAbsolute ( p ) ? "/" : "." ) ;
} , decodeBase64 = typeof atob < "u" ? atob : ( str ) => Buffer . from ( str , "base64" ) . toString ( "utf-8" ) , percentRegEx = /%/g , backslashRegEx = /\\/g , newlineRegEx = /\n/g , carriageReturnRegEx = /\r/g , tabRegEx = /\t/g , questionRegex = /\?/g , hashRegex = /#/g ;
function encodePathChars ( filepath ) {
return filepath . indexOf ( "%" ) !== - 1 && ( filepath = filepath . replace ( percentRegEx , "%25" ) ) , ! isWindows && filepath . indexOf ( "\\" ) !== - 1 && ( filepath = filepath . replace ( backslashRegEx , "%5C" ) ) , filepath . indexOf ( "\n" ) !== - 1 && ( filepath = filepath . replace ( newlineRegEx , "%0A" ) ) , filepath . indexOf ( "\r" ) !== - 1 && ( filepath = filepath . replace ( carriageReturnRegEx , "%0D" ) ) , filepath . indexOf ( " " ) !== - 1 && ( filepath = filepath . replace ( tabRegEx , "%09" ) ) , filepath ;
}
const posixDirname = dirname , posixResolve = resolve ;
function posixPathToFileHref ( posixPath ) {
let resolved = posixResolve ( posixPath ) , filePathLast = posixPath . charCodeAt ( posixPath . length - 1 ) ;
return ( filePathLast === 47 || isWindows && filePathLast === 92 ) && resolved [ resolved . length - 1 ] !== "/" && ( resolved += "/" ) , resolved = encodePathChars ( resolved ) , resolved . indexOf ( "?" ) !== - 1 && ( resolved = resolved . replace ( questionRegex , "%3F" ) ) , resolved . indexOf ( "#" ) !== - 1 && ( resolved = resolved . replace ( hashRegex , "%23" ) ) , new URL ( ` file:// ${ resolved } ` ) . href ;
}
function toWindowsPath ( path ) {
return path . replace ( /\//g , "\\" ) ;
}
var comma = 44 , chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" , intToChar = new Uint8Array ( 64 ) , charToInt = new Uint8Array ( 128 ) ;
for ( let i = 0 ; i < chars . length ; i ++ ) {
let c = chars . charCodeAt ( i ) ;
intToChar [ i ] = c , charToInt [ c ] = i ;
}
function decodeInteger ( reader , relative ) {
let value = 0 , shift = 0 , integer = 0 ;
do
integer = charToInt [ reader . next ( ) ] , value |= ( integer & 31 ) << shift , shift += 5 ;
while ( integer & 32 ) ;
let shouldNegate = value & 1 ;
return value >>>= 1 , shouldNegate && ( value = - 2147483648 | - value ) , relative + value ;
}
function hasMoreVlq ( reader , max ) {
return reader . pos >= max ? ! 1 : reader . peek ( ) !== comma ;
}
var StringReader = class {
constructor ( buffer ) {
this . pos = 0 , this . buffer = buffer ;
}
next ( ) {
return this . buffer . charCodeAt ( this . pos ++ ) ;
}
peek ( ) {
return this . buffer . charCodeAt ( this . pos ) ;
}
indexOf ( char ) {
let { buffer , pos } = this , idx = buffer . indexOf ( char , pos ) ;
return idx === - 1 ? buffer . length : idx ;
}
} ;
function decode ( mappings ) {
let { length } = mappings , reader = new StringReader ( mappings ) , decoded = [ ] , genColumn = 0 , sourcesIndex = 0 , sourceLine = 0 , sourceColumn = 0 , namesIndex = 0 ;
do {
let semi = reader . indexOf ( ";" ) , line = [ ] , sorted = ! 0 , lastCol = 0 ;
for ( genColumn = 0 ; reader . pos < semi ; ) {
let seg ;
genColumn = decodeInteger ( reader , genColumn ) , genColumn < lastCol && ( sorted = ! 1 ) , lastCol = genColumn , hasMoreVlq ( reader , semi ) ? ( sourcesIndex = decodeInteger ( reader , sourcesIndex ) , sourceLine = decodeInteger ( reader , sourceLine ) , sourceColumn = decodeInteger ( reader , sourceColumn ) , hasMoreVlq ( reader , semi ) ? ( namesIndex = decodeInteger ( reader , namesIndex ) , seg = [
genColumn ,
sourcesIndex ,
sourceLine ,
sourceColumn ,
namesIndex
] ) : seg = [
genColumn ,
sourcesIndex ,
sourceLine ,
sourceColumn
] ) : seg = [ genColumn ] , line . push ( seg ) , reader . pos ++ ;
}
sorted || sort ( line ) , decoded . push ( line ) , reader . pos = semi + 1 ;
} while ( reader . pos <= length ) ;
return decoded ;
}
function sort ( line ) {
line . sort ( sortComparator ) ;
}
function sortComparator ( a , b ) {
return a [ 0 ] - b [ 0 ] ;
}
var COLUMN = 0 , SOURCES _INDEX = 1 , SOURCE _LINE = 2 , SOURCE _COLUMN = 3 , NAMES _INDEX = 4 , found = ! 1 ;
function binarySearch ( haystack , needle , low , high ) {
for ( ; low <= high ; ) {
let mid = low + ( high - low >> 1 ) , cmp = haystack [ mid ] [ COLUMN ] - needle ;
if ( cmp === 0 ) return found = ! 0 , mid ;
cmp < 0 ? low = mid + 1 : high = mid - 1 ;
}
return found = ! 1 , low - 1 ;
}
function upperBound ( haystack , needle , index ) {
for ( let i = index + 1 ; i < haystack . length && haystack [ i ] [ COLUMN ] === needle ; index = i ++ ) ;
return index ;
}
function lowerBound ( haystack , needle , index ) {
for ( let i = index - 1 ; i >= 0 && haystack [ i ] [ COLUMN ] === needle ; index = i -- ) ;
return index ;
}
function memoizedBinarySearch ( haystack , needle , state , key ) {
let { lastKey , lastNeedle , lastIndex } = state , low = 0 , high = haystack . length - 1 ;
if ( key === lastKey ) {
if ( needle === lastNeedle ) return found = lastIndex !== - 1 && haystack [ lastIndex ] [ COLUMN ] === needle , lastIndex ;
needle >= lastNeedle ? low = lastIndex === - 1 ? 0 : lastIndex : high = lastIndex ;
}
return state . lastKey = key , state . lastNeedle = needle , state . lastIndex = binarySearch ( haystack , needle , low , high ) ;
}
var LINE _GTR _ZERO = "`line` must be greater than 0 (lines start at line 1)" , COL _GTR _EQ _ZERO = "`column` must be greater than or equal to 0 (columns start at column 0)" , LEAST _UPPER _BOUND = - 1 , GREATEST _LOWER _BOUND = 1 ;
function cast ( map ) {
return map ;
}
function decodedMappings ( map ) {
var _a ;
return ( _a = cast ( map ) ) . _decoded || ( _a . _decoded = decode ( cast ( map ) . _encoded ) ) ;
}
function originalPositionFor ( map , needle ) {
let { line , column , bias } = needle ;
if ( line -- , line < 0 ) throw Error ( LINE _GTR _ZERO ) ;
if ( column < 0 ) throw Error ( COL _GTR _EQ _ZERO ) ;
let decoded = decodedMappings ( map ) ;
if ( line >= decoded . length ) return OMapping ( null , null , null , null ) ;
let segments = decoded [ line ] , index = traceSegmentInternal ( segments , cast ( map ) . _decodedMemo , line , column , bias || GREATEST _LOWER _BOUND ) ;
if ( index === - 1 ) return OMapping ( null , null , null , null ) ;
let segment = segments [ index ] ;
if ( segment . length === 1 ) return OMapping ( null , null , null , null ) ;
let { names , resolvedSources } = map ;
return OMapping ( resolvedSources [ segment [ SOURCES _INDEX ] ] , segment [ SOURCE _LINE ] + 1 , segment [ SOURCE _COLUMN ] , segment . length === 5 ? names [ segment [ NAMES _INDEX ] ] : null ) ;
}
function OMapping ( source , line , column , name ) {
return {
source ,
line ,
column ,
name
} ;
}
function traceSegmentInternal ( segments , memo , line , column , bias ) {
let index = memoizedBinarySearch ( segments , column , memo , line ) ;
return found ? index = ( bias === LEAST _UPPER _BOUND ? upperBound : lowerBound ) ( segments , column , index ) : bias === LEAST _UPPER _BOUND && index ++ , index === - 1 || index === segments . length ? - 1 : index ;
}
var DecodedMap = class {
_encoded ;
_decoded ;
_decodedMemo ;
url ;
2025-11-13 02:45:18 +00:00
file ;
2025-11-05 02:05:43 +00:00
version ;
names = [ ] ;
resolvedSources ;
constructor ( map , from ) {
this . map = map ;
let { mappings , names , sources } = map ;
2025-11-13 02:45:18 +00:00
this . version = map . version , this . names = names || [ ] , this . _encoded = mappings || "" , this . _decodedMemo = memoizedState ( ) , this . url = from , this . file = from ;
let originDir = posixDirname ( from ) ;
this . resolvedSources = ( sources || [ ] ) . map ( ( s ) => posixResolve ( originDir , s || "" ) ) ;
2025-11-05 02:05:43 +00:00
}
} ;
function memoizedState ( ) {
return {
lastKey : - 1 ,
lastNeedle : - 1 ,
lastIndex : - 1
} ;
}
function getOriginalPosition ( map , needle ) {
let result = originalPositionFor ( map , needle ) ;
return result . column == null ? null : result ;
}
const MODULE _RUNNER _SOURCEMAPPING _REGEXP = /* @__PURE__ */ RegExp ( ` //# ${ SOURCEMAPPING _URL } =data:application/json;base64,(.+) ` ) ;
var EvaluatedModuleNode = class {
importers = /* @__PURE__ */ new Set ( ) ;
imports = /* @__PURE__ */ new Set ( ) ;
evaluated = ! 1 ;
meta ;
promise ;
exports ;
file ;
map ;
constructor ( id , url ) {
this . id = id , this . url = url , this . file = cleanUrl ( id ) ;
}
} , EvaluatedModules = class {
idToModuleMap = /* @__PURE__ */ new Map ( ) ;
fileToModulesMap = /* @__PURE__ */ new Map ( ) ;
urlToIdModuleMap = /* @__PURE__ */ new Map ( ) ;
getModuleById ( id ) {
return this . idToModuleMap . get ( id ) ;
}
getModulesByFile ( file ) {
return this . fileToModulesMap . get ( file ) ;
}
getModuleByUrl ( url ) {
return this . urlToIdModuleMap . get ( unwrapId ( url ) ) ;
}
ensureModule ( id , url ) {
if ( id = normalizeModuleId ( id ) , this . idToModuleMap . has ( id ) ) {
let moduleNode$1 = this . idToModuleMap . get ( id ) ;
return this . urlToIdModuleMap . set ( url , moduleNode$1 ) , moduleNode$1 ;
}
let moduleNode = new EvaluatedModuleNode ( id , url ) ;
this . idToModuleMap . set ( id , moduleNode ) , this . urlToIdModuleMap . set ( url , moduleNode ) ;
let fileModules = this . fileToModulesMap . get ( moduleNode . file ) || /* @__PURE__ */ new Set ( ) ;
return fileModules . add ( moduleNode ) , this . fileToModulesMap . set ( moduleNode . file , fileModules ) , moduleNode ;
}
invalidateModule ( node ) {
node . evaluated = ! 1 , node . meta = void 0 , node . map = void 0 , node . promise = void 0 , node . exports = void 0 , node . imports . clear ( ) ;
}
getModuleSourceMapById ( id ) {
let mod = this . getModuleById ( id ) ;
if ( ! mod ) return null ;
if ( mod . map ) return mod . map ;
if ( ! mod . meta || ! ( "code" in mod . meta ) ) return null ;
let pattern = ` //# ${ SOURCEMAPPING _URL } =data:application/json;base64, ` , lastIndex = mod . meta . code . lastIndexOf ( pattern ) ;
if ( lastIndex === - 1 ) return null ;
let mapString = MODULE _RUNNER _SOURCEMAPPING _REGEXP . exec ( mod . meta . code . slice ( lastIndex ) ) ? . [ 1 ] ;
return mapString ? ( mod . map = new DecodedMap ( JSON . parse ( decodeBase64 ( mapString ) ) , mod . file ) , mod . map ) : null ;
}
clear ( ) {
this . idToModuleMap . clear ( ) , this . fileToModulesMap . clear ( ) , this . urlToIdModuleMap . clear ( ) ;
}
} ;
const prefixedBuiltins = new Set ( [
"node:sea" ,
"node:sqlite" ,
"node:test" ,
"node:test/reporters"
] ) ;
function normalizeModuleId ( file ) {
return prefixedBuiltins . has ( file ) ? file : slash ( file ) . replace ( /^\/@fs\// , isWindows ? "" : "/" ) . replace ( /^node:/ , "" ) . replace ( /^\/+/ , "/" ) . replace ( /^file:\/+/ , isWindows ? "" : "/" ) ;
}
var HMRContext = class {
newListeners ;
constructor ( hmrClient , ownerPath ) {
this . hmrClient = hmrClient , this . ownerPath = ownerPath , hmrClient . dataMap . has ( ownerPath ) || hmrClient . dataMap . set ( ownerPath , { } ) ;
let mod = hmrClient . hotModulesMap . get ( ownerPath ) ;
mod && ( mod . callbacks = [ ] ) ;
let staleListeners = hmrClient . ctxToListenersMap . get ( ownerPath ) ;
if ( staleListeners ) for ( let [ event , staleFns ] of staleListeners ) {
let listeners = hmrClient . customListenersMap . get ( event ) ;
listeners && hmrClient . customListenersMap . set ( event , listeners . filter ( ( l ) => ! staleFns . includes ( l ) ) ) ;
}
this . newListeners = /* @__PURE__ */ new Map ( ) , hmrClient . ctxToListenersMap . set ( ownerPath , this . newListeners ) ;
}
get data ( ) {
return this . hmrClient . dataMap . get ( this . ownerPath ) ;
}
accept ( deps , callback ) {
if ( typeof deps == "function" || ! deps ) this . acceptDeps ( [ this . ownerPath ] , ( [ mod ] ) => deps ? . ( mod ) ) ;
else if ( typeof deps == "string" ) this . acceptDeps ( [ deps ] , ( [ mod ] ) => callback ? . ( mod ) ) ;
else if ( Array . isArray ( deps ) ) this . acceptDeps ( deps , callback ) ;
else throw Error ( "invalid hot.accept() usage." ) ;
}
acceptExports ( _ , callback ) {
this . acceptDeps ( [ this . ownerPath ] , ( [ mod ] ) => callback ? . ( mod ) ) ;
}
dispose ( cb ) {
this . hmrClient . disposeMap . set ( this . ownerPath , cb ) ;
}
prune ( cb ) {
this . hmrClient . pruneMap . set ( this . ownerPath , cb ) ;
}
decline ( ) { }
invalidate ( message ) {
let firstInvalidatedBy = this . hmrClient . currentFirstInvalidatedBy ? ? this . ownerPath ;
this . hmrClient . notifyListeners ( "vite:invalidate" , {
path : this . ownerPath ,
message ,
firstInvalidatedBy
} ) , this . send ( "vite:invalidate" , {
path : this . ownerPath ,
message ,
firstInvalidatedBy
} ) , this . hmrClient . logger . debug ( ` invalidate ${ this . ownerPath } ${ message ? ` : ${ message } ` : "" } ` ) ;
}
on ( event , cb ) {
let addToMap = ( map ) => {
let existing = map . get ( event ) || [ ] ;
existing . push ( cb ) , map . set ( event , existing ) ;
} ;
addToMap ( this . hmrClient . customListenersMap ) , addToMap ( this . newListeners ) ;
}
off ( event , cb ) {
let removeFromMap = ( map ) => {
let existing = map . get ( event ) ;
if ( existing === void 0 ) return ;
let pruned = existing . filter ( ( l ) => l !== cb ) ;
if ( pruned . length === 0 ) {
map . delete ( event ) ;
return ;
}
map . set ( event , pruned ) ;
} ;
removeFromMap ( this . hmrClient . customListenersMap ) , removeFromMap ( this . newListeners ) ;
}
send ( event , data ) {
this . hmrClient . send ( {
type : "custom" ,
event ,
data
} ) ;
}
acceptDeps ( deps , callback = ( ) => { } ) {
let mod = this . hmrClient . hotModulesMap . get ( this . ownerPath ) || {
id : this . ownerPath ,
callbacks : [ ]
} ;
mod . callbacks . push ( {
deps ,
fn : callback
} ) , this . hmrClient . hotModulesMap . set ( this . ownerPath , mod ) ;
}
} , HMRClient = class {
hotModulesMap = /* @__PURE__ */ new Map ( ) ;
disposeMap = /* @__PURE__ */ new Map ( ) ;
pruneMap = /* @__PURE__ */ new Map ( ) ;
dataMap = /* @__PURE__ */ new Map ( ) ;
customListenersMap = /* @__PURE__ */ new Map ( ) ;
ctxToListenersMap = /* @__PURE__ */ new Map ( ) ;
currentFirstInvalidatedBy ;
constructor ( logger , transport , importUpdatedModule ) {
this . logger = logger , this . transport = transport , this . importUpdatedModule = importUpdatedModule ;
}
async notifyListeners ( event , data ) {
let cbs = this . customListenersMap . get ( event ) ;
cbs && await Promise . allSettled ( cbs . map ( ( cb ) => cb ( data ) ) ) ;
}
send ( payload ) {
this . transport . send ( payload ) . catch ( ( err ) => {
this . logger . error ( err ) ;
} ) ;
}
clear ( ) {
this . hotModulesMap . clear ( ) , this . disposeMap . clear ( ) , this . pruneMap . clear ( ) , this . dataMap . clear ( ) , this . customListenersMap . clear ( ) , this . ctxToListenersMap . clear ( ) ;
}
async prunePaths ( paths ) {
await Promise . all ( paths . map ( ( path ) => {
let disposer = this . disposeMap . get ( path ) ;
if ( disposer ) return disposer ( this . dataMap . get ( path ) ) ;
} ) ) , await Promise . all ( paths . map ( ( path ) => {
let fn = this . pruneMap . get ( path ) ;
if ( fn ) return fn ( this . dataMap . get ( path ) ) ;
} ) ) ;
}
warnFailedUpdate ( err , path ) {
( ! ( err instanceof Error ) || ! err . message . includes ( "fetch" ) ) && this . logger . error ( err ) , this . logger . error ( ` Failed to reload ${ path } . This could be due to syntax errors or importing non-existent modules. (see errors above) ` ) ;
}
updateQueue = [ ] ;
pendingUpdateQueue = ! 1 ;
async queueUpdate ( payload ) {
if ( this . updateQueue . push ( this . fetchUpdate ( payload ) ) , ! this . pendingUpdateQueue ) {
this . pendingUpdateQueue = ! 0 , await Promise . resolve ( ) , this . pendingUpdateQueue = ! 1 ;
let loading = [ ... this . updateQueue ] ;
this . updateQueue = [ ] , ( await Promise . all ( loading ) ) . forEach ( ( fn ) => fn && fn ( ) ) ;
}
}
async fetchUpdate ( update ) {
let { path , acceptedPath , firstInvalidatedBy } = update , mod = this . hotModulesMap . get ( path ) ;
if ( ! mod ) return ;
let fetchedModule , isSelfUpdate = path === acceptedPath , qualifiedCallbacks = mod . callbacks . filter ( ( { deps } ) => deps . includes ( acceptedPath ) ) ;
if ( isSelfUpdate || qualifiedCallbacks . length > 0 ) {
let disposer = this . disposeMap . get ( acceptedPath ) ;
disposer && await disposer ( this . dataMap . get ( acceptedPath ) ) ;
try {
fetchedModule = await this . importUpdatedModule ( update ) ;
} catch ( e ) {
this . warnFailedUpdate ( e , acceptedPath ) ;
}
}
return ( ) => {
try {
this . currentFirstInvalidatedBy = firstInvalidatedBy ;
for ( let { deps , fn } of qualifiedCallbacks ) fn ( deps . map ( ( dep ) => dep === acceptedPath ? fetchedModule : void 0 ) ) ;
let loggedPath = isSelfUpdate ? path : ` ${ acceptedPath } via ${ path } ` ;
this . logger . debug ( ` hot updated: ${ loggedPath } ` ) ;
} finally {
this . currentFirstInvalidatedBy = void 0 ;
}
} ;
}
} ;
function analyzeImportedModDifference ( mod , rawId , moduleType , metadata ) {
if ( ! metadata ? . isDynamicImport && metadata ? . importedNames ? . length ) {
let missingBindings = metadata . importedNames . filter ( ( s ) => ! ( s in mod ) ) ;
if ( missingBindings . length ) {
let lastBinding = missingBindings [ missingBindings . length - 1 ] ;
throw moduleType === "module" ? SyntaxError ( ` [vite] The requested module ' ${ rawId } ' does not provide an export named ' ${ lastBinding } ' ` ) : SyntaxError ( ` \
[ vite ] Named export '${lastBinding}' not found . The requested module '${rawId}' is a CommonJS module , which may not support all module . exports as named exports .
CommonJS modules can always be imported via the default export , for example using :
import pkg from '${rawId}' ;
const { $ { missingBindings . join ( ", " ) } } = pkg ;
` );
}
}
}
let nanoid = ( size = 21 ) => {
let id = "" , i = size | 0 ;
for ( ; i -- ; ) id += "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict" [ Math . random ( ) * 64 | 0 ] ;
return id ;
} ;
function reviveInvokeError ( e ) {
let error = Error ( e . message || "Unknown invoke error" ) ;
return Object . assign ( error , e , { runnerError : /* @__PURE__ */ Error ( "RunnerError" ) } ) , error ;
}
const createInvokeableTransport = ( transport ) => {
if ( transport . invoke ) return {
... transport ,
async invoke ( name , data ) {
let result = await transport . invoke ( {
type : "custom" ,
event : "vite:invoke" ,
data : {
id : "send" ,
name ,
data
}
} ) ;
if ( "error" in result ) throw reviveInvokeError ( result . error ) ;
return result . result ;
}
} ;
if ( ! transport . send || ! transport . connect ) throw Error ( "transport must implement send and connect when invoke is not implemented" ) ;
let rpcPromises = /* @__PURE__ */ new Map ( ) ;
return {
... transport ,
connect ( { onMessage , onDisconnection } ) {
return transport . connect ( {
onMessage ( payload ) {
if ( payload . type === "custom" && payload . event === "vite:invoke" ) {
let data = payload . data ;
if ( data . id . startsWith ( "response:" ) ) {
let invokeId = data . id . slice ( 9 ) , promise = rpcPromises . get ( invokeId ) ;
if ( ! promise ) return ;
promise . timeoutId && clearTimeout ( promise . timeoutId ) , rpcPromises . delete ( invokeId ) ;
let { error , result } = data . data ;
error ? promise . reject ( error ) : promise . resolve ( result ) ;
return ;
}
}
onMessage ( payload ) ;
} ,
onDisconnection
} ) ;
} ,
disconnect ( ) {
return rpcPromises . forEach ( ( promise ) => {
promise . reject ( /* @__PURE__ */ Error ( ` transport was disconnected, cannot call ${ JSON . stringify ( promise . name ) } ` ) ) ;
} ) , rpcPromises . clear ( ) , transport . disconnect ? . ( ) ;
} ,
send ( data ) {
return transport . send ( data ) ;
} ,
async invoke ( name , data ) {
let promiseId = nanoid ( ) , wrappedData = {
type : "custom" ,
event : "vite:invoke" ,
data : {
name ,
id : ` send: ${ promiseId } ` ,
data
}
} , sendPromise = transport . send ( wrappedData ) , { promise , resolve : resolve$1 , reject } = promiseWithResolvers ( ) , timeout = transport . timeout ? ? 6e4 , timeoutId ;
timeout > 0 && ( timeoutId = setTimeout ( ( ) => {
rpcPromises . delete ( promiseId ) , reject ( /* @__PURE__ */ Error ( ` transport invoke timed out after ${ timeout } ms (data: ${ JSON . stringify ( wrappedData ) } ) ` ) ) ;
} , timeout ) , timeoutId ? . unref ? . ( ) ) , rpcPromises . set ( promiseId , {
resolve : resolve$1 ,
reject ,
name ,
timeoutId
} ) , sendPromise && sendPromise . catch ( ( err ) => {
clearTimeout ( timeoutId ) , rpcPromises . delete ( promiseId ) , reject ( err ) ;
} ) ;
try {
return await promise ;
} catch ( err ) {
throw reviveInvokeError ( err ) ;
}
}
} ;
} , normalizeModuleRunnerTransport = ( transport ) => {
let invokeableTransport = createInvokeableTransport ( transport ) , isConnected = ! invokeableTransport . connect , connectingPromise ;
return {
... transport ,
... invokeableTransport . connect ? { async connect ( onMessage ) {
if ( isConnected ) return ;
if ( connectingPromise ) {
await connectingPromise ;
return ;
}
let maybePromise = invokeableTransport . connect ( {
onMessage : onMessage ? ? ( ( ) => { } ) ,
onDisconnection ( ) {
isConnected = ! 1 ;
}
} ) ;
maybePromise && ( connectingPromise = maybePromise , await connectingPromise , connectingPromise = void 0 ) , isConnected = ! 0 ;
} } : { } ,
... invokeableTransport . disconnect ? { async disconnect ( ) {
isConnected && ( connectingPromise && await connectingPromise , isConnected = ! 1 , await invokeableTransport . disconnect ( ) ) ;
} } : { } ,
async send ( data ) {
if ( invokeableTransport . send ) {
if ( ! isConnected ) if ( connectingPromise ) await connectingPromise ;
else throw Error ( "send was called before connect" ) ;
await invokeableTransport . send ( data ) ;
}
} ,
async invoke ( name , data ) {
if ( ! isConnected ) if ( connectingPromise ) await connectingPromise ;
else throw Error ( "invoke was called before connect" ) ;
return invokeableTransport . invoke ( name , data ) ;
}
} ;
} , createWebSocketModuleRunnerTransport = ( options ) => {
let pingInterval = options . pingInterval ? ? 3e4 , ws , pingIntervalId ;
return {
async connect ( { onMessage , onDisconnection } ) {
let socket = options . createConnection ( ) ;
socket . addEventListener ( "message" , async ( { data } ) => {
onMessage ( JSON . parse ( data ) ) ;
} ) ;
let isOpened = socket . readyState === socket . OPEN ;
isOpened || await new Promise ( ( resolve$1 , reject ) => {
socket . addEventListener ( "open" , ( ) => {
isOpened = ! 0 , resolve$1 ( ) ;
} , { once : ! 0 } ) , socket . addEventListener ( "close" , async ( ) => {
if ( ! isOpened ) {
reject ( /* @__PURE__ */ Error ( "WebSocket closed without opened." ) ) ;
return ;
}
onMessage ( {
type : "custom" ,
event : "vite:ws:disconnect" ,
data : { webSocket : socket }
} ) , onDisconnection ( ) ;
} ) ;
} ) , onMessage ( {
type : "custom" ,
event : "vite:ws:connect" ,
data : { webSocket : socket }
} ) , ws = socket , pingIntervalId = setInterval ( ( ) => {
socket . readyState === socket . OPEN && socket . send ( JSON . stringify ( { type : "ping" } ) ) ;
} , pingInterval ) ;
} ,
disconnect ( ) {
clearInterval ( pingIntervalId ) , ws ? . close ( ) ;
} ,
send ( data ) {
ws . send ( JSON . stringify ( data ) ) ;
}
} ;
2025-11-13 02:45:18 +00:00
} ;
function createIsBuiltin ( builtins ) {
let plainBuiltinsSet = new Set ( builtins . filter ( ( builtin ) => typeof builtin == "string" ) ) , regexBuiltins = builtins . filter ( ( builtin ) => typeof builtin != "string" ) ;
return ( id ) => plainBuiltinsSet . has ( id ) || regexBuiltins . some ( ( regexp ) => regexp . test ( id ) ) ;
}
const ssrModuleExportsKey = "__vite_ssr_exports__" , ssrImportKey = "__vite_ssr_import__" , ssrDynamicImportKey = "__vite_ssr_dynamic_import__" , ssrExportAllKey = "__vite_ssr_exportAll__" , ssrExportNameKey = "__vite_ssr_exportName__" , ssrImportMetaKey = "__vite_ssr_import_meta__" , noop = ( ) => { } , silentConsole = {
2025-11-05 02:05:43 +00:00
debug : noop ,
error : noop
} , hmrLogger = {
debug : ( ... msg ) => console . log ( "[vite]" , ... msg ) ,
error : ( error ) => console . log ( "[vite]" , error )
} ;
function createHMRHandler ( handler ) {
let queue = new Queue ( ) ;
return ( payload ) => queue . enqueue ( ( ) => handler ( payload ) ) ;
}
var Queue = class {
queue = [ ] ;
pending = ! 1 ;
enqueue ( promise ) {
return new Promise ( ( resolve$1 , reject ) => {
this . queue . push ( {
promise ,
resolve : resolve$1 ,
reject
} ) , this . dequeue ( ) ;
} ) ;
}
dequeue ( ) {
if ( this . pending ) return ! 1 ;
let item = this . queue . shift ( ) ;
return item ? ( this . pending = ! 0 , item . promise ( ) . then ( item . resolve ) . catch ( item . reject ) . finally ( ( ) => {
this . pending = ! 1 , this . dequeue ( ) ;
} ) , ! 0 ) : ! 1 ;
}
} ;
function createHMRHandlerForRunner ( runner ) {
return createHMRHandler ( async ( payload ) => {
let hmrClient = runner . hmrClient ;
if ( ! ( ! hmrClient || runner . isClosed ( ) ) ) switch ( payload . type ) {
case "connected" :
hmrClient . logger . debug ( "connected." ) ;
break ;
case "update" :
await hmrClient . notifyListeners ( "vite:beforeUpdate" , payload ) , await Promise . all ( payload . updates . map ( async ( update ) => {
if ( update . type === "js-update" ) return update . acceptedPath = unwrapId ( update . acceptedPath ) , update . path = unwrapId ( update . path ) , hmrClient . queueUpdate ( update ) ;
hmrClient . logger . error ( "css hmr is not supported in runner mode." ) ;
} ) ) , await hmrClient . notifyListeners ( "vite:afterUpdate" , payload ) ;
break ;
case "custom" :
await hmrClient . notifyListeners ( payload . event , payload . data ) ;
break ;
case "full-reload" : {
let { triggeredBy } = payload , clearEntrypointUrls = triggeredBy ? getModulesEntrypoints ( runner , getModulesByFile ( runner , slash ( triggeredBy ) ) ) : findAllEntrypoints ( runner ) ;
if ( ! clearEntrypointUrls . size ) break ;
hmrClient . logger . debug ( "program reload" ) , await hmrClient . notifyListeners ( "vite:beforeFullReload" , payload ) , runner . evaluatedModules . clear ( ) ;
for ( let url of clearEntrypointUrls ) try {
await runner . import ( url ) ;
} catch ( err ) {
err . code !== "ERR_OUTDATED_OPTIMIZED_DEP" && hmrClient . logger . error ( ` An error happened during full reload \n ${ err . message } \n ${ err . stack } ` ) ;
}
break ;
}
case "prune" :
await hmrClient . notifyListeners ( "vite:beforePrune" , payload ) , await hmrClient . prunePaths ( payload . paths ) ;
break ;
case "error" : {
await hmrClient . notifyListeners ( "vite:error" , payload ) ;
let err = payload . err ;
hmrClient . logger . error ( ` Internal Server Error \n ${ err . message } \n ${ err . stack } ` ) ;
break ;
}
case "ping" : break ;
default : return payload ;
}
} ) ;
}
function getModulesByFile ( runner , file ) {
let nodes = runner . evaluatedModules . getModulesByFile ( file ) ;
return nodes ? [ ... nodes ] . map ( ( node ) => node . id ) : [ ] ;
}
function getModulesEntrypoints ( runner , modules , visited = /* @__PURE__ */ new Set ( ) , entrypoints = /* @__PURE__ */ new Set ( ) ) {
for ( let moduleId of modules ) {
if ( visited . has ( moduleId ) ) continue ;
visited . add ( moduleId ) ;
let module = runner . evaluatedModules . getModuleById ( moduleId ) ;
if ( module ) {
if ( ! module . importers . size ) {
entrypoints . add ( module . url ) ;
continue ;
}
for ( let importer of module . importers ) getModulesEntrypoints ( runner , [ importer ] , visited , entrypoints ) ;
}
}
return entrypoints ;
}
function findAllEntrypoints ( runner , entrypoints = /* @__PURE__ */ new Set ( ) ) {
for ( let mod of runner . evaluatedModules . idToModuleMap . values ( ) ) mod . importers . size || entrypoints . add ( mod . url ) ;
return entrypoints ;
}
const sourceMapCache = { } , fileContentsCache = { } , evaluatedModulesCache = /* @__PURE__ */ new Set ( ) , retrieveFileHandlers = /* @__PURE__ */ new Set ( ) , retrieveSourceMapHandlers = /* @__PURE__ */ new Set ( ) , createExecHandlers = ( handlers ) => ( ( ... args ) => {
for ( let handler of handlers ) {
let result = handler ( ... args ) ;
if ( result ) return result ;
}
return null ;
} ) , retrieveFileFromHandlers = createExecHandlers ( retrieveFileHandlers ) , retrieveSourceMapFromHandlers = createExecHandlers ( retrieveSourceMapHandlers ) ;
let overridden = ! 1 ;
const originalPrepare = Error . prepareStackTrace ;
function resetInterceptor ( runner , options ) {
evaluatedModulesCache . delete ( runner . evaluatedModules ) , options . retrieveFile && retrieveFileHandlers . delete ( options . retrieveFile ) , options . retrieveSourceMap && retrieveSourceMapHandlers . delete ( options . retrieveSourceMap ) , evaluatedModulesCache . size === 0 && ( Error . prepareStackTrace = originalPrepare , overridden = ! 1 ) ;
}
function interceptStackTrace ( runner , options = { } ) {
return overridden || = ( Error . prepareStackTrace = prepareStackTrace , ! 0 ) , evaluatedModulesCache . add ( runner . evaluatedModules ) , options . retrieveFile && retrieveFileHandlers . add ( options . retrieveFile ) , options . retrieveSourceMap && retrieveSourceMapHandlers . add ( options . retrieveSourceMap ) , ( ) => resetInterceptor ( runner , options ) ;
}
function supportRelativeURL ( file , url ) {
if ( ! file ) return url ;
let dir = posixDirname ( slash ( file ) ) , match = /^\w+:\/\/[^/]*/ . exec ( dir ) , protocol = match ? match [ 0 ] : "" , startPath = dir . slice ( protocol . length ) ;
return protocol && /^\/\w:/ . test ( startPath ) ? ( protocol += "/" , protocol + slash ( posixResolve ( startPath , url ) ) ) : protocol + posixResolve ( startPath , url ) ;
}
function getRunnerSourceMap ( position ) {
for ( let moduleGraph of evaluatedModulesCache ) {
let sourceMap = moduleGraph . getModuleSourceMapById ( position . source ) ;
if ( sourceMap ) return {
url : position . source ,
map : sourceMap ,
vite : ! 0
} ;
}
return null ;
}
function retrieveFile ( path ) {
if ( path in fileContentsCache ) return fileContentsCache [ path ] ;
let content = retrieveFileFromHandlers ( path ) ;
return typeof content == "string" ? ( fileContentsCache [ path ] = content , content ) : null ;
}
function retrieveSourceMapURL ( source ) {
let fileData = retrieveFile ( source ) ;
if ( ! fileData ) return null ;
let re = /\/\/[@#]\s*sourceMappingURL=([^\s'"]+)\s*$|\/\*[@#]\s*sourceMappingURL=[^\s*'"]+\s*\*\/\s*$/gm , lastMatch , match ;
for ( ; match = re . exec ( fileData ) ; ) lastMatch = match ;
return lastMatch ? lastMatch [ 1 ] : null ;
}
const reSourceMap = /^data:application\/json[^,]+base64,/ ;
function retrieveSourceMap ( source ) {
let urlAndMap = retrieveSourceMapFromHandlers ( source ) ;
if ( urlAndMap ) return urlAndMap ;
let sourceMappingURL = retrieveSourceMapURL ( source ) ;
if ( ! sourceMappingURL ) return null ;
let sourceMapData ;
if ( reSourceMap . test ( sourceMappingURL ) ) {
let rawData = sourceMappingURL . slice ( sourceMappingURL . indexOf ( "," ) + 1 ) ;
sourceMapData = Buffer . from ( rawData , "base64" ) . toString ( ) , sourceMappingURL = source ;
} else sourceMappingURL = supportRelativeURL ( source , sourceMappingURL ) , sourceMapData = retrieveFile ( sourceMappingURL ) ;
return sourceMapData ? {
url : sourceMappingURL ,
map : sourceMapData
} : null ;
}
function mapSourcePosition ( position ) {
if ( ! position . source ) return position ;
let sourceMap = getRunnerSourceMap ( position ) ;
if ( sourceMap || = sourceMapCache [ position . source ] , ! sourceMap ) {
let urlAndMap = retrieveSourceMap ( position . source ) ;
if ( urlAndMap && urlAndMap . map ) {
let url = urlAndMap . url ;
sourceMap = sourceMapCache [ position . source ] = {
url ,
map : new DecodedMap ( typeof urlAndMap . map == "string" ? JSON . parse ( urlAndMap . map ) : urlAndMap . map , url )
} ;
let contents = sourceMap . map ? . map . sourcesContent ;
sourceMap . map && contents && sourceMap . map . resolvedSources . forEach ( ( source , i ) => {
let content = contents [ i ] ;
if ( content && source && url ) {
let contentUrl = supportRelativeURL ( url , source ) ;
fileContentsCache [ contentUrl ] = content ;
}
} ) ;
} else sourceMap = sourceMapCache [ position . source ] = {
url : null ,
map : null
} ;
}
if ( sourceMap . map && sourceMap . url ) {
let originalPosition = getOriginalPosition ( sourceMap . map , position ) ;
if ( originalPosition && originalPosition . source != null ) return originalPosition . source = supportRelativeURL ( sourceMap . url , originalPosition . source ) , sourceMap . vite && ( originalPosition . _vite = ! 0 ) , originalPosition ;
}
return position ;
}
function mapEvalOrigin ( origin ) {
let match = /^eval at ([^(]+) \((.+):(\d+):(\d+)\)$/ . exec ( origin ) ;
if ( match ) {
let position = mapSourcePosition ( {
name : null ,
source : match [ 2 ] ,
line : + match [ 3 ] ,
column : match [ 4 ] - 1
} ) ;
return ` eval at ${ match [ 1 ] } ( ${ position . source } : ${ position . line } : ${ position . column + 1 } ) ` ;
}
return match = /^eval at ([^(]+) \((.+)\)$/ . exec ( origin ) , match ? ` eval at ${ match [ 1 ] } ( ${ mapEvalOrigin ( match [ 2 ] ) } ) ` : origin ;
}
function CallSiteToString ( ) {
let fileName , fileLocation = "" ;
if ( this . isNative ( ) ) fileLocation = "native" ;
else {
fileName = this . getScriptNameOrSourceURL ( ) , ! fileName && this . isEval ( ) && ( fileLocation = this . getEvalOrigin ( ) , fileLocation += ", " ) , fileName ? fileLocation += fileName : fileLocation += "<anonymous>" ;
let lineNumber = this . getLineNumber ( ) ;
if ( lineNumber != null ) {
fileLocation += ` : ${ lineNumber } ` ;
let columnNumber = this . getColumnNumber ( ) ;
columnNumber && ( fileLocation += ` : ${ columnNumber } ` ) ;
}
}
let line = "" , functionName = this . getFunctionName ( ) , addSuffix = ! 0 , isConstructor = this . isConstructor ( ) ;
if ( this . isToplevel ( ) || isConstructor ) isConstructor ? line += ` new ${ functionName || "<anonymous>" } ` : functionName ? line += functionName : ( line += fileLocation , addSuffix = ! 1 ) ;
else {
let typeName = this . getTypeName ( ) ;
typeName === "[object Object]" && ( typeName = "null" ) ;
let methodName = this . getMethodName ( ) ;
functionName ? ( typeName && functionName . indexOf ( typeName ) !== 0 && ( line += ` ${ typeName } . ` ) , line += functionName , methodName && functionName . indexOf ( ` . ${ methodName } ` ) !== functionName . length - methodName . length - 1 && ( line += ` [as ${ methodName } ] ` ) ) : line += ` ${ typeName } . ${ methodName || "<anonymous>" } ` ;
}
return addSuffix && ( line += ` ( ${ fileLocation } ) ` ) , line ;
}
function cloneCallSite ( frame ) {
let object = { } ;
return Object . getOwnPropertyNames ( Object . getPrototypeOf ( frame ) ) . forEach ( ( name ) => {
let key = name ;
object [ key ] = /^(?:is|get)/ . test ( name ) ? function ( ) {
return frame [ key ] . call ( frame ) ;
} : frame [ key ] ;
} ) , object . toString = CallSiteToString , object ;
}
function wrapCallSite ( frame , state ) {
if ( state === void 0 && ( state = {
nextPosition : null ,
curPosition : null
} ) , frame . isNative ( ) ) return state . curPosition = null , frame ;
let source = frame . getFileName ( ) || frame . getScriptNameOrSourceURL ( ) ;
if ( source ) {
let line = frame . getLineNumber ( ) , column = frame . getColumnNumber ( ) - 1 ;
line === 1 && column > 62 && ! frame . isEval ( ) && ( column -= 62 ) ;
let position = mapSourcePosition ( {
name : null ,
source ,
line ,
column
} ) ;
state . curPosition = position , frame = cloneCallSite ( frame ) ;
let originalFunctionName = frame . getFunctionName ;
return frame . getFunctionName = function ( ) {
let name = ( ( ) => state . nextPosition == null ? originalFunctionName ( ) : state . nextPosition . name || originalFunctionName ( ) ) ( ) ;
return name === "eval" && "_vite" in position ? null : name ;
} , frame . getFileName = function ( ) {
return position . source ? ? null ;
} , frame . getLineNumber = function ( ) {
return position . line ;
} , frame . getColumnNumber = function ( ) {
return position . column + 1 ;
} , frame . getScriptNameOrSourceURL = function ( ) {
return position . source ;
} , frame ;
}
let origin = frame . isEval ( ) && frame . getEvalOrigin ( ) ;
return origin ? ( origin = mapEvalOrigin ( origin ) , frame = cloneCallSite ( frame ) , frame . getEvalOrigin = function ( ) {
return origin || void 0 ;
} , frame ) : frame ;
}
function prepareStackTrace ( error , stack ) {
let errorString = ` ${ error . name || "Error" } : ${ error . message || "" } ` , state = {
nextPosition : null ,
curPosition : null
} , processedStack = [ ] ;
for ( let i = stack . length - 1 ; i >= 0 ; i -- ) processedStack . push ( ` \n at ${ wrapCallSite ( stack [ i ] , state ) } ` ) , state . nextPosition = state . curPosition ;
return state . curPosition = state . nextPosition = null , errorString + processedStack . reverse ( ) . join ( "" ) ;
}
function enableSourceMapSupport ( runner ) {
if ( runner . options . sourcemapInterceptor === "node" ) {
if ( typeof process > "u" ) throw TypeError ( "Cannot use \"sourcemapInterceptor: 'node'\" because global \"process\" variable is not available." ) ;
if ( typeof process . setSourceMapsEnabled != "function" ) throw TypeError ( "Cannot use \"sourcemapInterceptor: 'node'\" because \"process.setSourceMapsEnabled\" function is not available. Please use Node >= 16.6.0." ) ;
let isEnabledAlready = process . sourceMapsEnabled ? ? ! 1 ;
return process . setSourceMapsEnabled ( ! 0 ) , ( ) => ! isEnabledAlready && process . setSourceMapsEnabled ( ! 1 ) ;
}
return interceptStackTrace ( runner , typeof runner . options . sourcemapInterceptor == "object" ? runner . options . sourcemapInterceptor : void 0 ) ;
}
var ESModulesEvaluator = class {
startOffset = getAsyncFunctionDeclarationPaddingLineCount ( ) ;
async runInlinedModule ( context , code ) {
await new AsyncFunction ( ssrModuleExportsKey , ssrImportMetaKey , ssrImportKey , ssrDynamicImportKey , ssrExportAllKey , ssrExportNameKey , "\"use strict\";" + code ) ( context [ ssrModuleExportsKey ] , context [ ssrImportMetaKey ] , context [ ssrImportKey ] , context [ ssrDynamicImportKey ] , context [ ssrExportAllKey ] , context [ ssrExportNameKey ] ) , Object . seal ( context [ ssrModuleExportsKey ] ) ;
}
runExternalModule ( filepath ) {
return import ( filepath ) ;
}
} ;
const customizationHookNamespace = "vite-module-runner:import-meta-resolve/v1/" , customizationHooksModule = `
export async function resolve ( specifier , context , nextResolve ) {
if ( specifier . startsWith ( $ { JSON . stringify ( customizationHookNamespace ) } ) ) {
const data = specifier . slice ( $ { JSON . stringify ( customizationHookNamespace ) } . length )
const [ parsedSpecifier , parsedImporter ] = JSON . parse ( data )
specifier = parsedSpecifier
context . parentURL = parsedImporter
}
return nextResolve ( specifier , context )
}
` ;
2025-11-13 02:45:18 +00:00
function customizationHookResolve ( specifier , context , nextResolve ) {
if ( specifier . startsWith ( customizationHookNamespace ) ) {
let data = specifier . slice ( 42 ) , [ parsedSpecifier , parsedImporter ] = JSON . parse ( data ) ;
specifier = parsedSpecifier , context . parentURL = parsedImporter ;
}
return nextResolve ( specifier , context ) ;
}
2025-11-05 02:05:43 +00:00
async function createImportMetaResolver ( ) {
let module ;
try {
module = ( await import ( "node:module" ) ) . Module ;
} catch {
return ;
}
2025-11-13 02:45:18 +00:00
if ( module ) {
if ( module . registerHooks ) return module . registerHooks ( { resolve : customizationHookResolve } ) , importMetaResolveWithCustomHook ;
if ( module . register ) {
try {
let hookModuleContent = ` data:text/javascript, ${ encodeURI ( customizationHooksModule ) } ` ;
module . register ( hookModuleContent ) ;
} catch ( e ) {
if ( "code" in e && e . code === "ERR_NETWORK_IMPORT_DISALLOWED" ) return ;
throw e ;
}
return importMetaResolveWithCustomHook ;
2025-11-05 02:05:43 +00:00
}
}
}
2025-11-13 02:45:18 +00:00
function importMetaResolveWithCustomHook ( specifier , importer ) {
return import . meta . resolve ( ` ${ customizationHookNamespace } ${ JSON . stringify ( [ specifier , importer ] ) } ` ) ;
}
` ${ customizationHookNamespace } ` ;
2025-11-05 02:05:43 +00:00
const envProxy = new Proxy ( { } , { get ( _ , p ) {
throw Error ( ` [module runner] Dynamic access of "import.meta.env" is not supported. Please, use "import.meta.env. ${ String ( p ) } " instead. ` ) ;
} } ) ;
function createDefaultImportMeta ( modulePath ) {
let href = posixPathToFileHref ( modulePath ) , filename = modulePath , dirname$1 = posixDirname ( modulePath ) ;
return {
filename : isWindows ? toWindowsPath ( filename ) : filename ,
dirname : isWindows ? toWindowsPath ( dirname$1 ) : dirname$1 ,
url : href ,
env : envProxy ,
resolve ( _id , _parent ) {
throw Error ( "[module runner] \"import.meta.resolve\" is not supported." ) ;
} ,
glob ( ) {
throw Error ( "[module runner] \"import.meta.glob\" is statically replaced during file transformation. Make sure to reference it by the full name." ) ;
}
} ;
}
let importMetaResolverCache ;
async function createNodeImportMeta ( modulePath ) {
let defaultMeta = createDefaultImportMeta ( modulePath ) , href = defaultMeta . url ;
importMetaResolverCache ? ? = createImportMetaResolver ( ) ;
let importMetaResolver = await importMetaResolverCache ;
return {
... defaultMeta ,
main : ! 1 ,
resolve ( id , parent ) {
return ( importMetaResolver ? ? defaultMeta . resolve ) ( id , parent ? ? href ) ;
}
} ;
}
var ModuleRunner = class {
evaluatedModules ;
hmrClient ;
transport ;
resetSourceMapSupport ;
concurrentModuleNodePromises = /* @__PURE__ */ new Map ( ) ;
2025-11-13 02:45:18 +00:00
isBuiltin ;
builtinsPromise ;
2025-11-05 02:05:43 +00:00
closed = ! 1 ;
constructor ( options , evaluator = new ESModulesEvaluator ( ) , debug ) {
if ( this . options = options , this . evaluator = evaluator , this . debug = debug , this . evaluatedModules = options . evaluatedModules ? ? new EvaluatedModules ( ) , this . transport = normalizeModuleRunnerTransport ( options . transport ) , options . hmr !== ! 1 ) {
let optionsHmr = options . hmr ? ? ! 0 ;
if ( this . hmrClient = new HMRClient ( optionsHmr === ! 0 || optionsHmr . logger === void 0 ? hmrLogger : optionsHmr . logger === ! 1 ? silentConsole : optionsHmr . logger , this . transport , ( { acceptedPath } ) => this . import ( acceptedPath ) ) , ! this . transport . connect ) throw Error ( "HMR is not supported by this runner transport, but `hmr` option was set to true" ) ;
this . transport . connect ( createHMRHandlerForRunner ( this ) ) ;
} else this . transport . connect ? . ( ) ;
options . sourcemapInterceptor !== ! 1 && ( this . resetSourceMapSupport = enableSourceMapSupport ( this ) ) ;
}
async import ( url ) {
let fetchedModule = await this . cachedModule ( url ) ;
return await this . cachedRequest ( url , fetchedModule ) ;
}
clearCache ( ) {
this . evaluatedModules . clear ( ) , this . hmrClient ? . clear ( ) ;
}
async close ( ) {
this . resetSourceMapSupport ? . ( ) , this . clearCache ( ) , this . hmrClient = void 0 , this . closed = ! 0 , await this . transport . disconnect ? . ( ) ;
}
isClosed ( ) {
return this . closed ;
}
processImport ( exports , fetchResult , metadata ) {
if ( ! ( "externalize" in fetchResult ) ) return exports ;
let { url , type } = fetchResult ;
return type !== "module" && type !== "commonjs" || analyzeImportedModDifference ( exports , url , type , metadata ) , exports ;
}
isCircularModule ( mod ) {
for ( let importedFile of mod . imports ) if ( mod . importers . has ( importedFile ) ) return ! 0 ;
return ! 1 ;
}
isCircularImport ( importers , moduleUrl , visited = /* @__PURE__ */ new Set ( ) ) {
for ( let importer of importers ) {
if ( visited . has ( importer ) ) continue ;
if ( visited . add ( importer ) , importer === moduleUrl ) return ! 0 ;
let mod = this . evaluatedModules . getModuleById ( importer ) ;
if ( mod && mod . importers . size && this . isCircularImport ( mod . importers , moduleUrl , visited ) ) return ! 0 ;
}
return ! 1 ;
}
async cachedRequest ( url , mod , callstack = [ ] , metadata ) {
let meta = mod . meta , moduleId = meta . id , { importers } = mod , importee = callstack [ callstack . length - 1 ] ;
if ( importee && importers . add ( importee ) , ( callstack . includes ( moduleId ) || this . isCircularModule ( mod ) || this . isCircularImport ( importers , moduleId ) ) && mod . exports ) return this . processImport ( mod . exports , meta , metadata ) ;
let debugTimer ;
this . debug && ( debugTimer = setTimeout ( ( ) => {
this . debug ( ` [module runner] module ${ moduleId } takes over 2s to load. \n ${ ( ( ) => ` stack: \n ${ [ ... callstack , moduleId ] . reverse ( ) . map ( ( p ) => ` - ${ p } ` ) . join ( "\n" ) } ` ) ( ) } ` ) ;
} , 2e3 ) ) ;
try {
if ( mod . promise ) return this . processImport ( await mod . promise , meta , metadata ) ;
let promise = this . directRequest ( url , mod , callstack ) ;
return mod . promise = promise , mod . evaluated = ! 1 , this . processImport ( await promise , meta , metadata ) ;
} finally {
mod . evaluated = ! 0 , debugTimer && clearTimeout ( debugTimer ) ;
}
}
async cachedModule ( url , importer ) {
let cached = this . concurrentModuleNodePromises . get ( url ) ;
if ( cached ) this . debug ? . ( "[module runner] using cached module info for" , url ) ;
else {
let cachedModule = this . evaluatedModules . getModuleByUrl ( url ) ;
cached = this . getModuleInformation ( url , importer , cachedModule ) . finally ( ( ) => {
this . concurrentModuleNodePromises . delete ( url ) ;
} ) , this . concurrentModuleNodePromises . set ( url , cached ) ;
}
return cached ;
}
2025-11-13 02:45:18 +00:00
ensureBuiltins ( ) {
if ( ! this . isBuiltin ) return this . builtinsPromise ? ? = ( async ( ) => {
try {
this . debug ? . ( "[module runner] fetching builtins from server" ) ;
let builtins = ( await this . transport . invoke ( "getBuiltins" , [ ] ) ) . map ( ( builtin ) => typeof builtin == "object" && builtin && "type" in builtin ? builtin . type === "string" ? builtin . value : new RegExp ( builtin . source , builtin . flags ) : builtin ) ;
this . isBuiltin = createIsBuiltin ( builtins ) , this . debug ? . ( "[module runner] builtins loaded:" , builtins ) ;
} finally {
this . builtinsPromise = void 0 ;
}
} ) ( ) , this . builtinsPromise ;
}
2025-11-05 02:05:43 +00:00
async getModuleInformation ( url , importer , cachedModule ) {
if ( this . closed ) throw Error ( "Vite module runner has been closed." ) ;
2025-11-13 02:45:18 +00:00
await this . ensureBuiltins ( ) , this . debug ? . ( "[module runner] fetching" , url ) ;
let isCached = ! ! ( typeof cachedModule == "object" && cachedModule . meta ) , fetchedModule = url . startsWith ( "data:" ) || this . isBuiltin ? . ( url ) ? {
2025-11-05 02:05:43 +00:00
externalize : url ,
type : "builtin"
} : await this . transport . invoke ( "fetchModule" , [
url ,
importer ,
{
cached : isCached ,
startOffset : this . evaluator . startOffset
}
] ) ;
if ( "cache" in fetchedModule ) {
if ( ! cachedModule || ! cachedModule . meta ) throw Error ( ` Module " ${ url } " was mistakenly invalidated during fetch phase. ` ) ;
return cachedModule ;
}
let moduleId = "externalize" in fetchedModule ? fetchedModule . externalize : fetchedModule . id , moduleUrl = "url" in fetchedModule ? fetchedModule . url : url , module = this . evaluatedModules . ensureModule ( moduleId , moduleUrl ) ;
return "invalidate" in fetchedModule && fetchedModule . invalidate && this . evaluatedModules . invalidateModule ( module ) , fetchedModule . url = moduleUrl , fetchedModule . id = moduleId , module . meta = fetchedModule , module ;
}
async directRequest ( url , mod , _callstack ) {
let fetchResult = mod . meta , moduleId = fetchResult . id , callstack = [ ... _callstack , moduleId ] , request = async ( dep , metadata ) => {
let importer = "file" in fetchResult && fetchResult . file || moduleId , depMod = await this . cachedModule ( dep , importer ) ;
return depMod . importers . add ( moduleId ) , mod . imports . add ( depMod . id ) , this . cachedRequest ( dep , depMod , callstack , metadata ) ;
} , dynamicRequest = async ( dep ) => ( dep = String ( dep ) , dep [ 0 ] === "." && ( dep = posixResolve ( posixDirname ( url ) , dep ) ) , request ( dep , { isDynamicImport : ! 0 } ) ) ;
if ( "externalize" in fetchResult ) {
let { externalize } = fetchResult ;
this . debug ? . ( "[module runner] externalizing" , externalize ) ;
let exports$1 = await this . evaluator . runExternalModule ( externalize ) ;
return mod . exports = exports$1 , exports$1 ;
}
let { code , file } = fetchResult ;
if ( code == null ) {
let importer = callstack [ callstack . length - 2 ] ;
throw Error ( ` [module runner] Failed to load " ${ url } " ${ importer ? ` imported from ${ importer } ` : "" } ` ) ;
}
let createImportMeta = this . options . createImportMeta ? ? createDefaultImportMeta , modulePath = cleanUrl ( file || moduleId ) , href = posixPathToFileHref ( modulePath ) , meta = await createImportMeta ( modulePath ) , exports = Object . create ( null ) ;
Object . defineProperty ( exports , Symbol . toStringTag , {
value : "Module" ,
enumerable : ! 1 ,
configurable : ! 1
} ) , mod . exports = exports ;
let hotContext ;
this . hmrClient && Object . defineProperty ( meta , "hot" , {
enumerable : ! 0 ,
get : ( ) => {
if ( ! this . hmrClient ) throw Error ( "[module runner] HMR client was closed." ) ;
return this . debug ? . ( "[module runner] creating hmr context for" , mod . url ) , hotContext || = new HMRContext ( this . hmrClient , mod . url ) , hotContext ;
} ,
set : ( value ) => {
hotContext = value ;
}
} ) ;
let context = {
[ ssrImportKey ] : request ,
[ ssrDynamicImportKey ] : dynamicRequest ,
[ ssrModuleExportsKey ] : exports ,
[ ssrExportAllKey ] : ( obj ) => exportAll ( exports , obj ) ,
[ ssrExportNameKey ] : ( name , getter ) => Object . defineProperty ( exports , name , {
enumerable : ! 0 ,
configurable : ! 0 ,
get : getter
} ) ,
[ ssrImportMetaKey ] : meta
} ;
return this . debug ? . ( "[module runner] executing" , href ) , await this . evaluator . runInlinedModule ( context , code , mod ) , exports ;
}
} ;
function exportAll ( exports , sourceModule ) {
if ( exports !== sourceModule && ! ( isPrimitive ( sourceModule ) || Array . isArray ( sourceModule ) || sourceModule instanceof Promise ) ) {
for ( let key in sourceModule ) if ( key !== "default" && key !== "__esModule" && ! ( key in exports ) ) try {
Object . defineProperty ( exports , key , {
enumerable : ! 0 ,
configurable : ! 0 ,
get : ( ) => sourceModule [ key ]
} ) ;
} catch { }
}
}
export { ESModulesEvaluator , EvaluatedModules , ModuleRunner , createDefaultImportMeta , createNodeImportMeta , createWebSocketModuleRunnerTransport , normalizeModuleId , ssrDynamicImportKey , ssrExportAllKey , ssrExportNameKey , ssrImportKey , ssrImportMetaKey , ssrModuleExportsKey } ;