import { isValidHostLabel } from "@smithy/util-endpoints"; import { isIpAddress } from "../isIpAddress"; export const isVirtualHostableS3Bucket = (value, allowSubDomains = false) => { if (allowSubDomains) { for (const label of value.split(".")) { if (!isVirtualHostableS3Bucket(label)) { return false; } } return true; } if (!isValidHostLabel(value)) { return false; } if (value.length < 3 || value.length > 63) { return false; } if (value !== value.toLowerCase()) { return false; } if (isIpAddress(value)) { return false; } return true; };