import { z } from "zod";
const localeStringSchema = z.string().transform((value, ctx) => {
  const { language, region } = new Intl.Locale(value);
  const languageResult = languageCodeSchema.safeParse(language);
  if (languageResult.success && region == null && value === languageResult.data) {
    return languageResult.data;
  }
  const countryCodeResult = countryCodeSchema.safeParse(region);
  if (languageResult.success && countryCodeResult.success && value === `${languageResult.data}-${countryCodeResult.data}`) {
    return `${languageResult.data}-${countryCodeResult.data}`;
  }
  ctx.addIssue({
    code: z.ZodIssueCode.custom,
    message: `Locale is not supported: '${value}'. Make sure the locale is in the format of 'language', e.g. 'en', or 'language-country', e.g. 'en-US'.`
  });
  return z.NEVER;
});
const languageCodeSchema = z.enum([
  "aa",
  "ab",
  "ae",
  "af",
  "agq",
  "ak",
  "am",
  "an",
  "ar",
  "arn",
  "as",
  "asa",
  "ast",
  "av",
  "ay",
  "az",
  "ba",
  "bas",
  "be",
  "bem",
  "bez",
  "bg",
  "bh",
  "bi",
  "bm",
  "bn",
  "bo",
  "br",
  "brx",
  "bs",
  "byn",
  "ca",
  "ccp",
  "ce",
  "ceb",
  "cgg",
  "ch",
  "chr",
  "co",
  "cr",
  "cs",
  "cu",
  "cv",
  "cy",
  "da",
  "dav",
  "de",
  "dsb",
  "dua",
  "dv",
  "dyo",
  "dz",
  "ebu",
  "ee",
  "el",
  "en",
  "eo",
  "es",
  "et",
  "eu",
  "ewo",
  "fa",
  "ff",
  "fi",
  "fil",
  "fj",
  "fo",
  "fr",
  "fur",
  "fy",
  "ga",
  "gd",
  "gl",
  "gn",
  "gsw",
  "gu",
  "guz",
  "gv",
  "ha",
  "haw",
  "he",
  "hi",
  "ho",
  "hr",
  "ht",
  "hu",
  "hy",
  "hz",
  "ia",
  "id",
  "ie",
  "ig",
  "ii",
  "ik",
  "io",
  "is",
  "it",
  "iu",
  "ja",
  "jgo",
  "jmc",
  "jv",
  "ka",
  "kab",
  "kam",
  "kde",
  "kea",
  "kg",
  "khq",
  "ki",
  "kj",
  "kk",
  "kkj",
  "kl",
  "kln",
  "km",
  "kn",
  "ko",
  "kok",
  "kr",
  "ks",
  "ksb",
  "ksf",
  "ksh",
  "ku",
  "kv",
  "kw",
  "ky",
  "la",
  "lag",
  "lb",
  "lg",
  "li",
  "lkt",
  "ln",
  "lo",
  "lt",
  "lu",
  "luo",
  "luy",
  "lv",
  "mas",
  "mer",
  "mfe",
  "mg",
  "mgh",
  "mgo",
  "mh",
  "mi",
  "mk",
  "ml",
  "mn",
  "moh",
  "mr",
  "ms",
  "mt",
  "mua",
  "my",
  "na",
  "naq",
  "nb",
  "nd",
  "nds",
  "ne",
  "ng",
  "nl",
  "nmg",
  "nn",
  "nnh",
  "no",
  "nqo",
  "nr",
  "nso",
  "nus",
  "nv",
  "ny",
  "nyn",
  "oc",
  "oj",
  "om",
  "or",
  "os",
  "pa",
  "pi",
  "pl",
  "ps",
  "pt",
  "qu",
  "quc",
  "rm",
  "rn",
  "ro",
  "rof",
  "ru",
  "rw",
  "rwk",
  "sa",
  "sah",
  "saq",
  "sbp",
  "sc",
  "sd",
  "se",
  "seh",
  "ses",
  "sg",
  "shi",
  "si",
  "sk",
  "sl",
  "sm",
  "sma",
  "smj",
  "smn",
  "sms",
  "sn",
  "so",
  "sq",
  "sr",
  "ss",
  "ssy",
  "st",
  "su",
  "sv",
  "sw",
  "syr",
  "ta",
  "te",
  "teo",
  "tg",
  "th",
  "ti",
  "tig",
  "tk",
  "tl",
  "tn",
  "to",
  "tr",
  "ts",
  "tt",
  "tw",
  "twq",
  "ty",
  "tzm",
  "ug",
  "uk",
  "ur",
  "uz",
  "vai",
  "ve",
  "vi",
  "vo",
  "wa",
  "wo",
  "xh",
  "xog",
  "yi",
  "yo",
  "za",
  "zgh",
  "zh",
  "zu"
]);
const countryCodeSchema = z.enum([
  "419",
  "AF",
  "AX",
  "AL",
  "DZ",
  "AS",
  "AD",
  "AO",
  "AI",
  "AQ",
  "AG",
  "AR",
  "AM",
  "AW",
  "AU",
  "AT",
  "AZ",
  "BS",
  "BH",
  "BD",
  "BB",
  "BY",
  "BE",
  "BZ",
  "BJ",
  "BM",
  "BT",
  "BO",
  "BQ",
  "BA",
  "BW",
  "BV",
  "BR",
  "IO",
  "BN",
  "BG",
  "BF",
  "BI",
  "KH",
  "CM",
  "CA",
  "CV",
  "KY",
  "CF",
  "TD",
  "CL",
  "CN",
  "CX",
  "CC",
  "CO",
  "KM",
  "CG",
  "CD",
  "CK",
  "CR",
  "CI",
  "HR",
  "CU",
  "CW",
  "CY",
  "CZ",
  "DK",
  "DJ",
  "DM",
  "DO",
  "EC",
  "EG",
  "SV",
  "GQ",
  "ER",
  "EE",
  "ET",
  "FK",
  "FO",
  "FJ",
  "FI",
  "FR",
  "GF",
  "PF",
  "TF",
  "GA",
  "GM",
  "GE",
  "DE",
  "GH",
  "GI",
  "GR",
  "GL",
  "GD",
  "GP",
  "GU",
  "GT",
  "GG",
  "GN",
  "GW",
  "GY",
  "HT",
  "HM",
  "VA",
  "HN",
  "HK",
  "HU",
  "IS",
  "IN",
  "ID",
  "IR",
  "IQ",
  "IE",
  "IM",
  "IL",
  "IT",
  "JM",
  "JP",
  "JE",
  "JO",
  "KZ",
  "KE",
  "KI",
  "KP",
  "KR",
  "KW",
  "KG",
  "LA",
  "LV",
  "LB",
  "LS",
  "LR",
  "LY",
  "LI",
  "LT",
  "LU",
  "MO",
  "MK",
  "MG",
  "MW",
  "MY",
  "MV",
  "ML",
  "MT",
  "MH",
  "MQ",
  "MR",
  "MU",
  "YT",
  "MX",
  "FM",
  "MD",
  "MC",
  "MN",
  "ME",
  "MS",
  "MA",
  "MZ",
  "MM",
  "NA",
  "NR",
  "NP",
  "NL",
  "NC",
  "NZ",
  "NI",
  "NE",
  "NG",
  "NU",
  "NF",
  "MP",
  "NO",
  "OM",
  "PK",
  "PW",
  "PS",
  "PA",
  "PG",
  "PY",
  "PE",
  "PH",
  "PN",
  "PL",
  "PT",
  "PR",
  "QA",
  "RE",
  "RO",
  "RU",
  "RW",
  "BL",
  "SH",
  "KN",
  "LC",
  "MF",
  "PM",
  "VC",
  "WS",
  "SM",
  "ST",
  "SA",
  "SN",
  "RS",
  "SC",
  "SL",
  "SG",
  "SX",
  "SK",
  "SI",
  "SB",
  "SO",
  "ZA",
  "GS",
  "SS",
  "ES",
  "LK",
  "SD",
  "SR",
  "SJ",
  "SZ",
  "SE",
  "CH",
  "SY",
  "TW",
  "TJ",
  "TZ",
  "TH",
  "TL",
  "TG",
  "TK",
  "TO",
  "TT",
  "TN",
  "TR",
  "TM",
  "TC",
  "TV",
  "UG",
  "UA",
  "AE",
  "GB",
  "US",
  "UM",
  "UY",
  "UZ",
  "VU",
  "VE",
  "VN",
  "VG",
  "VI",
  "WF",
  "EH",
  "YE",
  "ZM",
  "ZW"
]);
export {
  localeStringSchema
};
//# sourceMappingURL=locale.js.map