[CmdletBinding(DefaultParameterSetName = 'Check')] param( [Parameter(Mandatory, ParameterSetName = 'Check')] [switch]$Check, [Parameter(Mandatory, ParameterSetName = 'Bump')] [Parameter(Mandatory, ParameterSetName = 'Version')] [string]$Package, [Parameter(Mandatory, ParameterSetName = 'Bump')] [ValidateSet('major', 'minor', 'patch')] [string]$Bump, [Parameter(Mandatory, ParameterSetName = 'Version')] [ValidatePattern('^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$')] [string]$Version, [Parameter(ParameterSetName = 'Bump')] [Parameter(ParameterSetName = 'Version')] [switch]$DryRun ) $ErrorActionPreference = 'Stop' $scriptPath = Join-Path $PSScriptRoot 'update-shrinksdk-versions.mjs' $arguments = @($scriptPath) if ($Check) { $arguments += '--check' } else { $arguments += @('--package', $Package) if ($PSCmdlet.ParameterSetName -eq 'Bump') { $arguments += @('--bump', $Bump) } else { $arguments += @('--version', $Version) } if ($DryRun) { $arguments += '--dry-run' } } & node @arguments if ($LASTEXITCODE -ne 0) { throw "ShrinkSDK version tool failed with exit code $LASTEXITCODE." }