```ts
export function bumpRelease(version: string, part: string): string {
    if (typeof version !== 'string' || !version.match(/^\d+\.\d+\.\d+$/)) {
        throw new Error('Invalid version format');
    }

    const [major, minor, patch] = version.split('.').map(Number);

    if (isNaN(major) || isNaN(minor) || isNaN(patch)) {
        throw new Error('Invalid version format');
    }

    if (part !== 'major' && part !== 'minor' && part !== 'patch') {
        throw new Error('Invalid part name');
    }

    if (part === 'major') {
        return `${major + 1}.0.0`;
    } else if (part === 'minor') {
        return `${major}.${minor + 1}.0`;
    } else {
        return `${major}.${minor}.${patch + 1}`;
    }
}
```