msix.psm1

#region --- Load sub-modules ------------------------------------------------
. "$PSScriptRoot\MSIX.Logging.ps1"
. "$PSScriptRoot\MSIX.Core.ps1"
. "$PSScriptRoot\MSIX.Validation.ps1"
. "$PSScriptRoot\MSIX.Manifest.ps1"
. "$PSScriptRoot\MSIX.PSF.ps1"
. "$PSScriptRoot\MSIX.Signing.ps1"
. "$PSScriptRoot\MSIX.ContextMenu.ps1"
. "$PSScriptRoot\MSIX.Pipeline.ps1"
. "$PSScriptRoot\MSIX.Investigation.ps1"
. "$PSScriptRoot\MSIX.AppData.ps1"
. "$PSScriptRoot\MSIX.Accelerator.ps1"
. "$PSScriptRoot\MSIX.PsfBinaries.ps1"
. "$PSScriptRoot\MSIX.Debug.ps1"
. "$PSScriptRoot\MSIX.AppAttach.ps1"
. "$PSScriptRoot\MSIX.AppIsolation.ps1"
. "$PSScriptRoot\MSIX.Limitations.ps1"
. "$PSScriptRoot\MSIX.Trace.ps1"
. "$PSScriptRoot\MSIX.Scripts.ps1"
. "$PSScriptRoot\MSIX.MFR.ps1"
. "$PSScriptRoot\MSIX.VcRuntime.ps1"
. "$PSScriptRoot\MSIX.Detection.ps1"
. "$PSScriptRoot\MSIX.ManifestExtensions.ps1"
. "$PSScriptRoot\MSIX.OfflineRegistry.ps1"
. "$PSScriptRoot\MSIX.Heuristics.ps1"
. "$PSScriptRoot\MSIX.Compare.ps1"
. "$PSScriptRoot\MSIX.Functions.ps1"
#endregion


#region --- Backward-compatible aliases ------------------------------------
# Only aliases whose NAME genuinely differs from the function's name belong
# here. PowerShell is case-insensitive: 'update-MsixSigner' and
# 'Update-MsixSigner' are the SAME identifier, so a Set-Alias from one onto
# the other shadows the function and breaks all subsequent invocations.
#
# Removed in v0.13 (were self-aliasing and broke their own functions):
# update-MsixSigner, new-MsixPsfJson, add-MsixAlias,
# remove-MsixStartMenuEntry, add-MsixStartMenuFolder
Set-Alias -Name add-MsixPsf                  -Value Add-MsixPsfV2
#endregion


#region --- Exports ---------------------------------------------------------
Export-ModuleMember -Function @(
    # Logging
    'Write-MsixLog'
    'Set-MsixLogLevel'
    'Set-MsixLogFile'
    # Core / tools
    'Get-MsixToolsRoot'
    'Set-MsixToolsRoot'
    'New-MsixWorkspace'
    'Invoke-MsixProcess'
    'Get-MsixPublisherId'
    # Validation
    'Test-MsixManifest'
    'Test-MsixPsfConfig'
    'Assert-MsixProcessSuccess'
    # Manifest helpers
    'Get-MsixManifest'
    'New-MsixManifestDocument'
    'Select-MsixManifestNode'
    'Select-MsixManifestNodes'
    'Save-MsixManifest'
    'Add-MsixManifestNamespace'
    'Get-MsixManifestApplications'
    'Get-MsixManifestApplication'
    'Get-MsixManifestNamespaceUri'
    'Set-MsixManifestMaxVersionTested'
    'Set-MsixManifestPublisher'
    'Set-MsixManifestIdentity'
    'Invoke-MsixManifestTransform'
    # PSF builders
    'New-MsixPsfFileRedirectionConfig'
    'New-MsixPsfRegLegacyConfig'
    'New-MsixPsfEnvVarConfig'
    'New-MsixPsfTraceConfig'
    'New-MsixPsfArgument'
    'New-MsixPsfStartScriptConfig'
    'New-MsixPsfDynamicLibraryConfig'
    'New-MsixPsfWaitForDebuggerConfig'
    'New-MsixPsfConfig'
    'Add-MsixPsfV2'
    # Investigation
    'Invoke-MsixInvestigation'
    'Get-MsixCompatibilityReport'
    'Get-MsixStaticAnalysis'
    'Invoke-MsixProcMonCapture'
    'Get-MsixProcMonFailure'
    'Add-MsixDiagnosticTrace'
    'Resolve-MsixProcMonPath'
    # AppData / out-of-package
    'Get-MsixContainerAppData'
    'Get-MsixOrphanedAppData'
    'Copy-MsixHostAppDataIntoPackage'
    'Invoke-MsixContainerCommand'
    'Get-MsixPackageStorageSummary'
    # Accelerators
    'Import-MsixAccelerator'
    'Invoke-MsixAccelerator'
    'ConvertFrom-MsixYamlAccelerator'
    # PSF binaries / Procmon / SDK / Runtime
    'Install-MsixPsfBinary'
    'Update-MsixPsfBinary'
    'Get-MsixPsfBinariesVersion'
    'Install-MsixProcMon'
    'Update-MsixProcMon'
    'Install-MsixSdkTool'
    'Update-MsixSdkTool'
    'Get-MsixSdkToolsVersion'
    'Install-MsixAppRuntime'
    'Update-MsixAppRuntime'
    'Get-MsixAppRuntimeVersion'
    'Get-MsixRequiredAppRuntimeChannel'
    'Install-MsixDebugView'
    'Update-MsixDebugView'
    'Get-MsixDebugViewVersion'
    'Initialize-MsixToolchain'
    # Debug session
    'Start-MsixDebugSession'
    'Get-MsixDebugRecommendation'
    'New-MsixSandboxConfig'
    'Start-MsixSandbox'
    'Resolve-MsixDebugViewPath'
    'ConvertTo-MsixReportHtml'
    # Self-signed certificate flow for debug / sandbox
    'New-MsixSelfSignedCertificate'
    'Test-MsixSignature'
    'Invoke-MsixSelfSignAndDebug'
    # App Attach
    'New-MsixAppAttachImage'
    'Mount-MsixAppAttachImage'
    'Dismount-MsixAppAttachImage'
    'Test-MsixAppAttachImage'
    'Resolve-MsixMgrPath'
    # App Isolation (Win32)
    'Add-MsixAppIsolation'
    'Remove-MsixAppIsolation'
    'Get-MsixIsolationCapability'
    # Limitations / know-your-installer
    'Get-MsixLimitation'
    'Test-MsixAgainstLimitation'
    # Trace Fixup parser
    'ConvertFrom-MsixTraceLine'
    'Get-MsixTraceOutput'
    'Get-MsixTraceFailure'
    'ConvertFrom-MsixTraceToFinding'
    # msixmgr binary management
    'Install-MsixMgr'
    'Update-MsixMgr'
    'Get-MsixMgrVersion'
    # Standard scripts (PSADT-flavoured)
    'Get-MsixStandardScript'
    'New-MsixStandardScript'
    'Set-MsixScriptSignature'
    'Add-MsixStandardScript'
    # MFR (Modern File Redirection -- TMurgent fork)
    'New-MsixMfrTraditionalRule'
    'New-MsixMfrLocalRule'
    'New-MsixPsfMfrConfig'
    'Get-MsixMfrKnownFolder'
    # VC++ runtime detection / bundling
    'Get-MsixVcRuntimeReference'
    'Add-MsixVcRuntimeBundle'
    # TMEditX-style heuristics
    'Get-MsixKnownCapability'
    'Add-MsixCapability'
    'Get-MsixUninstallerCandidate'
    'Get-MsixUninstallRegistryEntry'
    'Remove-MsixUninstallerArtifact'
    'Get-MsixRunKeyEntry'
    'Get-MsixShellContextMenuEntry'
    'Get-MsixComServerEntry'
    'Get-MsixAliasCandidate'
    'Add-MsixSplashScreen'
    'Update-MsixPackageVersion'
    'Get-MsixHeuristicFinding'
    'Invoke-MsixAutoFix'
    'Invoke-MsixAutoFixFromAnalysis'
    # Auto-detection scanners (v0.11)
    'Get-MsixFontCandidate'
    'Get-MsixDesktopShortcutCandidate'
    'Get-MsixCapabilityHint'
    'Get-MsixNestedPackageCandidate'
    # Package compare
    'Compare-MsixPackage'
    # Manifest-only fixers (alternatives to PSF)
    'Set-MsixFileSystemWriteVirtualization'
    'Set-MsixRegistryWriteVirtualization'
    'Set-MsixInstalledLocationVirtualization'
    'Add-MsixLoaderSearchPathOverride'
    'Add-MsixFirewallRule'
    'Add-MsixProtocolHandler'
    'Add-MsixFileTypeAssociation'
    'Add-MsixStartupTask'
    'Add-MsixFontExtension'
    'Set-MsixBrandMetadata'
    'Add-MsixShellVerbExtension'
    'Add-MsixComServerExtension'
    'Remove-MsixDesktopShortcut'
    # Signing
    'Invoke-MsixSigning'
    # Context menus
    'Add-MsixLegacyContextMenu'
    'Add-MsixFileExplorerContextMenu'
    # Pipeline
    'Invoke-MsixPipeline'
    # Public package ops (defined in MSIX.Functions.ps1)
    'Get-MsixInfo'
    'Invoke-MsixCommand'
    'Update-MsixSigner'
    'New-MsixPsfJson'
    'Add-MsixAlias'
    'Remove-MsixStartMenuEntry'
    'Add-MsixStartMenuFolder'
) -Alias @(
    'Invoke-MsixCmd'
    'start-MsixCmd'
    'add-MsixPsf'
    'Get-PublisherIdFromPublisher'
    'Get-MsixDebugRecommendations'
    'Get-MsixFontCandidates'
    'Get-MsixDesktopShortcutCandidates'
    'Remove-MsixDesktopShortcuts'
    'Get-MsixCapabilityHints'
    'Get-MsixNestedPackageCandidates'
    'Get-MsixKnownCapabilities'
    'Get-MsixUninstallerCandidates'
    'Get-MsixUninstallRegistryEntries'
    'Remove-MsixUninstallerArtifacts'
    'Get-MsixRunKeyEntries'
    'Get-MsixShellContextMenuEntries'
    'Get-MsixComServerEntries'
    'Get-MsixAliasCandidates'
    'Get-MsixHeuristicFindings'
    'Get-MsixProcMonFailures'
    'Get-MsixLimitations'
    'Test-MsixAgainstLimitations'
    'Get-MsixMfrKnownFolders'
    'New-MsixPsfArguments'
    'Install-MsixPsfBinaries'
    'Update-MsixPsfBinaries'
    'Install-MsixSdkTools'
    'Update-MsixSdkTools'
    'Get-MsixStandardScripts'
    'Get-MsixTraceFailures'
    'ConvertFrom-MsixTraceToFindings'
    'Get-MsixVcRuntimeReferences'
    'Get-MsixIsolationCapabilities'
)
#endregion