/** * Public API surface for same-document `` embeds. * * The `needleApp` Vite plugin emits this module as a dedicated, deterministically-named facade * chunk (`needle-app.engine.js`) and re-exports it from the generated `needle-app.js`. Because it * is built in the same pass as the app, it shares the engine module instance with the running * scene — so importing lifecycle hooks from it drives the live, embedded scene: * * ```js * import { onStart } from "https://your-deploy/needle-app.js"; * onStart(ctx => { ... }); * ``` * * This is a thin re-export of the main entry point; keep it that way so the embed API stays in * sync with the package's public surface. The eslint `no-restricted-imports` rule has an explicit * override for this file (see `eslint.config.mjs`) — it's a public-facing facade, not internal code. */ export * from "./needle-engine.js";