{"version":3,"sources":["webpack:///./node_modules/format-message/index.js","webpack:///./node_modules/format-message-interpret/index.js","webpack:///./node_modules/format-message-formats/index.js","webpack:///./node_modules/format-message-interpret/plurals.js","webpack:///./node_modules/format-message-parse/index.js","webpack:///./node_modules/lookup-closest-locale/index.js"],"names":["parse","interpret","plurals","lookupClosestLocale","origFormats","assign","target","source","Object","keys","forEach","key","namespace","formats","currentLocales","translations","generateId","pattern","missingReplacement","missingTranslation","types","formatMessage","msg","args","locales","default","id","translated","translate","format","message","rich","toParts","tagsType","richType","node","style","fn","props","mapObject","object","reduce","mapped","locale","messages","console","warn","Error","replacement","setup","opt","number","date","time","value","options","parseNumberPattern","Intl","NumberFormat","parseDatePattern","DateTimeFormat","select","other","custom","placeholder","plural","bind","selectordinal","pluralType","offset","closest","returnOther","module","exports","ast","interpretAST","elements","parent","join","parts","map","element","interpretElement","part","concat","length","e","type","formatter","defaults","getArg","children","getFrmt","frmt","String","split","a","i","ii","interpretNumber","interpretDuration","duration","fs","seconds","fm","minutes","fh","hours","sep","test","s","isFinite","h","m","dur","Math","abs","replace","interpretDateTime","interpretPlural","pluralRules","PluralRules","supportedLocalesOf","clause","interpretSelect","ordinal","spellout","LONG","SHORT","NARROW","NUMERIC","TWODIGIT","decimal","integer","maximumFractionDigits","currency","percent","short","month","day","year","medium","long","full","weekday","hour","minute","second","timeZoneName","minimumIntegerDigits","match","syms","currencyDisplay","toUpperCase","indexOf","undefined","useGrouping","size","minimumSignificantDigits","min","max","maximumSignificantDigits","n","fraction","minimumFractionDigits","current","era","hour12","zero","one","two","few","many","f","floor","v","t","af","cardinal","ak","am","ar","ars","as","asa","az","be","bem","bez","bg","bh","bn","br","brx","bs","ca","ce","cgg","chr","ckb","cs","cy","da","de","dsb","dv","ee","el","en","eo","es","et","eu","fa","ff","fi","fil","fo","fr","fur","fy","ga","gd","gl","gsw","gu","guw","gv","ha","haw","he","hi","hr","hsb","hu","hy","ia","io","is","it","iu","iw","jgo","ji","jmc","ka","kab","kaj","kcg","kk","kkj","kl","kn","ks","ksb","ksh","ku","kw","ky","lag","lb","lg","ln","lt","lv","mas","mg","mgo","mk","ml","mn","mo","mr","mt","nah","naq","nb","nd","ne","nl","nn","nnh","no","nr","nso","ny","nyn","om","or","os","pa","pap","pl","prg","ps","pt","rm","ro","rof","ru","rwk","saq","sc","scn","sd","sdh","se","seh","sh","shi","si","sk","sl","sma","smi","smj","smn","sms","sn","so","sq","sr","ss","ssy","st","sv","sw","syr","ta","te","teo","ti","tig","tk","tl","tn","tr","ts","tzm","ug","uk","ur","uz","ve","vo","vun","wa","wae","xh","xog","yi","zu","lo","ms","vi","ARG_OPN","ARG_CLS","ARG_SEP","NUM_ARG","TAG_OPN","TAG_CLS","TAG_END","TAG_SELF_CLS","ESC","OFFSET","simpleTypes","submTypes","parseAST","index","tokens","parentType","start","text","parseText","push","slice","expected","parsePlaceholder","isHashSpecial","isAngleSpecial","isArgStyle","char","isWhitespace","charCodeAt","code","skipWhitespace","tag","parseTag","parseId","arg","parsePluralOffset","parseSubMessages","parseSimpleFormat","end","closeId","isTag","isDigit","selector","parseSubMessage","found","lines","line","column","errorMessage","SyntaxError","call","this","name","prototype","create","available","l","ll","candidate","pop"],"mappings":"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","file":"43-c-9c0269b36f.js","sourcesContent":["// @flow\n'use strict'\nvar parse = require('format-message-parse')\nvar interpret = require('format-message-interpret')\nvar plurals = require('format-message-interpret/plurals')\nvar lookupClosestLocale = require('lookup-closest-locale')\nvar origFormats = require('format-message-formats')\n\n/*::\nimport type { Types } from 'format-message-interpret'\ntype Locale = string\ntype Locales = Locale | Locale[]\ntype Message = string | {|\n id?: string,\n default: string,\n description?: string\n|}\ntype Translations = { [string]: ?{ [string]: string | Translation } }\ntype Translation = {\n message: string,\n format?: (args?: Object) => string,\n toParts?: (args?: Object) => any[],\n}\ntype Replacement = ?string | (string, string, locales?: Locales) => ?string\ntype GenerateId = (string) => string\ntype MissingTranslation = 'ignore' | 'warning' | 'error'\ntype FormatObject = { [string]: * }\ntype Options = {\n locale?: Locales,\n translations?: ?Translations,\n generateId?: GenerateId,\n missingReplacement?: Replacement,\n missingTranslation?: MissingTranslation,\n formats?: {\n number?: FormatObject,\n date?: FormatObject,\n time?: FormatObject\n },\n types?: Types\n}\ntype Setup = {|\n locale: Locales,\n translations: Translations,\n generateId: GenerateId,\n missingReplacement: Replacement,\n missingTranslation: MissingTranslation,\n formats: {\n number: FormatObject,\n date: FormatObject,\n time: FormatObject\n },\n types: Types\n|}\ntype FormatMessage = {\n (msg: Message, args?: Object, locales?: Locales): string,\n rich (msg: Message, args?: Object, locales?: Locales): any[],\n setup (opt?: Options): Setup,\n number (value: number, style?: string, locales?: Locales): string,\n date (value: number | Date, style?: string, locales?: Locales): string,\n time (value: number | Date, style?: string, locales?: Locales): string,\n select (value: any, options: Object): any,\n custom (placeholder: any[], locales: Locales, value: any, args: Object): any,\n plural (value: number, offset: any, options: any, locale: any): any,\n selectordinal (value: number, offset: any, options: any, locale: any): any,\n namespace (): FormatMessage\n}\n*/\n\nfunction assign/*:: */ (target/*: T */, source/*: Object */) {\n Object.keys(source).forEach(function (key) { target[key] = source[key] })\n return target\n}\n\nfunction namespace ()/*: FormatMessage */ {\n var formats = assign({}, origFormats)\n var currentLocales/*: Locales */ = 'en'\n var translations/*: Translations */ = {}\n var generateId/*: GenerateId */ = function (pattern) { return pattern }\n var missingReplacement/*: Replacement */ = null\n var missingTranslation/*: MissingTranslation */ = 'warning'\n var types/*: Types */ = {}\n\n function formatMessage (msg/*: Message */, args/*:: ?: Object */, locales/*:: ?: Locales */) {\n var pattern = typeof msg === 'string' ? msg : msg.default\n var id = (typeof msg === 'object' && msg.id) || generateId(pattern)\n var translated = translate(pattern, id, locales || currentLocales)\n var format = translated.format || (\n translated.format = interpret(parse(translated.message), locales || currentLocales, types)\n )\n return format(args)\n }\n\n formatMessage.rich = function rich (msg/*: Message */, args/*:: ?: Object */, locales/*:: ?: Locales */) {\n var pattern = typeof msg === 'string' ? msg : msg.default\n var id = (typeof msg === 'object' && msg.id) || generateId(pattern)\n var translated = translate(pattern, id, locales || currentLocales)\n var format = translated.toParts || (\n translated.toParts = interpret.toParts(parse(translated.message, { tagsType: tagsType }), locales || currentLocales, types)\n )\n return format(args)\n }\n\n var tagsType = '<>'\n function richType (node/*: any[] */, locales/*: Locales */) {\n var style = node[2]\n return function (fn, args) {\n var props = typeof style === 'object' ? mapObject(style, args) : style\n return typeof fn === 'function' ? fn(props) : fn\n }\n }\n types[tagsType] = richType\n\n function mapObject (object/* { [string]: (args?: Object) => any } */, args/*: ?Object */) {\n return Object.keys(object).reduce(function (mapped, key) {\n mapped[key] = object[key](args)\n return mapped\n }, {})\n }\n\n function translate (pattern/*: string */, id/*: string */, locales/*: Locales */)/*: Translation */ {\n var locale = lookupClosestLocale(locales, translations) || 'en'\n var messages = translations[locale] || (translations[locale] = {})\n var translated = messages[id]\n if (typeof translated === 'string') {\n translated = messages[id] = { message: translated }\n }\n if (!translated) {\n var message = 'Translation for \"' + id + '\" in \"' + locale + '\" is missing'\n if (missingTranslation === 'warning') {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') console.warn(message)\n } else if (missingTranslation !== 'ignore') { // 'error'\n throw new Error(message)\n }\n var replacement = typeof missingReplacement === 'function'\n ? missingReplacement(pattern, id, locale) || pattern\n : missingReplacement || pattern\n translated = messages[id] = { message: replacement }\n }\n return translated\n }\n\n formatMessage.setup = function setup (opt/*:: ?: Options */) {\n opt = opt || {}\n if (opt.locale) currentLocales = opt.locale\n if ('translations' in opt) translations = opt.translations || {}\n if (opt.generateId) generateId = opt.generateId\n if ('missingReplacement' in opt) missingReplacement = opt.missingReplacement\n if (opt.missingTranslation) missingTranslation = opt.missingTranslation\n if (opt.formats) {\n if (opt.formats.number) assign(formats.number, opt.formats.number)\n if (opt.formats.date) assign(formats.date, opt.formats.date)\n if (opt.formats.time) assign(formats.time, opt.formats.time)\n }\n if (opt.types) {\n types = opt.types\n types[tagsType] = richType\n }\n return {\n locale: currentLocales,\n translations: translations,\n generateId: generateId,\n missingReplacement: missingReplacement,\n missingTranslation: missingTranslation,\n formats: formats,\n types: types\n }\n }\n\n formatMessage.number = function (value/*: number */, style/*:: ?: string */, locales/*:: ?: Locales */) {\n var options = (style && formats.number[style]) ||\n formats.parseNumberPattern(style) ||\n formats.number.default\n return new Intl.NumberFormat(locales || currentLocales, options).format(value)\n }\n\n formatMessage.date = function (value/*:: ?: number | Date */, style/*:: ?: string */, locales/*:: ?: Locales */) {\n var options = (style && formats.date[style]) ||\n formats.parseDatePattern(style) ||\n formats.date.default\n return new Intl.DateTimeFormat(locales || currentLocales, options).format(value)\n }\n\n formatMessage.time = function (value/*:: ?: number | Date */, style/*:: ?: string */, locales/*:: ?: Locales */) {\n var options = (style && formats.time[style]) ||\n formats.parseDatePattern(style) ||\n formats.time.default\n return new Intl.DateTimeFormat(locales || currentLocales, options).format(value)\n }\n\n formatMessage.select = function (value/*: any */, options/*: Object */) {\n return options[value] || options.other\n }\n\n formatMessage.custom = function (placeholder/*: any[] */, locales/*: Locales */, value/*: any */, args/*: Object */) {\n if (!(placeholder[1] in types)) return value\n return types[placeholder[1]](placeholder, locales)(value, args)\n }\n\n formatMessage.plural = plural.bind(null, 'cardinal')\n formatMessage.selectordinal = plural.bind(null, 'ordinal')\n function plural (\n pluralType/*: 'cardinal' | 'ordinal' */,\n value/*: number */,\n offset/*: any */,\n options/*: any */,\n locale/*: any */\n ) {\n if (typeof offset === 'object' && typeof options !== 'object') { // offset is optional\n locale = options\n options = offset\n offset = 0\n }\n var closest = lookupClosestLocale(locale || currentLocales, plurals)\n var plural = (closest && plurals[closest][pluralType]) || returnOther\n return options['=' + +value] || options[plural(value - offset)] || options.other\n }\n function returnOther (/*:: n:number */) { return 'other' }\n\n formatMessage.namespace = namespace\n\n return formatMessage\n}\n\nmodule.exports = exports = namespace()\n","// @flow\n'use strict'\nvar formats = require('format-message-formats')\nvar lookupClosestLocale = require('lookup-closest-locale')\nvar plurals = require('./plurals')\n\n/*::\nimport type {\n AST,\n SubMessages\n} from '../format-message-parse'\ntype Locale = string\ntype Locales = Locale | Locale[]\ntype Placeholder = any[] // https://github.com/facebook/flow/issues/4050\nexport type Type = (Placeholder, Locales) => (any, ?Object) => any\nexport type Types = { [string]: Type }\n*/\n\nexports = module.exports = function interpret (\n ast/*: AST */,\n locale/*:: ?: Locales */,\n types/*:: ?: Types */\n)/*: (args?: Object) => string */ {\n return interpretAST(ast, null, locale || 'en', types || {}, true)\n}\n\nexports.toParts = function toParts (\n ast/*: AST */,\n locale/*:: ?: Locales */,\n types/*:: ?: Types */\n)/*: (args?: Object) => any[] */ {\n return interpretAST(ast, null, locale || 'en', types || {}, false)\n}\n\nfunction interpretAST (\n elements/*: any[] */,\n parent/*: ?Placeholder */,\n locale/*: Locales */,\n types/*: Types */,\n join/*: boolean */\n)/*: Function */ {\n var parts = elements.map(function (element) {\n return interpretElement(element, parent, locale, types, join)\n })\n\n if (!join) {\n return function format (args) {\n return parts.reduce(function (parts, part) {\n return parts.concat(part(args))\n }, [])\n }\n }\n\n if (parts.length === 1) return parts[0]\n return function format (args) {\n var message = ''\n for (var e = 0; e < parts.length; ++e) {\n message += parts[e](args)\n }\n return message\n }\n}\n\nfunction interpretElement (\n element/*: Placeholder */,\n parent/*: ?Placeholder */,\n locale/*: Locales */,\n types/*: Types */,\n join/*: boolean */\n)/*: Function */ {\n if (typeof element === 'string') {\n var value/*: string */ = element\n return function format () { return value }\n }\n\n var id = element[0]\n var type = element[1]\n\n if (parent && element[0] === '#') {\n id = parent[0]\n var offset = parent[2]\n var formatter = (types.number || defaults.number)([ id, 'number' ], locale)\n return function format (args) {\n return formatter(getArg(id, args) - offset, args)\n }\n }\n\n // pre-process children\n var children\n if (type === 'plural' || type === 'selectordinal') {\n children = {}\n Object.keys(element[3]).forEach(function (key) {\n children[key] = interpretAST(element[3][key], element, locale, types, join)\n })\n element = [ element[0], element[1], element[2], children ]\n } else if (element[2] && typeof element[2] === 'object') {\n children = {}\n Object.keys(element[2]).forEach(function (key) {\n children[key] = interpretAST(element[2][key], element, locale, types, join)\n })\n element = [ element[0], element[1], children ]\n }\n\n var getFrmt = type && (types[type] || defaults[type])\n if (getFrmt) {\n var frmt = getFrmt(element, locale)\n return function format (args) {\n return frmt(getArg(id, args), args)\n }\n }\n\n return join\n ? function format (args) { return String(getArg(id, args)) }\n : function format (args) { return getArg(id, args) }\n}\n\nfunction getArg (id/*: string */, args/*: ?Object */)/*: any */ {\n if (args && (id in args)) return args[id]\n var parts = id.split('.')\n var a = args\n for (var i = 0, ii = parts.length; a && i < ii; ++i) {\n a = a[parts[i]]\n }\n return a\n}\n\nfunction interpretNumber (element/*: Placeholder */, locales/*: Locales */) {\n var style = element[2]\n var options = formats.number[style] || formats.parseNumberPattern(style) || formats.number.default\n return new Intl.NumberFormat(locales, options).format\n}\n\nfunction interpretDuration (element/*: Placeholder */, locales/*: Locales */) {\n var style = element[2]\n var options = formats.duration[style] || formats.duration.default\n var fs = new Intl.NumberFormat(locales, options.seconds).format\n var fm = new Intl.NumberFormat(locales, options.minutes).format\n var fh = new Intl.NumberFormat(locales, options.hours).format\n var sep = /^fi$|^fi-|^da/.test(String(locales)) ? '.' : ':'\n\n return function (s, args) {\n s = +s\n if (!isFinite(s)) return fs(s)\n var h = ~~(s / 60 / 60) // ~~ acts much like Math.trunc\n var m = ~~(s / 60 % 60)\n var dur = (h ? (fh(Math.abs(h)) + sep) : '') +\n fm(Math.abs(m)) + sep + fs(Math.abs(s % 60))\n return s < 0 ? fh(-1).replace(fh(1), dur) : dur\n }\n}\n\nfunction interpretDateTime (element/*: Placeholder */, locales/*: Locales */) {\n var type = element[1]\n var style = element[2]\n var options = formats[type][style] || formats.parseDatePattern(style) || formats[type].default\n return new Intl.DateTimeFormat(locales, options).format\n}\n\nfunction interpretPlural (element/*: Placeholder */, locales/*: Locales */) {\n var type = element[1]\n var pluralType = type === 'selectordinal' ? 'ordinal' : 'cardinal'\n var offset = element[2]\n var children = element[3]\n var pluralRules\n if (Intl.PluralRules && Intl.PluralRules.supportedLocalesOf(locales).length > 0) {\n pluralRules = new Intl.PluralRules(locales, { type: pluralType })\n } else {\n var locale = lookupClosestLocale(locales, plurals)\n var select = (locale && plurals[locale][pluralType]) || returnOther\n pluralRules = { select: select }\n }\n\n return function (value, args) {\n var clause =\n children['=' + +value] ||\n children[pluralRules.select(value - offset)] ||\n children.other\n return clause(args)\n }\n}\n\nfunction returnOther (/*:: n:number */) { return 'other' }\n\nfunction interpretSelect (element/*: Placeholder */, locales/*: Locales */) {\n var children = element[2]\n return function (value, args) {\n var clause = children[value] || children.other\n return clause(args)\n }\n}\n\nvar defaults/*: Types */ = {\n number: interpretNumber,\n ordinal: interpretNumber, // TODO: support rbnf\n spellout: interpretNumber, // TODO: support rbnf\n duration: interpretDuration,\n date: interpretDateTime,\n time: interpretDateTime,\n plural: interpretPlural,\n selectordinal: interpretPlural,\n select: interpretSelect\n}\nexports.types = defaults\n","// @flow\nvar LONG = 'long'\nvar SHORT = 'short'\nvar NARROW = 'narrow'\nvar NUMERIC = 'numeric'\nvar TWODIGIT = '2-digit'\n\n/**\n * formatting information\n **/\nmodule.exports = {\n number: {\n decimal: {\n style: 'decimal'\n },\n integer: {\n style: 'decimal',\n maximumFractionDigits: 0\n },\n currency: {\n style: 'currency',\n currency: 'USD'\n },\n percent: {\n style: 'percent'\n },\n default: {\n style: 'decimal'\n }\n },\n date: {\n short: {\n month: NUMERIC,\n day: NUMERIC,\n year: TWODIGIT\n },\n medium: {\n month: SHORT,\n day: NUMERIC,\n year: NUMERIC\n },\n long: {\n month: LONG,\n day: NUMERIC,\n year: NUMERIC\n },\n full: {\n month: LONG,\n day: NUMERIC,\n year: NUMERIC,\n weekday: LONG\n },\n default: {\n month: SHORT,\n day: NUMERIC,\n year: NUMERIC\n }\n },\n time: {\n short: {\n hour: NUMERIC,\n minute: NUMERIC\n },\n medium: {\n hour: NUMERIC,\n minute: NUMERIC,\n second: NUMERIC\n },\n long: {\n hour: NUMERIC,\n minute: NUMERIC,\n second: NUMERIC,\n timeZoneName: SHORT\n },\n full: {\n hour: NUMERIC,\n minute: NUMERIC,\n second: NUMERIC,\n timeZoneName: SHORT\n },\n default: {\n hour: NUMERIC,\n minute: NUMERIC,\n second: NUMERIC\n }\n },\n duration: {\n default: {\n hours: {\n minimumIntegerDigits: 1,\n maximumFractionDigits: 0\n },\n minutes: {\n minimumIntegerDigits: 2,\n maximumFractionDigits: 0\n },\n seconds: {\n minimumIntegerDigits: 2,\n maximumFractionDigits: 3\n }\n }\n },\n parseNumberPattern: function (pattern/*: ?string */) {\n if (!pattern) return\n var options = {}\n var currency = pattern.match(/\\b[A-Z]{3}\\b/i)\n var syms = pattern.replace(/[^ยค]/g, '').length\n if (!syms && currency) syms = 1\n if (syms) {\n options.style = 'currency'\n options.currencyDisplay = syms === 1 ? 'symbol' : syms === 2 ? 'code' : 'name'\n options.currency = currency ? currency[0].toUpperCase() : 'USD'\n } else if (pattern.indexOf('%') >= 0) {\n options.style = 'percent'\n }\n if (!/[@#0]/.test(pattern)) return options.style ? options : undefined\n options.useGrouping = pattern.indexOf(',') >= 0\n if (/E\\+?[@#0]+/i.test(pattern) || pattern.indexOf('@') >= 0) {\n var size = pattern.replace(/E\\+?[@#0]+|[^@#0]/gi, '')\n options.minimumSignificantDigits = Math.min(Math.max(size.replace(/[^@0]/g, '').length, 1), 21)\n options.maximumSignificantDigits = Math.min(Math.max(size.length, 1), 21)\n } else {\n var parts = pattern.replace(/[^#0.]/g, '').split('.')\n var integer = parts[0]\n var n = integer.length - 1\n while (integer[n] === '0') --n\n options.minimumIntegerDigits = Math.min(Math.max(integer.length - 1 - n, 1), 21)\n var fraction = parts[1] || ''\n n = 0\n while (fraction[n] === '0') ++n\n options.minimumFractionDigits = Math.min(Math.max(n, 0), 20)\n while (fraction[n] === '#') ++n\n options.maximumFractionDigits = Math.min(Math.max(n, 0), 20)\n }\n return options\n },\n parseDatePattern: function (pattern/*: ?string */) {\n if (!pattern) return\n var options = {}\n for (var i = 0; i < pattern.length;) {\n var current = pattern[i]\n var n = 1\n while (pattern[++i] === current) ++n\n switch (current) {\n case 'G':\n options.era = n === 5 ? NARROW : n === 4 ? LONG : SHORT\n break\n case 'y':\n case 'Y':\n options.year = n === 2 ? TWODIGIT : NUMERIC\n break\n case 'M':\n case 'L':\n n = Math.min(Math.max(n - 1, 0), 4)\n options.month = [ NUMERIC, TWODIGIT, SHORT, LONG, NARROW ][n]\n break\n case 'E':\n case 'e':\n case 'c':\n options.weekday = n === 5 ? NARROW : n === 4 ? LONG : SHORT\n break\n case 'd':\n case 'D':\n options.day = n === 2 ? TWODIGIT : NUMERIC\n break\n case 'h':\n case 'K':\n options.hour12 = true\n options.hour = n === 2 ? TWODIGIT : NUMERIC\n break\n case 'H':\n case 'k':\n options.hour12 = false\n options.hour = n === 2 ? TWODIGIT : NUMERIC\n break\n case 'm':\n options.minute = n === 2 ? TWODIGIT : NUMERIC\n break\n case 's':\n case 'S':\n options.second = n === 2 ? TWODIGIT : NUMERIC\n break\n case 'z':\n case 'Z':\n case 'v':\n case 'V':\n options.timeZoneName = n === 1 ? SHORT : LONG\n break\n }\n }\n return Object.keys(options).length ? options : undefined\n }\n}\n","// @flow\n'use strict'\n\n/*:: export type Rule = 'zero' | 'one' | 'two' | 'few' | 'many' | 'other' */\nvar zero = 'zero', one = 'one', two = 'two', few = 'few', many = 'many', other = 'other'\nvar f = [\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return 0 <= n && n <= 1 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var n = +s\n return i === 0 || n === 1 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 0 ? zero\n : n === 1 ? one\n : n === 2 ? two\n : 3 <= n % 100 && n % 100 <= 10 ? few\n : 11 <= n % 100 && n % 100 <= 99 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n return i === 1 && v === 0 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n % 10 === 1 && n % 100 !== 11 ? one\n : (2 <= n % 10 && n % 10 <= 4) && (n % 100 < 12 || 14 < n % 100) ? few\n : n % 10 === 0 || (5 <= n % 10 && n % 10 <= 9) || (11 <= n % 100 && n % 100 <= 14) ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n % 10 === 1 && (n % 100 !== 11 && n % 100 !== 71 && n % 100 !== 91) ? one\n : n % 10 === 2 && (n % 100 !== 12 && n % 100 !== 72 && n % 100 !== 92) ? two\n : ((3 <= n % 10 && n % 10 <= 4) || n % 10 === 9) && ((n % 100 < 10 || 19 < n % 100) && (n % 100 < 70 || 79 < n % 100) && (n % 100 < 90 || 99 < n % 100)) ? few\n : n !== 0 && n % 1000000 === 0 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n var f = +(s + '.').split('.')[1]\n return v === 0 && i % 10 === 1 && i % 100 !== 11 || f % 10 === 1 && f % 100 !== 11 ? one\n : v === 0 && (2 <= i % 10 && i % 10 <= 4) && (i % 100 < 12 || 14 < i % 100) || (2 <= f % 10 && f % 10 <= 4) && (f % 100 < 12 || 14 < f % 100) ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n return i === 1 && v === 0 ? one\n : (2 <= i && i <= 4) && v === 0 ? few\n : v !== 0 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 0 ? zero\n : n === 1 ? one\n : n === 2 ? two\n : n === 3 ? few\n : n === 6 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var t = +('' + s).replace(/^[^.]*.?|0+$/g, '')\n var n = +s\n return n === 1 || t !== 0 && (i === 0 || i === 1) ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n var f = +(s + '.').split('.')[1]\n return v === 0 && i % 100 === 1 || f % 100 === 1 ? one\n : v === 0 && i % 100 === 2 || f % 100 === 2 ? two\n : v === 0 && (3 <= i % 100 && i % 100 <= 4) || (3 <= f % 100 && f % 100 <= 4) ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n return i === 0 || i === 1 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n var f = +(s + '.').split('.')[1]\n return v === 0 && (i === 1 || i === 2 || i === 3) || v === 0 && (i % 10 !== 4 && i % 10 !== 6 && i % 10 !== 9) || v !== 0 && (f % 10 !== 4 && f % 10 !== 6 && f % 10 !== 9) ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 ? one\n : n === 2 ? two\n : 3 <= n && n <= 6 ? few\n : 7 <= n && n <= 10 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 || n === 11 ? one\n : n === 2 || n === 12 ? two\n : ((3 <= n && n <= 10) || (13 <= n && n <= 19)) ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n return v === 0 && i % 10 === 1 ? one\n : v === 0 && i % 10 === 2 ? two\n : v === 0 && (i % 100 === 0 || i % 100 === 20 || i % 100 === 40 || i % 100 === 60 || i % 100 === 80) ? few\n : v !== 0 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n var n = +s\n return i === 1 && v === 0 ? one\n : i === 2 && v === 0 ? two\n : v === 0 && (n < 0 || 10 < n) && n % 10 === 0 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var t = +('' + s).replace(/^[^.]*.?|0+$/g, '')\n return t === 0 && i % 10 === 1 && i % 100 !== 11 || t !== 0 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 ? one\n : n === 2 ? two\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 0 ? zero\n : n === 1 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var n = +s\n return n === 0 ? zero\n : (i === 0 || i === 1) && n !== 0 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var f = +(s + '.').split('.')[1]\n var n = +s\n return n % 10 === 1 && (n % 100 < 11 || 19 < n % 100) ? one\n : (2 <= n % 10 && n % 10 <= 9) && (n % 100 < 11 || 19 < n % 100) ? few\n : f !== 0 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var v = (s + '.').split('.')[1].length\n var f = +(s + '.').split('.')[1]\n var n = +s\n return n % 10 === 0 || (11 <= n % 100 && n % 100 <= 19) || v === 2 && (11 <= f % 100 && f % 100 <= 19) ? zero\n : n % 10 === 1 && n % 100 !== 11 || v === 2 && f % 10 === 1 && f % 100 !== 11 || v !== 2 && f % 10 === 1 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n var f = +(s + '.').split('.')[1]\n return v === 0 && i % 10 === 1 && i % 100 !== 11 || f % 10 === 1 && f % 100 !== 11 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n var n = +s\n return i === 1 && v === 0 ? one\n : v !== 0 || n === 0 || n !== 1 && (1 <= n % 100 && n % 100 <= 19) ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 ? one\n : n === 0 || (2 <= n % 100 && n % 100 <= 10) ? few\n : 11 <= n % 100 && n % 100 <= 19 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n return i === 1 && v === 0 ? one\n : v === 0 && (2 <= i % 10 && i % 10 <= 4) && (i % 100 < 12 || 14 < i % 100) ? few\n : v === 0 && i !== 1 && (0 <= i % 10 && i % 10 <= 1) || v === 0 && (5 <= i % 10 && i % 10 <= 9) || v === 0 && (12 <= i % 100 && i % 100 <= 14) ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n return 0 <= i && i <= 1 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n return v === 0 && i % 10 === 1 && i % 100 !== 11 ? one\n : v === 0 && (2 <= i % 10 && i % 10 <= 4) && (i % 100 < 12 || 14 < i % 100) ? few\n : v === 0 && i % 10 === 0 || v === 0 && (5 <= i % 10 && i % 10 <= 9) || v === 0 && (11 <= i % 100 && i % 100 <= 14) ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var n = +s\n return i === 0 || n === 1 ? one\n : 2 <= n && n <= 10 ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var f = +(s + '.').split('.')[1]\n var n = +s\n return (n === 0 || n === 1) || i === 0 && f === 1 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n var v = (s + '.').split('.')[1].length\n return v === 0 && i % 100 === 1 ? one\n : v === 0 && i % 100 === 2 ? two\n : v === 0 && (3 <= i % 100 && i % 100 <= 4) || v !== 0 ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return (0 <= n && n <= 1) || (11 <= n && n <= 99) ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 || n === 5 || n === 7 || n === 8 || n === 9 || n === 10 ? one\n : n === 2 || n === 3 ? two\n : n === 4 ? few\n : n === 6 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n return (i % 10 === 1 || i % 10 === 2 || i % 10 === 5 || i % 10 === 7 || i % 10 === 8) || (i % 100 === 20 || i % 100 === 50 || i % 100 === 70 || i % 100 === 80) ? one\n : (i % 10 === 3 || i % 10 === 4) || (i % 1000 === 100 || i % 1000 === 200 || i % 1000 === 300 || i % 1000 === 400 || i % 1000 === 500 || i % 1000 === 600 || i % 1000 === 700 || i % 1000 === 800 || i % 1000 === 900) ? few\n : i === 0 || i % 10 === 6 || (i % 100 === 40 || i % 100 === 60 || i % 100 === 90) ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return (n % 10 === 2 || n % 10 === 3) && (n % 100 !== 12 && n % 100 !== 13) ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 || n === 3 ? one\n : n === 2 ? two\n : n === 4 ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 0 || n === 7 || n === 8 || n === 9 ? zero\n : n === 1 ? one\n : n === 2 ? two\n : n === 3 || n === 4 ? few\n : n === 5 || n === 6 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n % 10 === 1 && n % 100 !== 11 ? one\n : n % 10 === 2 && n % 100 !== 12 ? two\n : n % 10 === 3 && n % 100 !== 13 ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 || n === 11 ? one\n : n === 2 || n === 12 ? two\n : n === 3 || n === 13 ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 ? one\n : n === 2 || n === 3 ? two\n : n === 4 ? few\n : n === 6 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 || n === 5 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 11 || n === 8 || n === 80 || n === 800 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n return i === 1 ? one\n : i === 0 || ((2 <= i % 100 && i % 100 <= 20) || i % 100 === 40 || i % 100 === 60 || i % 100 === 80) ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n % 10 === 6 || n % 10 === 9 || n % 10 === 0 && n !== 0 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var i = Math.floor(Math.abs(+s))\n return i % 10 === 1 && i % 100 !== 11 ? one\n : i % 10 === 2 && i % 100 !== 12 ? two\n : (i % 10 === 7 || i % 10 === 8) && (i % 100 !== 17 && i % 100 !== 18) ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 ? one\n : n === 2 || n === 3 ? two\n : n === 4 ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return 1 <= n && n <= 4 ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return (n === 1 || n === 5 || (7 <= n && n <= 9)) ? one\n : n === 2 || n === 3 ? two\n : n === 4 ? few\n : n === 6 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n === 1 ? one\n : n % 10 === 4 && n % 100 !== 14 ? many\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return (n % 10 === 1 || n % 10 === 2) && (n % 100 !== 11 && n % 100 !== 12) ? one\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return (n % 10 === 6 || n % 10 === 9) || n === 10 ? few\n : other\n },\n function (s/*: string | number */)/*: Rule */ {\n var n = +s\n return n % 10 === 3 && n % 100 !== 13 ? few\n : other\n }\n]\n\nmodule.exports = {\n af: { cardinal: f[0] },\n ak: { cardinal: f[1] },\n am: { cardinal: f[2] },\n ar: { cardinal: f[3] },\n ars: { cardinal: f[3] },\n as: { cardinal: f[2], ordinal: f[34] },\n asa: { cardinal: f[0] },\n ast: { cardinal: f[4] },\n az: { cardinal: f[0], ordinal: f[35] },\n be: { cardinal: f[5], ordinal: f[36] },\n bem: { cardinal: f[0] },\n bez: { cardinal: f[0] },\n bg: { cardinal: f[0] },\n bh: { cardinal: f[1] },\n bn: { cardinal: f[2], ordinal: f[34] },\n br: { cardinal: f[6] },\n brx: { cardinal: f[0] },\n bs: { cardinal: f[7] },\n ca: { cardinal: f[4], ordinal: f[37] },\n ce: { cardinal: f[0] },\n cgg: { cardinal: f[0] },\n chr: { cardinal: f[0] },\n ckb: { cardinal: f[0] },\n cs: { cardinal: f[8] },\n cy: { cardinal: f[9], ordinal: f[38] },\n da: { cardinal: f[10] },\n de: { cardinal: f[4] },\n dsb: { cardinal: f[11] },\n dv: { cardinal: f[0] },\n ee: { cardinal: f[0] },\n el: { cardinal: f[0] },\n en: { cardinal: f[4], ordinal: f[39] },\n eo: { cardinal: f[0] },\n es: { cardinal: f[0] },\n et: { cardinal: f[4] },\n eu: { cardinal: f[0] },\n fa: { cardinal: f[2] },\n ff: { cardinal: f[12] },\n fi: { cardinal: f[4] },\n fil: { cardinal: f[13], ordinal: f[0] },\n fo: { cardinal: f[0] },\n fr: { cardinal: f[12], ordinal: f[0] },\n fur: { cardinal: f[0] },\n fy: { cardinal: f[4] },\n ga: { cardinal: f[14], ordinal: f[0] },\n gd: { cardinal: f[15], ordinal: f[40] },\n gl: { cardinal: f[4] },\n gsw: { cardinal: f[0] },\n gu: { cardinal: f[2], ordinal: f[41] },\n guw: { cardinal: f[1] },\n gv: { cardinal: f[16] },\n ha: { cardinal: f[0] },\n haw: { cardinal: f[0] },\n he: { cardinal: f[17] },\n hi: { cardinal: f[2], ordinal: f[41] },\n hr: { cardinal: f[7] },\n hsb: { cardinal: f[11] },\n hu: { cardinal: f[0], ordinal: f[42] },\n hy: { cardinal: f[12], ordinal: f[0] },\n ia: { cardinal: f[4] },\n io: { cardinal: f[4] },\n is: { cardinal: f[18] },\n it: { cardinal: f[4], ordinal: f[43] },\n iu: { cardinal: f[19] },\n iw: { cardinal: f[17] },\n jgo: { cardinal: f[0] },\n ji: { cardinal: f[4] },\n jmc: { cardinal: f[0] },\n ka: { cardinal: f[0], ordinal: f[44] },\n kab: { cardinal: f[12] },\n kaj: { cardinal: f[0] },\n kcg: { cardinal: f[0] },\n kk: { cardinal: f[0], ordinal: f[45] },\n kkj: { cardinal: f[0] },\n kl: { cardinal: f[0] },\n kn: { cardinal: f[2] },\n ks: { cardinal: f[0] },\n ksb: { cardinal: f[0] },\n ksh: { cardinal: f[20] },\n ku: { cardinal: f[0] },\n kw: { cardinal: f[19] },\n ky: { cardinal: f[0] },\n lag: { cardinal: f[21] },\n lb: { cardinal: f[0] },\n lg: { cardinal: f[0] },\n ln: { cardinal: f[1] },\n lt: { cardinal: f[22] },\n lv: { cardinal: f[23] },\n mas: { cardinal: f[0] },\n mg: { cardinal: f[1] },\n mgo: { cardinal: f[0] },\n mk: { cardinal: f[24], ordinal: f[46] },\n ml: { cardinal: f[0] },\n mn: { cardinal: f[0] },\n mo: { cardinal: f[25], ordinal: f[0] },\n mr: { cardinal: f[2], ordinal: f[47] },\n mt: { cardinal: f[26] },\n nah: { cardinal: f[0] },\n naq: { cardinal: f[19] },\n nb: { cardinal: f[0] },\n nd: { cardinal: f[0] },\n ne: { cardinal: f[0], ordinal: f[48] },\n nl: { cardinal: f[4] },\n nn: { cardinal: f[0] },\n nnh: { cardinal: f[0] },\n no: { cardinal: f[0] },\n nr: { cardinal: f[0] },\n nso: { cardinal: f[1] },\n ny: { cardinal: f[0] },\n nyn: { cardinal: f[0] },\n om: { cardinal: f[0] },\n or: { cardinal: f[0], ordinal: f[49] },\n os: { cardinal: f[0] },\n pa: { cardinal: f[1] },\n pap: { cardinal: f[0] },\n pl: { cardinal: f[27] },\n prg: { cardinal: f[23] },\n ps: { cardinal: f[0] },\n pt: { cardinal: f[28] },\n 'pt-PT': { cardinal: f[4] },\n rm: { cardinal: f[0] },\n ro: { cardinal: f[25], ordinal: f[0] },\n rof: { cardinal: f[0] },\n ru: { cardinal: f[29] },\n rwk: { cardinal: f[0] },\n saq: { cardinal: f[0] },\n sc: { cardinal: f[4], ordinal: f[43] },\n scn: { cardinal: f[4], ordinal: f[43] },\n sd: { cardinal: f[0] },\n sdh: { cardinal: f[0] },\n se: { cardinal: f[19] },\n seh: { cardinal: f[0] },\n sh: { cardinal: f[7] },\n shi: { cardinal: f[30] },\n si: { cardinal: f[31] },\n sk: { cardinal: f[8] },\n sl: { cardinal: f[32] },\n sma: { cardinal: f[19] },\n smi: { cardinal: f[19] },\n smj: { cardinal: f[19] },\n smn: { cardinal: f[19] },\n sms: { cardinal: f[19] },\n sn: { cardinal: f[0] },\n so: { cardinal: f[0] },\n sq: { cardinal: f[0], ordinal: f[50] },\n sr: { cardinal: f[7] },\n ss: { cardinal: f[0] },\n ssy: { cardinal: f[0] },\n st: { cardinal: f[0] },\n sv: { cardinal: f[4], ordinal: f[51] },\n sw: { cardinal: f[4] },\n syr: { cardinal: f[0] },\n ta: { cardinal: f[0] },\n te: { cardinal: f[0] },\n teo: { cardinal: f[0] },\n ti: { cardinal: f[1] },\n tig: { cardinal: f[0] },\n tk: { cardinal: f[0], ordinal: f[52] },\n tl: { cardinal: f[13], ordinal: f[0] },\n tn: { cardinal: f[0] },\n tr: { cardinal: f[0] },\n ts: { cardinal: f[0] },\n tzm: { cardinal: f[33] },\n ug: { cardinal: f[0] },\n uk: { cardinal: f[29], ordinal: f[53] },\n ur: { cardinal: f[4] },\n uz: { cardinal: f[0] },\n ve: { cardinal: f[0] },\n vo: { cardinal: f[0] },\n vun: { cardinal: f[0] },\n wa: { cardinal: f[1] },\n wae: { cardinal: f[0] },\n xh: { cardinal: f[0] },\n xog: { cardinal: f[0] },\n yi: { cardinal: f[4] },\n zu: { cardinal: f[2] },\n lo: { ordinal: f[0] },\n ms: { ordinal: f[0] },\n vi: { ordinal: f[0] }\n}\n","// @flow\n'use strict'\n\n/*::\nexport type AST = Element[]\nexport type Element = string | Placeholder\nexport type Placeholder = Plural | Styled | Typed | Simple\nexport type Plural = [ string, 'plural' | 'selectordinal', number, SubMessages ]\nexport type Styled = [ string, string, string | SubMessages ]\nexport type Typed = [ string, string ]\nexport type Simple = [ string ]\nexport type SubMessages = { [string]: AST }\nexport type Token = [ TokenType, string ]\nexport type TokenType = 'text' | 'space' | 'id' | 'type' | 'style' | 'offset' | 'number' | 'selector' | 'syntax'\ntype Context = {|\n pattern: string,\n index: number,\n tagsType: ?string,\n tokens: ?Token[]\n|}\n*/\n\nvar ARG_OPN = '{'\nvar ARG_CLS = '}'\nvar ARG_SEP = ','\nvar NUM_ARG = '#'\nvar TAG_OPN = '<'\nvar TAG_CLS = '>'\nvar TAG_END = ''\nvar ESC = '\\''\nvar OFFSET = 'offset:'\nvar simpleTypes = [\n 'number',\n 'date',\n 'time',\n 'ordinal',\n 'duration',\n 'spellout'\n]\nvar submTypes = [\n 'plural',\n 'select',\n 'selectordinal'\n]\n\n/**\n * parse\n *\n * Turns this:\n * `You have { numBananas, plural,\n * =0 {no bananas}\n * one {a banana}\n * other {# bananas}\n * } for sale`\n *\n * into this:\n * [ \"You have \", [ \"numBananas\", \"plural\", 0, {\n * \"=0\": [ \"no bananas\" ],\n * \"one\": [ \"a banana\" ],\n * \"other\": [ [ '#' ], \" bananas\" ]\n * } ], \" for sale.\" ]\n *\n * tokens:\n * [\n * [ \"text\", \"You have \" ],\n * [ \"syntax\", \"{\" ],\n * [ \"space\", \" \" ],\n * [ \"id\", \"numBananas\" ],\n * [ \"syntax\", \", \" ],\n * [ \"space\", \" \" ],\n * [ \"type\", \"plural\" ],\n * [ \"syntax\", \",\" ],\n * [ \"space\", \"\\n \" ],\n * [ \"selector\", \"=0\" ],\n * [ \"space\", \" \" ],\n * [ \"syntax\", \"{\" ],\n * [ \"text\", \"no bananas\" ],\n * [ \"syntax\", \"}\" ],\n * [ \"space\", \"\\n \" ],\n * [ \"selector\", \"one\" ],\n * [ \"space\", \" \" ],\n * [ \"syntax\", \"{\" ],\n * [ \"text\", \"a banana\" ],\n * [ \"syntax\", \"}\" ],\n * [ \"space\", \"\\n \" ],\n * [ \"selector\", \"other\" ],\n * [ \"space\", \" \" ],\n * [ \"syntax\", \"{\" ],\n * [ \"syntax\", \"#\" ],\n * [ \"text\", \" bananas\" ],\n * [ \"syntax\", \"}\" ],\n * [ \"space\", \"\\n\" ],\n * [ \"syntax\", \"}\" ],\n * [ \"text\", \" for sale.\" ]\n * ]\n **/\nexports = module.exports = function parse (\n pattern/*: string */,\n options/*:: ?: { tagsType?: string, tokens?: Token[] } */\n)/*: AST */ {\n return parseAST({\n pattern: String(pattern),\n index: 0,\n tagsType: (options && options.tagsType) || null,\n tokens: (options && options.tokens) || null\n }, '')\n}\n\nfunction parseAST (current/*: Context */, parentType/*: string */)/*: AST */ {\n var pattern = current.pattern\n var length = pattern.length\n var elements/*: AST */ = []\n var start = current.index\n var text = parseText(current, parentType)\n if (text) elements.push(text)\n if (text && current.tokens) current.tokens.push([ 'text', pattern.slice(start, current.index) ])\n while (current.index < length) {\n if (pattern[current.index] === ARG_CLS) {\n if (!parentType) throw expected(current)\n break\n }\n if (parentType && current.tagsType && pattern.slice(current.index, current.index + TAG_END.length) === TAG_END) break\n elements.push(parsePlaceholder(current))\n start = current.index\n text = parseText(current, parentType)\n if (text) elements.push(text)\n if (text && current.tokens) current.tokens.push([ 'text', pattern.slice(start, current.index) ])\n }\n return elements\n}\n\nfunction parseText (current/*: Context */, parentType/*: string */)/*: string */ {\n var pattern = current.pattern\n var length = pattern.length\n var isHashSpecial = (parentType === 'plural' || parentType === 'selectordinal')\n var isAngleSpecial = !!current.tagsType\n var isArgStyle = (parentType === '{style}')\n var text = ''\n while (current.index < length) {\n var char = pattern[current.index]\n if (\n char === ARG_OPN || char === ARG_CLS ||\n (isHashSpecial && char === NUM_ARG) ||\n (isAngleSpecial && char === TAG_OPN) ||\n (isArgStyle && isWhitespace(char.charCodeAt(0)))\n ) {\n break\n } else if (char === ESC) {\n char = pattern[++current.index]\n if (char === ESC) { // double is always 1 '\n text += char\n ++current.index\n } else if (\n // only when necessary\n char === ARG_OPN || char === ARG_CLS ||\n (isHashSpecial && char === NUM_ARG) ||\n (isAngleSpecial && char === TAG_OPN) ||\n isArgStyle\n ) {\n text += char\n while (++current.index < length) {\n char = pattern[current.index]\n if (char === ESC && pattern[current.index + 1] === ESC) { // double is always 1 '\n text += ESC\n ++current.index\n } else if (char === ESC) { // end of quoted\n ++current.index\n break\n } else {\n text += char\n }\n }\n } else { // lone ' is just a '\n text += ESC\n // already incremented\n }\n } else {\n text += char\n ++current.index\n }\n }\n return text\n}\n\nfunction isWhitespace (code/*: number */)/*: boolean */ {\n return (\n (code >= 0x09 && code <= 0x0D) ||\n code === 0x20 || code === 0x85 || code === 0xA0 || code === 0x180E ||\n (code >= 0x2000 && code <= 0x200D) ||\n code === 0x2028 || code === 0x2029 || code === 0x202F || code === 0x205F ||\n code === 0x2060 || code === 0x3000 || code === 0xFEFF\n )\n}\n\nfunction skipWhitespace (current/*: Context */)/*: void */ {\n var pattern = current.pattern\n var length = pattern.length\n var start = current.index\n while (current.index < length && isWhitespace(pattern.charCodeAt(current.index))) {\n ++current.index\n }\n if (start < current.index && current.tokens) {\n current.tokens.push([ 'space', current.pattern.slice(start, current.index) ])\n }\n}\n\nfunction parsePlaceholder (current/*: Context */)/*: Placeholder */ {\n var pattern = current.pattern\n if (pattern[current.index] === NUM_ARG) {\n if (current.tokens) current.tokens.push([ 'syntax', NUM_ARG ])\n ++current.index // move passed #\n return [ NUM_ARG ]\n }\n\n var tag = parseTag(current)\n if (tag) return tag\n\n /* istanbul ignore if should be unreachable if parseAST and parseText are right */\n if (pattern[current.index] !== ARG_OPN) throw expected(current, ARG_OPN)\n if (current.tokens) current.tokens.push([ 'syntax', ARG_OPN ])\n ++current.index // move passed {\n skipWhitespace(current)\n\n var id = parseId(current)\n if (!id) throw expected(current, 'placeholder id')\n if (current.tokens) current.tokens.push([ 'id', id ])\n skipWhitespace(current)\n\n var char = pattern[current.index]\n if (char === ARG_CLS) { // end placeholder\n if (current.tokens) current.tokens.push([ 'syntax', ARG_CLS ])\n ++current.index // move passed }\n return [ id ]\n }\n\n if (char !== ARG_SEP) throw expected(current, ARG_SEP + ' or ' + ARG_CLS)\n if (current.tokens) current.tokens.push([ 'syntax', ARG_SEP ])\n ++current.index // move passed ,\n skipWhitespace(current)\n\n var type = parseId(current)\n if (!type) throw expected(current, 'placeholder type')\n if (current.tokens) current.tokens.push([ 'type', type ])\n skipWhitespace(current)\n char = pattern[current.index]\n if (char === ARG_CLS) { // end placeholder\n if (current.tokens) current.tokens.push([ 'syntax', ARG_CLS ])\n if (type === 'plural' || type === 'selectordinal' || type === 'select') {\n throw expected(current, type + ' sub-messages')\n }\n ++current.index // move passed }\n return [ id, type ]\n }\n\n if (char !== ARG_SEP) throw expected(current, ARG_SEP + ' or ' + ARG_CLS)\n if (current.tokens) current.tokens.push([ 'syntax', ARG_SEP ])\n ++current.index // move passed ,\n skipWhitespace(current)\n\n var arg\n if (type === 'plural' || type === 'selectordinal') {\n var offset = parsePluralOffset(current)\n skipWhitespace(current)\n arg = [ id, type, offset, parseSubMessages(current, type) ]\n } else if (type === 'select') {\n arg = [ id, type, parseSubMessages(current, type) ]\n } else if (simpleTypes.indexOf(type) >= 0) {\n arg = [ id, type, parseSimpleFormat(current) ]\n } else { // custom placeholder type\n var index = current.index\n var format/*: string | SubMessages */ = parseSimpleFormat(current)\n skipWhitespace(current)\n if (pattern[current.index] === ARG_OPN) {\n current.index = index // rewind, since should have been submessages\n format = parseSubMessages(current, type)\n }\n arg = [ id, type, format ]\n }\n\n skipWhitespace(current)\n if (pattern[current.index] !== ARG_CLS) throw expected(current, ARG_CLS)\n if (current.tokens) current.tokens.push([ 'syntax', ARG_CLS ])\n ++current.index // move passed }\n return arg\n}\n\nfunction parseTag (current/*: Context */)/*: ?Placeholder */ {\n var tagsType = current.tagsType\n if (!tagsType || current.pattern[current.index] !== TAG_OPN) return\n\n if (current.pattern.slice(current.index, current.index + TAG_END.length) === TAG_END) {\n throw expected(current, null, 'closing tag without matching opening tag')\n }\n if (current.tokens) current.tokens.push([ 'syntax', TAG_OPN ])\n ++current.index // move passed <\n\n var id = parseId(current, true)\n if (!id) throw expected(current, 'placeholder id')\n if (current.tokens) current.tokens.push([ 'id', id ])\n skipWhitespace(current)\n\n if (current.pattern.slice(current.index, current.index + TAG_SELF_CLS.length) === TAG_SELF_CLS) {\n if (current.tokens) current.tokens.push([ 'syntax', TAG_SELF_CLS ])\n current.index += TAG_SELF_CLS.length\n return [ id, tagsType ]\n }\n if (current.pattern[current.index] !== TAG_CLS) throw expected(current, TAG_CLS)\n if (current.tokens) current.tokens.push([ 'syntax', TAG_CLS ])\n ++current.index // move passed >\n\n var children = parseAST(current, tagsType)\n\n var end = current.index\n if (current.pattern.slice(current.index, current.index + TAG_END.length) !== TAG_END) throw expected(current, TAG_END + id + TAG_CLS)\n if (current.tokens) current.tokens.push([ 'syntax', TAG_END ])\n current.index += TAG_END.length\n var closeId = parseId(current, true)\n if (closeId && current.tokens) current.tokens.push([ 'id', closeId ])\n if (id !== closeId) {\n current.index = end // rewind for better error message\n throw expected(current, TAG_END + id + TAG_CLS, TAG_END + closeId + TAG_CLS)\n }\n skipWhitespace(current)\n if (current.pattern[current.index] !== TAG_CLS) throw expected(current, TAG_CLS)\n if (current.tokens) current.tokens.push([ 'syntax', TAG_CLS ])\n ++current.index // move passed >\n\n return [ id, tagsType, { children: children } ]\n}\n\nfunction parseId (current/*: Context */, isTag/*:: ?: boolean */)/*: string */ {\n var pattern = current.pattern\n var length = pattern.length\n var id = ''\n while (current.index < length) {\n var char = pattern[current.index]\n if (\n char === ARG_OPN || char === ARG_CLS || char === ARG_SEP ||\n char === NUM_ARG || char === ESC || isWhitespace(char.charCodeAt(0)) ||\n (isTag && (char === TAG_OPN || char === TAG_CLS || char === '/'))\n ) break\n id += char\n ++current.index\n }\n return id\n}\n\nfunction parseSimpleFormat (current/*: Context */)/*: string */ {\n var start = current.index\n var style = parseText(current, '{style}')\n if (!style) throw expected(current, 'placeholder style name')\n if (current.tokens) current.tokens.push([ 'style', current.pattern.slice(start, current.index) ])\n return style\n}\n\nfunction parsePluralOffset (current/*: Context */)/*: number */ {\n var pattern = current.pattern\n var length = pattern.length\n var offset = 0\n if (pattern.slice(current.index, current.index + OFFSET.length) === OFFSET) {\n if (current.tokens) current.tokens.push([ 'offset', 'offset' ], [ 'syntax', ':' ])\n current.index += OFFSET.length // move passed offset:\n skipWhitespace(current)\n var start = current.index\n while (current.index < length && isDigit(pattern.charCodeAt(current.index))) {\n ++current.index\n }\n if (start === current.index) throw expected(current, 'offset number')\n if (current.tokens) current.tokens.push([ 'number', pattern.slice(start, current.index) ])\n offset = +pattern.slice(start, current.index)\n }\n return offset\n}\n\nfunction isDigit (code/*: number */)/*: boolean */ {\n return (code >= 0x30 && code <= 0x39)\n}\n\nfunction parseSubMessages (current/*: Context */, parentType/*: string */)/*: SubMessages */ {\n var pattern = current.pattern\n var length = pattern.length\n var options/*: SubMessages */ = {}\n while (current.index < length && pattern[current.index] !== ARG_CLS) {\n var selector = parseId(current)\n if (!selector) throw expected(current, 'sub-message selector')\n if (current.tokens) current.tokens.push([ 'selector', selector ])\n skipWhitespace(current)\n options[selector] = parseSubMessage(current, parentType)\n skipWhitespace(current)\n }\n if (!options.other && submTypes.indexOf(parentType) >= 0) {\n throw expected(current, null, null, '\"other\" sub-message must be specified in ' + parentType)\n }\n return options\n}\n\nfunction parseSubMessage (current/*: Context */, parentType/*: string */)/*: AST */ {\n if (current.pattern[current.index] !== ARG_OPN) throw expected(current, ARG_OPN + ' to start sub-message')\n if (current.tokens) current.tokens.push([ 'syntax', ARG_OPN ])\n ++current.index // move passed {\n var message = parseAST(current, parentType)\n if (current.pattern[current.index] !== ARG_CLS) throw expected(current, ARG_CLS + ' to end sub-message')\n if (current.tokens) current.tokens.push([ 'syntax', ARG_CLS ])\n ++current.index // move passed }\n return message\n}\n\nfunction expected (current/*: Context */, expected/*:: ?: ?string */, found/*:: ?: ?string */, message/*:: ?: string */) {\n var pattern = current.pattern\n var lines = pattern.slice(0, current.index).split(/\\r?\\n/)\n var offset = current.index\n var line = lines.length\n var column = lines.slice(-1)[0].length\n found = found || (\n (current.index >= pattern.length) ? 'end of message pattern'\n : (parseId(current) || pattern[current.index])\n )\n if (!message) message = errorMessage(expected, found)\n message += ' in ' + pattern.replace(/\\r?\\n/g, '\\n')\n return new SyntaxError(message, expected, found, offset, line, column)\n}\n\nfunction errorMessage (expected/*: ?string */, found/* string */) {\n if (!expected) return 'Unexpected ' + found + ' found'\n return 'Expected ' + expected + ' but found ' + found\n}\n\n/**\n * SyntaxError\n * Holds information about bad syntax found in a message pattern\n **/\nfunction SyntaxError (message/*: string */, expected/*: ?string */, found/*: ?string */, offset/*: number */, line/*: number */, column/*: number */) {\n Error.call(this, message)\n this.name = 'SyntaxError'\n this.message = message\n this.expected = expected\n this.found = found\n this.offset = offset\n this.line = line\n this.column = column\n}\nSyntaxError.prototype = Object.create(Error.prototype)\nexports.SyntaxError = SyntaxError\n","// @flow\n// \"lookup\" algorithm http://tools.ietf.org/html/rfc4647#section-3.4\n// assumes normalized language tags, and matches in a case sensitive manner\nmodule.exports = function lookupClosestLocale (locale/*: string | string[] | void */, available/*: { [string]: any } */)/*: ?string */ {\n if (typeof locale === 'string' && available[locale]) return locale\n var locales = [].concat(locale || [])\n for (var l = 0, ll = locales.length; l < ll; ++l) {\n var current = locales[l].split('-')\n while (current.length) {\n var candidate = current.join('-')\n if (available[candidate]) return candidate\n current.pop()\n }\n }\n}\n"],"sourceRoot":""}