Spaces:
Runtime error
Runtime error
var __defProp = Object.defineProperty; | |
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | |
var __publicField = (obj, key, value) => { | |
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); | |
return value; | |
}; | |
// node_modules/tslib/tslib.es6.js | |
var __assign = function() { | |
__assign = Object.assign || function __assign2(t) { | |
for (var s, i = 1, n = arguments.length; i < n; i++) { | |
s = arguments[i]; | |
for (var p in s) | |
if (Object.prototype.hasOwnProperty.call(s, p)) | |
t[p] = s[p]; | |
} | |
return t; | |
}; | |
return __assign.apply(this, arguments); | |
}; | |
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/error.js | |
var ErrorKind; | |
(function(ErrorKind2) { | |
ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_CLOSING_BRACE"] = 1] = "EXPECT_ARGUMENT_CLOSING_BRACE"; | |
ErrorKind2[ErrorKind2["EMPTY_ARGUMENT"] = 2] = "EMPTY_ARGUMENT"; | |
ErrorKind2[ErrorKind2["MALFORMED_ARGUMENT"] = 3] = "MALFORMED_ARGUMENT"; | |
ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_TYPE"] = 4] = "EXPECT_ARGUMENT_TYPE"; | |
ErrorKind2[ErrorKind2["INVALID_ARGUMENT_TYPE"] = 5] = "INVALID_ARGUMENT_TYPE"; | |
ErrorKind2[ErrorKind2["EXPECT_ARGUMENT_STYLE"] = 6] = "EXPECT_ARGUMENT_STYLE"; | |
ErrorKind2[ErrorKind2["INVALID_NUMBER_SKELETON"] = 7] = "INVALID_NUMBER_SKELETON"; | |
ErrorKind2[ErrorKind2["INVALID_DATE_TIME_SKELETON"] = 8] = "INVALID_DATE_TIME_SKELETON"; | |
ErrorKind2[ErrorKind2["EXPECT_NUMBER_SKELETON"] = 9] = "EXPECT_NUMBER_SKELETON"; | |
ErrorKind2[ErrorKind2["EXPECT_DATE_TIME_SKELETON"] = 10] = "EXPECT_DATE_TIME_SKELETON"; | |
ErrorKind2[ErrorKind2["UNCLOSED_QUOTE_IN_ARGUMENT_STYLE"] = 11] = "UNCLOSED_QUOTE_IN_ARGUMENT_STYLE"; | |
ErrorKind2[ErrorKind2["EXPECT_SELECT_ARGUMENT_OPTIONS"] = 12] = "EXPECT_SELECT_ARGUMENT_OPTIONS"; | |
ErrorKind2[ErrorKind2["EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE"] = 13] = "EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE"; | |
ErrorKind2[ErrorKind2["INVALID_PLURAL_ARGUMENT_OFFSET_VALUE"] = 14] = "INVALID_PLURAL_ARGUMENT_OFFSET_VALUE"; | |
ErrorKind2[ErrorKind2["EXPECT_SELECT_ARGUMENT_SELECTOR"] = 15] = "EXPECT_SELECT_ARGUMENT_SELECTOR"; | |
ErrorKind2[ErrorKind2["EXPECT_PLURAL_ARGUMENT_SELECTOR"] = 16] = "EXPECT_PLURAL_ARGUMENT_SELECTOR"; | |
ErrorKind2[ErrorKind2["EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT"] = 17] = "EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT"; | |
ErrorKind2[ErrorKind2["EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT"] = 18] = "EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT"; | |
ErrorKind2[ErrorKind2["INVALID_PLURAL_ARGUMENT_SELECTOR"] = 19] = "INVALID_PLURAL_ARGUMENT_SELECTOR"; | |
ErrorKind2[ErrorKind2["DUPLICATE_PLURAL_ARGUMENT_SELECTOR"] = 20] = "DUPLICATE_PLURAL_ARGUMENT_SELECTOR"; | |
ErrorKind2[ErrorKind2["DUPLICATE_SELECT_ARGUMENT_SELECTOR"] = 21] = "DUPLICATE_SELECT_ARGUMENT_SELECTOR"; | |
ErrorKind2[ErrorKind2["MISSING_OTHER_CLAUSE"] = 22] = "MISSING_OTHER_CLAUSE"; | |
ErrorKind2[ErrorKind2["INVALID_TAG"] = 23] = "INVALID_TAG"; | |
ErrorKind2[ErrorKind2["INVALID_TAG_NAME"] = 25] = "INVALID_TAG_NAME"; | |
ErrorKind2[ErrorKind2["UNMATCHED_CLOSING_TAG"] = 26] = "UNMATCHED_CLOSING_TAG"; | |
ErrorKind2[ErrorKind2["UNCLOSED_TAG"] = 27] = "UNCLOSED_TAG"; | |
})(ErrorKind || (ErrorKind = {})); | |
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/types.js | |
var TYPE; | |
(function(TYPE2) { | |
TYPE2[TYPE2["literal"] = 0] = "literal"; | |
TYPE2[TYPE2["argument"] = 1] = "argument"; | |
TYPE2[TYPE2["number"] = 2] = "number"; | |
TYPE2[TYPE2["date"] = 3] = "date"; | |
TYPE2[TYPE2["time"] = 4] = "time"; | |
TYPE2[TYPE2["select"] = 5] = "select"; | |
TYPE2[TYPE2["plural"] = 6] = "plural"; | |
TYPE2[TYPE2["pound"] = 7] = "pound"; | |
TYPE2[TYPE2["tag"] = 8] = "tag"; | |
})(TYPE || (TYPE = {})); | |
var SKELETON_TYPE; | |
(function(SKELETON_TYPE2) { | |
SKELETON_TYPE2[SKELETON_TYPE2["number"] = 0] = "number"; | |
SKELETON_TYPE2[SKELETON_TYPE2["dateTime"] = 1] = "dateTime"; | |
})(SKELETON_TYPE || (SKELETON_TYPE = {})); | |
function isLiteralElement(el) { | |
return el.type === TYPE.literal; | |
} | |
function isArgumentElement(el) { | |
return el.type === TYPE.argument; | |
} | |
function isNumberElement(el) { | |
return el.type === TYPE.number; | |
} | |
function isDateElement(el) { | |
return el.type === TYPE.date; | |
} | |
function isTimeElement(el) { | |
return el.type === TYPE.time; | |
} | |
function isSelectElement(el) { | |
return el.type === TYPE.select; | |
} | |
function isPluralElement(el) { | |
return el.type === TYPE.plural; | |
} | |
function isPoundElement(el) { | |
return el.type === TYPE.pound; | |
} | |
function isTagElement(el) { | |
return el.type === TYPE.tag; | |
} | |
function isNumberSkeleton(el) { | |
return !!(el && typeof el === "object" && el.type === SKELETON_TYPE.number); | |
} | |
function isDateTimeSkeleton(el) { | |
return !!(el && typeof el === "object" && el.type === SKELETON_TYPE.dateTime); | |
} | |
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/regex.generated.js | |
var SPACE_SEPARATOR_REGEX = /[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/; | |
// bazel-out/darwin-fastbuild/bin/packages/icu-skeleton-parser/lib/date-time.js | |
var DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g; | |
function parseDateTimeSkeleton(skeleton) { | |
var result = {}; | |
skeleton.replace(DATE_TIME_REGEX, function(match) { | |
var len = match.length; | |
switch (match[0]) { | |
case "G": | |
result.era = len === 4 ? "long" : len === 5 ? "narrow" : "short"; | |
break; | |
case "y": | |
result.year = len === 2 ? "2-digit" : "numeric"; | |
break; | |
case "Y": | |
case "u": | |
case "U": | |
case "r": | |
throw new RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead"); | |
case "q": | |
case "Q": | |
throw new RangeError("`q/Q` (quarter) patterns are not supported"); | |
case "M": | |
case "L": | |
result.month = ["numeric", "2-digit", "short", "long", "narrow"][len - 1]; | |
break; | |
case "w": | |
case "W": | |
throw new RangeError("`w/W` (week) patterns are not supported"); | |
case "d": | |
result.day = ["numeric", "2-digit"][len - 1]; | |
break; | |
case "D": | |
case "F": | |
case "g": | |
throw new RangeError("`D/F/g` (day) patterns are not supported, use `d` instead"); | |
case "E": | |
result.weekday = len === 4 ? "short" : len === 5 ? "narrow" : "short"; | |
break; | |
case "e": | |
if (len < 4) { | |
throw new RangeError("`e..eee` (weekday) patterns are not supported"); | |
} | |
result.weekday = ["short", "long", "narrow", "short"][len - 4]; | |
break; | |
case "c": | |
if (len < 4) { | |
throw new RangeError("`c..ccc` (weekday) patterns are not supported"); | |
} | |
result.weekday = ["short", "long", "narrow", "short"][len - 4]; | |
break; | |
case "a": | |
result.hour12 = true; | |
break; | |
case "b": | |
case "B": | |
throw new RangeError("`b/B` (period) patterns are not supported, use `a` instead"); | |
case "h": | |
result.hourCycle = "h12"; | |
result.hour = ["numeric", "2-digit"][len - 1]; | |
break; | |
case "H": | |
result.hourCycle = "h23"; | |
result.hour = ["numeric", "2-digit"][len - 1]; | |
break; | |
case "K": | |
result.hourCycle = "h11"; | |
result.hour = ["numeric", "2-digit"][len - 1]; | |
break; | |
case "k": | |
result.hourCycle = "h24"; | |
result.hour = ["numeric", "2-digit"][len - 1]; | |
break; | |
case "j": | |
case "J": | |
case "C": | |
throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead"); | |
case "m": | |
result.minute = ["numeric", "2-digit"][len - 1]; | |
break; | |
case "s": | |
result.second = ["numeric", "2-digit"][len - 1]; | |
break; | |
case "S": | |
case "A": | |
throw new RangeError("`S/A` (second) patterns are not supported, use `s` instead"); | |
case "z": | |
result.timeZoneName = len < 4 ? "short" : "long"; | |
break; | |
case "Z": | |
case "O": | |
case "v": | |
case "V": | |
case "X": | |
case "x": | |
throw new RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead"); | |
} | |
return ""; | |
}); | |
return result; | |
} | |
// bazel-out/darwin-fastbuild/bin/packages/icu-skeleton-parser/lib/regex.generated.js | |
var WHITE_SPACE_REGEX = /[\t-\r \x85\u200E\u200F\u2028\u2029]/i; | |
// bazel-out/darwin-fastbuild/bin/packages/icu-skeleton-parser/lib/number.js | |
function parseNumberSkeletonFromString(skeleton) { | |
if (skeleton.length === 0) { | |
throw new Error("Number skeleton cannot be empty"); | |
} | |
var stringTokens = skeleton.split(WHITE_SPACE_REGEX).filter(function(x) { | |
return x.length > 0; | |
}); | |
var tokens = []; | |
for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) { | |
var stringToken = stringTokens_1[_i]; | |
var stemAndOptions = stringToken.split("/"); | |
if (stemAndOptions.length === 0) { | |
throw new Error("Invalid number skeleton"); | |
} | |
var stem = stemAndOptions[0], options = stemAndOptions.slice(1); | |
for (var _a2 = 0, options_1 = options; _a2 < options_1.length; _a2++) { | |
var option = options_1[_a2]; | |
if (option.length === 0) { | |
throw new Error("Invalid number skeleton"); | |
} | |
} | |
tokens.push({ stem, options }); | |
} | |
return tokens; | |
} | |
function icuUnitToEcma(unit) { | |
return unit.replace(/^(.*?)-/, ""); | |
} | |
var FRACTION_PRECISION_REGEX = /^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g; | |
var SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\+|#+)?[rs]?$/g; | |
var INTEGER_WIDTH_REGEX = /(\*)(0+)|(#+)(0+)|(0+)/g; | |
var CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/; | |
function parseSignificantPrecision(str) { | |
var result = {}; | |
if (str[str.length - 1] === "r") { | |
result.roundingPriority = "morePrecision"; | |
} else if (str[str.length - 1] === "s") { | |
result.roundingPriority = "lessPrecision"; | |
} | |
str.replace(SIGNIFICANT_PRECISION_REGEX, function(_, g1, g2) { | |
if (typeof g2 !== "string") { | |
result.minimumSignificantDigits = g1.length; | |
result.maximumSignificantDigits = g1.length; | |
} else if (g2 === "+") { | |
result.minimumSignificantDigits = g1.length; | |
} else if (g1[0] === "#") { | |
result.maximumSignificantDigits = g1.length; | |
} else { | |
result.minimumSignificantDigits = g1.length; | |
result.maximumSignificantDigits = g1.length + (typeof g2 === "string" ? g2.length : 0); | |
} | |
return ""; | |
}); | |
return result; | |
} | |
function parseSign(str) { | |
switch (str) { | |
case "sign-auto": | |
return { | |
signDisplay: "auto" | |
}; | |
case "sign-accounting": | |
case "()": | |
return { | |
currencySign: "accounting" | |
}; | |
case "sign-always": | |
case "+!": | |
return { | |
signDisplay: "always" | |
}; | |
case "sign-accounting-always": | |
case "()!": | |
return { | |
signDisplay: "always", | |
currencySign: "accounting" | |
}; | |
case "sign-except-zero": | |
case "+?": | |
return { | |
signDisplay: "exceptZero" | |
}; | |
case "sign-accounting-except-zero": | |
case "()?": | |
return { | |
signDisplay: "exceptZero", | |
currencySign: "accounting" | |
}; | |
case "sign-never": | |
case "+_": | |
return { | |
signDisplay: "never" | |
}; | |
} | |
} | |
function parseConciseScientificAndEngineeringStem(stem) { | |
var result; | |
if (stem[0] === "E" && stem[1] === "E") { | |
result = { | |
notation: "engineering" | |
}; | |
stem = stem.slice(2); | |
} else if (stem[0] === "E") { | |
result = { | |
notation: "scientific" | |
}; | |
stem = stem.slice(1); | |
} | |
if (result) { | |
var signDisplay = stem.slice(0, 2); | |
if (signDisplay === "+!") { | |
result.signDisplay = "always"; | |
stem = stem.slice(2); | |
} else if (signDisplay === "+?") { | |
result.signDisplay = "exceptZero"; | |
stem = stem.slice(2); | |
} | |
if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) { | |
throw new Error("Malformed concise eng/scientific notation"); | |
} | |
result.minimumIntegerDigits = stem.length; | |
} | |
return result; | |
} | |
function parseNotationOptions(opt) { | |
var result = {}; | |
var signOpts = parseSign(opt); | |
if (signOpts) { | |
return signOpts; | |
} | |
return result; | |
} | |
function parseNumberSkeleton(tokens) { | |
var result = {}; | |
for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) { | |
var token = tokens_1[_i]; | |
switch (token.stem) { | |
case "percent": | |
case "%": | |
result.style = "percent"; | |
continue; | |
case "%x100": | |
result.style = "percent"; | |
result.scale = 100; | |
continue; | |
case "currency": | |
result.style = "currency"; | |
result.currency = token.options[0]; | |
continue; | |
case "group-off": | |
case ",_": | |
result.useGrouping = false; | |
continue; | |
case "precision-integer": | |
case ".": | |
result.maximumFractionDigits = 0; | |
continue; | |
case "measure-unit": | |
case "unit": | |
result.style = "unit"; | |
result.unit = icuUnitToEcma(token.options[0]); | |
continue; | |
case "compact-short": | |
case "K": | |
result.notation = "compact"; | |
result.compactDisplay = "short"; | |
continue; | |
case "compact-long": | |
case "KK": | |
result.notation = "compact"; | |
result.compactDisplay = "long"; | |
continue; | |
case "scientific": | |
result = __assign(__assign(__assign({}, result), { notation: "scientific" }), token.options.reduce(function(all, opt2) { | |
return __assign(__assign({}, all), parseNotationOptions(opt2)); | |
}, {})); | |
continue; | |
case "engineering": | |
result = __assign(__assign(__assign({}, result), { notation: "engineering" }), token.options.reduce(function(all, opt2) { | |
return __assign(__assign({}, all), parseNotationOptions(opt2)); | |
}, {})); | |
continue; | |
case "notation-simple": | |
result.notation = "standard"; | |
continue; | |
case "unit-width-narrow": | |
result.currencyDisplay = "narrowSymbol"; | |
result.unitDisplay = "narrow"; | |
continue; | |
case "unit-width-short": | |
result.currencyDisplay = "code"; | |
result.unitDisplay = "short"; | |
continue; | |
case "unit-width-full-name": | |
result.currencyDisplay = "name"; | |
result.unitDisplay = "long"; | |
continue; | |
case "unit-width-iso-code": | |
result.currencyDisplay = "symbol"; | |
continue; | |
case "scale": | |
result.scale = parseFloat(token.options[0]); | |
continue; | |
case "integer-width": | |
if (token.options.length > 1) { | |
throw new RangeError("integer-width stems only accept a single optional option"); | |
} | |
token.options[0].replace(INTEGER_WIDTH_REGEX, function(_, g1, g2, g3, g4, g5) { | |
if (g1) { | |
result.minimumIntegerDigits = g2.length; | |
} else if (g3 && g4) { | |
throw new Error("We currently do not support maximum integer digits"); | |
} else if (g5) { | |
throw new Error("We currently do not support exact integer digits"); | |
} | |
return ""; | |
}); | |
continue; | |
} | |
if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) { | |
result.minimumIntegerDigits = token.stem.length; | |
continue; | |
} | |
if (FRACTION_PRECISION_REGEX.test(token.stem)) { | |
if (token.options.length > 1) { | |
throw new RangeError("Fraction-precision stems only accept a single optional option"); | |
} | |
token.stem.replace(FRACTION_PRECISION_REGEX, function(_, g1, g2, g3, g4, g5) { | |
if (g2 === "*") { | |
result.minimumFractionDigits = g1.length; | |
} else if (g3 && g3[0] === "#") { | |
result.maximumFractionDigits = g3.length; | |
} else if (g4 && g5) { | |
result.minimumFractionDigits = g4.length; | |
result.maximumFractionDigits = g4.length + g5.length; | |
} else { | |
result.minimumFractionDigits = g1.length; | |
result.maximumFractionDigits = g1.length; | |
} | |
return ""; | |
}); | |
var opt = token.options[0]; | |
if (opt === "w") { | |
result = __assign(__assign({}, result), { trailingZeroDisplay: "stripIfInteger" }); | |
} else if (opt) { | |
result = __assign(__assign({}, result), parseSignificantPrecision(opt)); | |
} | |
continue; | |
} | |
if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) { | |
result = __assign(__assign({}, result), parseSignificantPrecision(token.stem)); | |
continue; | |
} | |
var signOpts = parseSign(token.stem); | |
if (signOpts) { | |
result = __assign(__assign({}, result), signOpts); | |
} | |
var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem); | |
if (conciseScientificAndEngineeringOpts) { | |
result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts); | |
} | |
} | |
return result; | |
} | |
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/time-data.generated.js | |
var timeData = { | |
"AX": [ | |
"H" | |
], | |
"BQ": [ | |
"H" | |
], | |
"CP": [ | |
"H" | |
], | |
"CZ": [ | |
"H" | |
], | |
"DK": [ | |
"H" | |
], | |
"FI": [ | |
"H" | |
], | |
"ID": [ | |
"H" | |
], | |
"IS": [ | |
"H" | |
], | |
"ML": [ | |
"H" | |
], | |
"NE": [ | |
"H" | |
], | |
"RU": [ | |
"H" | |
], | |
"SE": [ | |
"H" | |
], | |
"SJ": [ | |
"H" | |
], | |
"SK": [ | |
"H" | |
], | |
"AS": [ | |
"h", | |
"H" | |
], | |
"BT": [ | |
"h", | |
"H" | |
], | |
"DJ": [ | |
"h", | |
"H" | |
], | |
"ER": [ | |
"h", | |
"H" | |
], | |
"GH": [ | |
"h", | |
"H" | |
], | |
"IN": [ | |
"h", | |
"H" | |
], | |
"LS": [ | |
"h", | |
"H" | |
], | |
"PG": [ | |
"h", | |
"H" | |
], | |
"PW": [ | |
"h", | |
"H" | |
], | |
"SO": [ | |
"h", | |
"H" | |
], | |
"TO": [ | |
"h", | |
"H" | |
], | |
"VU": [ | |
"h", | |
"H" | |
], | |
"WS": [ | |
"h", | |
"H" | |
], | |
"001": [ | |
"H", | |
"h" | |
], | |
"AL": [ | |
"h", | |
"H", | |
"hB" | |
], | |
"TD": [ | |
"h", | |
"H", | |
"hB" | |
], | |
"ca-ES": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"CF": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"CM": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"fr-CA": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"gl-ES": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"it-CH": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"it-IT": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"LU": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"NP": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"PF": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"SC": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"SM": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"SN": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"TF": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"VA": [ | |
"H", | |
"h", | |
"hB" | |
], | |
"CY": [ | |
"h", | |
"H", | |
"hb", | |
"hB" | |
], | |
"GR": [ | |
"h", | |
"H", | |
"hb", | |
"hB" | |
], | |
"CO": [ | |
"h", | |
"H", | |
"hB", | |
"hb" | |
], | |
"DO": [ | |
"h", | |
"H", | |
"hB", | |
"hb" | |
], | |
"KP": [ | |
"h", | |
"H", | |
"hB", | |
"hb" | |
], | |
"KR": [ | |
"h", | |
"H", | |
"hB", | |
"hb" | |
], | |
"NA": [ | |
"h", | |
"H", | |
"hB", | |
"hb" | |
], | |
"PA": [ | |
"h", | |
"H", | |
"hB", | |
"hb" | |
], | |
"PR": [ | |
"h", | |
"H", | |
"hB", | |
"hb" | |
], | |
"VE": [ | |
"h", | |
"H", | |
"hB", | |
"hb" | |
], | |
"AC": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"AI": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"BW": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"BZ": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"CC": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"CK": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"CX": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"DG": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"FK": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"GB": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"GG": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"GI": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"IE": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"IM": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"IO": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"JE": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"LT": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"MK": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"MN": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"MS": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"NF": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"NG": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"NR": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"NU": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"PN": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"SH": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"SX": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"TA": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"ZA": [ | |
"H", | |
"h", | |
"hb", | |
"hB" | |
], | |
"af-ZA": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"AR": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"CL": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"CR": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"CU": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"EA": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"es-BO": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"es-BR": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"es-EC": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"es-ES": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"es-GQ": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"es-PE": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"GT": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"HN": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"IC": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"KG": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"KM": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"LK": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"MA": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"MX": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"NI": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"PY": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"SV": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"UY": [ | |
"H", | |
"h", | |
"hB", | |
"hb" | |
], | |
"JP": [ | |
"H", | |
"h", | |
"K" | |
], | |
"AD": [ | |
"H", | |
"hB" | |
], | |
"AM": [ | |
"H", | |
"hB" | |
], | |
"AO": [ | |
"H", | |
"hB" | |
], | |
"AT": [ | |
"H", | |
"hB" | |
], | |
"AW": [ | |
"H", | |
"hB" | |
], | |
"BE": [ | |
"H", | |
"hB" | |
], | |
"BF": [ | |
"H", | |
"hB" | |
], | |
"BJ": [ | |
"H", | |
"hB" | |
], | |
"BL": [ | |
"H", | |
"hB" | |
], | |
"BR": [ | |
"H", | |
"hB" | |
], | |
"CG": [ | |
"H", | |
"hB" | |
], | |
"CI": [ | |
"H", | |
"hB" | |
], | |
"CV": [ | |
"H", | |
"hB" | |
], | |
"DE": [ | |
"H", | |
"hB" | |
], | |
"EE": [ | |
"H", | |
"hB" | |
], | |
"FR": [ | |
"H", | |
"hB" | |
], | |
"GA": [ | |
"H", | |
"hB" | |
], | |
"GF": [ | |
"H", | |
"hB" | |
], | |
"GN": [ | |
"H", | |
"hB" | |
], | |
"GP": [ | |
"H", | |
"hB" | |
], | |
"GW": [ | |
"H", | |
"hB" | |
], | |
"HR": [ | |
"H", | |
"hB" | |
], | |
"IL": [ | |
"H", | |
"hB" | |
], | |
"IT": [ | |
"H", | |
"hB" | |
], | |
"KZ": [ | |
"H", | |
"hB" | |
], | |
"MC": [ | |
"H", | |
"hB" | |
], | |
"MD": [ | |
"H", | |
"hB" | |
], | |
"MF": [ | |
"H", | |
"hB" | |
], | |
"MQ": [ | |
"H", | |
"hB" | |
], | |
"MZ": [ | |
"H", | |
"hB" | |
], | |
"NC": [ | |
"H", | |
"hB" | |
], | |
"NL": [ | |
"H", | |
"hB" | |
], | |
"PM": [ | |
"H", | |
"hB" | |
], | |
"PT": [ | |
"H", | |
"hB" | |
], | |
"RE": [ | |
"H", | |
"hB" | |
], | |
"RO": [ | |
"H", | |
"hB" | |
], | |
"SI": [ | |
"H", | |
"hB" | |
], | |
"SR": [ | |
"H", | |
"hB" | |
], | |
"ST": [ | |
"H", | |
"hB" | |
], | |
"TG": [ | |
"H", | |
"hB" | |
], | |
"TR": [ | |
"H", | |
"hB" | |
], | |
"WF": [ | |
"H", | |
"hB" | |
], | |
"YT": [ | |
"H", | |
"hB" | |
], | |
"BD": [ | |
"h", | |
"hB", | |
"H" | |
], | |
"PK": [ | |
"h", | |
"hB", | |
"H" | |
], | |
"AZ": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"BA": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"BG": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"CH": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"GE": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"LI": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"ME": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"RS": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"UA": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"UZ": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"XK": [ | |
"H", | |
"hB", | |
"h" | |
], | |
"AG": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"AU": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"BB": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"BM": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"BS": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"CA": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"DM": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"en-001": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"FJ": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"FM": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"GD": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"GM": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"GU": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"GY": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"JM": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"KI": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"KN": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"KY": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"LC": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"LR": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"MH": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"MP": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"MW": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"NZ": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"SB": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"SG": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"SL": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"SS": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"SZ": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"TC": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"TT": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"UM": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"US": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"VC": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"VG": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"VI": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"ZM": [ | |
"h", | |
"hb", | |
"H", | |
"hB" | |
], | |
"BO": [ | |
"H", | |
"hB", | |
"h", | |
"hb" | |
], | |
"EC": [ | |
"H", | |
"hB", | |
"h", | |
"hb" | |
], | |
"ES": [ | |
"H", | |
"hB", | |
"h", | |
"hb" | |
], | |
"GQ": [ | |
"H", | |
"hB", | |
"h", | |
"hb" | |
], | |
"PE": [ | |
"H", | |
"hB", | |
"h", | |
"hb" | |
], | |
"AE": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"ar-001": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"BH": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"DZ": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"EG": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"EH": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"HK": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"IQ": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"JO": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"KW": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"LB": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"LY": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"MO": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"MR": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"OM": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"PH": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"PS": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"QA": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"SA": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"SD": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"SY": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"TN": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"YE": [ | |
"h", | |
"hB", | |
"hb", | |
"H" | |
], | |
"AF": [ | |
"H", | |
"hb", | |
"hB", | |
"h" | |
], | |
"LA": [ | |
"H", | |
"hb", | |
"hB", | |
"h" | |
], | |
"CN": [ | |
"H", | |
"hB", | |
"hb", | |
"h" | |
], | |
"LV": [ | |
"H", | |
"hB", | |
"hb", | |
"h" | |
], | |
"TL": [ | |
"H", | |
"hB", | |
"hb", | |
"h" | |
], | |
"zu-ZA": [ | |
"H", | |
"hB", | |
"hb", | |
"h" | |
], | |
"CD": [ | |
"hB", | |
"H" | |
], | |
"IR": [ | |
"hB", | |
"H" | |
], | |
"hi-IN": [ | |
"hB", | |
"h", | |
"H" | |
], | |
"kn-IN": [ | |
"hB", | |
"h", | |
"H" | |
], | |
"ml-IN": [ | |
"hB", | |
"h", | |
"H" | |
], | |
"te-IN": [ | |
"hB", | |
"h", | |
"H" | |
], | |
"KH": [ | |
"hB", | |
"h", | |
"H", | |
"hb" | |
], | |
"ta-IN": [ | |
"hB", | |
"h", | |
"hb", | |
"H" | |
], | |
"BN": [ | |
"hb", | |
"hB", | |
"h", | |
"H" | |
], | |
"MY": [ | |
"hb", | |
"hB", | |
"h", | |
"H" | |
], | |
"ET": [ | |
"hB", | |
"hb", | |
"h", | |
"H" | |
], | |
"gu-IN": [ | |
"hB", | |
"hb", | |
"h", | |
"H" | |
], | |
"mr-IN": [ | |
"hB", | |
"hb", | |
"h", | |
"H" | |
], | |
"pa-IN": [ | |
"hB", | |
"hb", | |
"h", | |
"H" | |
], | |
"TW": [ | |
"hB", | |
"hb", | |
"h", | |
"H" | |
], | |
"KE": [ | |
"hB", | |
"hb", | |
"H", | |
"h" | |
], | |
"MM": [ | |
"hB", | |
"hb", | |
"H", | |
"h" | |
], | |
"TZ": [ | |
"hB", | |
"hb", | |
"H", | |
"h" | |
], | |
"UG": [ | |
"hB", | |
"hb", | |
"H", | |
"h" | |
] | |
}; | |
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/date-time-pattern-generator.js | |
function getBestPattern(skeleton, locale) { | |
var skeletonCopy = ""; | |
for (var patternPos = 0; patternPos < skeleton.length; patternPos++) { | |
var patternChar = skeleton.charAt(patternPos); | |
if (patternChar === "j") { | |
var extraLength = 0; | |
while (patternPos + 1 < skeleton.length && skeleton.charAt(patternPos + 1) === patternChar) { | |
extraLength++; | |
patternPos++; | |
} | |
var hourLen = 1 + (extraLength & 1); | |
var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1); | |
var dayPeriodChar = "a"; | |
var hourChar = getDefaultHourSymbolFromLocale(locale); | |
if (hourChar == "H" || hourChar == "k") { | |
dayPeriodLen = 0; | |
} | |
while (dayPeriodLen-- > 0) { | |
skeletonCopy += dayPeriodChar; | |
} | |
while (hourLen-- > 0) { | |
skeletonCopy = hourChar + skeletonCopy; | |
} | |
} else if (patternChar === "J") { | |
skeletonCopy += "H"; | |
} else { | |
skeletonCopy += patternChar; | |
} | |
} | |
return skeletonCopy; | |
} | |
function getDefaultHourSymbolFromLocale(locale) { | |
var hourCycle = locale.hourCycle; | |
if (hourCycle === void 0 && locale.hourCycles && locale.hourCycles.length) { | |
hourCycle = locale.hourCycles[0]; | |
} | |
if (hourCycle) { | |
switch (hourCycle) { | |
case "h24": | |
return "k"; | |
case "h23": | |
return "H"; | |
case "h12": | |
return "h"; | |
case "h11": | |
return "K"; | |
default: | |
throw new Error("Invalid hourCycle"); | |
} | |
} | |
var languageTag = locale.language; | |
var regionTag; | |
if (languageTag !== "root") { | |
regionTag = locale.maximize().region; | |
} | |
var hourCycles = timeData[regionTag || ""] || timeData[languageTag || ""] || timeData["".concat(languageTag, "-001")] || timeData["001"]; | |
return hourCycles[0]; | |
} | |
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/parser.js | |
var _a; | |
var SPACE_SEPARATOR_START_REGEX = new RegExp("^".concat(SPACE_SEPARATOR_REGEX.source, "*")); | |
var SPACE_SEPARATOR_END_REGEX = new RegExp("".concat(SPACE_SEPARATOR_REGEX.source, "*$")); | |
function createLocation(start, end) { | |
return { start, end }; | |
} | |
var hasNativeStartsWith = !!String.prototype.startsWith; | |
var hasNativeFromCodePoint = !!String.fromCodePoint; | |
var hasNativeFromEntries = !!Object.fromEntries; | |
var hasNativeCodePointAt = !!String.prototype.codePointAt; | |
var hasTrimStart = !!String.prototype.trimStart; | |
var hasTrimEnd = !!String.prototype.trimEnd; | |
var hasNativeIsSafeInteger = !!Number.isSafeInteger; | |
var isSafeInteger = hasNativeIsSafeInteger ? Number.isSafeInteger : function(n) { | |
return typeof n === "number" && isFinite(n) && Math.floor(n) === n && Math.abs(n) <= 9007199254740991; | |
}; | |
var REGEX_SUPPORTS_U_AND_Y = true; | |
try { | |
re = RE("([^\\p{White_Space}\\p{Pattern_Syntax}]*)", "yu"); | |
REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec("a")) === null || _a === void 0 ? void 0 : _a[0]) === "a"; | |
} catch (_) { | |
REGEX_SUPPORTS_U_AND_Y = false; | |
} | |
var re; | |
var startsWith = hasNativeStartsWith ? function startsWith2(s, search, position) { | |
return s.startsWith(search, position); | |
} : function startsWith3(s, search, position) { | |
return s.slice(position, position + search.length) === search; | |
}; | |
var fromCodePoint = hasNativeFromCodePoint ? String.fromCodePoint : function fromCodePoint2() { | |
var codePoints = []; | |
for (var _i = 0; _i < arguments.length; _i++) { | |
codePoints[_i] = arguments[_i]; | |
} | |
var elements = ""; | |
var length = codePoints.length; | |
var i = 0; | |
var code; | |
while (length > i) { | |
code = codePoints[i++]; | |
if (code > 1114111) | |
throw RangeError(code + " is not a valid code point"); | |
elements += code < 65536 ? String.fromCharCode(code) : String.fromCharCode(((code -= 65536) >> 10) + 55296, code % 1024 + 56320); | |
} | |
return elements; | |
}; | |
var fromEntries = hasNativeFromEntries ? Object.fromEntries : function fromEntries2(entries) { | |
var obj = {}; | |
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) { | |
var _a2 = entries_1[_i], k = _a2[0], v = _a2[1]; | |
obj[k] = v; | |
} | |
return obj; | |
}; | |
var codePointAt = hasNativeCodePointAt ? function codePointAt2(s, index) { | |
return s.codePointAt(index); | |
} : function codePointAt3(s, index) { | |
var size = s.length; | |
if (index < 0 || index >= size) { | |
return void 0; | |
} | |
var first = s.charCodeAt(index); | |
var second; | |
return first < 55296 || first > 56319 || index + 1 === size || (second = s.charCodeAt(index + 1)) < 56320 || second > 57343 ? first : (first - 55296 << 10) + (second - 56320) + 65536; | |
}; | |
var trimStart = hasTrimStart ? function trimStart2(s) { | |
return s.trimStart(); | |
} : function trimStart3(s) { | |
return s.replace(SPACE_SEPARATOR_START_REGEX, ""); | |
}; | |
var trimEnd = hasTrimEnd ? function trimEnd2(s) { | |
return s.trimEnd(); | |
} : function trimEnd3(s) { | |
return s.replace(SPACE_SEPARATOR_END_REGEX, ""); | |
}; | |
function RE(s, flag) { | |
return new RegExp(s, flag); | |
} | |
var matchIdentifierAtIndex; | |
if (REGEX_SUPPORTS_U_AND_Y) { | |
IDENTIFIER_PREFIX_RE_1 = RE("([^\\p{White_Space}\\p{Pattern_Syntax}]*)", "yu"); | |
matchIdentifierAtIndex = function matchIdentifierAtIndex2(s, index) { | |
var _a2; | |
IDENTIFIER_PREFIX_RE_1.lastIndex = index; | |
var match = IDENTIFIER_PREFIX_RE_1.exec(s); | |
return (_a2 = match[1]) !== null && _a2 !== void 0 ? _a2 : ""; | |
}; | |
} else { | |
matchIdentifierAtIndex = function matchIdentifierAtIndex2(s, index) { | |
var match = []; | |
while (true) { | |
var c = codePointAt(s, index); | |
if (c === void 0 || _isWhiteSpace(c) || _isPatternSyntax(c)) { | |
break; | |
} | |
match.push(c); | |
index += c >= 65536 ? 2 : 1; | |
} | |
return fromCodePoint.apply(void 0, match); | |
}; | |
} | |
var IDENTIFIER_PREFIX_RE_1; | |
var Parser = function() { | |
function Parser2(message, options) { | |
if (options === void 0) { | |
options = {}; | |
} | |
this.message = message; | |
this.position = { offset: 0, line: 1, column: 1 }; | |
this.ignoreTag = !!options.ignoreTag; | |
this.locale = options.locale; | |
this.requiresOtherClause = !!options.requiresOtherClause; | |
this.shouldParseSkeletons = !!options.shouldParseSkeletons; | |
} | |
Parser2.prototype.parse = function() { | |
if (this.offset() !== 0) { | |
throw Error("parser can only be used once"); | |
} | |
return this.parseMessage(0, "", false); | |
}; | |
Parser2.prototype.parseMessage = function(nestingLevel, parentArgType, expectingCloseTag) { | |
var elements = []; | |
while (!this.isEOF()) { | |
var char = this.char(); | |
if (char === 123) { | |
var result = this.parseArgument(nestingLevel, expectingCloseTag); | |
if (result.err) { | |
return result; | |
} | |
elements.push(result.val); | |
} else if (char === 125 && nestingLevel > 0) { | |
break; | |
} else if (char === 35 && (parentArgType === "plural" || parentArgType === "selectordinal")) { | |
var position = this.clonePosition(); | |
this.bump(); | |
elements.push({ | |
type: TYPE.pound, | |
location: createLocation(position, this.clonePosition()) | |
}); | |
} else if (char === 60 && !this.ignoreTag && this.peek() === 47) { | |
if (expectingCloseTag) { | |
break; | |
} else { | |
return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition())); | |
} | |
} else if (char === 60 && !this.ignoreTag && _isAlpha(this.peek() || 0)) { | |
var result = this.parseTag(nestingLevel, parentArgType); | |
if (result.err) { | |
return result; | |
} | |
elements.push(result.val); | |
} else { | |
var result = this.parseLiteral(nestingLevel, parentArgType); | |
if (result.err) { | |
return result; | |
} | |
elements.push(result.val); | |
} | |
} | |
return { val: elements, err: null }; | |
}; | |
Parser2.prototype.parseTag = function(nestingLevel, parentArgType) { | |
var startPosition = this.clonePosition(); | |
this.bump(); | |
var tagName = this.parseTagName(); | |
this.bumpSpace(); | |
if (this.bumpIf("/>")) { | |
return { | |
val: { | |
type: TYPE.literal, | |
value: "<".concat(tagName, "/>"), | |
location: createLocation(startPosition, this.clonePosition()) | |
}, | |
err: null | |
}; | |
} else if (this.bumpIf(">")) { | |
var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true); | |
if (childrenResult.err) { | |
return childrenResult; | |
} | |
var children = childrenResult.val; | |
var endTagStartPosition = this.clonePosition(); | |
if (this.bumpIf("</")) { | |
if (this.isEOF() || !_isAlpha(this.char())) { | |
return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition())); | |
} | |
var closingTagNameStartPosition = this.clonePosition(); | |
var closingTagName = this.parseTagName(); | |
if (tagName !== closingTagName) { | |
return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition())); | |
} | |
this.bumpSpace(); | |
if (!this.bumpIf(">")) { | |
return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition())); | |
} | |
return { | |
val: { | |
type: TYPE.tag, | |
value: tagName, | |
children, | |
location: createLocation(startPosition, this.clonePosition()) | |
}, | |
err: null | |
}; | |
} else { | |
return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition())); | |
} | |
} else { | |
return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition())); | |
} | |
}; | |
Parser2.prototype.parseTagName = function() { | |
var startOffset = this.offset(); | |
this.bump(); | |
while (!this.isEOF() && _isPotentialElementNameChar(this.char())) { | |
this.bump(); | |
} | |
return this.message.slice(startOffset, this.offset()); | |
}; | |
Parser2.prototype.parseLiteral = function(nestingLevel, parentArgType) { | |
var start = this.clonePosition(); | |
var value = ""; | |
while (true) { | |
var parseQuoteResult = this.tryParseQuote(parentArgType); | |
if (parseQuoteResult) { | |
value += parseQuoteResult; | |
continue; | |
} | |
var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType); | |
if (parseUnquotedResult) { | |
value += parseUnquotedResult; | |
continue; | |
} | |
var parseLeftAngleResult = this.tryParseLeftAngleBracket(); | |
if (parseLeftAngleResult) { | |
value += parseLeftAngleResult; | |
continue; | |
} | |
break; | |
} | |
var location = createLocation(start, this.clonePosition()); | |
return { | |
val: { type: TYPE.literal, value, location }, | |
err: null | |
}; | |
}; | |
Parser2.prototype.tryParseLeftAngleBracket = function() { | |
if (!this.isEOF() && this.char() === 60 && (this.ignoreTag || !_isAlphaOrSlash(this.peek() || 0))) { | |
this.bump(); | |
return "<"; | |
} | |
return null; | |
}; | |
Parser2.prototype.tryParseQuote = function(parentArgType) { | |
if (this.isEOF() || this.char() !== 39) { | |
return null; | |
} | |
switch (this.peek()) { | |
case 39: | |
this.bump(); | |
this.bump(); | |
return "'"; | |
case 123: | |
case 60: | |
case 62: | |
case 125: | |
break; | |
case 35: | |
if (parentArgType === "plural" || parentArgType === "selectordinal") { | |
break; | |
} | |
return null; | |
default: | |
return null; | |
} | |
this.bump(); | |
var codePoints = [this.char()]; | |
this.bump(); | |
while (!this.isEOF()) { | |
var ch = this.char(); | |
if (ch === 39) { | |
if (this.peek() === 39) { | |
codePoints.push(39); | |
this.bump(); | |
} else { | |
this.bump(); | |
break; | |
} | |
} else { | |
codePoints.push(ch); | |
} | |
this.bump(); | |
} | |
return fromCodePoint.apply(void 0, codePoints); | |
}; | |
Parser2.prototype.tryParseUnquoted = function(nestingLevel, parentArgType) { | |
if (this.isEOF()) { | |
return null; | |
} | |
var ch = this.char(); | |
if (ch === 60 || ch === 123 || ch === 35 && (parentArgType === "plural" || parentArgType === "selectordinal") || ch === 125 && nestingLevel > 0) { | |
return null; | |
} else { | |
this.bump(); | |
return fromCodePoint(ch); | |
} | |
}; | |
Parser2.prototype.parseArgument = function(nestingLevel, expectingCloseTag) { | |
var openingBracePosition = this.clonePosition(); | |
this.bump(); | |
this.bumpSpace(); | |
if (this.isEOF()) { | |
return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition())); | |
} | |
if (this.char() === 125) { | |
this.bump(); | |
return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition())); | |
} | |
var value = this.parseIdentifierIfPossible().value; | |
if (!value) { | |
return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition())); | |
} | |
this.bumpSpace(); | |
if (this.isEOF()) { | |
return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition())); | |
} | |
switch (this.char()) { | |
case 125: { | |
this.bump(); | |
return { | |
val: { | |
type: TYPE.argument, | |
value, | |
location: createLocation(openingBracePosition, this.clonePosition()) | |
}, | |
err: null | |
}; | |
} | |
case 44: { | |
this.bump(); | |
this.bumpSpace(); | |
if (this.isEOF()) { | |
return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition())); | |
} | |
return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition); | |
} | |
default: | |
return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition())); | |
} | |
}; | |
Parser2.prototype.parseIdentifierIfPossible = function() { | |
var startingPosition = this.clonePosition(); | |
var startOffset = this.offset(); | |
var value = matchIdentifierAtIndex(this.message, startOffset); | |
var endOffset = startOffset + value.length; | |
this.bumpTo(endOffset); | |
var endPosition = this.clonePosition(); | |
var location = createLocation(startingPosition, endPosition); | |
return { value, location }; | |
}; | |
Parser2.prototype.parseArgumentOptions = function(nestingLevel, expectingCloseTag, value, openingBracePosition) { | |
var _a2; | |
var typeStartPosition = this.clonePosition(); | |
var argType = this.parseIdentifierIfPossible().value; | |
var typeEndPosition = this.clonePosition(); | |
switch (argType) { | |
case "": | |
return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition)); | |
case "number": | |
case "date": | |
case "time": { | |
this.bumpSpace(); | |
var styleAndLocation = null; | |
if (this.bumpIf(",")) { | |
this.bumpSpace(); | |
var styleStartPosition = this.clonePosition(); | |
var result = this.parseSimpleArgStyleIfPossible(); | |
if (result.err) { | |
return result; | |
} | |
var style = trimEnd(result.val); | |
if (style.length === 0) { | |
return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition())); | |
} | |
var styleLocation = createLocation(styleStartPosition, this.clonePosition()); | |
styleAndLocation = { style, styleLocation }; | |
} | |
var argCloseResult = this.tryParseArgumentClose(openingBracePosition); | |
if (argCloseResult.err) { | |
return argCloseResult; | |
} | |
var location_1 = createLocation(openingBracePosition, this.clonePosition()); | |
if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, "::", 0)) { | |
var skeleton = trimStart(styleAndLocation.style.slice(2)); | |
if (argType === "number") { | |
var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation); | |
if (result.err) { | |
return result; | |
} | |
return { | |
val: { type: TYPE.number, value, location: location_1, style: result.val }, | |
err: null | |
}; | |
} else { | |
if (skeleton.length === 0) { | |
return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1); | |
} | |
var dateTimePattern = skeleton; | |
if (this.locale) { | |
dateTimePattern = getBestPattern(skeleton, this.locale); | |
} | |
var style = { | |
type: SKELETON_TYPE.dateTime, | |
pattern: dateTimePattern, | |
location: styleAndLocation.styleLocation, | |
parsedOptions: this.shouldParseSkeletons ? parseDateTimeSkeleton(dateTimePattern) : {} | |
}; | |
var type = argType === "date" ? TYPE.date : TYPE.time; | |
return { | |
val: { type, value, location: location_1, style }, | |
err: null | |
}; | |
} | |
} | |
return { | |
val: { | |
type: argType === "number" ? TYPE.number : argType === "date" ? TYPE.date : TYPE.time, | |
value, | |
location: location_1, | |
style: (_a2 = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a2 !== void 0 ? _a2 : null | |
}, | |
err: null | |
}; | |
} | |
case "plural": | |
case "selectordinal": | |
case "select": { | |
var typeEndPosition_1 = this.clonePosition(); | |
this.bumpSpace(); | |
if (!this.bumpIf(",")) { | |
return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1))); | |
} | |
this.bumpSpace(); | |
var identifierAndLocation = this.parseIdentifierIfPossible(); | |
var pluralOffset = 0; | |
if (argType !== "select" && identifierAndLocation.value === "offset") { | |
if (!this.bumpIf(":")) { | |
return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition())); | |
} | |
this.bumpSpace(); | |
var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE); | |
if (result.err) { | |
return result; | |
} | |
this.bumpSpace(); | |
identifierAndLocation = this.parseIdentifierIfPossible(); | |
pluralOffset = result.val; | |
} | |
var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation); | |
if (optionsResult.err) { | |
return optionsResult; | |
} | |
var argCloseResult = this.tryParseArgumentClose(openingBracePosition); | |
if (argCloseResult.err) { | |
return argCloseResult; | |
} | |
var location_2 = createLocation(openingBracePosition, this.clonePosition()); | |
if (argType === "select") { | |
return { | |
val: { | |
type: TYPE.select, | |
value, | |
options: fromEntries(optionsResult.val), | |
location: location_2 | |
}, | |
err: null | |
}; | |
} else { | |
return { | |
val: { | |
type: TYPE.plural, | |
value, | |
options: fromEntries(optionsResult.val), | |
offset: pluralOffset, | |
pluralType: argType === "plural" ? "cardinal" : "ordinal", | |
location: location_2 | |
}, | |
err: null | |
}; | |
} | |
} | |
default: | |
return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition)); | |
} | |
}; | |
Parser2.prototype.tryParseArgumentClose = function(openingBracePosition) { | |
if (this.isEOF() || this.char() !== 125) { | |
return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition())); | |
} | |
this.bump(); | |
return { val: true, err: null }; | |
}; | |
Parser2.prototype.parseSimpleArgStyleIfPossible = function() { | |
var nestedBraces = 0; | |
var startPosition = this.clonePosition(); | |
while (!this.isEOF()) { | |
var ch = this.char(); | |
switch (ch) { | |
case 39: { | |
this.bump(); | |
var apostrophePosition = this.clonePosition(); | |
if (!this.bumpUntil("'")) { | |
return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition())); | |
} | |
this.bump(); | |
break; | |
} | |
case 123: { | |
nestedBraces += 1; | |
this.bump(); | |
break; | |
} | |
case 125: { | |
if (nestedBraces > 0) { | |
nestedBraces -= 1; | |
} else { | |
return { | |
val: this.message.slice(startPosition.offset, this.offset()), | |
err: null | |
}; | |
} | |
break; | |
} | |
default: | |
this.bump(); | |
break; | |
} | |
} | |
return { | |
val: this.message.slice(startPosition.offset, this.offset()), | |
err: null | |
}; | |
}; | |
Parser2.prototype.parseNumberSkeletonFromString = function(skeleton, location) { | |
var tokens = []; | |
try { | |
tokens = parseNumberSkeletonFromString(skeleton); | |
} catch (e) { | |
return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location); | |
} | |
return { | |
val: { | |
type: SKELETON_TYPE.number, | |
tokens, | |
location, | |
parsedOptions: this.shouldParseSkeletons ? parseNumberSkeleton(tokens) : {} | |
}, | |
err: null | |
}; | |
}; | |
Parser2.prototype.tryParsePluralOrSelectOptions = function(nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) { | |
var _a2; | |
var hasOtherClause = false; | |
var options = []; | |
var parsedSelectors = /* @__PURE__ */ new Set(); | |
var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location; | |
while (true) { | |
if (selector.length === 0) { | |
var startPosition = this.clonePosition(); | |
if (parentArgType !== "select" && this.bumpIf("=")) { | |
var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR); | |
if (result.err) { | |
return result; | |
} | |
selectorLocation = createLocation(startPosition, this.clonePosition()); | |
selector = this.message.slice(startPosition.offset, this.offset()); | |
} else { | |
break; | |
} | |
} | |
if (parsedSelectors.has(selector)) { | |
return this.error(parentArgType === "select" ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation); | |
} | |
if (selector === "other") { | |
hasOtherClause = true; | |
} | |
this.bumpSpace(); | |
var openingBracePosition = this.clonePosition(); | |
if (!this.bumpIf("{")) { | |
return this.error(parentArgType === "select" ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition())); | |
} | |
var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag); | |
if (fragmentResult.err) { | |
return fragmentResult; | |
} | |
var argCloseResult = this.tryParseArgumentClose(openingBracePosition); | |
if (argCloseResult.err) { | |
return argCloseResult; | |
} | |
options.push([ | |
selector, | |
{ | |
value: fragmentResult.val, | |
location: createLocation(openingBracePosition, this.clonePosition()) | |
} | |
]); | |
parsedSelectors.add(selector); | |
this.bumpSpace(); | |
_a2 = this.parseIdentifierIfPossible(), selector = _a2.value, selectorLocation = _a2.location; | |
} | |
if (options.length === 0) { | |
return this.error(parentArgType === "select" ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition())); | |
} | |
if (this.requiresOtherClause && !hasOtherClause) { | |
return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition())); | |
} | |
return { val: options, err: null }; | |
}; | |
Parser2.prototype.tryParseDecimalInteger = function(expectNumberError, invalidNumberError) { | |
var sign = 1; | |
var startingPosition = this.clonePosition(); | |
if (this.bumpIf("+")) { | |
} else if (this.bumpIf("-")) { | |
sign = -1; | |
} | |
var hasDigits = false; | |
var decimal = 0; | |
while (!this.isEOF()) { | |
var ch = this.char(); | |
if (ch >= 48 && ch <= 57) { | |
hasDigits = true; | |
decimal = decimal * 10 + (ch - 48); | |
this.bump(); | |
} else { | |
break; | |
} | |
} | |
var location = createLocation(startingPosition, this.clonePosition()); | |
if (!hasDigits) { | |
return this.error(expectNumberError, location); | |
} | |
decimal *= sign; | |
if (!isSafeInteger(decimal)) { | |
return this.error(invalidNumberError, location); | |
} | |
return { val: decimal, err: null }; | |
}; | |
Parser2.prototype.offset = function() { | |
return this.position.offset; | |
}; | |
Parser2.prototype.isEOF = function() { | |
return this.offset() === this.message.length; | |
}; | |
Parser2.prototype.clonePosition = function() { | |
return { | |
offset: this.position.offset, | |
line: this.position.line, | |
column: this.position.column | |
}; | |
}; | |
Parser2.prototype.char = function() { | |
var offset = this.position.offset; | |
if (offset >= this.message.length) { | |
throw Error("out of bound"); | |
} | |
var code = codePointAt(this.message, offset); | |
if (code === void 0) { | |
throw Error("Offset ".concat(offset, " is at invalid UTF-16 code unit boundary")); | |
} | |
return code; | |
}; | |
Parser2.prototype.error = function(kind, location) { | |
return { | |
val: null, | |
err: { | |
kind, | |
message: this.message, | |
location | |
} | |
}; | |
}; | |
Parser2.prototype.bump = function() { | |
if (this.isEOF()) { | |
return; | |
} | |
var code = this.char(); | |
if (code === 10) { | |
this.position.line += 1; | |
this.position.column = 1; | |
this.position.offset += 1; | |
} else { | |
this.position.column += 1; | |
this.position.offset += code < 65536 ? 1 : 2; | |
} | |
}; | |
Parser2.prototype.bumpIf = function(prefix) { | |
if (startsWith(this.message, prefix, this.offset())) { | |
for (var i = 0; i < prefix.length; i++) { | |
this.bump(); | |
} | |
return true; | |
} | |
return false; | |
}; | |
Parser2.prototype.bumpUntil = function(pattern) { | |
var currentOffset = this.offset(); | |
var index = this.message.indexOf(pattern, currentOffset); | |
if (index >= 0) { | |
this.bumpTo(index); | |
return true; | |
} else { | |
this.bumpTo(this.message.length); | |
return false; | |
} | |
}; | |
Parser2.prototype.bumpTo = function(targetOffset) { | |
if (this.offset() > targetOffset) { | |
throw Error("targetOffset ".concat(targetOffset, " must be greater than or equal to the current offset ").concat(this.offset())); | |
} | |
targetOffset = Math.min(targetOffset, this.message.length); | |
while (true) { | |
var offset = this.offset(); | |
if (offset === targetOffset) { | |
break; | |
} | |
if (offset > targetOffset) { | |
throw Error("targetOffset ".concat(targetOffset, " is at invalid UTF-16 code unit boundary")); | |
} | |
this.bump(); | |
if (this.isEOF()) { | |
break; | |
} | |
} | |
}; | |
Parser2.prototype.bumpSpace = function() { | |
while (!this.isEOF() && _isWhiteSpace(this.char())) { | |
this.bump(); | |
} | |
}; | |
Parser2.prototype.peek = function() { | |
if (this.isEOF()) { | |
return null; | |
} | |
var code = this.char(); | |
var offset = this.offset(); | |
var nextCode = this.message.charCodeAt(offset + (code >= 65536 ? 2 : 1)); | |
return nextCode !== null && nextCode !== void 0 ? nextCode : null; | |
}; | |
return Parser2; | |
}(); | |
function _isAlpha(codepoint) { | |
return codepoint >= 97 && codepoint <= 122 || codepoint >= 65 && codepoint <= 90; | |
} | |
function _isAlphaOrSlash(codepoint) { | |
return _isAlpha(codepoint) || codepoint === 47; | |
} | |
function _isPotentialElementNameChar(c) { | |
return c === 45 || c === 46 || c >= 48 && c <= 57 || c === 95 || c >= 97 && c <= 122 || c >= 65 && c <= 90 || c == 183 || c >= 192 && c <= 214 || c >= 216 && c <= 246 || c >= 248 && c <= 893 || c >= 895 && c <= 8191 || c >= 8204 && c <= 8205 || c >= 8255 && c <= 8256 || c >= 8304 && c <= 8591 || c >= 11264 && c <= 12271 || c >= 12289 && c <= 55295 || c >= 63744 && c <= 64975 || c >= 65008 && c <= 65533 || c >= 65536 && c <= 983039; | |
} | |
function _isWhiteSpace(c) { | |
return c >= 9 && c <= 13 || c === 32 || c === 133 || c >= 8206 && c <= 8207 || c === 8232 || c === 8233; | |
} | |
function _isPatternSyntax(c) { | |
return c >= 33 && c <= 35 || c === 36 || c >= 37 && c <= 39 || c === 40 || c === 41 || c === 42 || c === 43 || c === 44 || c === 45 || c >= 46 && c <= 47 || c >= 58 && c <= 59 || c >= 60 && c <= 62 || c >= 63 && c <= 64 || c === 91 || c === 92 || c === 93 || c === 94 || c === 96 || c === 123 || c === 124 || c === 125 || c === 126 || c === 161 || c >= 162 && c <= 165 || c === 166 || c === 167 || c === 169 || c === 171 || c === 172 || c === 174 || c === 176 || c === 177 || c === 182 || c === 187 || c === 191 || c === 215 || c === 247 || c >= 8208 && c <= 8213 || c >= 8214 && c <= 8215 || c === 8216 || c === 8217 || c === 8218 || c >= 8219 && c <= 8220 || c === 8221 || c === 8222 || c === 8223 || c >= 8224 && c <= 8231 || c >= 8240 && c <= 8248 || c === 8249 || c === 8250 || c >= 8251 && c <= 8254 || c >= 8257 && c <= 8259 || c === 8260 || c === 8261 || c === 8262 || c >= 8263 && c <= 8273 || c === 8274 || c === 8275 || c >= 8277 && c <= 8286 || c >= 8592 && c <= 8596 || c >= 8597 && c <= 8601 || c >= 8602 && c <= 8603 || c >= 8604 && c <= 8607 || c === 8608 || c >= 8609 && c <= 8610 || c === 8611 || c >= 8612 && c <= 8613 || c === 8614 || c >= 8615 && c <= 8621 || c === 8622 || c >= 8623 && c <= 8653 || c >= 8654 && c <= 8655 || c >= 8656 && c <= 8657 || c === 8658 || c === 8659 || c === 8660 || c >= 8661 && c <= 8691 || c >= 8692 && c <= 8959 || c >= 8960 && c <= 8967 || c === 8968 || c === 8969 || c === 8970 || c === 8971 || c >= 8972 && c <= 8991 || c >= 8992 && c <= 8993 || c >= 8994 && c <= 9e3 || c === 9001 || c === 9002 || c >= 9003 && c <= 9083 || c === 9084 || c >= 9085 && c <= 9114 || c >= 9115 && c <= 9139 || c >= 9140 && c <= 9179 || c >= 9180 && c <= 9185 || c >= 9186 && c <= 9254 || c >= 9255 && c <= 9279 || c >= 9280 && c <= 9290 || c >= 9291 && c <= 9311 || c >= 9472 && c <= 9654 || c === 9655 || c >= 9656 && c <= 9664 || c === 9665 || c >= 9666 && c <= 9719 || c >= 9720 && c <= 9727 || c >= 9728 && c <= 9838 || c === 9839 || c >= 9840 && c <= 10087 || c === 10088 || c === 10089 || c === 10090 || c === 10091 || c === 10092 || c === 10093 || c === 10094 || c === 10095 || c === 10096 || c === 10097 || c === 10098 || c === 10099 || c === 10100 || c === 10101 || c >= 10132 && c <= 10175 || c >= 10176 && c <= 10180 || c === 10181 || c === 10182 || c >= 10183 && c <= 10213 || c === 10214 || c === 10215 || c === 10216 || c === 10217 || c === 10218 || c === 10219 || c === 10220 || c === 10221 || c === 10222 || c === 10223 || c >= 10224 && c <= 10239 || c >= 10240 && c <= 10495 || c >= 10496 && c <= 10626 || c === 10627 || c === 10628 || c === 10629 || c === 10630 || c === 10631 || c === 10632 || c === 10633 || c === 10634 || c === 10635 || c === 10636 || c === 10637 || c === 10638 || c === 10639 || c === 10640 || c === 10641 || c === 10642 || c === 10643 || c === 10644 || c === 10645 || c === 10646 || c === 10647 || c === 10648 || c >= 10649 && c <= 10711 || c === 10712 || c === 10713 || c === 10714 || c === 10715 || c >= 10716 && c <= 10747 || c === 10748 || c === 10749 || c >= 10750 && c <= 11007 || c >= 11008 && c <= 11055 || c >= 11056 && c <= 11076 || c >= 11077 && c <= 11078 || c >= 11079 && c <= 11084 || c >= 11085 && c <= 11123 || c >= 11124 && c <= 11125 || c >= 11126 && c <= 11157 || c === 11158 || c >= 11159 && c <= 11263 || c >= 11776 && c <= 11777 || c === 11778 || c === 11779 || c === 11780 || c === 11781 || c >= 11782 && c <= 11784 || c === 11785 || c === 11786 || c === 11787 || c === 11788 || c === 11789 || c >= 11790 && c <= 11798 || c === 11799 || c >= 11800 && c <= 11801 || c === 11802 || c === 11803 || c === 11804 || c === 11805 || c >= 11806 && c <= 11807 || c === 11808 || c === 11809 || c === 11810 || c === 11811 || c === 11812 || c === 11813 || c === 11814 || c === 11815 || c === 11816 || c === 11817 || c >= 11818 && c <= 11822 || c === 11823 || c >= 11824 && c <= 11833 || c >= 11834 && c <= 11835 || c >= 11836 && c <= 11839 || c === 11840 || c === 11841 || c === 11842 || c >= 11843 && c <= 11855 || c >= 11856 && c <= 11857 || c === 11858 || c >= 11859 && c <= 11903 || c >= 12289 && c <= 12291 || c === 12296 || c === 12297 || c === 12298 || c === 12299 || c === 12300 || c === 12301 || c === 12302 || c === 12303 || c === 12304 || c === 12305 || c >= 12306 && c <= 12307 || c === 12308 || c === 12309 || c === 12310 || c === 12311 || c === 12312 || c === 12313 || c === 12314 || c === 12315 || c === 12316 || c === 12317 || c >= 12318 && c <= 12319 || c === 12320 || c === 12336 || c === 64830 || c === 64831 || c >= 65093 && c <= 65094; | |
} | |
// bazel-out/darwin-fastbuild/bin/packages/icu-messageformat-parser/lib/index.js | |
function pruneLocation(els) { | |
els.forEach(function(el) { | |
delete el.location; | |
if (isSelectElement(el) || isPluralElement(el)) { | |
for (var k in el.options) { | |
delete el.options[k].location; | |
pruneLocation(el.options[k].value); | |
} | |
} else if (isNumberElement(el) && isNumberSkeleton(el.style)) { | |
delete el.style.location; | |
} else if ((isDateElement(el) || isTimeElement(el)) && isDateTimeSkeleton(el.style)) { | |
delete el.style.location; | |
} else if (isTagElement(el)) { | |
pruneLocation(el.children); | |
} | |
}); | |
} | |
function parse(message, opts) { | |
if (opts === void 0) { | |
opts = {}; | |
} | |
opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts); | |
var result = new Parser(message, opts).parse(); | |
if (result.err) { | |
var error = SyntaxError(ErrorKind[result.err.kind]); | |
error.location = result.err.location; | |
error.originalMessage = result.err.message; | |
throw error; | |
} | |
if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) { | |
pruneLocation(result.val); | |
} | |
return result.val; | |
} | |
// bazel-out/darwin-fastbuild/bin/packages/fast-memoize/lib/index.js | |
function memoize(fn, options) { | |
var cache = options && options.cache ? options.cache : cacheDefault; | |
var serializer = options && options.serializer ? options.serializer : serializerDefault; | |
var strategy = options && options.strategy ? options.strategy : strategyDefault; | |
return strategy(fn, { | |
cache, | |
serializer | |
}); | |
} | |
function isPrimitive(value) { | |
return value == null || typeof value === "number" || typeof value === "boolean"; | |
} | |
function monadic(fn, cache, serializer, arg) { | |
var cacheKey = isPrimitive(arg) ? arg : serializer(arg); | |
var computedValue = cache.get(cacheKey); | |
if (typeof computedValue === "undefined") { | |
computedValue = fn.call(this, arg); | |
cache.set(cacheKey, computedValue); | |
} | |
return computedValue; | |
} | |
function variadic(fn, cache, serializer) { | |
var args = Array.prototype.slice.call(arguments, 3); | |
var cacheKey = serializer(args); | |
var 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) { | |
var 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); | |
} | |
var serializerDefault = function() { | |
return JSON.stringify(arguments); | |
}; | |
function ObjectWithoutPrototypeCache() { | |
this.cache = /* @__PURE__ */ Object.create(null); | |
} | |
ObjectWithoutPrototypeCache.prototype.get = function(key) { | |
return this.cache[key]; | |
}; | |
ObjectWithoutPrototypeCache.prototype.set = function(key, value) { | |
this.cache[key] = value; | |
}; | |
var cacheDefault = { | |
create: function create() { | |
return new ObjectWithoutPrototypeCache(); | |
} | |
}; | |
var strategies = { | |
variadic: strategyVariadic, | |
monadic: strategyMonadic | |
}; | |
// bazel-out/darwin-fastbuild/bin/packages/intl-messageformat/lib_esnext/src/error.js | |
var ErrorCode; | |
(function(ErrorCode2) { | |
ErrorCode2["MISSING_VALUE"] = "MISSING_VALUE"; | |
ErrorCode2["INVALID_VALUE"] = "INVALID_VALUE"; | |
ErrorCode2["MISSING_INTL_API"] = "MISSING_INTL_API"; | |
})(ErrorCode || (ErrorCode = {})); | |
var FormatError = class extends Error { | |
code; | |
originalMessage; | |
constructor(msg, code, originalMessage) { | |
super(msg); | |
this.code = code; | |
this.originalMessage = originalMessage; | |
} | |
toString() { | |
return `[formatjs Error: ${this.code}] ${this.message}`; | |
} | |
}; | |
var InvalidValueError = class extends FormatError { | |
constructor(variableId, value, options, originalMessage) { | |
super(`Invalid values for "${variableId}": "${value}". Options are "${Object.keys(options).join('", "')}"`, ErrorCode.INVALID_VALUE, originalMessage); | |
} | |
}; | |
var InvalidValueTypeError = class extends FormatError { | |
constructor(value, type, originalMessage) { | |
super(`Value for "${value}" must be of type ${type}`, ErrorCode.INVALID_VALUE, originalMessage); | |
} | |
}; | |
var MissingValueError = class extends FormatError { | |
constructor(variableId, originalMessage) { | |
super(`The intl string context variable "${variableId}" was not provided to the string "${originalMessage}"`, ErrorCode.MISSING_VALUE, originalMessage); | |
} | |
}; | |
// bazel-out/darwin-fastbuild/bin/packages/intl-messageformat/lib_esnext/src/formatters.js | |
var PART_TYPE; | |
(function(PART_TYPE2) { | |
PART_TYPE2[PART_TYPE2["literal"] = 0] = "literal"; | |
PART_TYPE2[PART_TYPE2["object"] = 1] = "object"; | |
})(PART_TYPE || (PART_TYPE = {})); | |
function mergeLiteral(parts) { | |
if (parts.length < 2) { | |
return parts; | |
} | |
return parts.reduce((all, part) => { | |
const lastPart = all[all.length - 1]; | |
if (!lastPart || lastPart.type !== PART_TYPE.literal || part.type !== PART_TYPE.literal) { | |
all.push(part); | |
} else { | |
lastPart.value += part.value; | |
} | |
return all; | |
}, []); | |
} | |
function isFormatXMLElementFn(el) { | |
return typeof el === "function"; | |
} | |
function formatToParts(els, locales, formatters, formats, values, currentPluralValue, originalMessage) { | |
if (els.length === 1 && isLiteralElement(els[0])) { | |
return [ | |
{ | |
type: PART_TYPE.literal, | |
value: els[0].value | |
} | |
]; | |
} | |
const result = []; | |
for (const el of els) { | |
if (isLiteralElement(el)) { | |
result.push({ | |
type: PART_TYPE.literal, | |
value: el.value | |
}); | |
continue; | |
} | |
if (isPoundElement(el)) { | |
if (typeof currentPluralValue === "number") { | |
result.push({ | |
type: PART_TYPE.literal, | |
value: formatters.getNumberFormat(locales).format(currentPluralValue) | |
}); | |
} | |
continue; | |
} | |
const { value: varName } = el; | |
if (!(values && varName in values)) { | |
throw new MissingValueError(varName, originalMessage); | |
} | |
let value = values[varName]; | |
if (isArgumentElement(el)) { | |
if (!value || typeof value === "string" || typeof value === "number") { | |
value = typeof value === "string" || typeof value === "number" ? String(value) : ""; | |
} | |
result.push({ | |
type: typeof value === "string" ? PART_TYPE.literal : PART_TYPE.object, | |
value | |
}); | |
continue; | |
} | |
if (isDateElement(el)) { | |
const style = typeof el.style === "string" ? formats.date[el.style] : isDateTimeSkeleton(el.style) ? el.style.parsedOptions : void 0; | |
result.push({ | |
type: PART_TYPE.literal, | |
value: formatters.getDateTimeFormat(locales, style).format(value) | |
}); | |
continue; | |
} | |
if (isTimeElement(el)) { | |
const style = typeof el.style === "string" ? formats.time[el.style] : isDateTimeSkeleton(el.style) ? el.style.parsedOptions : formats.time.medium; | |
result.push({ | |
type: PART_TYPE.literal, | |
value: formatters.getDateTimeFormat(locales, style).format(value) | |
}); | |
continue; | |
} | |
if (isNumberElement(el)) { | |
const style = typeof el.style === "string" ? formats.number[el.style] : isNumberSkeleton(el.style) ? el.style.parsedOptions : void 0; | |
if (style && style.scale) { | |
value = value * (style.scale || 1); | |
} | |
result.push({ | |
type: PART_TYPE.literal, | |
value: formatters.getNumberFormat(locales, style).format(value) | |
}); | |
continue; | |
} | |
if (isTagElement(el)) { | |
const { children, value: value2 } = el; | |
const formatFn = values[value2]; | |
if (!isFormatXMLElementFn(formatFn)) { | |
throw new InvalidValueTypeError(value2, "function", originalMessage); | |
} | |
const parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue); | |
let chunks = formatFn(parts.map((p) => p.value)); | |
if (!Array.isArray(chunks)) { | |
chunks = [chunks]; | |
} | |
result.push(...chunks.map((c) => { | |
return { | |
type: typeof c === "string" ? PART_TYPE.literal : PART_TYPE.object, | |
value: c | |
}; | |
})); | |
} | |
if (isSelectElement(el)) { | |
const opt = el.options[value] || el.options.other; | |
if (!opt) { | |
throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage); | |
} | |
result.push(...formatToParts(opt.value, locales, formatters, formats, values)); | |
continue; | |
} | |
if (isPluralElement(el)) { | |
let opt = el.options[`=${value}`]; | |
if (!opt) { | |
if (!Intl.PluralRules) { | |
throw new FormatError(`Intl.PluralRules is not available in this environment. | |
Try polyfilling it using "@formatjs/intl-pluralrules" | |
`, ErrorCode.MISSING_INTL_API, originalMessage); | |
} | |
const rule = formatters.getPluralRules(locales, { type: el.pluralType }).select(value - (el.offset || 0)); | |
opt = el.options[rule] || el.options.other; | |
} | |
if (!opt) { | |
throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage); | |
} | |
result.push(...formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0))); | |
continue; | |
} | |
} | |
return mergeLiteral(result); | |
} | |
// bazel-out/darwin-fastbuild/bin/packages/intl-messageformat/lib_esnext/src/core.js | |
function mergeConfig(c1, c2) { | |
if (!c2) { | |
return c1; | |
} | |
return { | |
...c1 || {}, | |
...c2 || {}, | |
...Object.keys(c1).reduce((all, k) => { | |
all[k] = { | |
...c1[k], | |
...c2[k] || {} | |
}; | |
return all; | |
}, {}) | |
}; | |
} | |
function mergeConfigs(defaultConfig, configs) { | |
if (!configs) { | |
return defaultConfig; | |
} | |
return Object.keys(defaultConfig).reduce((all, k) => { | |
all[k] = mergeConfig(defaultConfig[k], configs[k]); | |
return all; | |
}, { ...defaultConfig }); | |
} | |
function createFastMemoizeCache(store) { | |
return { | |
create() { | |
return { | |
get(key) { | |
return store[key]; | |
}, | |
set(key, value) { | |
store[key] = value; | |
} | |
}; | |
} | |
}; | |
} | |
function createDefaultFormatters(cache = { | |
number: {}, | |
dateTime: {}, | |
pluralRules: {} | |
}) { | |
return { | |
getNumberFormat: memoize((...args) => new Intl.NumberFormat(...args), { | |
cache: createFastMemoizeCache(cache.number), | |
strategy: strategies.variadic | |
}), | |
getDateTimeFormat: memoize((...args) => new Intl.DateTimeFormat(...args), { | |
cache: createFastMemoizeCache(cache.dateTime), | |
strategy: strategies.variadic | |
}), | |
getPluralRules: memoize((...args) => new Intl.PluralRules(...args), { | |
cache: createFastMemoizeCache(cache.pluralRules), | |
strategy: strategies.variadic | |
}) | |
}; | |
} | |
var _IntlMessageFormat = class { | |
ast; | |
locales; | |
resolvedLocale; | |
formatters; | |
formats; | |
message; | |
formatterCache = { | |
number: {}, | |
dateTime: {}, | |
pluralRules: {} | |
}; | |
constructor(message, locales = _IntlMessageFormat.defaultLocale, overrideFormats, opts) { | |
this.locales = locales; | |
this.resolvedLocale = _IntlMessageFormat.resolveLocale(locales); | |
if (typeof message === "string") { | |
this.message = message; | |
if (!_IntlMessageFormat.__parse) { | |
throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`"); | |
} | |
this.ast = _IntlMessageFormat.__parse(message, { | |
ignoreTag: opts?.ignoreTag, | |
locale: this.resolvedLocale | |
}); | |
} else { | |
this.ast = message; | |
} | |
if (!Array.isArray(this.ast)) { | |
throw new TypeError("A message must be provided as a String or AST."); | |
} | |
this.formats = mergeConfigs(_IntlMessageFormat.formats, overrideFormats); | |
this.formatters = opts && opts.formatters || createDefaultFormatters(this.formatterCache); | |
} | |
format = (values) => { | |
const parts = this.formatToParts(values); | |
if (parts.length === 1) { | |
return parts[0].value; | |
} | |
const result = parts.reduce((all, part) => { | |
if (!all.length || part.type !== PART_TYPE.literal || typeof all[all.length - 1] !== "string") { | |
all.push(part.value); | |
} else { | |
all[all.length - 1] += part.value; | |
} | |
return all; | |
}, []); | |
if (result.length <= 1) { | |
return result[0] || ""; | |
} | |
return result; | |
}; | |
formatToParts = (values) => formatToParts(this.ast, this.locales, this.formatters, this.formats, values, void 0, this.message); | |
resolvedOptions = () => ({ | |
locale: this.resolvedLocale.toString() | |
}); | |
getAst = () => this.ast; | |
static get defaultLocale() { | |
if (!_IntlMessageFormat.memoizedDefaultLocale) { | |
_IntlMessageFormat.memoizedDefaultLocale = new Intl.NumberFormat().resolvedOptions().locale; | |
} | |
return _IntlMessageFormat.memoizedDefaultLocale; | |
} | |
}; | |
var IntlMessageFormat = _IntlMessageFormat; | |
__publicField(IntlMessageFormat, "memoizedDefaultLocale", null); | |
__publicField(IntlMessageFormat, "resolveLocale", (locales) => { | |
const supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales); | |
if (supportedLocales.length > 0) { | |
return new Intl.Locale(supportedLocales[0]); | |
} | |
return new Intl.Locale(typeof locales === "string" ? locales : locales[0]); | |
}); | |
__publicField(IntlMessageFormat, "__parse", parse); | |
__publicField(IntlMessageFormat, "formats", { | |
number: { | |
integer: { | |
maximumFractionDigits: 0 | |
}, | |
currency: { | |
style: "currency" | |
}, | |
percent: { | |
style: "percent" | |
} | |
}, | |
date: { | |
short: { | |
month: "numeric", | |
day: "numeric", | |
year: "2-digit" | |
}, | |
medium: { | |
month: "short", | |
day: "numeric", | |
year: "numeric" | |
}, | |
long: { | |
month: "long", | |
day: "numeric", | |
year: "numeric" | |
}, | |
full: { | |
weekday: "long", | |
month: "long", | |
day: "numeric", | |
year: "numeric" | |
} | |
}, | |
time: { | |
short: { | |
hour: "numeric", | |
minute: "numeric" | |
}, | |
medium: { | |
hour: "numeric", | |
minute: "numeric", | |
second: "numeric" | |
}, | |
long: { | |
hour: "numeric", | |
minute: "numeric", | |
second: "numeric", | |
timeZoneName: "short" | |
}, | |
full: { | |
hour: "numeric", | |
minute: "numeric", | |
second: "numeric", | |
timeZoneName: "short" | |
} | |
} | |
}); | |
// bazel-out/darwin-fastbuild/bin/packages/intl-messageformat/lib_esnext/index.js | |
var lib_esnext_default = IntlMessageFormat; | |
export { | |
ErrorCode, | |
FormatError, | |
IntlMessageFormat, | |
InvalidValueError, | |
InvalidValueTypeError, | |
MissingValueError, | |
PART_TYPE, | |
lib_esnext_default as default, | |
formatToParts, | |
isFormatXMLElementFn | |
}; | |
/*! ***************************************************************************** | |
Copyright (c) Microsoft Corporation. | |
Permission to use, copy, modify, and/or distribute this software for any | |
purpose with or without fee is hereby granted. | |
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | |
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | |
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | |
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | |
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | |
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | |
PERFORMANCE OF THIS SOFTWARE. | |
***************************************************************************** */ | |
//# sourceMappingURL=intl-messageformat.esm.js.map | |