"""
Packaging-specific exception classes.

Provides specialized error handling for packaging operations,
building on MarkiTect's existing error handling framework.
"""


class PackagingError(Exception):
    """Base exception for packaging operations."""
    pass


class PackageFormatError(PackagingError):
    """Exception for package format-related errors."""
    pass


class AssetError(PackagingError):
    """Exception for asset handling errors."""
    pass


class TransclusionError(PackagingError):
    """Exception for transclusion engine errors."""
    pass


class CircularReferenceError(TransclusionError):
    """Exception for circular reference detection in transclusion."""
    pass


class DepthLimitError(TransclusionError):
    """Exception when transclusion depth limit is exceeded."""
    pass


class AssetNotFoundError(AssetError):
    """Exception when an asset file cannot be found."""
    pass


class InvalidPackageError(PackageFormatError):
    """Exception for invalid package structure or content."""
    pass


class PathRewriteError(PackagingError):
    """Exception for path rewriting operations."""
    pass