-- SPDX-FileCopyrightText: 2026 Alexandra de Wit -- -- SPDX-License-Identifier: MIT {- | The proxy's data-plane entry point for package and artifact routes. This module re-exports the top-level handlers for packument merges (@GET \/{pkg}@), artifact relays (@GET \/{pkg}\/-\/{file}.tgz@), and first-party publishes (@PUT \/{pkg}@). == Ecosystem neutrality These handlers name no ecosystem. A registry's metadata client, its packument assembly, and its artifact-request formation reach them as __injected capabilities__ on 'Ecluse.Core.Server.Context.PackumentDeps' ('pdNewMetadataClient', 'pdAssemble', 'pdBuildArtifactRequestByFile', 'pdBuildArtifactRequestByUrl'), which the composition root projects from the mount's 'Ecluse.Core.Registry.Adapter.Types.RegistryAdapter'. The imports here reach only the __agnostic__ protocol boundary ("Ecluse.Core.Registry", "Ecluse.Core.Registry.Metadata"). So the orchestration is reusable across registries whose URL grammars have nothing in common: an ecosystem's router ("Ecluse.Core.Server.Context.MountRouter") maps its own routes onto whichever of these handlers apply, and names its own actions for the routes that have no counterpart here. -} 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