psSIA.psm1

$moduleRoot = $PSScriptRoot
$script:ModuleVersion = (Import-PowerShellDataFile -Path (Join-Path $moduleRoot 'psSIA.psd1')).ModuleVersion

$script:SIASession = $null
$script:SIAModuleConfig = [pscustomobject]@{
    RequestTimeout  = 30
    RetryCount      = 3
    RetryDelay      = 2
    AutoPagination  = $true
    LogLevel        = 'Normal'
}

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

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

$formatFile = Join-Path $moduleRoot 'Formats/psSIA.Format.ps1xml'
if (Test-Path $formatFile) {
    Update-FormatData -PrependPath $formatFile
}

Export-ModuleMember -Function $publicFunctions.BaseName