UNPKG

chrome-devtools-frontend

Version:
1,288 lines (1,279 loc) • 63.1 kB
// 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 = /^(@+)?(\+|#+)?$/g; var INTEGER_WIDTH_REGEX = /(\*)(0+)|(#+)(0+)|(0+)/g; var CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/; function parseSignificantPrecision(str) { var result = {}; 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, opt) { return __assign(__assign({}, all), parseNotationOptions(opt)); }, {})); continue; case "engineering": result = __assign(__assign(__assign({}, result), {notation: "engineering"}), token.options.reduce(function(all, opt) { return __assign(__assign({}, all), parseNotationOptions(opt)); }, {})); 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 ""; }); if (token.options.length) { result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0])); } 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/parser.js var _a; var SPACE_SEPARATOR_START_REGEX = new RegExp("^" + SPACE_SEPARATOR_REGEX.source + "*"); var SPACE_SEPARATOR_END_REGEX = new RegExp(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.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: "<" + 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 style = { type: SKELETON_TYPE.dateTime, pattern: skeleton, location: styleAndLocation.styleLocation, parsedOptions: this.shouldParseSkeletons ? parseDateTimeSkeleton(skeleton) : {} }; 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 = 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 " + 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 " + targetOffset + " must be greater than or equal to the current offset " + 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 " + 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") { computedVa