Support/Package/Eigenverft.Manifested.Sandbox.Package.DefinitionReference.ps1

<#
    Eigenverft.Manifested.Sandbox.Package.DefinitionReference
#>


function Resolve-PackageDefinitionReference {
<#
.SYNOPSIS
Resolves a Package definition identity to a concrete definition document path.
 
.DESCRIPTION
Creates the repository-resolution seam used by the generic Package command
surface. This first pass intentionally supports only the shipped
EigenverftModule repository while preserving a clear extension point for later
local or remote repository depots.
#>

    [CmdletBinding()]
    param(
        [AllowNull()]
        [string]$RepositoryId = (Get-PackageDefaultRepositoryId),

        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$DefinitionId
    )

    $defaultRepositoryId = Get-PackageDefaultRepositoryId
    $resolvedRepositoryId = if ([string]::IsNullOrWhiteSpace($RepositoryId)) {
        $defaultRepositoryId
    }
    else {
        [string]$RepositoryId
    }

    if (-not [string]::Equals($resolvedRepositoryId, $defaultRepositoryId, [System.StringComparison]::OrdinalIgnoreCase)) {
        throw "Package repository '$resolvedRepositoryId' is not implemented yet. Only '$defaultRepositoryId' is currently supported."
    }

    return [pscustomobject]@{
        RepositoryId   = $defaultRepositoryId
        DefinitionId   = [string]$DefinitionId
        DefinitionPath = Get-PackageDefinitionPath -DefinitionId $DefinitionId
        SourceKind     = 'moduleLocal'
    }
}