# svelixir v0.61.2 - Table of Contents

> Scaffolder for Elixir/Phoenix projects with a Svelte 5 UI layer.

## Pages

- [Svelixir](readme.md)
- [Changelog](changelog.md)

## Modules

- [Svelixir.ApplicationEx](Svelixir.ApplicationEx.md): Adds a child to a project's supervision tree, structurally.
- [Svelixir.Baseline](Svelixir.Baseline.md): Provenance and drift checking for the checked-in generator baselines.
- [Svelixir.Clock](Svelixir.Clock.md): The wall clock, as the one module under `lib/` allowed to read it.
- [Svelixir.Component](Svelixir.Component.md): Reads and writes `component.exs` — a component's manifest (SDD 7.1).
- [Svelixir.Component.Apply](Svelixir.Component.Apply.md): Installs a derived component into a target project (SDD 7.3).
- [Svelixir.Component.Classify](Svelixir.Component.Classify.md): Decides what a hunk means (SDD 7.3).
- [Svelixir.Component.Derive](Svelixir.Component.Derive.md): Turns an observed diff into a component (SDD R1, 10).
- [Svelixir.Component.Diff](Svelixir.Component.Diff.md): Compares a meta project against its baseline (SDD R1).
- [Svelixir.Component.MixChanges](Svelixir.Component.MixChanges.md): Reads what a raw working project changed in `mix.exs` (SDD R1, D10).
- [Svelixir.Component.Record](Svelixir.Component.Record.md): Records an applied component in the target's `fireside.exs` (SDD 8.2, R5, R6).
- [Svelixir.Config](Svelixir.Config.md): The whole scaffolder config for one project, as a struct — one child struct
per section of the templates in `priv/templates`.
- [Svelixir.Config.Api](Svelixir.Config.Api.md): The `:api` project preset — `priv/templates/base_api_app.exs` as code.
- [Svelixir.Config.Assets](Svelixir.Config.Assets.md): Which asset surfaces are generated — the `assets:` section.
- [Svelixir.Config.Assets.Api](Svelixir.Config.Assets.Api.md): API surface detail — the `assets.api:` block.
- [Svelixir.Config.Assets.Ui](Svelixir.Config.Assets.Ui.md): UI surface detail — the `assets.ui:` block.
- [Svelixir.Config.Auth](Svelixir.Config.Auth.md): Authentication surfaces — the `auth:` section.
- [Svelixir.Config.Cache](Svelixir.Config.Cache.md): Caching backend and client mode — the `cache:` section.
- [Svelixir.Config.Container](Svelixir.Config.Container.md): Container tooling — the `container:` section. Type-independent: podman and
docker are valid for `:otp` and `:web` alike.
- [Svelixir.Config.Container.Sidecars](Svelixir.Config.Container.Sidecars.md): Sidecar containers to generate — the `container.sidecars:` block.
- [Svelixir.Config.Enums](Svelixir.Config.Enums.md): The closed domains the config sections draw their atom values from.
- [Svelixir.Config.Features](Svelixir.Config.Features.md): Optional capability toggles — the `features:` section.
- [Svelixir.Config.Otp](Svelixir.Config.Otp.md): The `:otp` project preset — `priv/templates/base_otp_app.exs` as code.
- [Svelixir.Config.Project](Svelixir.Config.Project.md): Identity of the project being scaffolded — the `project:` section.
- [Svelixir.Config.Section](Svelixir.Config.Section.md): Shared behaviour for the sections of `Svelixir.Config.Otp`.
- [Svelixir.Config.Security](Svelixir.Config.Security.md): Encryption and secret sourcing — the `security:` section. Type-independent:
it applies to `:otp` and `:web` alike.
- [Svelixir.Config.Supervision](Svelixir.Config.Supervision.md): Supervision tree and repo ownership — the `otp:` section.
- [Svelixir.Config.Web](Svelixir.Config.Web.md): The `:web` project preset — `priv/templates/base_web_app.exs` as code.
- [Svelixir.ConfigExs](Svelixir.ConfigExs.md): Places a contribution inside a `config/*.exs`, by that file's own rules.
- [Svelixir.Exs](Svelixir.Exs.md): Codec for the plain-data `.exs` files Svelixir owns — `svelixir.exs` and
`fireside.exs`.
- [Svelixir.Hash](Svelixir.Hash.md): Content hashing for manifest file entries.
- [Svelixir.Manifest](Svelixir.Manifest.md): Reads and writes `fireside.exs` — the generated lock file (SDD 8.2).
- [Svelixir.Manifest.Component](Svelixir.Manifest.Component.md): One component's entry in `fireside.exs` (SDD 8.2): what it is, which version
of it was applied, where that version came from, when it was applied, and
every file it owns or contributes to.
- [Svelixir.Manifest.FileEntry](Svelixir.Manifest.FileEntry.md): One file a component owns or contributes to (SDD 7.3).
- [Svelixir.MixExs](Svelixir.MixExs.md): Locates and patches constructs in a `mix.exs`, structurally (SDD R5, R6).
- [Svelixir.Target](Svelixir.Target.md): A validated, absolute path to the project Svelixir is acting on.
- [Svelixir.Template](Svelixir.Template.md): Converts a meta-project file into a name-agnostic EEx template, and back.

- Exceptions
  - [Svelixir.ApplicationEx.Error](Svelixir.ApplicationEx.Error.md): Raised when a supervision tree a component must extend cannot be located.
  - [Svelixir.Config.InvalidError](Svelixir.Config.InvalidError.md): Raised when a config section is given a key it does not declare, a value
outside that key's domain, or a combination the canonical rules forbid.

  - [Svelixir.ConfigExs.Error](Svelixir.ConfigExs.Error.md): Raised when a `config/*.exs` site a component must contribute to cannot be
located.
  - [Svelixir.Exs.DecodeError](Svelixir.Exs.DecodeError.md): Raised when an .exs file is not the plain data Svelixir expects.
  - [Svelixir.Exs.EncodeError](Svelixir.Exs.EncodeError.md): Raised when a term cannot be written as re-readable .exs source.
  - [Svelixir.Manifest.InvalidError](Svelixir.Manifest.InvalidError.md): Raised when `fireside.exs` is plain data of the wrong shape — a missing or
unknown key, an unsupported `schema_version`, or a field whose value is
outside its domain.

  - [Svelixir.MixExs.Error](Svelixir.MixExs.Error.md): Raised when a `mix.exs` construct a component must edit cannot be located.
  - [Svelixir.Target.EscapeError](Svelixir.Target.EscapeError.md): Raised when a project-relative path would escape the target root.
  - [Svelixir.Target.InvalidRootError](Svelixir.Target.InvalidRootError.md): Raised when a path is not a usable project root.

## Mix Tasks

- [mix svelixir.baseline.compose](Mix.Tasks.Svelixir.Baseline.Compose.md): Builds a DERIVED baseline from a generator baseline plus a component.
- [mix svelixir.baseline.record](Mix.Tasks.Svelixir.Baseline.Record.md): Rewrites `priv/baselines.exs` and emits the content-addressed snapshot.
- [mix svelixir.check](Mix.Tasks.Svelixir.Check.md): Fails while any unresolved `:manual` region remains.
- [mix svelixir.component.apply](Mix.Tasks.Svelixir.Component.Apply.md): Applies a derived component to a target project.
- [mix svelixir.component.derive](Mix.Tasks.Svelixir.Component.Derive.md): Derives a component from a raw working project (SDD 10).

