This module is to help rolldown crate could export types related bundler options easily.
rolldown crate could use pub use rolldown_common::bundler_options::*; to export all types, so we don’t need write
the same code in rolldown crate again.
Per-client input for selecting the factories an HMR push ships. The server never
sees execution state — the selection reads only shipped[C], the record of the
server’s own deliveries (module stable id → rebuild stamp of the copy this client
holds).
Dev-engine-wide rebuild-stamp table backing the versioned shipped map: the server numbers
every rebuild and blind-stamps latest[m] = rebuild_seq for each changed module, so
latest[m] > shipped[C][m] reads exactly “this client’s copy of m is stale”.
The retained export interface: symbols of resolved exports that survived
tree-shaking (either genuinely referenced or kept by interface policy —
entry exports, CJS bailout, eval).
A SymbolRef plus a one-bit “link-only” tag, packed into the same 8 bytes as a bare
SymbolRef (instead of the 12 bytes a enum { LinkOnly(SymbolRef), Normal(SymbolRef) }
would cost, since two payload-carrying variants force a separate, 4-byte-aligned discriminant).
The sealed record of inclusion-fixpoint liveness: symbols the inclusion machinery
decided are needed as bindings — refs referenced by included statements (in both
their original and canonical forms) plus interface-policy retentions (entry exports,
CJS bailout, eval-kept imports). Constants that get inlined are deliberately absent
(never inserted — their use sites are replaced with the value; constants that must
stay bindings, e.g. entry exports, are present), and a normal module’s namespace ref
is not authoritative here — the generate stage decides namespace retention
separately, on LinkingMetadata::namespace_included.
The mutable phase of UsedSymbolRefs, held only by the inclusion machinery
(the link-stage fixpoint, the chunk optimizer’s re-run of it, and the generate
stage’s unused-runtime-module sweep).
The server never decides a boundary-walk reload: it ships a superset patch and the
client’s own graph walk decides per tab whether to hot-apply, skip, or reload itself.
FullReload remains for invalidations only the server can see — e.g. a tsconfig
change re-transforms every governed module, which no patch can represent.
Tracks post-optimization operations applied to chunks during code splitting.
A chunk present in the map has been removed and merged into another chunk.