```ts
/** Melt a row of ice one simultaneous step at a time. */
export function thawRow(row: string, steps: number): string {
  if (typeof row !== "string" || row.length === 0) {
    throw new Error("thawRow expects a non-empty string row");
  }
  if (!Number.isInteger(steps) || steps < 0) {
    throw new Error("thawRow expects a non-negative whole number of steps");
  }

  let result = row;
  for (let i = 0; i < steps; ++i) {
    result = Array.from(result).map((cell, index, cells) => {
      if (cells[index - 1] === "." || cells[index + 1] === "." || index === 0 || index === cells.length - 1) {
        return ".";
      }
      return cell;
    }).join('');
  }

  return result;
}
```