-- SPDX-FileCopyrightText: 2026 Alexandra de Wit
--
-- SPDX-License-Identifier: MIT

{- | The proxy's data-plane entry point: the handlers for packument merges (@GET \/{pkg}@), artifact
relays (@GET \/{pkg}\/-\/{file}.tgz@), and first-party publishes (@PUT \/{pkg}@). An ecosystem's
route table names them one module at a time, so nothing but its own spec imports this hub.

The handlers name no ecosystem. A registry's metadata client, packument assembly, and
artifact-request formation reach them as injected capabilities on
'Ecluse.Core.Server.Context.PackumentDeps', so a router maps its own routes onto whichever
handlers apply and names its own actions for the rest.
-}
module Ecluse.Core.Server.Pipeline (
    -- * The packument handler
    servePackument,
    headPackument,

    -- * The tarball handler
    serveTarball,
    headTarball,

    -- * The first-party publish handler
    servePublish,
) where

import Ecluse.Core.Server.Pipeline.Packument
import Ecluse.Core.Server.Pipeline.Publish
import Ecluse.Core.Server.Pipeline.Tarball