mod asset;
#[expect(
clippy::panic,
clippy::print_stdout,
reason = "build-script support code: a panic is the correct way to abort a build, and \
println! is how a build script emits cargo directives"
)]
pub mod build;
pub mod capabilities;
pub mod context;
pub mod error;
pub mod frame_options;
pub mod gateway_guard;
pub mod metadata;
pub mod migration;
pub mod purge;
pub mod registry;
pub mod router;
pub mod runtime_config;
pub mod seed;
mod traits;
pub use asset::{AssetDefinition, AssetDefinitionBuilder, AssetPaths, AssetType};
pub use context::{DynExtensionContext, ExtensionContext};
pub use error::{ExtensionConfigError, LoaderError};
pub use frame_options::{FrameOptions, FrameOptionsOverride, stamp_frame_options};
pub use gateway_guard::{
GatewayDenyKind, GatewayDenyReason, GatewayGuardRequest, GatewayRequestGuard,
GatewayRequestGuardRegistration, gateway_guards, run_gateway_guards,
};
pub use metadata::{ExtensionMetadata, ExtensionRole, SchemaDefinition};
pub use migration::Migration;
pub use purge::{UserPurgeTable, registered_user_purge_tables};
pub use registry::{ExtensionRegistration, ExtensionRegistry, RESERVED_PATHS};
pub use router::{ExtensionRouter, ExtensionRouterConfig, SiteAuthConfig};
pub use seed::Seed;
pub use traits::Extension;
pub use capabilities::{HasAnalytics, HasFingerprint, HasRouteClassifier, HasUserService};
pub mod prelude {
pub use crate::asset::{AssetDefinition, AssetDefinitionBuilder, AssetPaths, AssetType};
pub use crate::context::{DynExtensionContext, ExtensionContext};
pub use crate::error::{ExtensionConfigError, LoaderError};
pub use crate::gateway_guard::{
GatewayDenyKind, GatewayDenyReason, GatewayGuardRequest, GatewayRequestGuard,
run_gateway_guards,
};
pub use crate::registry::ExtensionRegistry;
pub use crate::seed::Seed;
pub use crate::{
Extension, ExtensionMetadata, ExtensionRole, ExtensionRouter, FrameOptions, Migration,
SchemaDefinition, SiteAuthConfig, extension_migrations, register_extension,
register_gateway_guard, stamp_frame_options, user_purge_tables,
};
pub use systemprompt_provider_contracts::{
ComponentContext, ComponentRenderer, ContentDataContext, ContentDataProvider,
FrontmatterContext, FrontmatterProcessor, PageContext, PageDataProvider,
PagePrepareContext, PagePrerenderer, PageRenderSpec, PlaceholderMapping, RenderedComponent,
RssFeedContext, RssFeedItem, RssFeedMetadata, RssFeedProvider, RssFeedSpec, SitemapContext,
SitemapProvider, SitemapSourceSpec, SitemapUrlEntry, TemplateDataExtender,
TemplateDefinition, TemplateProvider, TemplateSource,
};
}