```ts
export function aliasResolve(aliases: Record<string, string>, name: string): string {
  if (name === undefined || name === null) {
    throw new Error("Invalid argument: name must be provided");
  }
  return aliases[name] ?? name;
}

export function aliasNames(aliases: Record<string, string>): string[] {
  if (typeof aliases !== 'object' || aliases === null || Array.isArray(aliases)) {
    throw new Error("Invalid argument: aliases must be a non-empty object");
  }

  const names = Object.keys(aliases);
  return names.sort();
}
```