2024-01-05 12:14:38 +00:00
export { parseAst , parseAstAsync } from 'rollup/parseAst' ;
2026-02-11 16:20:26 +00:00
import { i as isInNodeModules , a as arraify } from './chunks/dep-BK3b2jBa.js' ;
export { b as build , g as buildErrorMessage , k as createFilter , v as createLogger , c as createServer , d as defineConfig , h as fetchModule , f as formatPostcssSourceMap , y as isFileLoadingAllowed , x as isFileServingAllowed , l as loadConfigFromFile , z as loadEnv , j as mergeAlias , m as mergeConfig , n as normalizePath , o as optimizeDeps , e as preprocessCSS , p as preview , r as resolveConfig , A as resolveEnvPrefix , q as rollupVersion , w as searchForWorkspaceRoot , u as send , s as sortUserPlugins , t as transformWithEsbuild } from './chunks/dep-BK3b2jBa.js' ;
2024-01-05 12:14:38 +00:00
export { VERSION as version } from './constants.js' ;
export { version as esbuildVersion } from 'esbuild' ;
2026-02-11 16:20:26 +00:00
import { existsSync , readFileSync } from 'node:fs' ;
import { ViteRuntime , ESModulesRunner } from 'vite/runtime' ;
2024-01-05 12:14:38 +00:00
import 'node:fs/promises' ;
import 'node:path' ;
import 'node:url' ;
import 'node:util' ;
import 'node:perf_hooks' ;
import 'node:module' ;
2026-02-11 16:20:26 +00:00
import 'node:crypto' ;
2024-01-05 12:14:38 +00:00
import 'tty' ;
import 'path' ;
import 'fs' ;
2026-02-11 16:20:26 +00:00
import 'node:events' ;
import 'node:stream' ;
import 'node:string_decoder' ;
import 'node:child_process' ;
2024-01-05 12:14:38 +00:00
import 'node:http' ;
import 'node:https' ;
import 'util' ;
import 'net' ;
2026-02-11 16:20:26 +00:00
import 'events' ;
2024-01-05 12:14:38 +00:00
import 'url' ;
import 'http' ;
import 'stream' ;
import 'os' ;
import 'child_process' ;
import 'node:os' ;
import 'node:dns' ;
import 'crypto' ;
import 'module' ;
import 'node:assert' ;
import 'node:v8' ;
2026-02-11 16:20:26 +00:00
import 'node:worker_threads' ;
2024-01-05 12:14:38 +00:00
import 'node:buffer' ;
import 'querystring' ;
import 'node:readline' ;
import 'zlib' ;
import 'buffer' ;
import 'https' ;
import 'tls' ;
2026-02-11 16:20:26 +00:00
import 'node:net' ;
import 'assert' ;
2024-01-05 12:14:38 +00:00
import 'node:zlib' ;
2026-02-11 16:20:26 +00:00
const CSS _LANGS _RE = (
// eslint-disable-next-line regexp/no-unused-capturing-group
/\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/
) ;
2024-01-05 12:14:38 +00:00
const isCSSRequest = ( request ) => CSS _LANGS _RE . test ( request ) ;
class SplitVendorChunkCache {
2026-02-11 16:20:26 +00:00
cache ;
constructor ( ) {
this . cache = /* @__PURE__ */ new Map ( ) ;
}
reset ( ) {
this . cache = /* @__PURE__ */ new Map ( ) ;
}
2024-01-05 12:14:38 +00:00
}
function splitVendorChunk ( options = { } ) {
2026-02-11 16:20:26 +00:00
const cache = options . cache ? ? new SplitVendorChunkCache ( ) ;
return ( id , { getModuleInfo } ) => {
if ( isInNodeModules ( id ) && ! isCSSRequest ( id ) && staticImportedByEntry ( id , getModuleInfo , cache . cache ) ) {
return "vendor" ;
}
} ;
2024-01-05 12:14:38 +00:00
}
function staticImportedByEntry ( id , getModuleInfo , cache , importStack = [ ] ) {
2026-02-11 16:20:26 +00:00
if ( cache . has ( id ) ) {
return cache . get ( id ) ;
}
if ( importStack . includes ( id ) ) {
cache . set ( id , false ) ;
return false ;
}
const mod = getModuleInfo ( id ) ;
if ( ! mod ) {
cache . set ( id , false ) ;
return false ;
}
if ( mod . isEntry ) {
cache . set ( id , true ) ;
return true ;
}
const someImporterIs = mod . importers . some (
( importer ) => staticImportedByEntry (
importer ,
getModuleInfo ,
cache ,
importStack . concat ( id )
)
) ;
cache . set ( id , someImporterIs ) ;
return someImporterIs ;
}
function splitVendorChunkPlugin ( ) {
const caches = [ ] ;
function createSplitVendorChunk ( output , config ) {
const cache = new SplitVendorChunkCache ( ) ;
caches . push ( cache ) ;
const build = config . build ? ? { } ;
const format = output ? . format ;
if ( ! build . ssr && ! build . lib && format !== "umd" && format !== "iife" ) {
return splitVendorChunk ( { cache } ) ;
}
}
return {
name : "vite:split-vendor-chunk" ,
config ( config ) {
let outputs = config ? . build ? . rollupOptions ? . output ;
if ( outputs ) {
outputs = arraify ( outputs ) ;
for ( const output of outputs ) {
const viteManualChunks = createSplitVendorChunk ( output , config ) ;
if ( viteManualChunks ) {
if ( output . manualChunks ) {
if ( typeof output . manualChunks === "function" ) {
const userManualChunks = output . manualChunks ;
output . manualChunks = ( id , api ) => {
return userManualChunks ( id , api ) ? ? viteManualChunks ( id , api ) ;
} ;
} else {
console . warn (
"(!) the `splitVendorChunk` plugin doesn't have any effect when using the object form of `build.rollupOptions.output.manualChunks`. Consider using the function form instead."
) ;
}
} else {
output . manualChunks = viteManualChunks ;
}
}
}
} else {
return {
build : {
rollupOptions : {
output : {
manualChunks : createSplitVendorChunk ( { } , config )
}
}
}
} ;
}
} ,
buildStart ( ) {
caches . forEach ( ( cache ) => cache . reset ( ) ) ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
} ;
}
class ServerHMRBroadcasterClient {
constructor ( hmrChannel ) {
this . hmrChannel = hmrChannel ;
}
send ( ... args ) {
let payload ;
if ( typeof args [ 0 ] === "string" ) {
payload = {
type : "custom" ,
event : args [ 0 ] ,
data : args [ 1 ]
} ;
} else {
payload = args [ 0 ] ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
if ( payload . type !== "custom" ) {
throw new Error (
"Cannot send non-custom events from the client to the server."
) ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
this . hmrChannel . send ( payload ) ;
}
}
class ServerHMRConnector {
handlers = [ ] ;
hmrChannel ;
hmrClient ;
connected = false ;
constructor ( server ) {
const hmrChannel = server . hot ? . channels . find (
( c ) => c . name === "ssr"
) ;
if ( ! hmrChannel ) {
throw new Error (
"Your version of Vite doesn't support HMR during SSR. Please, use Vite 5.1 or higher."
) ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
this . hmrClient = new ServerHMRBroadcasterClient ( hmrChannel ) ;
hmrChannel . api . outsideEmitter . on ( "send" , ( payload ) => {
this . handlers . forEach ( ( listener ) => listener ( payload ) ) ;
} ) ;
this . hmrChannel = hmrChannel ;
}
isReady ( ) {
return this . connected ;
}
send ( message ) {
const payload = JSON . parse ( message ) ;
this . hmrChannel . api . innerEmitter . emit (
payload . event ,
payload . data ,
this . hmrClient
) ;
}
onUpdate ( handler ) {
this . handlers . push ( handler ) ;
handler ( { type : "connected" } ) ;
this . connected = true ;
}
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
function createHMROptions ( server , options ) {
if ( server . config . server . hmr === false || options . hmr === false ) {
return false ;
}
const connection = new ServerHMRConnector ( server ) ;
return {
connection ,
logger : options . hmr ? . logger
} ;
}
const prepareStackTrace = {
retrieveFile ( id ) {
if ( existsSync ( id ) ) {
return readFileSync ( id , "utf-8" ) ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
}
} ;
function resolveSourceMapOptions ( options ) {
if ( options . sourcemapInterceptor != null ) {
if ( options . sourcemapInterceptor === "prepareStackTrace" ) {
return prepareStackTrace ;
}
if ( typeof options . sourcemapInterceptor === "object" ) {
return { ... prepareStackTrace , ... options . sourcemapInterceptor } ;
}
return options . sourcemapInterceptor ;
}
if ( typeof process !== "undefined" && "setSourceMapsEnabled" in process ) {
return "node" ;
}
return prepareStackTrace ;
}
async function createViteRuntime ( server , options = { } ) {
const hmr = createHMROptions ( server , options ) ;
return new ViteRuntime (
{
... options ,
root : server . config . root ,
fetchModule : server . ssrFetchModule ,
hmr ,
sourcemapInterceptor : resolveSourceMapOptions ( options )
} ,
options . runner || new ESModulesRunner ( )
) ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
export { ServerHMRConnector , createViteRuntime , isCSSRequest , splitVendorChunk , splitVendorChunkPlugin } ;