Infra-LivingDoc.psm1

$ErrorActionPreference = 'Stop'

# Load private functions first
$privatePath = Join-Path $PSScriptRoot 'Private'
if (Test-Path $privatePath) {
    $privateFiles = Get-ChildItem -Path $privatePath -Filter '*.ps1' -ErrorAction SilentlyContinue
    foreach ($file in $privateFiles) {
        try {
            . $file.FullName
            Write-Verbose "Loaded private function: $($file.BaseName)"
        }
        catch {
            Write-Warning "Failed to load private function $($file.Name): $_"
        }
    }
}

# Load public functions
$publicPath = Join-Path $PSScriptRoot 'Public'
if (Test-Path $publicPath) {
    $publicFiles = Get-ChildItem -Path $publicPath -Filter '*.ps1' -ErrorAction SilentlyContinue
    foreach ($file in $publicFiles) {
        try {
            . $file.FullName
            Write-Verbose "Loaded public function: $($file.BaseName)"
        }
        catch {
            Write-Warning "Failed to load public function $($file.Name): $_"
        }
    }
}

# Module-level variables
$script:ModuleRoot = $PSScriptRoot
$script:TemplatesPath = Join-Path $PSScriptRoot 'Templates'