// A module author's supported UI source: it imports the public SDK and must typecheck cleanly // under the exact browser project a module uses (`browser-react.json`, `"types": []`). import { defineModuleUi, type ModuleUiHostContext, type ModuleUiPrincipal, } from "../../src/index.js"; function describePrincipal(principal: ModuleUiPrincipal): string { return principal.kind === "authenticated" ? principal.userId : "anonymous"; } export default defineModuleUi({ id: "example", version: "0.1.0", mount(container: Element, context: ModuleUiHostContext) { container.textContent = describePrincipal(context.principal); void context.api.request("records"); void context.permissions.has("example.records.read"); return () => { container.textContent = ""; }; }, });