@formatjs/intl-relativetimeformat
Version:
Formats JavaScript dates to relative time strings.
4,188 lines • 78.9 kB
JavaScript
//#region node_modules/.aspect_rules_js/@formatjs_generated+cldr.supported-locales@0.0.0/node_modules/@formatjs_generated/cldr.supported-locales/default-content.js
const defaultContent = {
"aa": ["aa-ET"],
"ab": ["ab-GE"],
"af": ["af-ZA"],
"agq": ["agq-CM"],
"ak": ["ak-GH"],
"am": ["am-ET"],
"an": ["an-ES"],
"ann": ["ann-NG"],
"apc": ["apc-SY"],
"ar": ["ar-001"],
"arn": ["arn-CL"],
"as": ["as-IN"],
"asa": ["asa-TZ"],
"ast": ["ast-ES"],
"az-Arab": ["az-Arab-IR"],
"az-Cyrl": ["az-Cyrl-AZ"],
"az-Latn": ["az-Latn-AZ"],
"ba": ["ba-RU"],
"bal-Arab": ["bal-Arab-PK"],
"bal-Latn": ["bal-Latn-PK"],
"bas": ["bas-CM"],
"be": ["be-BY"],
"bem": ["bem-ZM"],
"bew": ["bew-ID"],
"bez": ["bez-TZ"],
"bg": ["bg-BG"],
"bgc": ["bgc-IN"],
"bgn": ["bgn-PK"],
"bho": ["bho-IN"],
"blo": ["blo-BJ"],
"blt": ["blt-VN"],
"bm": ["bm-ML"],
"bm-Nkoo": ["bm-Nkoo-ML"],
"bn": ["bn-BD"],
"bo": ["bo-CN"],
"bqi": ["bqi-IR"],
"br": ["br-FR"],
"brx": ["brx-IN"],
"bs-Cyrl": ["bs-Cyrl-BA"],
"bs-Latn": ["bs-Latn-BA"],
"bss": ["bss-CM"],
"bua": ["bua-RU"],
"byn": ["byn-ER"],
"ca": ["ca-ES"],
"cad": ["cad-US"],
"cch": ["cch-NG"],
"ccp": ["ccp-BD"],
"ce": ["ce-RU"],
"ceb": ["ceb-PH"],
"cgg": ["cgg-UG"],
"cho": ["cho-US"],
"chr": ["chr-US"],
"cic": ["cic-US"],
"ckb": ["ckb-IQ"],
"co": ["co-FR"],
"cop": ["cop-EG"],
"cs": ["cs-CZ"],
"csw": ["csw-CA"],
"cu": ["cu-RU"],
"cv": ["cv-RU"],
"cy": ["cy-GB"],
"da": ["da-DK"],
"dav": ["dav-KE"],
"de": ["de-DE"],
"dje": ["dje-NE"],
"doi": ["doi-IN"],
"dsb": ["dsb-DE"],
"dua": ["dua-CM"],
"dv": ["dv-MV"],
"dyo": ["dyo-SN"],
"dz": ["dz-BT"],
"ebu": ["ebu-KE"],
"ee": ["ee-GH"],
"el": ["el-GR"],
"en-Dsrt": ["en-Dsrt-US"],
"en-Shaw": ["en-Shaw-GB"],
"en": ["en-US"],
"eo": ["eo-001"],
"es": ["es-ES"],
"et": ["et-EE"],
"eu": ["eu-ES"],
"ewo": ["ewo-CM"],
"fa": ["fa-IR"],
"ff-Adlm": ["ff-Adlm-GN"],
"ff-Latn": ["ff-Latn-SN"],
"fi": ["fi-FI"],
"fil": ["fil-PH"],
"fo": ["fo-FO"],
"fr": ["fr-FR"],
"frr": ["frr-DE"],
"fur": ["fur-IT"],
"fy": ["fy-NL"],
"ga": ["ga-IE"],
"gaa": ["gaa-GH"],
"gd": ["gd-GB"],
"gez": ["gez-ET"],
"gl": ["gl-ES"],
"gn": ["gn-PY"],
"gsw": ["gsw-CH"],
"gu": ["gu-IN"],
"guz": ["guz-KE"],
"gv": ["gv-IM"],
"ha-Arab": ["ha-Arab-NG"],
"ha": ["ha-NG"],
"haw": ["haw-US"],
"he": ["he-IL"],
"hi": ["hi-IN"],
"hi-Latn": ["hi-Latn-IN"],
"hnj-Hmnp": ["hnj-Hmnp-US"],
"hr": ["hr-HR"],
"hsb": ["hsb-DE"],
"ht": ["ht-HT"],
"hu": ["hu-HU"],
"hy": ["hy-AM"],
"ia": ["ia-001"],
"id": ["id-ID"],
"ie": ["ie-EE"],
"ig": ["ig-NG"],
"ii": ["ii-CN"],
"io": ["io-001"],
"is": ["is-IS"],
"it": ["it-IT"],
"iu": ["iu-CA"],
"iu-Latn": ["iu-Latn-CA"],
"ja": ["ja-JP"],
"jbo": ["jbo-001"],
"jgo": ["jgo-CM"],
"jmc": ["jmc-TZ"],
"jv": ["jv-ID"],
"ka": ["ka-GE"],
"kaa-Cyrl": ["kaa-Cyrl-UZ"],
"kaa-Latn": ["kaa-Latn-UZ"],
"kab": ["kab-DZ"],
"kaj": ["kaj-NG"],
"kam": ["kam-KE"],
"kcg": ["kcg-NG"],
"kde": ["kde-TZ"],
"kea": ["kea-CV"],
"kek": ["kek-GT"],
"ken": ["ken-CM"],
"kgp": ["kgp-BR"],
"khq": ["khq-ML"],
"ki": ["ki-KE"],
"kk-Arab": ["kk-Arab-CN"],
"kk-Cyrl": ["kk-Cyrl-KZ"],
"kkj": ["kkj-CM"],
"kl": ["kl-GL"],
"kln": ["kln-KE"],
"km": ["km-KH"],
"kn": ["kn-IN"],
"ko": ["ko-KR"],
"kok-Deva": ["kok-Deva-IN"],
"kok-Latn": ["kok-Latn-IN"],
"kpe": ["kpe-LR"],
"ks-Arab": ["ks-Arab-IN"],
"ks-Deva": ["ks-Deva-IN"],
"ksb": ["ksb-TZ"],
"ksf": ["ksf-CM"],
"ksh": ["ksh-DE"],
"ku-Arab": ["ku-Arab-IQ"],
"ku-Latn": ["ku-Latn-TR"],
"kw": ["kw-GB"],
"kxv-Deva": ["kxv-Deva-IN"],
"kxv-Latn": ["kxv-Latn-IN"],
"kxv-Orya": ["kxv-Orya-IN"],
"kxv-Telu": ["kxv-Telu-IN"],
"ky": ["ky-KG"],
"la": ["la-VA"],
"lag": ["lag-TZ"],
"lb": ["lb-LU"],
"lg": ["lg-UG"],
"lij": ["lij-IT"],
"lkt": ["lkt-US"],
"lld": ["lld-IT"],
"lmo": ["lmo-IT"],
"ln": ["ln-CD"],
"lo": ["lo-LA"],
"lrc": ["lrc-IR"],
"lt": ["lt-LT"],
"ltg": ["ltg-LV"],
"lu": ["lu-CD"],
"luo": ["luo-KE"],
"luy": ["luy-KE"],
"lv": ["lv-LV"],
"lzz": ["lzz-TR"],
"mai": ["mai-IN"],
"mas": ["mas-KE"],
"mdf": ["mdf-RU"],
"mer": ["mer-KE"],
"mfe": ["mfe-MU"],
"mg": ["mg-MG"],
"mgh": ["mgh-MZ"],
"mgo": ["mgo-CM"],
"mhn": ["mhn-IT"],
"mi": ["mi-NZ"],
"mic": ["mic-CA"],
"mk": ["mk-MK"],
"ml": ["ml-IN"],
"mn": ["mn-MN"],
"mn-Mong": ["mn-Mong-CN"],
"mni-Beng": ["mni-Beng-IN"],
"mni-Mtei": ["mni-Mtei-IN"],
"moh": ["moh-CA"],
"mr": ["mr-IN"],
"ms-Arab": ["ms-Arab-MY"],
"ms": ["ms-MY"],
"mt": ["mt-MT"],
"mua": ["mua-CM"],
"mus": ["mus-US"],
"mww-Hmnp": ["mww-Hmnp-US"],
"my": ["my-MM"],
"myv": ["myv-RU"],
"mzn": ["mzn-IR"],
"naq": ["naq-NA"],
"nb": ["nb-NO"],
"nd": ["nd-ZW"],
"nds": ["nds-DE"],
"ne": ["ne-NP"],
"nl": ["nl-NL"],
"nmg": ["nmg-CM"],
"nn": ["nn-NO"],
"nnh": ["nnh-CM"],
"nqo": ["nqo-GN"],
"nr": ["nr-ZA"],
"nso": ["nso-ZA"],
"nus": ["nus-SS"],
"nv": ["nv-US"],
"ny": ["ny-MW"],
"nyn": ["nyn-UG"],
"oc": ["oc-FR"],
"oka": ["oka-CA"],
"om": ["om-ET"],
"or": ["or-IN"],
"os": ["os-GE"],
"osa": ["osa-US"],
"pa-Arab": ["pa-Arab-PK"],
"pa-Guru": ["pa-Guru-IN"],
"pap": ["pap-CW"],
"pcm": ["pcm-NG"],
"pi-Latn": ["pi-Latn-GB"],
"pis": ["pis-SB"],
"pl": ["pl-PL"],
"pms": ["pms-IT"],
"prg": ["prg-PL"],
"ps": ["ps-AF"],
"pt": ["pt-BR"],
"qu": ["qu-PE"],
"quc": ["quc-GT"],
"raj": ["raj-IN"],
"rhg-Rohg": ["rhg-Rohg-MM"],
"rif": ["rif-MA"],
"rm": ["rm-CH"],
"rn": ["rn-BI"],
"ro": ["ro-RO"],
"rof": ["rof-TZ"],
"ru": ["ru-RU"],
"rw": ["rw-RW"],
"rwk": ["rwk-TZ"],
"sa": ["sa-IN"],
"sah": ["sah-RU"],
"saq": ["saq-KE"],
"sat-Deva": ["sat-Deva-IN"],
"sat-Olck": ["sat-Olck-IN"],
"sbp": ["sbp-TZ"],
"sc": ["sc-IT"],
"scn": ["scn-IT"],
"sd-Arab": ["sd-Arab-PK"],
"sd-Deva": ["sd-Deva-IN"],
"sdh": ["sdh-IR"],
"se": ["se-NO"],
"seh": ["seh-MZ"],
"ses": ["ses-ML"],
"sg": ["sg-CF"],
"sgs": ["sgs-LT"],
"shi-Latn": ["shi-Latn-MA"],
"shi-Tfng": ["shi-Tfng-MA"],
"shn": ["shn-MM"],
"si": ["si-LK"],
"sid": ["sid-ET"],
"sk": ["sk-SK"],
"skr": ["skr-PK"],
"sl": ["sl-SI"],
"sma": ["sma-SE"],
"smj": ["smj-SE"],
"smn": ["smn-FI"],
"sms": ["sms-FI"],
"sn": ["sn-ZW"],
"so": ["so-SO"],
"sq": ["sq-AL"],
"sr-Cyrl": ["sr-Cyrl-RS"],
"sr-Latn": ["sr-Latn-RS"],
"ss": ["ss-ZA"],
"ssy": ["ssy-ER"],
"st": ["st-ZA"],
"su-Latn": ["su-Latn-ID"],
"suz-Deva": ["suz-Deva-NP"],
"suz-Sunu": ["suz-Sunu-NP"],
"sv": ["sv-SE"],
"sw": ["sw-TZ"],
"syr": ["syr-IQ"],
"szl": ["szl-PL"],
"ta": ["ta-IN"],
"te": ["te-IN"],
"teo": ["teo-UG"],
"tg": ["tg-TJ"],
"th": ["th-TH"],
"ti": ["ti-ET"],
"tig": ["tig-ER"],
"tk": ["tk-TM"],
"tn": ["tn-ZA"],
"to": ["to-TO"],
"tok": ["tok-001"],
"tpi": ["tpi-PG"],
"tr": ["tr-TR"],
"trv": ["trv-TW"],
"trw": ["trw-PK"],
"ts": ["ts-ZA"],
"tt": ["tt-RU"],
"twq": ["twq-NE"],
"tyv": ["tyv-RU"],
"tzm": ["tzm-MA"],
"ug": ["ug-CN"],
"uk": ["uk-UA"],
"ur": ["ur-PK"],
"uz-Arab": ["uz-Arab-AF"],
"uz-Cyrl": ["uz-Cyrl-UZ"],
"uz-Latn": ["uz-Latn-UZ"],
"vai-Latn": ["vai-Latn-LR"],
"vai-Vaii": ["vai-Vaii-LR"],
"ve": ["ve-ZA"],
"vec": ["vec-IT"],
"vi": ["vi-VN"],
"vmw": ["vmw-MZ"],
"vo": ["vo-001"],
"vun": ["vun-TZ"],
"wa": ["wa-BE"],
"wae": ["wae-CH"],
"wal": ["wal-ET"],
"wbp": ["wbp-AU"],
"wo": ["wo-SN"],
"xh": ["xh-ZA"],
"xnr": ["xnr-IN"],
"xog": ["xog-UG"],
"yav": ["yav-CM"],
"yi": ["yi-UA"],
"yo": ["yo-NG"],
"yrl": ["yrl-BR"],
"yue-Hans": ["yue-Hans-CN"],
"yue-Hant": ["yue-Hant-HK"],
"za": ["za-CN"],
"zgh": ["zgh-MA"],
"zh-Hans": ["zh-Hans-CN"],
"zh-Hant": ["zh-Hant-TW"],
"zh-Latn": ["zh-Latn-CN"],
"zu": ["zu-ZA"]
};
//#endregion
//#region packages/ecma402-abstract/registerLocaleData.js
const explicitLocales = /* @__PURE__ */ new WeakMap();
function registerLocaleData(locale, data, localeData, availableLocales) {
let loaded = explicitLocales.get(localeData);
if (!loaded) {
loaded = /* @__PURE__ */ new Set();
explicitLocales.set(localeData, loaded);
}
loaded.add(locale);
const locales = [locale, ...defaultContent[locale] || []];
for (const tag of locales) {
if (tag === locale || !loaded.has(tag) || localeData[tag] === void 0) localeData[tag] = data;
availableLocales.add(tag);
}
for (const tag of locales) {
const parts = tag.split("-");
const fallbacks = [];
while (parts.length > 1) {
if (parts.length > 2 && parts[1].length === 4) fallbacks.push([parts[0], ...parts.slice(2)].join("-"));
parts.pop();
fallbacks.push(parts.join("-"));
}
for (const fallback of fallbacks) {
if (localeData[fallback] === void 0) localeData[fallback] = localeData[tag];
availableLocales.add(fallback);
}
}
}
//#endregion
//#region packages/ecma262-abstract/ToString.js
/**
* https://tc39.es/ecma262/#sec-tostring
*/
function ToString(o) {
if (typeof o === "symbol") throw TypeError("Cannot convert a Symbol value to a string");
return String(o);
}
//#endregion
//#region packages/ecma402-abstract/CanonicalizeLocaleList.js
/**
* http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist
* @param locales
*/
function CanonicalizeLocaleList$1(locales) {
return Intl.getCanonicalLocales(locales);
}
//#endregion
//#region node_modules/.aspect_rules_js/@formatjs+fast-memoize@0.0.0/node_modules/@formatjs/fast-memoize/index.js
function memoize(fn, options) {
const cache = options && options.cache ? options.cache : cacheDefault;
const serializer = options && options.serializer ? options.serializer : serializerDefault;
return (options && options.strategy ? options.strategy : strategyDefault)(fn, {
cache,
serializer
});
}
function isPrimitive(value) {
return value == null || typeof value === "number" || typeof value === "boolean";
}
function monadic(fn, cache, serializer, arg) {
const cacheKey = isPrimitive(arg) ? arg : serializer(arg);
let computedValue = cache.get(cacheKey);
if (typeof computedValue === "undefined") {
computedValue = fn.call(this, arg);
cache.set(cacheKey, computedValue);
}
return computedValue;
}
function variadic(fn, cache, serializer) {
const args = Array.prototype.slice.call(arguments, 3);
const cacheKey = serializer(args);
let computedValue = cache.get(cacheKey);
if (typeof computedValue === "undefined") {
computedValue = fn.apply(this, args);
cache.set(cacheKey, computedValue);
}
return computedValue;
}
function assemble(fn, context, strategy, cache, serialize) {
return strategy.bind(context, fn, cache, serialize);
}
function strategyDefault(fn, options) {
const strategy = fn.length === 1 ? monadic : variadic;
return assemble(fn, this, strategy, options.cache.create(), options.serializer);
}
function strategyVariadic(fn, options) {
return assemble(fn, this, variadic, options.cache.create(), options.serializer);
}
function strategyMonadic(fn, options) {
return assemble(fn, this, monadic, options.cache.create(), options.serializer);
}
const serializerDefault = function() {
return JSON.stringify(arguments);
};
var ObjectWithoutPrototypeCache = class {
constructor() {
this.cache = Object.create(null);
}
get(key) {
return this.cache[key];
}
set(key, value) {
this.cache[key] = value;
}
};
const cacheDefault = { create: function create() {
return new ObjectWithoutPrototypeCache();
} };
const strategies = {
variadic: strategyVariadic,
monadic: strategyMonadic
};
//#endregion
//#region node_modules/.aspect_rules_js/@formatjs+intl-localematcher@0.0.0/node_modules/@formatjs/intl-localematcher/index.js
/**
* http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist
* @param locales
*/
function CanonicalizeLocaleList(locales) {
return Intl.getCanonicalLocales(locales);
}
const matchingData = {
"language": {
"nb|no": 1,
"no|nb": 1,
"hr|bs": 4,
"bs|hr": 4,
"sh|bs": 4,
"bs|sh": 4,
"sh|hr": 4,
"hr|sh": 4,
"sh|sr": 4,
"sr|sh": 4,
"ssy|aa": 4,
"aa|ssy": 4,
"gsw|de": 4,
"lb|de": 4,
"da|no": 8,
"no|da": 8,
"da|nb": 8,
"nb|da": 8,
"ab|ru": 30,
"ach|en": 30,
"af|en": 20,
"ak|en": 30,
"am|en": 30,
"ay|es": 20,
"az|ru": 30,
"bal|ur": 20,
"be|ru": 20,
"bem|en": 30,
"bh|hi": 30,
"bn|en": 30,
"bo|zh": 20,
"br|fr": 20,
"ca|es": 20,
"ceb|fil": 30,
"chr|en": 20,
"ckb|ar": 30,
"co|fr": 20,
"crs|fr": 20,
"cs|sk": 20,
"sk|cs": 20,
"cy|en": 20,
"ee|en": 30,
"eo|en": 30,
"eu|es": 20,
"fo|da": 20,
"fy|nl": 20,
"ga|en": 20,
"gaa|en": 30,
"gd|en": 20,
"gl|es": 20,
"gn|es": 20,
"gu|hi": 30,
"ha|en": 30,
"haw|en": 20,
"ht|fr": 20,
"hy|ru": 30,
"ia|en": 30,
"ig|en": 30,
"is|en": 20,
"jv|id": 20,
"ka|en": 30,
"kg|fr": 30,
"kk|ru": 30,
"km|en": 30,
"kn|en": 30,
"kri|en": 30,
"ku|tr": 30,
"ky|ru": 30,
"la|it": 20,
"lg|en": 30,
"ln|fr": 30,
"lo|en": 30,
"loz|en": 30,
"lua|fr": 30,
"mai|hi": 20,
"mfe|en": 30,
"mg|fr": 30,
"mi|en": 20,
"ml|en": 30,
"mn|ru": 30,
"mr|hi": 30,
"ms|id": 30,
"mt|en": 30,
"my|en": 30,
"ne|en": 30,
"nn|nb": 20,
"nb|nn": 20,
"nn|no": 20,
"no|nn": 20,
"nso|en": 30,
"ny|en": 30,
"nyn|en": 30,
"oc|fr": 20,
"om|en": 30,
"or|en": 30,
"pa|en": 30,
"pcm|en": 20,
"ps|en": 30,
"qu|es": 30,
"rm|de": 20,
"rn|en": 30,
"rw|fr": 30,
"sa|hi": 30,
"scn|it": 20,
"sd|en": 30,
"si|en": 30,
"sn|en": 30,
"so|en": 30,
"sq|en": 30,
"st|en": 30,
"su|id": 20,
"sw|en": 30,
"ta|en": 30,
"te|en": 30,
"tg|ru": 30,
"ti|en": 30,
"tk|ru": 30,
"tlh|en": 30,
"tn|en": 30,
"to|en": 30,
"tt|ru": 30,
"tum|en": 30,
"ug|zh": 20,
"ur|en": 30,
"uz|ru": 30,
"wo|fr": 30,
"xh|en": 30,
"yi|en": 30,
"yo|en": 30,
"za|zh": 20,
"zu|en": 30,
"aao|ar": 10,
"abh|ar": 10,
"abv|ar": 10,
"acm|ar": 10,
"acq|ar": 10,
"acw|ar": 10,
"acx|ar": 10,
"acy|ar": 10,
"adf|ar": 10,
"aeb|ar": 10,
"aec|ar": 10,
"afb|ar": 10,
"apc|ar": 10,
"apd|ar": 10,
"arq|ar": 10,
"ars|ar": 10,
"ary|ar": 10,
"arz|ar": 10,
"auz|ar": 10,
"avl|ar": 10,
"ayh|ar": 10,
"ayl|ar": 10,
"ayn|ar": 10,
"ayp|ar": 10,
"bbz|ar": 10,
"pga|ar": 10,
"shu|ar": 10,
"ssh|ar": 10,
"azb|az": 10,
"vro|et": 10,
"ffm|ff": 10,
"fub|ff": 10,
"fue|ff": 10,
"fuf|ff": 10,
"fuh|ff": 10,
"fui|ff": 10,
"fuq|ff": 10,
"fuv|ff": 10,
"gnw|gn": 10,
"gui|gn": 10,
"gun|gn": 10,
"nhd|gn": 10,
"ikt|iu": 10,
"enb|kln": 10,
"eyo|kln": 10,
"niq|kln": 10,
"oki|kln": 10,
"pko|kln": 10,
"sgc|kln": 10,
"tec|kln": 10,
"tuy|kln": 10,
"knn|kok": 10,
"gkp|kpe": 10,
"ida|luy": 10,
"lkb|luy": 10,
"lko|luy": 10,
"lks|luy": 10,
"lri|luy": 10,
"lrm|luy": 10,
"lsm|luy": 10,
"lto|luy": 10,
"lts|luy": 10,
"lwg|luy": 10,
"nle|luy": 10,
"nyd|luy": 10,
"rag|luy": 10,
"ltg|lv": 10,
"bhr|mg": 10,
"bjq|mg": 10,
"bmm|mg": 10,
"bzc|mg": 10,
"msh|mg": 10,
"skg|mg": 10,
"tdx|mg": 10,
"tkg|mg": 10,
"txy|mg": 10,
"xmv|mg": 10,
"xmw|mg": 10,
"mvf|mn": 10,
"bjn|ms": 10,
"btj|ms": 10,
"bve|ms": 10,
"bvu|ms": 10,
"coa|ms": 10,
"dup|ms": 10,
"hji|ms": 10,
"id|ms": 10,
"jak|ms": 10,
"jax|ms": 10,
"kvb|ms": 10,
"kvr|ms": 10,
"kxd|ms": 10,
"lce|ms": 10,
"lcf|ms": 10,
"liw|ms": 10,
"max|ms": 10,
"meo|ms": 10,
"mfa|ms": 10,
"mfb|ms": 10,
"min|ms": 10,
"mqg|ms": 10,
"msi|ms": 10,
"mui|ms": 10,
"orn|ms": 10,
"ors|ms": 10,
"pel|ms": 10,
"pse|ms": 10,
"tmw|ms": 10,
"urk|ms": 10,
"vkk|ms": 10,
"vkt|ms": 10,
"xmm|ms": 10,
"zlm|ms": 10,
"zmi|ms": 10,
"dty|ne": 10,
"gax|om": 10,
"hae|om": 10,
"orc|om": 10,
"spv|or": 10,
"pbt|ps": 10,
"pst|ps": 10,
"qub|qu": 10,
"qud|qu": 10,
"quf|qu": 10,
"qug|qu": 10,
"quh|qu": 10,
"quk|qu": 10,
"qul|qu": 10,
"qup|qu": 10,
"qur|qu": 10,
"qus|qu": 10,
"quw|qu": 10,
"qux|qu": 10,
"quy|qu": 10,
"qva|qu": 10,
"qvc|qu": 10,
"qve|qu": 10,
"qvh|qu": 10,
"qvi|qu": 10,
"qvj|qu": 10,
"qvl|qu": 10,
"qvm|qu": 10,
"qvn|qu": 10,
"qvo|qu": 10,
"qvp|qu": 10,
"qvs|qu": 10,
"qvw|qu": 10,
"qvz|qu": 10,
"qwa|qu": 10,
"qwc|qu": 10,
"qwh|qu": 10,
"qws|qu": 10,
"qxa|qu": 10,
"qxc|qu": 10,
"qxh|qu": 10,
"qxl|qu": 10,
"qxn|qu": 10,
"qxo|qu": 10,
"qxp|qu": 10,
"qxr|qu": 10,
"qxt|qu": 10,
"qxu|qu": 10,
"qxw|qu": 10,
"sdc|sc": 10,
"sdn|sc": 10,
"sro|sc": 10,
"aae|sq": 10,
"aat|sq": 10,
"aln|sq": 10,
"aii|syr": 10,
"uzs|uz": 10,
"yih|yi": 10,
"cdo|zh": 10,
"cjy|zh": 10,
"cnp|zh": 10,
"cpx|zh": 10,
"csp|zh": 10,
"czh|zh": 10,
"czo|zh": 10,
"gan|zh": 10,
"hak|zh": 10,
"hnm|zh": 10,
"hsn|zh": 10,
"luh|zh": 10,
"lzh|zh": 10,
"mnp|zh": 10,
"nan|zh": 10,
"sjc|zh": 10,
"wuu|zh": 10,
"yue|zh": 10
},
"script": {
"am|en|Ethi|Latn": 10,
"az|ru|Latn|Cyrl": 10,
"bn|en|Beng|Latn": 10,
"bo|zh|Tibt|Hans": 10,
"hy|ru|Armn|Cyrl": 10,
"ka|en|Geor|Latn": 10,
"km|en|Khmr|Latn": 10,
"kn|en|Knda|Latn": 10,
"lo|en|Laoo|Latn": 10,
"ml|en|Mlym|Latn": 10,
"my|en|Mymr|Latn": 10,
"ne|en|Deva|Latn": 10,
"or|en|Orya|Latn": 10,
"pa|en|Guru|Latn": 10,
"ps|en|Arab|Latn": 10,
"sd|en|Arab|Latn": 10,
"si|en|Sinh|Latn": 10,
"ta|en|Taml|Latn": 10,
"te|en|Telu|Latn": 10,
"ti|en|Ethi|Latn": 10,
"tk|ru|Latn|Cyrl": 10,
"ur|en|Arab|Latn": 10,
"uz|ru|Latn|Cyrl": 10,
"yi|en|Hebr|Latn": 10,
"sr|sr|Latn|Cyrl": 5,
"sr|sr|Cyrl|Latn": 5,
"za|zh|Latn|Hans": 10,
"zh|zh|Hani|Hans": 20,
"zh|zh|Hani|Hant": 20,
"ar|ar|Latn|Arab": 20,
"bn|bn|Latn|Beng": 20,
"gu|gu|Latn|Gujr": 20,
"hi|hi|Latn|Deva": 20,
"kn|kn|Latn|Knda": 20,
"ml|ml|Latn|Mlym": 20,
"mr|mr|Latn|Deva": 20,
"ta|ta|Latn|Taml": 20,
"te|te|Latn|Telu": 20,
"zh|zh|Latn|Hans": 20,
"ja|ja|Latn|Jpan": 5,
"ja|ja|Hani|Jpan": 5,
"ja|ja|Hira|Jpan": 5,
"ja|ja|Kana|Jpan": 5,
"ja|ja|Hrkt|Jpan": 5,
"ja|ja|Hira|Hrkt": 5,
"ja|ja|Kana|Hrkt": 5,
"ko|ko|Hani|Kore": 5,
"ko|ko|Hang|Kore": 5,
"ko|ko|Jamo|Kore": 5,
"ko|ko|Jamo|Hang": 5
},
"region": {
"ar|ar|*|*": [
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
5,
4,
4,
5,
5,
5,
5,
4,
5,
5,
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
5,
4,
4
],
"en|en|*|*": [
4,
4,
5,
5,
4,
3,
4,
4,
4,
5,
5,
4,
3,
4,
5,
5,
4,
4,
5,
5,
5,
5,
5,
4,
4,
5,
5,
5,
4,
4,
5,
5,
4,
3,
4,
3,
3,
5,
5,
3,
3,
3,
4,
4,
5,
5,
4,
3,
4
],
"es|es|*|*": [
4,
5,
4,
5,
4,
4,
4,
5,
4,
5,
4,
5,
5,
5,
4,
5,
4,
5,
4,
4,
4,
5,
4,
5,
4,
5,
5,
5,
4,
5,
4,
5,
4,
4,
4,
4,
5,
4,
5,
4,
4,
4,
4,
5,
4,
5,
4,
4,
4
],
"pt|pt|*|*": [
4,
5,
4,
5,
4,
4,
4,
5,
4,
5,
4,
5,
5,
5,
4,
5,
4,
5,
4,
4,
4,
5,
4,
5,
4,
5,
5,
5,
4,
5,
4,
5,
4,
4,
4,
4,
5,
4,
5,
4,
4,
4,
4,
5,
4,
5,
4,
4,
4
],
"zh|zh|Hant|Hant": [
4,
4,
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
5,
4,
4,
4,
4,
4,
4,
5,
5,
5,
5,
5,
5,
5,
4
]
},
"regions": {
"142": [
0,
2,
6
],
"143": [0],
"145": [0],
"150": [0, 5],
"151": [0],
"154": [0, 5],
"155": [0],
"202": [0, 4],
"419": [1, 3],
"001": [
0,
1,
2,
3,
4,
5,
6
],
"002": [0, 4],
"003": [1, 3],
"005": [1],
"009": [0, 2],
"011": [0, 4],
"013": [1],
"014": [0],
"015": [0, 4],
"017": [0],
"018": [0],
"019": [1, 3],
"021": [1, 3],
"029": [1, 3],
"030": [0, 6],
"034": [0],
"035": [0, 2],
"039": [0],
"053": [0],
"054": [0],
"057": [0, 2],
"061": [0, 2],
"AC": [0],
"AD": [0],
"AE": [0],
"AF": [0],
"AG": [1],
"AI": [1],
"AL": [0],
"AM": [0],
"AO": [0],
"AQ": [0],
"AR": [1],
"AS": [2],
"AT": [0],
"AU": [0],
"AW": [1],
"AX": [0],
"AZ": [0],
"BA": [0],
"BB": [1],
"BD": [0],
"BE": [0],
"BF": [0],
"BG": [0],
"BH": [0],
"BI": [0],
"BJ": [0],
"BL": [1],
"BM": [1],
"BN": [0],
"BO": [1],
"BQ": [1],
"BR": [1],
"BS": [1],
"BT": [0],
"BV": [1],
"BW": [0],
"BY": [0],
"BZ": [1],
"CA": [3],
"CC": [0],
"CD": [0],
"CF": [0],
"CG": [0],
"CH": [0],
"CI": [0],
"CK": [0],
"CL": [1],
"CM": [0],
"CN": [0],
"CO": [1],
"CP": [0],
"CQ": [0],
"CR": [1],
"CU": [1],
"CV": [0],
"CW": [1],
"CX": [0],
"CY": [0],
"CZ": [0],
"DE": [0],
"DG": [0],
"DJ": [0],
"DK": [0],
"DM": [1],
"DO": [1],
"DZ": [4],
"EA": [0],
"EC": [1],
"EE": [0],
"EG": [0],
"EH": [4],
"ER": [0],
"ES": [0],
"ET": [0],
"EU": [0],
"EZ": [0],
"FI": [0],
"FJ": [0],
"FK": [1],
"FM": [0],
"FO": [0],
"FR": [0],
"GA": [0],
"GB": [5],
"GD": [1],
"GE": [0],
"GF": [1],
"GG": [0],
"GH": [0],
"GI": [0],
"GL": [1],
"GM": [0],
"GN": [0],
"GP": [1],
"GQ": [0],
"GR": [0],
"GS": [1],
"GT": [1],
"GU": [2],
"GW": [0],
"GY": [1],
"HK": [6],
"HM": [0],
"HN": [1],
"HR": [0],
"HT": [1],
"HU": [0],
"IC": [0],
"ID": [0],
"IE": [0],
"IL": [0],
"IM": [0],
"IN": [0],
"IO": [0],
"IQ": [0],
"IR": [0],
"IS": [0],
"IT": [0],
"JE": [0],
"JM": [1],
"JO": [0],
"JP": [0],
"KE": [0],
"KG": [0],
"KH": [0],
"KI": [0],
"KM": [0],
"KN": [1],
"KP": [0],
"KR": [0],
"KW": [0],
"KY": [1],
"KZ": [0],
"LA": [0],
"LB": [0],
"LC": [1],
"LI": [0],
"LK": [0],
"LR": [0],
"LS": [0],
"LT": [0],
"LU": [0],
"LV": [0],
"LY": [4],
"MA": [4],
"MC": [0],
"MD": [0],
"ME": [0],
"MF": [1],
"MG": [0],
"MH": [2],
"MK": [0],
"ML": [0],
"MM": [0],
"MN": [0],
"MO": [6],
"MP": [2],
"MQ": [1],
"MR": [4],
"MS": [1],
"MT": [0],
"MU": [0],
"MV": [0],
"MW": [0],
"MX": [1],
"MY": [0],
"MZ": [0],
"NA": [0],
"NC": [0],
"NE": [0],
"NF": [0],
"NG": [0],
"NI": [1],
"NL": [0],
"NO": [0],
"NP": [0],
"NR": [0],
"NU": [0],
"NZ": [0],
"OM": [0],
"PA": [1],
"PE": [1],
"PF": [0],
"PG": [0],
"PH": [2],
"PK": [0],
"PL": [0],
"PM": [1],
"PN": [0],
"PR": [3],
"PS": [0],
"PT": [0],
"PW": [0],
"PY": [1],
"QA": [0],
"QO": [0],
"RE": [0],
"RO": [0],
"RS": [0],
"RU": [0],
"RW": [0],
"SA": [0],
"SB": [0],
"SC": [0],
"SD": [0],
"SE": [0],
"SG": [0],
"SH": [0],
"SI": [0],
"SJ": [0],
"SK": [0],
"SL": [0],
"SM": [0],
"SN": [0],
"SO": [0],
"SR": [1],
"SS": [0],
"ST": [0],
"SV": [1],
"SX": [1],
"SY": [0],
"SZ": [0],
"TA": [0],
"TC": [1],
"TD": [0],
"TF": [0],
"TG": [0],
"TH": [0],
"TJ": [0],
"TK": [0],
"TL": [0],
"TM": [0],
"TN": [4],
"TO": [0],
"TR": [0],
"TT": [1],
"TV": [0],
"TW": [0],
"TZ": [0],
"UA": [0],
"UG": [0],
"UM": [2],
"UN": [
0,
1,
2,
3,
4,
5
],
"US": [3],
"UY": [1],
"UZ": [0],
"VA": [0],
"VC": [1],
"VE": [1],
"VG": [1],
"VI": [3],
"VN": [0],
"VU": [0],
"WF": [0],
"WS": [0],
"XK": [0],
"YE": [0],
"YT": [0],
"ZA": [0],
"ZM": [0],
"ZW": [0]
},
"defaults": [
80,
50,
4
],
"partitionCount": 7,
"paradigms": [
"en",
"en-GB",
"es",
"es-419",
"pt-BR",
"pt-PT"
],
"cldrVersion": "48",
"macroRegions": ["419"],
"canonicalAliases": {
"language": [
"aam",
"aar",
"abk",
"adp",
"afr",
"agp",
"ais",
"ajp",
"ajt",
"aju",
"aka",
"alb",
"als",
"amh",
"ara",
"arb",
"arg",
"arm",
"asd",
"asm",
"aue",
"ava",
"ave",
"aym",
"ayr",
"ayx",
"aze",
"azj",
"bak",
"bam",
"baq",
"baz",
"bcc",
"bcl",
"bel",
"ben",
"bgm",
"bh",
"bhk",
"bic",
"bih",
"bis",
"bjd",
"bjq",
"bkb",
"blg",
"bod",
"bos",
"bre",
"btb",
"bul",
"bur",
"bxk",
"bxr",
"cat",
"ccq",
"ces",
"cha",
"che",
"chi",
"chu",
"chv",
"cjr",
"cka",
"cld",
"cls",
"cmk",
"cmn",
"cnr",
"cor",
"cos",
"coy",
"cqu",
"cre",
"cwd",
"cym",
"cze",
"daf",
"dan",
"dap",
"dek",
"deu",
"dgo",
"dhd",
"dik",
"diq",
"dit",
"div",
"djl",
"dkl",
"drh",
"drr",
"drw",
"dud",
"duj",
"dut",
"dwl",
"dzo",
"ekk",
"ell",
"elp",
"emk",
"eng",
"epo",
"esk",
"est",
"eus",
"ewe",
"fao",
"fas",
"fat",
"fij",
"fin",
"fra",
"fre",
"fry",
"fuc",
"ful",
"gav",
"gaz",
"gbc",
"gbo",
"geo",
"ger",
"gfx",
"ggn",
"ggo",
"ggr",
"gio",
"gla",
"gle",
"glg",
"gli",
"glv",
"gno",
"gom",
"gre",
"grn",
"gti",
"gug",
"guj",
"guv",
"gya",
"hat",
"hau",
"hbs",
"hdn",
"hea",
"heb",
"her",
"him",
"hin",
"hmo",
"hrr",
"hrv",
"hun",
"hye",
"ibi",
"ibo",
"ice",
"ido",
"iii",
"ike",
"iku",
"ile",
"ill",
"ilw",
"in",
"ina",
"ind",
"ipk",
"isl",
"ita",
"iw",
"izi",
"jar",
"jav",
"jeg",
"ji",
"jpn",
"jw",
"kal",
"kan",
"kas",
"kat",
"kau",
"kaz",
"kdv",
"kgc",
"kgd",
"kgh",
"kgm",
"khk",
"khm",
"kik",
"kin",
"kir",
"kmr",
"knc",
"kng",
"koj",
"kom",
"kon",
"kor",
"kpp",
"kpv",
"krm",
"ktr",
"kua",
"kur",
"kvs",
"kwq",
"kxe",
"kxl",
"kzh",
"kzj",
"kzt",
"lak",
"lao",
"lat",
"lav",
"lbk",
"leg",
"lii",
"lim",
"lin",
"lit",
"llo",
"lmm",
"ltz",
"lub",
"lug",
"lvs",
"mac",
"mah",
"mal",
"mao",
"mar",
"may",
"meg",
"mgx",
"mhr",
"mkd",
"mlg",
"mlt",
"mnt",
"mo",
"mof",
"mol",
"mon",
"mri",
"msa",
"mst",
"mup",
"mwd",
"mwj",
"mya",
"myd",
"myt",
"nad",
"nau",
"nav",
"nbf",
"nbl",
"nbx",
"ncp",
"nde",
"ndo",
"nep",
"nld",
"nln",
"nlr",
"nno",
"nns",
"nnx",
"nob",
"nom",
"noo",
"nor",
"npi",
"nte",
"nts",
"nxu",
"nya",
"oci",
"ojg",
"oji",
"ori",
"orm",
"ory",
"oss",
"oun",
"pan",
"pat",
"pbu",
"pcr",
"per",
"pes",
"pli",
"plt",
"pmc",
"pmk",
"pmu",
"pnb",
"pol",
"por",
"ppa",
"ppr",
"prp",
"prs",
"pry",
"pus",
"puz",
"que",
"quz",
"rmr",
"rmy",
"roh",
"ron",
"rum",
"run",
"rus",
"sag",
"san",
"sap",
"sca",
"scc",
"scr",
"sgl",
"sgn",
"sh",
"sin",
"skk",
"slk",
"slo",
"slv",
"smd",
"sme",
"smo",
"sna",
"snb",
"snd",
"som",
"sot",
"spa",
"spy",
"sqi",
"src",
"srd",
"srp",
"ssw",
"sul",
"sum",
"sun",
"swa",
"swc",
"swe",
"swh",
"szd",
"tah",
"tam",
"tat",
"tdu",
"tel",
"tgg",
"tgk",
"tgl",
"tha",
"thc",
"thw",
"thx",
"tib",
"tid",
"tie",
"tir",
"tkk",
"tl",
"tlw",
"tmk",
"tmp",
"tne",
"tnf",
"ton",
"tpw",
"tsf",
"tsn",
"tso",
"ttq",
"tuk",
"tur",
"tw",
"twi",
"uig",
"ukr",
"umu",
"unp",
"uok",
"urd",
"uzb",
"uzn",
"ven",
"vie",
"vol",
"wel",
"wgw",
"wit",
"wiw",
"wln",
"wol",
"xba",
"xho",
"xia",
"xkh",
"xpe",
"xrq",
"xsj",
"xsl",
"xss",
"ybd",
"ydd",
"yen",
"yid",
"yiy",
"yma",
"ymt",
"yor",
"yos",
"yuu",
"zai",
"zha",
"zho",
"zir",
"zkb",
"zsm",
"zul",
"zyb"
],
"script": ["Qaai"],
"region": [
"004",
"008",
"010",
"012",
"016",
"020",
"024",
"028",
"031",
"032",
"036",
"040",
"044",
"048",
"050",
"051",
"052",
"056",
"060",
"062",
"064",
"068",
"070",
"072",
"074",
"076",
"084",
"086",
"090",
"092",
"096",
"100",
"104",
"108",
"112",
"116",
"120",
"124",
"132",
"136",
"140",
"144",
"148",
"152",
"156",
"158",
"162",
"166",
"170",
"172",
"174",
"175",
"178",
"180",
"184",
"188",
"191",
"192",
"196",
"200",
"203",
"204",
"208",
"212",
"214",
"218",
"222",
"226",
"230",
"231",
"232",
"233",
"234",
"238",
"239",
"242",
"246",
"248",
"249",
"250",
"254",
"258",
"260",
"262",
"266",
"268",
"270",
"275",
"276",
"278",
"280",
"288",
"292",
"296",
"300",
"304",
"308",
"312",
"316",
"320",
"324",
"328",
"332",
"334",
"336",
"340",
"344",
"348",
"352",
"356",
"360",
"364",
"368",
"372",
"376",
"380",
"384",
"388",
"392",
"398",
"400",
"404",
"408",
"410",
"414",
"417",
"418",
"422",
"426",
"428",
"430",
"434",
"438",
"440",
"442",
"446",
"450",
"454",
"458",
"462",
"466",
"470",
"474",
"478",
"480",
"484",
"492",
"496",
"498",
"499",
"500",
"504",
"508",
"512",
"516",
"520",
"524",
"528",
"530",
"531",
"532",
"533",
"534",
"535",
"536",
"540",
"548",
"554",
"558",
"562",
"566",
"570",
"574",
"578",
"580",
"581",
"582",
"583",
"584",
"585",
"586",
"591",
"598",
"600",
"604",
"608",
"612",
"616",
"620",
"624",
"626",
"630",
"634",
"638",
"642",
"643",
"646",
"652",
"654",
"659",
"660",
"662",
"663",
"666",
"670",
"674",
"678",
"682",
"686",
"688",
"690",
"694",
"702",
"703",
"704",
"705",
"706",
"710",
"716",
"720",
"724",
"728",
"729",
"732",
"736",
"740",
"744",
"748",
"752",
"756",
"760",
"762",
"764",
"768",
"772",
"776",
"780",
"784",
"788",
"792",
"795",
"796",
"798",
"800",
"804",
"807",
"810",
"818",
"826",
"830",
"831",
"832",
"833",
"834",
"840",
"850",
"854",
"858",
"860",
"862",
"876",
"882",
"886",
"887",
"890",
"891",
"894",
"958",
"959",
"960",
"962",
"963",
"964",
"965",
"966",
"967",
"968",
"969",
"970",
"971",
"972",
"973",
"974",
"975",
"976",
"977",
"978",
"979",
"980",
"981",
"982",
"983",
"984",
"985",
"986",
"987",
"988",
"989",
"990",
"991",
"992",
"993",
"994",
"995",
"996",
"997",
"998",
"999",
"AN",
"BU",
"CS",
"CT",
"DD",
"DY",
"FQ",
"FX",
"HV",
"JT",
"MI",
"NH",
"NQ",
"NT",
"PC",
"PU",
"PZ",
"QU",
"RH",
"SU",
"TP",
"UK",
"VD",
"WK",
"YD",
"YU",
"ZR"
]
},
"minLsrDistance": 1,
"demotion": 5
};
function splitUnicodeExtension(locale) {
const subtags = locale.split("-");
for (let i = 1; i < subtags.length; i++) {
if (subtags[i] === "x") break;
if (subtags[i] !== "u") continue;
let end = i + 1;
while (end < subtags.length && subtags[end].length > 1) end++;
return {
locale: [...subtags.slice(0, i), ...subtags.slice(end)].join("-"),
extension: "-" + subtags.slice(i, end).join("-")
};
}
return { locale };
}
/**
* Asserts that a condition is true, throwing an error if it is not.
* Used for runtime validation and type narrowing.
*
* @param condition - The condition to check
* @param message - Error message if condition is false
* @param Err - Error constructor to use (defaults to Error)
* @throws {Error} When condition is false
*
* @example
* ```ts
* invariant(locale !== undefined, 'Locale must be defined')
* // locale is now narrowed to non-undefined type
* ```
*/
function invariant$1(condition, message, Err = Error) {
if (!condition) throw new Err(message);
}
const DEFAULT_MATCHING_THRESHOLD = matchingData.defaults[1];
const DISTANCE_SCALE = 8;
const MIN_LSR_DISTANCE = matchingData.minLsrDistance;
const languageAliases = new Set(matchingData.canonicalAliases.language);
const scriptAliases = new Set(matchingData.canonicalAliases.script);
const regionAliases = new Set(matchingData.canonicalAliases.region);
function ascii(value, start, end, min, max) {
for (let i = start; i < end; i++) {
const code = value.charCodeAt(i);
if (code < min || code > max) return false;
}
return true;
}
function languageSubtag(value) {
return value.length >= 2 && value.length <= 8 && value.length !== 4 && ascii(value, 0, value.length, 97, 122);
}
function scriptSubtag(value) {
return value.length === 4 && ascii(value, 0, 1, 65, 90) && ascii(value, 1, 4, 97, 122);
}
function regionSubtag(value) {
return value.length === 2 && ascii(value, 0, 2, 65, 90) || value.length === 3 && ascii(value, 0, 3, 48, 57);
}
function pseudoRegion(value) {
return value === "XA" || value === "XB" || value === "XC";
}
function prefix(tag) {
let end = tag.indexOf("-");
if (end < 0) end = tag.length;
const language = tag.slice(0, end);
let script = "";
let region = "";
if (end < tag.length) {
let next = tag.indexOf("-", end + 1);
if (next < 0) next = tag.length;
let part = tag.slice(end + 1, next);
if (scriptSubtag(part)) {
script = part;
end = next;
next = tag.indexOf("-", end + 1);
if (next < 0) next = tag.length;
part = tag.slice(end + 1, next);
}
if (regionSubtag(part)) {
region = part;
end = next;
}
}
return {
language,
script,
region,
end
};
}
function fields(tag) {
const parsed = prefix(tag);
const language = parsed.language;
let { script, region } = parsed;
const parts = parsed.end < tag.length ? tag.slice(parsed.end + 1).split("-") : [];
const extension = parts.findIndex((part) => part.length === 1);
const pseudo = (extension < 0 ? parts : parts.slice(0, extension)).find((p) => p === "psaccent" || p === "psbidi" || p === "pscrack");
if (!pseudo && !pseudoRegion(region)) {
if (script === "Zzzz") script = "";
if (region === "ZZ") region = "";
}
const flags = (language !== "und" ? 4 : 0) | (script && script !== "Zzzz" ? 2 : 0) | (region && region !== "ZZ" ? 1 : 0);
return {
language,
script,
region,
flags,
pseudo,
key: tag === "und" || tag.startsWith("und-x-") ? tag : `${language}|${script}|${region}|${flags}|${pseudo || ""}`
};
}
const stringKey = (value) => value;
const canonicalize = memoize((tag) => {
const basic = prefix(tag);
if (basic.end === tag.length && languageSubtag(basic.language) && !languageAliases.has(basic.language) && !scriptAliases.has(basic.script) && !regionAliases.has(basic.region)) return tag;
return Intl.getCanonicalLocales(tag)[0];
}, { serializer: stringKey });
const maximal = memoize((tag) => {
const input = fields(tag);
if (tag === "und" || tag.startsWith("und-x-")) return {
...input,
language: tag,
script: "",
region: "",
flags: 7,
key: tag
};
const pseudo = pseudoRegion(input.region) ? input.region : input.pseudo === "psaccent" ? "XA" : input.pseudo === "psbidi" ? "XB" : input.pseudo === "pscrack" ? "XC" : void 0;
if (pseudo) {
const language = `${pseudo}:${input.language}`;
const script = `${pseudo}:${input.script}`;
const region = input.region || pseudo;
const flags = input.region ? 7 : 6;
return {
...input,
language,
script,
region,
flags,
key: `${language}|${script}|${region}|${flags}`
};
}
const locale = new Intl.Locale(tag).maximize();
let flags = input.flags;
if (matchingData.macroRegions.includes(input.region)) {
const regionLocale = new Intl.Locale(`und-${input.region}`).maximize();
if (input.language === "und" && (!input.script || input.script === regionLocale.script) || !input.script && !new Intl.Locale(input.language).maximize().script) flags &= -2;
}
let language = locale.language;
let script = locale.script || "";
let region = locale.region || "";
if (language === "und" || !script || !region) {
const fallback = new Intl.Locale([
"und",
script,
region
].filter(Boolean).join("-")).maximize();
if (language === "und") language = fallback.language === "und" ? "en" : fallback.language;
script ||= fallback.script || "Latn";
region ||= fallback.region || "US";
}
return {
language,
script,
region,
flags,
key: `${language}|${script}|${region}|${flags}`
};
}, { serializer: stringKey });
function rawKey(tag) {
if (tag === "und") return "@und";
if (tag.startsWith("und-x-")) return tag;
const parsed = prefix(tag);
const base = tag.slice(0, parsed.end);
if (pseudoRegion(parsed.region)) return base;
if (tag.includes("-ps")) {
const input = fields(tag);
if (input.pseudo) return input.key;
}
if (parsed.script !== "Zzzz" && parsed.region !== "ZZ") return base;
return [
parsed.language,
parsed.script === "Zzzz" ? "" : parsed.script,
parsed.region === "ZZ" ? "" : parsed.region
].filter(Boolean).join("-");
}
function distance(desired, supported) {
const languages = `${desired.language}|${supported.language}`;
let result = desired.language === supported.language ? 0 : matchingData.language[languages] ?? matchingData.defaults[0];
if (desired.script !== supported.script) result += matchingData.script[`${languages}|${desired.script}|${supported.script}`] ?? matchingData.defaults[1];
if (desired.region !== supported.region) {
const matrix = matchingData.region[`${languages}|${desired.script}|${supported.script}`] ?? matchingData.region[`${languages}|*|*`];
const desiredPartitions = matchingData.regions[desired.region];
const supportedPartitions = matchingData.regions[supported.region];
let regionDistance = matchingData.defaults[2];
if (matrix && desiredPartitions && supportedPartitions) {
regionDistance = 0;
for (const d of desiredPartitions) for (const s of supportedPartitions) regionDistance = Math.max(regionDistance, matrix[d * matchingData.partitionCount + s]);
}
result += regionDistance;
}
return result === 0 ? (desired.flags ^ supported.flags) / DISTANCE_SCALE : result;
}
/** ICU language/script/region distance, including fractional explicit-subtag ties. */
const findMatchingDistance = memoize((desired, supported) => distance(maximal(canonicalize(desired)), maximal(canonicalize(supported))), { serializer: (args) => `${args[0]}|${args[1]}` });
const supportedCache = /* @__PURE__ */ new WeakMap();
let paradigms;
function equivalentKey(lsr) {
return `${lsr.language}|${lsr.script}|${lsr.region}`;
}
function prepare(locales) {
let result = supportedCache.get(locales);
if (result && (result.original.length !== locales.length || result.original.some((tag, index) => tag !== locales[index]))) result = void 0;
if (!result) {
result = {
original: Array.from(locales),
tags: [],
raw: /* @__PURE__ */ new Map(),
orders: /* @__PURE__ */ new Map(),
best: /* @__PURE__ */ new Map()
};
supportedCache.set(locales, result);
}
return result;
}
function rawMatch(data, key) {
const cached = data.raw.get(key);
if (cached !== void 0) return cached;
for (let index = data.tags.length; index < data.original.length; index++) {
const tag = canonicalize(data.original[index]);
Object.defineProperty(data.tags, index, {
value: tag,
writable: true,
enumerable: true,
configurable: true
});
const candidate = rawKey(tag);
if (!data.raw.has(candidate)) data.raw.set(candidate, index);
if (candidate === key) return data.raw.get(candidate);
}
}
function order(data, defaultLocale) {
let result = data.orders.get(defaultLocale);
if (!result) {
if (!data.maximal) {
data.maximal = data.tags.map(maximal);
data.exact = /* @__PURE__ */ new Map();
data.maximal.forEach((lsr, index) => {
if (!data.exact.has(lsr.key)) data.exact.set(lsr.key, index);
});
}
paradigms ??= new Set(matchingData.paradigms.map((tag) => equivalentKey(maximal(canonicalize(tag)))));
const defaultKey = defaultLocale ? equivalentKey(maximal(canonicalize(defaultLocale))) : "";
const rank = (index) => {
const key = equivalentKey(data.maximal[index]);
return key === defaultKey ? 0 : paradigms.has(key) ? 1 : 2;
};
result = data.tags.map((_, i) => i).sort((a, b) => rank(a) - rank(b));
data.orders.set(defaultLocale, result);
}
return result;
}
function moreLikely(candidate, previous) {
if (candidate.language !== previous.language) return false;
if (!languageSubtag(candidate.language)) return false;
const likely = maximal(candidate.language);
return candidate.script !== previous.script ? candidate.script === likely.script : candidate.region !== previous.region && candidate.region === likely.region;
}
function equivalentMatch(desired, data) {
let best;
for (let flags = 0; flags < 8; flags++) {
const key = [
flags & 4 ? desired.language : "und",
flags & 2 ? desired.script : "",
flags & 1 ? desired.region : ""
].filter(Boolean).join("-");
const index = data.raw.get(key);
if (index === void 0) continue;
const supported = maximal(data.tags[index]);
if (equivalentKey(desired) !== equivalentKey(supported)) continue;
const d = distance(desired, supported);
if (d < Math.min(1, MIN_LSR_DISTANCE) && (!best || d < best.distance || d === best.distance && index < best.index)) best = {
index,
distance: d
};
}
return best;
}
/** Cached exact LSR lookup, then ICU distance matching. Threshold is exclusive. */
function findBestMatch(requestedLocales, supportedLocales, threshold = DEFAULT_MATCHING_THRESHOLD, defaultLocale = supportedLocales[0] || "", collectDistances = true) {
const result = { distances: {} };
if (!supportedLocales.length || !requestedLocales.length || threshold <= 0) return result;
const data = prepare(supportedLocales);
const demotion = matchingData.demotion;
let bestDistance = threshold;
for (let i = 0; i < requestedLocales.length && bestDistance > 0; i++) {
const desiredTag = requestedLocales[i];
const canonical = canonicalize(desiredTag);
const exactRaw = rawMatch(data, rawKey(canonical));
if (exactRaw !== void 0) {
result.matchedDesiredLocale = desiredTag;
result.matchedSupportedLocale = supportedLocales[exactRaw];
if (collectDistances) result.distances[desiredTag] = { [supportedLocales[exactRaw]]: i * demotion };
return result;
}
const desired = maximal(canonical);
const cacheKey = `${canonical}|${defaultLocale}`;
if (!collectDistances) {
const equivalent = data.best.get(cacheKey) || equivalentMatch(desired, data);
if (equivalent && equivalent.distance < Math.min(1, MIN_LSR_DISTANCE)) {
data.best.set(cacheKey, equivalent);
if (equivalent.distance < bestDistance) {
bestDistance = equivalent.distance;
result.matchedDesiredLocale = desiredTag;
result.matchedSupportedLocale = supportedLocales[equivalent.index];
}
bestDistance -= demotion;
continue;
}
}
const indexes = order(data, defaultLocale);
const exact = data.exact.get(desired.key);
if (exact !== void 0) {
result.matchedDesiredLocale = desiredTag;
result.matchedSupportedLocale = supportedLocales[exact];
if (collectDistances) result.distances[desiredTag] = { [supportedLocales[exact]]: i * demotion };
return result;
}
let best = collectDistances ? void 0 : data.best.get(cacheKey);
if (!best) {
best = {
index: -1,
distance: Infinity
};
const distances = {};
for (const index of indexes) {
const d = collectDistances ? findMatchingDistance(desiredTag, supportedLocales[index]) : distance(desired, data.maximal[index]);
if (collectDistances) distances[supportedLocales[index]] = d + i * demotion;
if (d < best.distance || d === best.distance && d >= 1 && best.index >= 0 && moreLikely(data.maximal[index], data.maximal[best.index])) best = {
index,
distance: d
};
}
if (collectDistances) result.distances[desiredTag] = distances;
else {
if (data.best.size >= 256) data.best.clear();
data.best.set(cacheKey, best);
}
}
if (best.distance < bestDistance) {
bestDistance = best.distance;
result.matchedDesiredLocale = desiredTag;
result.matchedSupportedLocale = supportedLocales[best.index];
}
bestDistance -= demotion;
}
return result;
}
/**
* https://tc39.es/ecma402/#sec-bestfitmatcher
* @param availableLocales
* @param requestedLocales
* @param getDefaultLocale
*/
function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
let foundLocale;
let extension;
const noExtensionLocaleMap = Object.create(null);
const noExtensionLocales = requestedLocales.map((l) => {
const { locale: noExtensionLocale } = splitUnicodeExtension(l);
noExtensionLocaleMap[noExtensionLocale] ??= l;
return noExtensionLocale;
});
const defaultLocale = getDefaultLocale();
const result = findBestMatch(noExtensionLocales, availableLocales, void 0, defaultLocale, false);
if (result.matchedSupportedLocale && result.matchedDesiredLocale) {
foundLocale = result.matchedSupportedLocale;
extension = splitUnicodeExtension(noExtensionLocaleMap[result.matchedDesiredLocale]).extension;
}
if (!foundLocale) return { locale: defaultLocale };
return {
locale: foundLocale,
extension
};
}
const subdivisionAlias = {
"cn11": "cnbj",
"cn12": "cntj",
"cn13": "cnhe",
"cn14": "cnsx",
"cn15": "cnmn",
"cn21": "cnln",
"cn22": "cnjl",
"cn23": "cnhl",
"cn31": "cnsh",
"cn32": "cnjs",
"cn33": "cnzj",
"cn34": "cnah",
"cn35": "cnfj",
"cn36": "cnjx",
"cn37": "cnsd",
"cn41": "cnha",
"cn42": "cnhb",
"cn43": "cnhn",
"cn44": "cngd",
"cn45": "cngx",
"cn46": "cnhi",
"cn50": "cncq",
"cn51": "cnsc",
"cn52": "cngz",
"cn53": "cnyn",
"cn54": "cnxz",
"cn61": "cnsn",
"cn62": "cngs",
"cn63": "cnqh",
"cn64": "cnnx",
"cn65": "cnxj",
"cn71": "twzzzz",
"cn91": "hkzzzz",
"cn92": "mozzzz",
"cz10a": "cz110",
"cz10b": "cz111",
"cz10c": "cz112",
"cz10d": "cz113",
"cz10e": "cz114",
"cz10f": "cz115",
"cz611": "cz663",
"cz612": "cz632",
"cz613": "cz633",
"cz614": "cz634",
"cz615": "cz635",
"cz621": "cz641",
"cz622": "cz642",
"cz623": "cz643",
"cz624": "cz644",
"cz626": "cz646",
"cz627": "cz647",
"czjc": "cz31",
"czjm": "cz64",
"czka": "cz41",
"czkr": "cz52",
"czli": "cz51",
"czmo": "cz80",
"czol": "cz71",
"czpa": "cz53",
"czpl": "cz32",
"czpr": "cz10",
"czst": "cz20",
"czus": "cz42",
"czvy": "cz63",
"czzl": "cz72",
"fi01": "axzzzz",
"fra": "frges",
"frb": "frnaq",
"frbl": "blzzzz",
"frc": "frara",
"frcp": "cpzzzz",
"frd": "frbfc",
"fre": "frbre",
"frf": "frcvl",
"frg": "frges",
"frgf": "gfzzzz",
"frgp": "gpzzzz",
"frgua": "gpzzzz",
"frh": "frcor",
"fri": "frbfc",
"frj": "fridf",
"frk": "frocc",
"frl": "frnaq",
"frlre": "rezzzz",
"frm": "frges",
"frmay": "ytzzzz",
"frmf": "mfzzzz",
"frmq": "mqzzzz",
"frn": "frocc",
"frnc": "nczzzz",
"fro": "frhdf",
"frp": "frnor",
"frpf": "pfzzzz",
"frpm": "pmzzzz",
"frq": "frnor",
"frr": "frpdl",
"frre": "rezzzz",
"frs": "frhdf",
"frt": "frnaq",
"frtf": "tfzzzz",
"fru": "frpac",
"frv": "frara",
"frwf": "wfzzzz",
"fryt": "ytzzzz",
"laxn": "laxs",
"lud": "lucl",
"lug": "luec",
"lul": "luca",
"mrnkc": "mr13",
"nlaw": "awzzzz",
"nlcw": "cwzzzz",
"nlsx": "sxzzzz",
"no23": "no50",
"nzn": "nzauk",
"nzs": "nzcan",
"omba": "ombj",
"omsh": "omsj",
"plds": "pl02",
"plkp": "pl04",
"pllb": "pl08",
"plld": "pl10",
"pllu": "pl06",
"plma": "pl12",
"plmz": "pl14",
"plop": "pl16",
"plpd": "pl20",
"plpk": "pl18",
"plpm": "pl22",
"plsk": "pl26",
"plsl": "pl24",
"plwn": "pl28",
"plwp": "pl30",
"plzp": "pl32",
"shta": "tazzzz",
"tteto": "tttob",
"ttrcm": "ttmrc",
"ttwto": "tttob",
"twkhq": "twkhh",
"twtnq": "twtnn",
"twtpq": "twnwt",
"twtxq": "twtxg",
"usas": "aszzzz",
"usgu": "guzzzz",
"usmp": "mpzzzz",
"uspr": "przzzz",
"usum": "umzzzz",
"usvi": "vizzzz"
};
const extensionAlias = {
"t": {
"d0": { "name": "charname" },
"m0": {
"beta-metsehaf": "betamets",
"ies-jes": "iesjes",
"names": "prprname",
"tekie-alibekit": "tekieali"
}
},
"u": {
"ca": {
"ethiopic-amete-alem": "ethioaa",
"islamicc": "islamic-civil"
},
"kb": { "yes": "true" },
"kc": { "yes": "true" },
"kh": { "yes": "true" },
"kk": { "yes": "true" },
"kn": { "yes": "true" },
"ks": {
"primary": "level1",
"tertiary": "level3"
},
"ms": { "imperial": "uksystem" },
"tz": {
"aqams": "aqmcm",
"aukns": "auhba",
"caffs": "cawnp",
"camtr": "cator",
"canpg": "cator",
"capnt": "caiql",
"cathu": "cator",
"cayzf": "caedm",
"cet": "bebru",
"cnckg": "cnsha",
"cnhrb": "cnsha",
"cnkhg": "cnurc",
"cst6cdt": "uschi",
"cuba": "cuhav",
"eet": "grath",
"egypt": "egcai",
"eire": "iedub",
"est": "papty",
"est5edt": "usnyc",
"factory": "unk",
"gaza": "gazastrp",
"gmt0": "gmt",
"hongkong": "hkhkg",
"hst": "ushnl",
"iceland": "isrey",
"iran": "irthr",
"israel": "jeruslm",
"jamaica": "jmkin",
"japan": "jptyo",
"libya": "lytip",
"met": "bebru",
"mncoq": "mnuln",
"mst": "usphx",
"mst7mdt": "usden",
"mxstis": "mxtij",
"navajo": "usden",
"poland": "plwaw",
"portugal": "ptlis",
"prc": "cnsha",
"pst8pdt": "uslax",
"roc": "twtpe",
"rok": "krsel",
"turkey": "trist",
"uaozh": "uaiev",
"uauzh": "uaiev",
"uct": "utc",
"umjon": "ushnl",
"usnavajo": "usden",
"wet": "ptlis",
"zulu": "utc"
}
}
};
function CanonicalizeUValue(ukey, uvalue) {
invariant$1(ukey !== void 0, `ukey must be defined`);
let canonicalized = "";
for (let i = 0; i < uvalue.length; i++) {
const code = uvalue.charCodeAt(i);
canonicalized += code >= 65 && code <= 90 ? String.fromCharCode(code + 32) : uvalue[i];
}
const aliases = Object.prototype.hasOwnProperty.call(extensionAlias.u, ukey) ? extensionAlias.u[ukey] : void 0;
if (aliases && Object.prototype.hasOwnProperty.call(aliases, canonicalized)) canonicalized = aliases[canonicalized];
if ((ukey === "rg" || ukey === "sd") && Object.prototype.hasOwnProperty.call(subdivisionAlias, canonicalized)) canonicalized = subdivisionAlias[canonicalized];
return canonicalized === "true" ? "" : canonicalized;
}
function CanonicalizeUnicodeLocaleId(locale) {
return Intl.getCanonicalLocales(locale)[0];
}
function InsertUnicodeExtensionAndCanonicalize(locale, attributes, keywords) {
invariant$1(splitUnicodeExtension(locale).extension === void 0, "Expected locale to not have a Unicode locale extension");
let extension = "-u";
for (const attr of attributes) extension += `-${attr}`;
for (const kw of keywords) {
const { key, value } = kw;
extension += `-${key}`;
if (value !== "") extension += `-${value}`;
}
if (extension === "-u") return CanonicalizeUnicodeLocaleId(locale);
let privateIndex = locale.indexOf("-x-");
let newLocale;
if (privateIndex === -1) newLocale = locale + extension;
else {
let preExtension = locale.slice(0, privateIndex);
let postExtension = locale.slice(privateIndex);
newLocale = preExtension + extension + postExtension;
}
return CanonicalizeUnicodeLocaleId(newLocale);
}
const availableLocalesSetCache = /* @__PURE__ */ new WeakMap();
/**
* https://tc39.es/ecma402/#sec-bestavailablelocale
* @param availableLocales
* @param locale
*/
function BestAvailableLocale(availableLocales, locale) {
let availableSet = availableLocalesSetCache.get(availableLocales);
if (!availableSet) {
availableSet = new Set(availableLocales);
availableLocalesSetCache.set(availableLocales, availableSet);
}
let candidate = locale;
while (true) {
if (availableSet.has(candidate)) return candidate;
let pos = candidate.lastIndexOf("-");
if (!~pos) return;
if (pos >= 2 && candidate[pos - 2] === "-") pos -= 2;
candidate = candidate.slice(0, pos);
}
}
/**
* https://tc39.es/ecma402/#sec-lookupmatcher
* @param availableLocales
* @param requestedLocales
* @param getDefaultLocale
*/
function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
const result = { locale: "" };
for (const locale of requestedLocales) {
const { locale: noExtensionLocale, extension } = splitUnicodeExtension(locale);
const availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
if (availableLocale) {
result.locale = availableLocale;
if (extension) result.extension = extension;
return result;
}
}
result.locale = getDefaultLocale();
return result;
}
function UnicodeExtensionComponents(extension) {
invariant$1(extension === extension.toLowerCase(), "Expected extension to be lowercase");
invariant$1(extension.slice(0, 3) === "-u-", "Expected extension to be a Unicode locale extension");
const attributes = [];
const keywords = [];
let keyword;
let size = extension.length;
let k = 3;
while (k < size) {
let e = extension.indexOf("-", k);
let len;
if (e === -1) len = size - k;
else len = e - k;
let subtag = extension.slice(k, k + len);
invariant$1(len >= 2, "Expected a subtag to have at least 2 characters");
if (keyword === void 0 && len != 2) {
if (attributes.indexOf(subtag) === -1) attributes.push(subtag);
} else if (len === 2) {
keyword = {
key: subtag,
value: ""
};
if (keywords.find((k) => k.key === keyword?.key) === void 0) keywords.push(keyword);
} else if (keyword?.value === "") keyword.value = subtag;
else {
invariant$1(keyword !== void 0, "Expected keyword to be defined");
keyword.value += "-" + subtag;
}
k += len + 1;
}
return {
attributes,
keywords
};
}
const availableLocaleArrays = /* @__PURE__ */ new WeakMap();
function localeArray(locales) {
if (Array.isArray(locales)) return locales;
const available = locales;
const cached = availableLocaleArrays.get(available);
if (cached?.length === available.size) {
let index = 0;
for (const locale of available) if (cached[index++] !== locale) {
const result = Array.from(available);
availableLocaleArrays.set(available, result);
return result;
}
return cached;
}
const result = Array.from(available);
availableLocaleArrays.set(available, result);
return result;
}
/**
* https://tc39.es/ecma402/#sec-resolvelocale
*/
function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {
const matcher = options.localeMatcher;
let r;
if (matcher === "lookup") r = LookupMatcher(localeArray(availableLocales), requestedLocales, getDefaultLocale);
else r = BestFitMatcher(localeArray(availableLocales), requestedLocales, getDefaultLocale);
if (r == null) r = {
locale: getDefaultLocale(),
extension: ""
};
let foundLocale = r.locale;
let foundLocaleData = localeData[foundLocale];
const result = Object.create(null);
result.locale = "en";
result.dataLocale = foundLocale;
let components;
let keywords;
if (r.extension) {
components = UnicodeExtensionComponents(r.extension);
keywords = components.keywords;
} else keywords = [];
let supportedKeywords = [];
for (const key of relevantExtensionKeys) {
let keyLocaleData = foundLocaleData?.[key] ?? [];
invariant$1(Array.isArray(keyLocaleData), `keyLocaleData for ${key} must be an array`);
let value = keyLocaleData[0];
invariant$1(value == null || typeof value === "string", `value must be a string, null, or undefined`);
let supportedKeyword;
let entry = keywords.find((k) => k.key === key);
if (entry) {
let requestedValue = entry.value;
if (requestedValue !== "") {
if (keyLocaleData.indexOf(requestedValue) > -1) {
value = requestedValue;
supportedKeyword = {
key,
value
};
}
} else if (keyLocaleData.indexOf("true") > -1) {
value = "true";
supportedKeyword = {
key,
value
};
}
}
let optionsValue = options[key];
invariant$1(optionsValue == null || typeof optionsValue === "string", `optionsValue must be a string or undefined`);
if (typeof optionsValue === "string") {
optionsValue = CanonicalizeUValue(key.toLowerCase(), optionsValue);
if (optionsValue === "") optionsValue = "true";
}
if (optionsValue !== void 0 && optionsValue !== value && keyLocaleData.indexOf(optionsValue) > -1) {
value = optionsValue;
supportedKeyword = void 0;
}
if (supportedKeyword) supportedKeywords.push(supportedKeyword);
result[key] = value;
}
let supportedAttributes = [];
if (supportedKeywords.length > 0) {
supportedAttributes = [];
foundLocale = InsertUnicodeExtensionAndCanonicalize(foundLocale, supportedAttributes, supportedKeywords);
}
result.locale = foundLocale;
return result;
}
/**
* https://tc39.es/ecma402/#sec-lookupsupportedlocales
* @param availableLocales
* @param requestedLocales
*/
function LookupSupportedLocales(availableLocales, requestedLocales) {
const subset = [];
for (const locale of requestedLocales) {
const { locale: noExtensionLocale } = splitUnicodeExtension(locale);
if (BestAvailableLocale(availableLocales, noExtensionLocale)) subset.push(locale);
}
return subset;
}
function match(requestedLocales, availableLocales, defaultLocale, opts) {
return ResolveLocale(availableLocales, CanonicalizeLocaleList(requestedLocales), { localeMatcher: opts?.algorithm || "best fit" }, [], {}, () => defaultLocale).locale;
}
//#endregion
//#region packages/ecma262-abstract/ToObject.js
/**
* https://tc39.es/ecma262/#sec-toobject
*/
function ToObject(arg) {
if (arg == null) throw new TypeError("undefined/null cannot be converted to object");
return Object(arg);
}
//#endregion
//#region packages/ecma402-abstract/GetOption.js
/**
* https://tc39.es/ecma402/#sec-getoption
* @param opts
* @param prop
* @param type
* @param values
* @param fallback
*/
function GetOption(opts, prop, type, values, fallback) {
if (opts === null || typeof opts !== "object" && typeof opts !== "function") throw new TypeError("Options must be an object");
let value = opts[prop];
if (value !== void 0) {
if (type !== "boolean" && type !== "string") throw new TypeError("invalid type");
if (type === "boolean") value = Boolean(value);
if (type === "string") value = ToString(value);
if (values !== void 0 && !values.filter((val) => val == value).length) throw new RangeError(`${value} is not within ${values.join(", ")}`);
return value;
}
return fallback;
}
//#endregion
//#region packages/ecma402-abstract/SupportedLocales.js
/**
* https://tc39.es/ecma402/#sec-supportedlocales
* @param availableLocales
* @param requestedLocales
* @param options
*/
function SupportedLocales(availableLocales, requestedLocales, options) {
let matcher = "best fit";
if (options !== void 0) {
options = ToObject(options);
matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
}
if (matcher === "best fit") return LookupSupportedLocales(Array.from(availableLocales), requestedLocales);
return LookupSupportedLocales(Array.from(availableLocales), requestedLocales);
}
//#endregion
//#region packages/ecma402-abstract/IsUnicodeLocaleIdentifierType.js
/** Tests the Unicode locale identifier `type` grammar, not locale support. */
function IsUnicodeLocaleIdentifierType(value) {
return /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*(?![\s\S])/i.test(value);
}
//#endregion
//#region packages/ecma402-abstract/CoerceOptionsToObject.js
/**
* https://tc39.es/ecma402/#sec-coerceoptionstoobject
* @param options
* @returns
*/
function CoerceOptionsToObject(options) {
if (typeof options === "undefined") return Object.create(null);
return ToObject(options);
}
//#endregion
//#region packages/ecma402-abstract/utils.js
function defineProperty(target, name, { value }) {
Object.defineProperty(target, name, {
configurable: true,
enumerable: false,
writable: true,
value
});
}
function ensureIntl() {
if (typeof Intl === "undefined") Object.defineProperty(globalThis, "Intl", {
configurable: true,
enumerable: false,
writable: true,
value: {}
});
return Intl;
}
function invariant(condition, message, Err = Error) {
if (!condition) throw new Err(message);
}
const createMemoizedNumberFormat = memoize((...args) => new Intl.NumberFormat(...args), { strategy: strategies.variadic });
const createMemoizedPluralRules = memoize((...args) => new Intl.PluralRules(...args), { strategy: strategies.variadic });
memoize((...args) => new Intl.ListFormat(...args), { strategy: strategies.variadic });
//#endregion
//#region packages/ecma402-abstract/RelativeTimeFormat/InitializeRelativeTimeFormat.js
function InitializeRelativeTimeFormat(rtf, locales, options, { getInternalSlots, availableLocales, relevantExtensionKeys, localeData, getDefaultLocale }) {
const internalSlots = getInternalSlots(rtf);
internalSlots.initializedRelativeTimeFormat = true;
const requestedLocales = CanonicalizeLocaleList$1(locales);
const opt = Object.create(null);
const opts = CoerceOptionsToObject(options);
opt.localeMatcher = GetOption(opts, "localeMatcher", "string", ["best fit", "lookup"], "best fit");
const numberingSystem = GetOption(opts, "numberingSystem", "string", void 0, void 0);
if (numberingSystem !== void 0) {
if (!IsUnicodeLocaleIdentifierType(numberingSystem)) throw new RangeError(`Invalid numbering system ${numberingSystem}`);
}
opt.nu = numberingSystem;
const r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);
const { locale, nu } = r;
internalSlots.locale = locale;
internalSlots.style = GetOption(opts, "style", "string", [
"long",
"narrow",
"short"
], "long");
internalSlots.numeric = GetOption(opts, "numeric", "string", ["always", "auto"], "always");
const fields = localeData[r.dataLocale];
invariant(!!fields, `Missing locale data for ${r.dataLocale}`);
internalSlots.fields = fields;
const nfOptions = Object.create(null);
nfOptions.numberingSystem = nu;
internalSlots.numberFormat = createMemoizedNumberFormat(locale, nfOptions);
internalSlots.pluralRules = createMemoizedPluralRules(locale);
internalSlots.numberingSystem = nu;
return rtf;
}
//#endregion
//#region packages/ecma262-abstract/SameValue.js
/**
* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-samevalue
*/
function SameValue(x, y) {
if (Object.is) return Object.is(x, y);
if (x === y) return x !== 0 || 1 / x === 1 / y;
return x !== x && y !== y;
}
//#endregion
//#region packages/ecma262-abstract/Type.js
/**
* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type
*/
function Type(x) {
if (x === null) return "Null";
if (typeof x === "undefined") return "Undefined";
if (typeof x === "function" || typeof x === "object") return "Object";
if (typeof x === "number") return "Number";
if (typeof x === "boolean") return "Boolean";
if (typeof x === "string") return "String";
if (typeof x === "symbol") return "Symbol";
if (typeof x === "bigint") return "BigInt";
}
//#endregion
//#region packages/ecma402-abstract/RelativeTimeFormat/SingularRelativeTimeUnit.js
/**
* https://tc39.es/proposal-intl-relative-time/#sec-singularrelativetimeunit
* @param unit
*/
function SingularRelativeTimeUnit(unit) {
invariant(Type(unit) === "String", "unit must be a string");
if (unit === "seconds") return "second";
if (unit === "minutes") return "minute";
if (unit === "hours") return "hour";
if (unit === "days") return "day";
if (unit === "weeks") return "week";
if (unit === "months") return "month";
if (unit === "quarters") return "quarter";
if (unit === "years") return "year";
if (unit !== "second" && unit !== "minute" && unit !== "hour" && unit !== "day" && unit !== "week" && unit !== "month" && unit !== "quarter" && unit !== "year") throw new RangeError("invalid unit");
return unit;
}
//#endregion
//#region packages/ecma402-abstract/PartitionPattern.js
/**
* Partition a pattern into a list of literals and placeholders
* https://tc39.es/ecma402/#sec-partitionpattern
* @param pattern
*/
function PartitionPattern(pattern) {
const result = [];
let beginIndex = pattern.indexOf("{");
let endIndex = 0;
let nextIndex = 0;
const length = pattern.length;
while (beginIndex < pattern.length && beginIndex > -1) {
endIndex = pattern.indexOf("}", beginIndex);
invariant(endIndex > beginIndex, `Invalid pattern ${pattern}`);
if (beginIndex > nextIndex) result.push({
type: "literal",
value: pattern.substring(nextIndex, beginIndex)
});
result.push({
type: pattern.substring(beginIndex + 1, endIndex),
value: void 0
});
nextIndex = endIndex + 1;
beginIndex = pattern.indexOf("{", nextIndex);
}
if (nextIndex < length) result.push({
type: "literal",
value: pattern.substring(nextIndex, length)
});
return result;
}
//#endregion
//#region packages/ecma402-abstract/RelativeTimeFormat/MakePartsList.js
function MakePartsList(pattern, unit, parts) {
const patternParts = PartitionPattern(pattern);
const result = [];
for (const patternPart of patternParts) if (patternPart.type === "literal") result.push({
type: "literal",
value: patternPart.value
});
else {
invariant(patternPart.type === "0", `Malformed pattern ${pattern}`);
for (const part of parts) result.push({
type: part.type,
value: part.value,
unit
});
}
return result;
}
//#endregion
//#region packages/ecma402-abstract/RelativeTimeFormat/PartitionRelativeTimePattern.js
function PartitionRelativeTimePattern(rtf, value, unit, { getInternalSlots }) {
invariant(Type(value) === "Number", `value must be number, instead got ${typeof value}`, TypeError);
invariant(Type(unit) === "String", `unit must be number, instead got ${typeof value}`, TypeError);
if (isNaN(value) || !isFinite(value)) throw new RangeError(`Invalid value ${value}`);
const resolvedUnit = SingularRelativeTimeUnit(unit);
const { fields, style, numeric, pluralRules, numberFormat } = getInternalSlots(rtf);
let entry = resolvedUnit;
if (style === "short") entry = `${resolvedUnit}-short`;
else if (style === "narrow") entry = `${resolvedUnit}-narrow`;
if (!(entry in fields)) entry = resolvedUnit;
const patterns = fields[entry];
if (numeric === "auto") {
if (ToString(value) in patterns) return [{
type: "literal",
value: patterns[ToString(value)]
}];
}
let tl = "future";
if (SameValue(value, -0) || value < 0) tl = "past";
const po = patterns[tl];
const fv = typeof numberFormat.formatToParts === "function" ? numberFormat.formatToParts(Math.abs(value)) : [{
type: "literal",
value: numberFormat.format(Math.abs(value)),
unit
}];
return MakePartsList(po[pluralRules.select(value)] ?? po.other, resolvedUnit, fv);
}
//#endregion
//#region packages/intl-relativetimeformat/get_internal_slots.ts
const internalSlotMap = /* @__PURE__ */ new WeakMap();
function getInternalSlots(x) {
let internalSlots = internalSlotMap.get(x);
if (!internalSlots) {
internalSlots = Object.create(null);
internalSlotMap.set(x, internalSlots);
}
return internalSlots;
}
//#endregion
//#region packages/intl-relativetimeformat/index.ts
var RelativeTimeFormat = class RelativeTimeFormat {
constructor(locales, options) {
return InitializeRelativeTimeFormat(this, locales, options, {
getInternalSlots,
availableLocales: RelativeTimeFormat.availableLocales,
relevantExtensionKeys: RelativeTimeFormat.relevantExtensionKeys,
localeData: RelativeTimeFormat.localeData,
getDefaultLocale: RelativeTimeFormat.getDefaultLocale
});
}
format(value, unit) {
if (typeof this !== "object") throw new TypeError("format was called on a non-object");
if (!getInternalSlots(this).initializedRelativeTimeFormat) throw new TypeError("format was called on a invalid context");
return PartitionRelativeTimePattern(this, +value, ToString(unit), { getInternalSlots }).map((el) => el.value).join("");
}
formatToParts(value, unit) {
if (typeof this !== "object") throw new TypeError("formatToParts was called on a non-object");
if (!getInternalSlots(this).initializedRelativeTimeFormat) throw new TypeError("formatToParts was called on a invalid context");
return PartitionRelativeTimePattern(this, +value, ToString(unit), { getInternalSlots });
}
resolvedOptions() {
if (typeof this !== "object") throw new TypeError("resolvedOptions was called on a non-object");
const internalSlots = getInternalSlots(this);
if (!internalSlots.initializedRelativeTimeFormat) throw new TypeError("resolvedOptions was called on a invalid context");
return {
locale: internalSlots.locale,
style: internalSlots.style,
numeric: internalSlots.numeric,
numberingSystem: internalSlots.numberingSystem
};
}
static supportedLocalesOf(locales, options) {
return SupportedLocales(RelativeTimeFormat.availableLocales, CanonicalizeLocaleList$1(locales), options);
}
static __addLocaleData(...data) {
for (const { data: d, locale } of data) {
registerLocaleData(locale, d, RelativeTimeFormat.localeData, RelativeTimeFormat.availableLocales);
if (!RelativeTimeFormat.__defaultLocale) RelativeTimeFormat.__defaultLocale = locale;
}
}
static {
this.localeData = {};
}
static {
this.availableLocales = /* @__PURE__ */ new Set();
}
static {
this.__defaultLocale = "";
}
static getDefaultLocale() {
return RelativeTimeFormat.__defaultLocale;
}
static {
this.relevantExtensionKeys = ["nu"];
}
static {
this.polyfilled = true;
}
};
try {
if (typeof Symbol !== "undefined") Object.defineProperty(RelativeTimeFormat.prototype, Symbol.toStringTag, {
value: "Intl.RelativeTimeFormat",
writable: false,
enumerable: false,
configurable: true
});
Object.defineProperty(RelativeTimeFormat.prototype.constructor, "length", {
value: 0,
writable: false,
enumerable: false,
configurable: true
});
Object.defineProperty(RelativeTimeFormat.supportedLocalesOf, "length", {
value: 1,
writable: false,
enumerable: false,
configurable: true
});
} catch {}
//#endregion
//#region node_modules/.aspect_rules_js/@formatjs_generated+cldr.supported-locales@0.0.0/node_modules/@formatjs_generated/cldr.supported-locales/intl-relativetimeformat.js
const supportedLocales = [
"aa",
"aa-DJ",
"aa-ER",
"ab",
"af",
"af-NA",
"agq",
"ak",
"am",
"an",
"ann",
"apc",
"ar",
"ar-AE",
"ar-BH",
"ar-DJ",
"ar-DZ",
"ar-EG",
"ar-EH",
"ar-ER",
"ar-IL",
"ar-IQ",
"ar-JO",
"ar-KM",
"ar-KW",
"ar-LB",
"ar-LY",
"ar-MA",
"ar-MR",
"ar-OM",
"ar-PS",
"ar-QA",
"ar-SA",
"ar-SD",
"ar-SO",
"ar-SS",
"ar-SY",
"ar-TD",
"ar-TN",
"ar-YE",
"arn",
"as",
"asa",
"ast",
"az",
"az-Arab",
"az-Arab-IQ",
"az-Arab-TR",
"az-Cyrl",
"az-Latn",
"ba",
"bal",
"bal-Arab",
"bal-Latn",
"bas",
"be",
"be-tarask",
"bem",
"bew",
"bez",
"bg",
"bgc",
"bgn",
"bgn-AE",
"bgn-AF",
"bgn-IR",
"bgn-OM",
"bho",
"blo",
"blt",
"bm",
"bm-Nkoo",
"bn",
"bn-IN",
"bo",
"bo-IN",
"bqi",
"br",
"brx",
"bs",
"bs-Cyrl",
"bs-Latn",
"bss",
"bua",
"byn",
"ca",
"ca-AD",
"ca-ES-valencia",
"ca-FR",
"ca-IT",
"cad",
"cch",
"ccp",
"ccp-IN",
"ce",
"ceb",
"cgg",
"cho",
"chr",
"cic",
"ckb",
"ckb-IR",
"co",
"cop",
"cs",
"csw",
"cu",
"cv",
"cy",
"da",
"da-GL",
"dav",
"de",
"de-AT",
"de-BE",
"de-CH",
"de-IT",
"de-LI",
"de-LU",
"dje",
"doi",
"dsb",
"dua",
"dv",
"dyo",
"dz",
"ebu",
"ee",
"ee-TG",
"el",
"el-CY",
"el-polyton",
"en",
"en-001",
"en-150",
"en-AE",
"en-AG",
"en-AI",
"en-AS",
"en-AT",
"en-AU",
"en-BB",
"en-BE",
"en-BI",
"en-BM",
"en-BS",
"en-BW",
"en-BZ",
"en-CA",
"en-CC",
"en-CH",
"en-CK",
"en-CM",
"en-CX",
"en-CY",
"en-CZ",
"en-DE",
"en-DG",
"en-DK",
"en-DM",
"en-Dsrt",
"en-EE",
"en-ER",
"en-ES",
"en-FI",
"en-FJ",
"en-FK",
"en-FM",
"en-FR",
"en-GB",
"en-GD",
"en-GE",
"en-GG",
"en-GH",
"en-GI",
"en-GM",
"en-GS",
"en-GU",
"en-GY",
"en-HK",
"en-HU",
"en-ID",
"en-IE",
"en-IL",
"en-IM",
"en-IN",
"en-IO",
"en-IT",
"en-JE",
"en-JM",
"en-JP",
"en-KE",
"en-KI",
"en-KN",
"en-KY",
"en-LC",
"en-LR",
"en-LS",
"en-LT",
"en-LV",
"en-MG",
"en-MH",
"en-MO",
"en-MP",
"en-MS",
"en-MT",
"en-MU",
"en-MV",
"en-MW",
"en-MY",
"en-NA",
"en-NF",
"en-NG",
"en-NL",
"en-NO",
"en-NR",
"en-NU",
"en-NZ",
"en-PG",
"en-PH",
"en-PK",
"en-PL",
"en-PN",
"en-PR",
"en-PT",
"en-PW",
"en-RO",
"en-RW",
"en-SB",
"en-SC",
"en-SD",
"en-SE",
"en-SG",
"en-SH",
"en-SI",
"en-SK",
"en-SL",
"en-SS",
"en-SX",
"en-SZ",
"en-Shaw",
"en-TC",
"en-TK",
"en-TO",
"en-TT",
"en-TV",
"en-TZ",
"en-UA",
"en-UG",
"en-UM",
"en-VC",
"en-VG",
"en-VI",
"en-VU",
"en-WS",
"en-ZA",
"en-ZM",
"en-ZW",
"eo",
"es",
"es-419",
"es-AR",
"es-BO",
"es-BR",
"es-BZ",
"es-CL",
"es-CO",
"es-CR",
"es-CU",
"es-DO",
"es-EA",
"es-EC",
"es-GQ",
"es-GT",
"es-HN",
"es-IC",
"es-MX",
"es-NI",
"es-PA",
"es-PE",
"es-PH",
"es-PR",
"es-PY",
"es-SV",
"es-US",
"es-UY",
"es-VE",
"et",
"eu",
"ewo",
"fa",
"fa-AF",
"ff",
"ff-Adlm",
"ff-Adlm-BF",
"ff-Adlm-CM",
"ff-Adlm-GH",
"ff-Adlm-GM",
"ff-Adlm-GW",
"ff-Adlm-LR",
"ff-Adlm-MR",
"ff-Adlm-NE",
"ff-Adlm-NG",
"ff-Adlm-SL",
"ff-Adlm-SN",
"ff-Latn",
"ff-Latn-BF",
"ff-Latn-CM",
"ff-Latn-GH",
"ff-Latn-GM",
"ff-Latn-GN",
"ff-Latn-GW",
"ff-Latn-LR",
"ff-Latn-MR",
"ff-Latn-NE",
"ff-Latn-NG",
"ff-Latn-SL",
"fi",
"fil",
"fo",
"fo-DK",
"fr",
"fr-BE",
"fr-BF",
"fr-BI",
"fr-BJ",
"fr-BL",
"fr-CA",
"fr-CD",
"fr-CF",
"fr-CG",
"fr-CH",
"fr-CI",
"fr-CM",
"fr-DJ",
"fr-DZ",
"fr-GA",
"fr-GF",
"fr-GN",
"fr-GP",
"fr-GQ",
"fr-HT",
"fr-KM",
"fr-LU",
"fr-MA",
"fr-MC",
"fr-MF",
"fr-MG",
"fr-ML",
"fr-MQ",
"fr-MR",
"fr-MU",
"fr-NC",
"fr-NE",
"fr-PF",
"fr-PM",
"fr-RE",
"fr-RW",
"fr-SC",
"fr-SN",
"fr-SY",
"fr-TD",
"fr-TG",
"fr-TN",
"fr-VU",
"fr-WF",
"fr-YT",
"frr",
"fur",
"fy",
"ga",
"ga-GB",
"gaa",
"gd",
"gez",
"gez-ER",
"gl",
"gn",
"gsw",
"gsw-FR",
"gsw-LI",
"gu",
"guz",
"gv",
"ha",
"ha-Arab",
"ha-Arab-SD",
"ha-GH",
"ha-NE",
"haw",
"he",
"hi",
"hi-Latn",
"hnj",
"hnj-Hmnp",
"hr",
"hr-BA",
"hsb",
"ht",
"hu",
"hy",
"ia",
"id",
"ie",
"ig",
"ii",
"io",
"is",
"it",
"it-CH",
"it-SM",
"it-VA",
"iu",
"iu-Latn",
"ja",
"jbo",
"jgo",
"jmc",
"jv",
"ka",
"kaa",
"kaa-Cyrl",
"kaa-Latn",
"kab",
"kaj",
"kam",
"kcg",
"kde",
"kea",
"kek",
"ken",
"kgp",
"khq",
"ki",
"kk",
"kk-Arab",
"kk-Cyrl",
"kk-KZ",
"kkj",
"kl",
"kln",
"km",
"kn",
"ko",
"ko-CN",
"ko-KP",
"kok",
"kok-Deva",
"kok-Latn",
"kpe",
"kpe-GN",
"ks",
"ks-Arab",
"ks-Deva",
"ksb",
"ksf",
"ksh",
"ku",
"ku-Arab",
"ku-Arab-IR",
"ku-Latn",
"ku-Latn-IQ",
"ku-Latn-SY",
"ku-TR",
"kw",
"kxv",
"kxv-Deva",
"kxv-Latn",
"kxv-Orya",
"kxv-Telu",
"ky",
"la",
"lag",
"lb",
"lg",
"lij",
"lkt",
"lld",
"lmo",
"ln",
"ln-AO",
"ln-CF",
"ln-CG",
"lo",
"lrc",
"lrc-IQ",
"lt",
"ltg",
"lu",
"luo",
"luy",
"lv",
"lzz",
"mai",
"mas",
"mas-TZ",
"mdf",
"mer",
"mfe",
"mg",
"mgh",
"mgo",
"mhn",
"mi",
"mic",
"mk",
"ml",
"mn",
"mn-Mong",
"mn-Mong-MN",
"mni",
"mni-Beng",
"mni-Mtei",
"moh",
"mr",
"ms",
"ms-Arab",
"ms-Arab-BN",
"ms-BN",
"ms-ID",
"ms-SG",
"mt",
"mua",
"mus",
"mww",
"mww-Hmnp",
"my",
"myv",
"mzn",
"naq",
"nb",
"nb-SJ",
"nd",
"nds",
"nds-NL",
"ne",
"ne-IN",
"nl",
"nl-AW",
"nl-BE",
"nl-BQ",
"nl-CW",
"nl-SR",
"nl-SX",
"nmg",
"nn",
"nnh",
"no",
"nqo",
"nr",
"nso",
"nus",
"nv",
"ny",
"nyn",
"oc",
"oc-ES",
"oka",
"oka-US",
"om",
"om-KE",
"or",
"os",
"os-RU",
"osa",
"pa",
"pa-Arab",
"pa-Guru",
"pap",
"pap-AW",
"pcm",
"pi",
"pi-Latn",
"pis",
"pl",
"pms",
"prg",
"ps",
"ps-PK",
"pt",
"pt-AO",
"pt-CH",
"pt-CV",
"pt-GQ",
"pt-GW",
"pt-LU",
"pt-MO",
"pt-MZ",
"pt-PT",
"pt-ST",
"pt-TL",
"qu",
"qu-BO",
"qu-EC",
"quc",
"raj",
"rhg",
"rhg-Rohg",
"rhg-Rohg-BD",
"rif",
"rm",
"rn",
"ro",
"ro-MD",
"rof",
"ru",
"ru-BY",
"ru-KG",
"ru-KZ",
"ru-MD",
"ru-UA",
"rw",
"rwk",
"sa",
"sah",
"saq",
"sat",
"sat-Deva",
"sat-Olck",
"sbp",
"sc",
"scn",
"sd",
"sd-Arab",
"sd-Deva",
"sdh",
"sdh-IQ",
"se",
"se-FI",
"se-SE",
"seh",
"ses",
"sg",
"sgs",
"shi",
"shi-Latn",
"shi-Tfng",
"shn",
"shn-TH",
"si",
"sid",
"sk",
"skr",
"sl",
"sma",
"sma-NO",
"smj",
"smj-NO",
"smn",
"sms",
"sn",
"so",
"so-DJ",
"so-ET",
"so-KE",
"sq",
"sq-MK",
"sq-XK",
"sr",
"sr-Cyrl",
"sr-Cyrl-BA",
"sr-Cyrl-ME",
"sr-Cyrl-XK",
"sr-Latn",
"sr-Latn-BA",
"sr-Latn-ME",
"sr-Latn-XK",
"ss",
"ss-SZ",
"ssy",
"st",
"st-LS",
"su",
"su-Latn",
"suz",
"suz-Deva",
"suz-Sunu",
"sv",
"sv-AX",
"sv-FI",
"sw",
"sw-CD",
"sw-KE",
"sw-UG",
"syr",
"syr-SY",
"szl",
"ta",
"ta-LK",
"ta-MY",
"ta-SG",
"te",
"teo",
"teo-KE",
"tg",
"th",
"ti",
"ti-ER",
"tig",
"tk",
"tn",
"tn-BW",
"to",
"tok",
"tpi",
"tr",
"tr-CY",
"trv",
"trw",
"ts",
"tt",
"twq",
"tyv",
"tzm",
"ug",
"uk",
"und",
"ur",
"ur-IN",
"uz",
"uz-Arab",
"uz-Cyrl",
"uz-Latn",
"vai",
"vai-Latn",
"vai-Vaii",
"ve",
"vec",
"vi",
"vmw",
"vo",
"vun",
"wa",
"wae",
"wal",
"wbp",
"wo",
"xh",
"xnr",
"xog",
"yav",
"yi",
"yo",
"yo-BJ",
"yrl",
"yrl-CO",
"yrl-VE",
"yue",
"yue-Hans",
"yue-Hant",
"yue-Hant-CN",
"yue-Hant-MO",
"za",
"zgh",
"zh",
"zh-Hans",
"zh-Hans-HK",
"zh-Hans-MO",
"zh-Hans-MY",
"zh-Hans-SG",
"zh-Hant",
"zh-Hant-HK",
"zh-Hant-MO",
"zh-Hant-MY",
"zh-Latn",
"zu"
];
//#endregion
//#region packages/intl-relativetimeformat/should-polyfill.ts
function supportedLocalesOf(locale) {
if (!locale) return true;
const locales = Array.isArray(locale) ? locale : [locale];
return Intl.RelativeTimeFormat.supportedLocalesOf(locales).length === locales.length;
}
function hasResolvedOptionsNumberingSystem(locale) {
try {
return "numberingSystem" in new Intl.RelativeTimeFormat(locale || "en", { numeric: "auto" }).resolvedOptions();
} catch {
return false;
}
}
function shouldPolyfill(locale = "en") {
if (typeof Intl === "undefined" || !("RelativeTimeFormat" in Intl) || !supportedLocalesOf(locale) || !hasResolvedOptionsNumberingSystem(locale)) return match([locale], supportedLocales, "en");
}
//#endregion
//#region packages/intl-relativetimeformat/polyfill.ts
const intl = ensureIntl();
if (shouldPolyfill()) {
defineProperty(intl, "RelativeTimeFormat", { value: RelativeTimeFormat });
const buf = globalThis.__FORMATJS_RELATIVETIMEFORMAT_DATA__;
if (buf) {
for (const d of buf) RelativeTimeFormat.__addLocaleData(d);
delete globalThis.__FORMATJS_RELATIVETIMEFORMAT_DATA__;
}
}
//#endregion
//# sourceMappingURL=polyfill.iife.js.map