POSH-UserPukMGT.psm1

$script:ModuleRoot = $PSScriptRoot

$privateFunctions = @(Get-ChildItem -Path (Join-Path $script:ModuleRoot 'Private') -Filter '*.ps1' -Recurse -ErrorAction SilentlyContinue)
$publicFunctions = @(Get-ChildItem -Path (Join-Path $script:ModuleRoot 'Public') -Filter '*.ps1' -Recurse -ErrorAction SilentlyContinue)

foreach ($function in @($privateFunctions + $publicFunctions)) {
    try {
        . $function.FullName
    }
    catch {
        throw "Failed to dot-source '$($function.FullName)': $_"
    }
}

Export-ModuleMember -Function $publicFunctions.BaseName