muddle/index.ts
2026-10-23 09:12:49 -04:00

314 lines
6.5 KiB
TypeScript

// Contracts
export type {
AdapterOptions,
MuddleConfig,
CollectionConfig,
CollectionEntry,
ContentSchema,
DatabaseOptions,
Integration,
IntegrationContext,
MountableViews,
Mounts,
Loader,
LoaderFile,
LoadedFile,
PrerenderOptions as PrerenderConfig,
ResolvedConfig,
} from "./contracts/index.ts";
export { defineConfig } from "./contracts/index.ts";
export type {
HttpMethod,
HttpRequest,
HttpResponse,
RequestContext,
ResponseBuilder,
StatusCode,
} from "./contracts/typegen/http/index.ts";
export type {
ColumnMapping,
FieldOptions,
FieldType,
TableClass,
TableOptions,
WhereCondition,
WhereOperator,
} from "./contracts/typegen/orm/index.ts";
export type {
TableName,
TableRowOf,
TableRows,
} from "./contracts/typegen/orm/tables.ts";
export type {
ViewPath,
ViewProps,
ViewPropsOf,
} from "./contracts/typegen/views.ts";
export type { Minify, Simplify } from "./contracts/typegen/minify.ts";
// Core
export { App, type AppOptions, type ViewRenderer } from "./core/app.ts";
export {
Container,
type AbstractType,
type ProviderDefinition,
type ProviderScope,
type Token,
type Type,
} from "./core/container.ts";
export { resolveConfig, loadConfig } from "./core/config.ts";
export { ServerBuildContext, TemplateContext } from "./core/context.ts";
export {
MemorySessionStore,
type SessionStore,
type SessionRecord,
} from "./core/sessions.ts";
export { RoutePipeline, type RouteGuard } from "./core/pipeline.ts";
export { format } from "./core/format.ts";
export {
createTemplate,
muddleTemplates,
type MuddleTemplate,
type TemplateResult,
} from "./core/templates.ts";
export {
MuddleError,
RouteNotFoundError,
SchemaError,
TemplateError,
UnknownProviderError,
} from "./core/errors.ts";
export {
createRequestContext,
html,
json,
notFound,
redirect,
parseQuery,
parseRequestBody,
text,
} from "./core/http.ts";
export {
defineMetadata,
getMetadata,
getMemberMetadata,
installMetadataPolyfill,
} from "./core/metadata.ts";
export { ModuleRegistry, type ModuleContext } from "./core/modules.ts";
export {
Router,
type RouteDefinition,
type RouteMatch,
type ViewDescriptor,
} from "./core/router.ts";
export {
redirectWithMessage,
toFormFields,
validate,
type FormSchema,
type ValidationResult,
} from "./core/form.ts";
export {
ContentRegistry,
ContentService,
validateFrontmatter,
} from "./core/content.ts";
// Decorators
export { Component, getComponentMetadata } from "./decorators/Component.ts";
export { Controller, getControllerPrefix } from "./decorators/Controller.ts";
export { Inject, Optional } from "./decorators/Inject.ts";
export { Injectable, Module, getModuleOptions } from "./decorators/Module.ts";
export {
Body,
Form,
Locals,
Param,
Query,
Req,
Res,
} from "./decorators/Params.ts";
export { Route, getRoutes } from "./decorators/Route.ts";
export { Service } from "./decorators/Service.ts";
export { View, getViews } from "./decorators/View.ts";
export {
RenderAhead,
getRenderAhead,
type RenderAheadSource,
} from "./decorators/RenderAhead.ts";
export {
RenderRoute,
getRenderRoutes,
routeFolder,
collectionRoute,
type CollectionRenderRoute,
type RenderRouteSource,
} from "./decorators/RenderRoute.ts";
export { Astro, type AstroOptions } from "./decorators/Astro.ts";
export { Auth, getAuth, type AuthOptions } from "./decorators/Auth.ts";
// Views
export {
createViews,
ViewBuilder,
Views,
type SpugComponentOptions,
type RenderOptions,
type RenderResult,
type ViewsOptions,
} from "./views/api.ts";
export {
defineComponent,
type ComponentContext,
type ComponentDefinition,
type ComponentRegistry,
type ServerComponent,
type SpugComponentRender,
} from "./views/components.ts";
export {
compileCss,
stcssLoader,
sassLoader,
styleTag,
type SassLoaderOptions,
} from "./views/css/index.ts";
export {
analyzeReactComponent,
backportProject,
cssToStcss,
detectBackportSource,
htmlToSpug,
reactToSpug,
type BackportResult,
type BackportSource,
type ReactHookAnalysis,
} from "./core/backport.ts";
export {
markdownLoader,
parseFrontmatter,
renderLatex,
renderMarkdown,
type Frontmatter,
} from "./views/markdown.ts";
export {
TemplateEngine,
helpers,
mergeBlocks,
type CompiledTemplate,
type RenderContext,
type TemplateRuntime,
} from "./views/engine/runtime.ts";
export {
SPUG_COMPLETIONS,
STCSS_COMPLETIONS,
type LanguageCompletion,
} from "./views/language.ts";
export {
stage,
StageManager,
type KeyframeStep,
type ScrollSceneOptions,
type TransitionPortalOptions,
} from "./views/stage.ts";
export {
createHooks,
defineHooks,
MuddleHooks,
type HookBuilder,
type SpugExpansion,
type SpugHookContext,
type StcssAtRuleExpansion,
type StcssAtRuleHookContext,
type StcssCalculationExpansion,
type StcssCalculationHookContext,
type StcssDeclarationExpansion,
type StcssDeclarationHookContext,
type StcssValueExpansion,
type StcssValueHookContext,
} from "./views/hooks.ts";
export {
filesystemCache,
cloudflareCache,
type Cache,
type CloudflareCacheLike,
} from "./core/cache.ts";
// Adapters
export { serve, type BunServerOptions } from "./adapters/server-bun.ts";
export {
createWorker,
setupWrangler,
type WorkerEnv,
type WranglerSetupOptions,
} from "./adapters/cloudflare-wrangler.ts";
export {
createHandler,
setupVercel,
type NodeHandler,
} from "./adapters/vercel-vercel.ts";
export {
prerender,
type PrerenderOptions,
type PrerenderResult,
} from "./adapters/static.ts";
export {
predictLayout,
type BreakpointAcc,
type LayoutPrediction,
type LayoutPredictionOptions,
type ReflectiveAnchorGroup,
} from "./adapters/prediction.ts";
// Integrations
export {
checkboxMarkup,
mouseTrackerMarkup,
mouseTrackerCss,
reactCss,
reactIntegration,
reactStylesheet,
STATES,
type ReactIntegrationOptions,
type TrackerOptions,
} from "./integrations/react.ts";
export {
concentric,
layoutHooks,
type Utility,
type UtilityContext,
} from "./integrations/hooks.ts";
export { googleFonts, type GoogleFontsOptions } from "./integrations/fonts.ts";
export {
responsivityIntegration,
DEFAULT_BREAKPOINTS,
type ResponsivityOptions,
} from "./integrations/responsivity.ts";
export {
authIntegration,
authFromRequest,
authGuard,
type AuthIdentity,
type OAuthProvider,
type AuthIntegrationOptions,
} from "./integrations/auth.ts";
// Testing
export {
collectTemplateTests,
readAssertions,
runTemplateTests,
type TemplateTest,
type TemplateTestFailure,
type TemplateTestOptions,
type TemplateTestRun,
} from "./views/testing.ts";
// Type generation
export {
generate,
readConfig,
type GeneratorOptions,
type GeneratorResult,
type ViewContract,
} from "./contracts/typegen/generator.ts";