/**
* lol-html — Cloudflare's streaming HTML rewriter. Powers `HTMLRewriter` in
* bun and Workers.
*
* Unlike the other vendored deps this is NOT built into its own archive.
* A Rust `staticlib` bundles a private copy of `std`; linking that next to
* `libbun_rust.a` (also a `staticlib`) gives the linker two copies of every
* unmangled std symbol (`rust_begin_unwind`, `__rdl_alloc`, ...). Instead
* the `lol_html` crate (`vendor/lolhtml/Cargo.toml`) is a direct Rust path
* dependency of `bun_runtime`/`bun_bundler`
* (`lol_html = { path = "vendor/lolhtml" }` in the workspace `Cargo.toml`),
* so it compiles as an rlib inside the ONE workspace cargo build and lands
* in `libbun_rust.a` like any other crate. There is no C FFI layer; the
* upstream `c-api/` sub-crate is fetched along with the rest of the source
* but never built.
*
* This dep entry exists only to FETCH the source into `vendor/lolhtml/` —
* `emitRust` in `rust.ts` waits on its `.ref` stamp so cargo never sees a
* missing path dependency.
*/
import type { Dependency } from "../source.ts";
// oven-sh/lol-html is cloudflare/lol-html plus content-handler suspension
// (`HtmlRewriter::resume()`), maintained on the `bun` branch. The upstream
// base commit is recorded here so a rebase onto a new upstream tag is
// `git rebase --onto bun` in the fork.
const LOLHTML_UPSTREAM_BASE = "77127cd2b8545998756e8d64e36ee2313c4bb312"; // v2.7.2
const LOLHTML_COMMIT = "725ce499aa9b71e38b7a2d0a9fbb6d7294a4079e";
void LOLHTML_UPSTREAM_BASE;
export const lolhtml: Dependency = {
name: "lolhtml",
versionMacro: "LOLHTML",
source: () => ({
kind: "github-archive",
repo: "oven-sh/lol-html",
commit: LOLHTML_COMMIT,
}),
// No separate build — compiled as part of the workspace cargo build via
// `bun_runtime`/`bun_bundler`'s path dep on `vendor/lolhtml`.
build: () => ({ kind: "none" }),
provides: () => ({
// No standalone archive on the link line.
libs: [],
// No includes — lol_html has no C/C++ surface; it's a pure Rust crate
// cargo consumes straight out of `vendor/lolhtml/`.
includes: [],
}),
};