psSCA.psm1

$script:PSSCAModuleVersion = (Test-ModuleManifest -Path (Join-Path $PSScriptRoot 'psSCA.psd1')).Version.ToString()

$script:SCASessions = [ordered]@{}
$script:SCACurrentSessionName = $null

$script:PSSCADefaultTimeoutSec = 30
$script:PSSCADefaultRetryCount = 3
$script:PSSCADefaultRetryDelaySeconds = 1

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

foreach ($file in $privateFunctions + $publicFunctions) {
    try {
        . $file.FullName
    }
    catch {
        throw "psSCA: failed to load $($file.FullName): $_"
    }
}

$formatFile = Join-Path $PSScriptRoot 'Formats\psSCA.Format.ps1xml'
if (Test-Path $formatFile) {
    Update-FormatData -PrependPath $formatFile
}

Export-ModuleMember -Function $publicFunctions.BaseName