oneShortcut.psm1

[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseDeclaredVarsMoreThanAssignments", "")]
param()

#Requires -Version 5.1

$Public = @(Get-ChildItem -Path (Join-Path -Path $PSScriptRoot -ChildPath "\public\*.ps1") -ErrorAction SilentlyContinue)
$Private = @(Get-ChildItem -Path (Join-Path -Path $PSScriptRoot -ChildPath "\private\*.ps1") -ErrorAction SilentlyContinue)

foreach ($Import in @($Public + $Private)) {
    try {
        Write-Verbose "[$(Get-Date)] [IMPORT ] $($Import.FullName)"
        . $Import.FullName
    } catch {
        Write-Error -Message "[$(Get-Date)] [ERROR ] Failed to import function $($Import.FullName): $_"
    }
}

$OneShortcutSession = [pscustomobject] @{
    TenantName = $null
    AzureAdApp = [pscustomobject] @{
        TenantId = $null
        ClientId = $null
        ClientCertificate = $null
        ClientSecret = $null
    }
    Token = [pscustomobject] @{
        ExpiresOn = $null
        AccessToken = $null
    }
}

foreach ($File in $Public) {
    Export-ModuleMember -Function $File.BaseName
}