NavxBuildHelper.psm1

#Requires -PSEdition Desktop

Set-StrictMode -Version 2.0

$verbosePreference = "SilentlyContinue"
$warningPreference = 'Continue'
$errorActionPreference = 'Stop'

# internal functions
# Helper Functions
. (Join-Path $PSScriptRoot "Misc\Get-FileFromStorage.ps1")
. (Join-Path $PSScriptRoot "Misc\Wait-ForFinSqlToComplete.ps1")
. (Join-Path $PSScriptRoot "Misc\Get-UseStandardTest.ps1")
. (Join-Path $PSScriptRoot "Misc\Get-SecretValueText.ps1")
. (Join-Path $PSScriptRoot "Misc\Get-Secret.ps1")
. (Join-Path $PSScriptRoot "Misc\Expand-7zipArchive.ps1")
. (Join-Path $PSScriptRoot "Misc\Get-LicenseFile.ps1")
. (Join-Path $PSScriptRoot "Misc\Get-Pfx.ps1")
. (Join-Path $PSScriptRoot "Containers\Wait-ForTenantReady.ps1")
. (Join-Path $PSScriptRoot "Misc\Get-NewContainerName.ps1")
. (Join-Path $PSScriptRoot "Misc\Add-StandardTestApp.ps1")
. (Join-Path $PSScriptRoot "Containers\Get-AppInfoFromContainer.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-LatestArtifactVersion.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-ArtifactVersion.ps1")
. (Join-Path $PSScriptRoot "Misc\Get-NormalizedVersion.ps1")

# AL
. (Join-Path $PSScriptRoot "AL\Add-TestAppsToAppJson.ps1")
. (Join-Path $PSScriptRoot "AL\Get-ALDependenciesFromAppJson.ps1")
. (Join-Path $PSScriptRoot "AL\Get-AppJsonForProjectAndRepo.ps1")
. (Join-Path $PSScriptRoot "AL\Get-AppKeyValue.ps1")
. (Join-Path $PSScriptRoot "AL\Get-DependencyFromEnvironment.ps1")
. (Join-Path $PSScriptRoot "AL\Get-IsALRepo.ps1")
. (Join-Path $PSScriptRoot "AL\Invoke-BuildALAppPackage.ps1")
. (Join-Path $PSScriptRoot "AL\New-ALAppDependency.ps1")
. (Join-Path $PSScriptRoot "AL\Remove-ALTestDependencyList.ps1")
. (Join-Path $PSScriptRoot "AL\Set-AppKeyValue.ps1")
. (Join-Path $PSScriptRoot "AL\Test-TablePermissionsExist.ps1")
. (Join-Path $PSScriptRoot "AL\Get-VersionAppJson.ps1")

# Code Signing
. (Join-Path $PSScriptRoot "CodeSigning\Invoke-SignFile.ps1")

# Container
. (Join-Path $PSScriptRoot "Containers\Disable-SymbolLoading.ps1")
. (Join-Path $PSScriptRoot "Containers\Enable-SymbolLoading.ps1")
. (Join-Path $PSScriptRoot "Containers\Get-ContainerFromLaunchJson.ps1")

# DevOps
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-DevOpsProjectList.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-DevOpsAllArtifactsFromFeed.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-DevOpsArtifactList.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-DevOpsArtifactsFromFeed.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-DevOpsArtifactsFromLastSuccessfulBuild.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-LastSuccessfulBuildId.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-RepositoryId.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-SucessfulBuildList.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Invoke-AzureDevOpsApi.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Publish-DevOpsArtifactsToFeed.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-DevopsToken.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-DevOpsFeedList.ps1")
. (Join-Path $PSScriptRoot "DevOpsHandling\Get-AndInstallApp.ps1")

# FTP
. (Join-Path $PSScriptRoot "FtpHandling\Add-FTPItem.ps1")
. (Join-Path $PSScriptRoot "FtpHandling\Get-FTPChildItem.ps1")
. (Join-Path $PSScriptRoot "FtpHandling\Get-FTPConnection.ps1")
. (Join-Path $PSScriptRoot "FtpHandling\Get-FTPItem.ps1")
. (Join-Path $PSScriptRoot "FtpHandling\Get-FTPItemSize.ps1")
. (Join-Path $PSScriptRoot "FtpHandling\New-FTPItem.ps1")
. (Join-Path $PSScriptRoot "FtpHandling\Remove-FTPItem.ps1")
. (Join-Path $PSScriptRoot "FtpHandling\Rename-FTPItem.ps1")
. (Join-Path $PSScriptRoot "FtpHandling\Send-FtpFile.ps1")
. (Join-Path $PSScriptRoot "FtpHandling\Set-FTPConnection.ps1")

# FileHandling
. (Join-Path $PSScriptRoot "FileHandling\Get-FileListFromFolder.ps1")
. (Join-Path $PSScriptRoot "FileHandling\New-EmptyDirectory.ps1")
. (Join-Path $PSScriptRoot "FileHandling\New-TempDirectory.ps1")

# Testing
. (Join-Path $PSScriptRoot "Testing\Get-ContainerCompanyToTest.ps1")
. (Join-Path $PSScriptRoot "Testing\Get-TestCodeunitsInContainer.ps1")

# VS Code
. (Join-Path $PSScriptRoot "VS Code\Get-InstalledVSCodeExtensionVersion.ps1")

# module members
# AL
. (Join-Path $PSScriptRoot "AL\Get-EnvironmentKeyValue.ps1")
. (Join-Path $PSScriptRoot "AL\Get-CredentialFromEnvironmentJson.ps1")
. (Join-Path $PSScriptRoot "AL\Set-EnvironmentKeyValue.ps1")
. (Join-Path $PSScriptRoot "AL\Get-RuntimePackage.ps1")
. (Join-Path $PSScriptRoot "AL\Get-ALDependency.ps1")
. (Join-Path $PSScriptRoot "AL\Invoke-CompileApp.ps1")
. (Join-Path $PSScriptRoot "AL\Get-AllSymbol.ps1")
. (Join-Path $PSScriptRoot "AL\Install-NavAppFromVSCode.ps1")

# Containers
. (Join-Path $PSScriptRoot "Containers\Get-ImageNameForRepo.ps1")
. (Join-Path $PSScriptRoot "Containers\New-Container.ps1")
. (Join-Path $PSScriptRoot "Containers\Get-VSCodeExtensionFromContainer.ps1")
. (Join-Path $PSScriptRoot "Containers\Get-CompilerFromContainer.ps1")
. (Join-Path $PSScriptRoot "Containers\Remove-Container.ps1")
. (Join-Path $PSScriptRoot "Containers\Import-Testing.ps1")
. (Join-Path $PSScriptRoot "Containers\New-ContainerForNavxProduct.ps1")

# Testing
. (Join-Path $PSScriptRoot "Testing\Invoke-BCTest.ps1")
. (Join-Path $PSScriptRoot "Testing\Install-BuildHelper.ps1")
. (Join-Path $PSScriptRoot "Testing\Invoke-TestsFromVSCode.ps1")

# VS Code
. (Join-Path $PSScriptRoot "VS Code\Install-VSCodeExtensionFromContainer.ps1")
. (Join-Path $PSScriptRoot "VS Code\Uninstall-VSCodeExtensionFromContainer.ps1")
. (Join-Path $PSScriptRoot "VS Code\New-VSCodeAppWithoutTest.ps1")
. (Join-Path $PSScriptRoot "VS Code\New-ContainerFromVSCode.ps1")

# Object Handling
. (Join-Path $PSScriptRoot "ObjectHandling\Import-ObjectsFromFolder.ps1")
. (Join-Path $PSScriptRoot "ObjectHandling\Export-ObjectsToFolder.ps1")
. (Join-Path $PSScriptRoot "ObjectHandling\Export-NavObjectsForMerge.ps1")