Private/Resolve-SFQueryString.ps1

function Resolve-SFQueryString {
    [CmdletBinding()]
    [OutputType([string])]
    param (
        [AllowNull()]
        [string]$QueryString,

        [Parameter(Mandatory)]
        [DateTimeOffset]$AsOfDate
    )

    if ([string]::IsNullOrEmpty($QueryString)) {
        return ''
    }

    foreach ($match in [regex]::Matches($QueryString, '\{\{(?<token>[^{}]+)\}\}')) {
        if ($match.Groups['token'].Value -cne 'asOfDate') {
            throw "QueryString contains unsupported token '{{$($match.Groups['token'].Value)}}'."
        }
    }

    return $QueryString.Replace('{{asOfDate}}', $AsOfDate.UtcDateTime.ToString('yyyy-MM-dd'))
}