import path from "node:path"; import { existsSync } from "node:fs"; import { fileURLToPath } from "node:url"; import { defineConfig } from "rolldown"; const here = path.dirname(fileURLToPath(import.meta.url)); const repoRoot = path.resolve(here, "../../../../.."); const fromHere = (p) => path.resolve(here, p); const outputFile = path.resolve( here, "../../../../..", "src", "canvas-host", "a2ui", "a2ui.bundle.js", ); const a2uiLitDist = path.resolve(repoRoot, "vendor/a2ui/renderers/lit/dist/src"); const a2uiThemeContext = path.resolve(a2uiLitDist, "0.8/ui/context/theme.js"); const a2uiNodeModules = path.resolve(repoRoot, "ui/node_modules"); const rootNodeModules = path.resolve(repoRoot, "node_modules"); const resolveA2uiDep = (pkg, rel = "") => { const uiPath = path.resolve(a2uiNodeModules, pkg, rel); if (existsSync(uiPath)) { return uiPath; } return path.resolve(rootNodeModules, pkg, rel); }; export default defineConfig({ input: fromHere("bootstrap.js"), experimental: { attachDebugInfo: "none", }, treeshake: false, resolve: { alias: { "@a2ui/lit": path.resolve(a2uiLitDist, "index.js"), "@a2ui/lit/ui": path.resolve(a2uiLitDist, "0.8/ui/ui.js"), "@openclaw/a2ui-theme-context": a2uiThemeContext, "@lit/context": resolveA2uiDep("@lit/context", "index.js"), "@lit/context/": resolveA2uiDep("@lit/context"), "@lit-labs/signals": resolveA2uiDep("@lit-labs/signals", "index.js"), "@lit-labs/signals/": resolveA2uiDep("@lit-labs/signals"), lit: resolveA2uiDep("lit", "index.js"), "lit/": resolveA2uiDep("lit"), "signal-utils/": resolveA2uiDep("signal-utils"), }, }, output: { file: outputFile, format: "esm", codeSplitting: false, sourcemap: false, }, });