Files
Ekklesia/surfaces/shell/src/index.ts
T
ekklesia a8c7c50b4d
CI / verify (pull_request) Successful in 38s
CI / infrastructure-smoke (pull_request) Successful in 12s
CI / migration-smoke (pull_request) Successful in 1m0s
feat: add browser auth shell
2026-08-23 22:01:26 -05:00

49 lines
1.6 KiB
TypeScript

/**
* The framework-free half of the Ekklesia shell: how it talks to the platform and how it builds a
* module UI host context. Deliberately the only public surface of this package.
*
* The React shell itself (`src/browser/`) is not exported. It is an application, bundled straight to
* a browser artifact by this package's own build; exporting components would invite another package
* to depend on Ekklesia's shell internals, which is exactly the coupling the surface boundary
* exists to prevent. What *is* exported is the protocol — validated wire parsing, context
* construction, module API resolution — so the end-to-end test can drive the real host code against
* a real server instead of a reimplementation of it.
*/
export {
bootstrapHost,
bootstrapDisplayHost,
type DashboardNavigation,
type DashboardNavigationEntry,
type DashboardNavigationGroup,
type DisplayHostBootstrap,
type EkklesiaHostConfig,
type HostBootstrap,
type HostEventSourceFactory,
type HostEventSourceOptions,
type HostModuleDisplayResponse,
type HostModuleUiDescriptor,
HostProtocolError,
type HostProtocolErrorCode,
loadDashboardNavigation,
loadHostPrincipal,
loadModuleDisplay,
moduleDisplayDescriptorPath,
parseDashboardNavigation,
parseDisplayRoute,
parseHostModuleDisplay,
parseHostPrincipal,
resolveApiUrl,
} from "./host-protocol.js";
export {
type CreateModuleUiContextOptions,
createModuleUiContext,
moduleUiSourceUrl,
} from "./module-context.js";
export {
HostAuthError,
type HostAuthErrorCode,
type HostSignInCredentials,
signInWithEmail,
signOutHost,
} from "./auth-protocol.js";