{"version":3,"file":"@intlify-leqzBvDo.js","sources":["../../node_modules/@intlify/shared/dist/shared.esm-bundler.js","../../node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","../../node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","../../node_modules/@intlify/core-base/dist/core-base.esm-bundler.js"],"sourcesContent":["/*!\n * shared v9.2.0-beta.30\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * message-compiler v9.2.0-beta.30\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\nconst CompileErrorCodes = {\r\n // tokenizer error codes\r\n EXPECTED_TOKEN: 1,\r\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\r\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\r\n UNKNOWN_ESCAPE_SEQUENCE: 4,\r\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\r\n UNBALANCED_CLOSING_BRACE: 6,\r\n UNTERMINATED_CLOSING_BRACE: 7,\r\n EMPTY_PLACEHOLDER: 8,\r\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\r\n INVALID_LINKED_FORMAT: 10,\r\n // parser error codes\r\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\r\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\r\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\r\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\r\n // Special value for higher-order compilers to pick up the last code\r\n // to avoid collision of error codes. This should always be kept as the last\r\n // item.\r\n __EXTEND_POINT__: 15\r\n};\r\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\r\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\r\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\r\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\r\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\r\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\r\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\r\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\r\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\r\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\r\n // parser error messages\r\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\r\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n if (ch === \"%\" /* Modulo */) {\r\n scnr.next();\r\n return getToken(context, 4 /* Modulo */, \"%\" /* Modulo */);\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '�';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { CompileErrorCodes, ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * devtools-if v9.2.0-beta.30\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.0-beta.30\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isNumber, isString, isFunction, isPlainObject, toDisplayString, format, isArray, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, generateCodeFrame, generateFormatCacheKey, isEmptyObject, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveWithKeyValue(obj, path) {\r\n return isObject(obj) ? obj[path] : null;\r\n}\r\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n // TODO: need to design resolve message function?\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: (key, modifier) => {\r\n // TODO: should check `key`\r\n const msg = message(key)(ctx);\r\n return isString(modifier) ? _modifier(modifier)(msg) : msg;\r\n },\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst CoreWarnCodes = {\r\n NOT_FOUND_KEY: 1,\r\n FALLBACK_TO_TRANSLATE: 2,\r\n CANNOT_FORMAT_NUMBER: 3,\r\n FALLBACK_TO_NUMBER_FORMAT: 4,\r\n CANNOT_FORMAT_DATE: 5,\r\n FALLBACK_TO_DATE_FORMAT: 6,\r\n __EXTEND_POINT__: 7\r\n};\r\n/** @internal */\r\nconst warnMessages = {\r\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n) {\r\n // prettier-ignore\r\n return [...new Set([\r\n start,\r\n ...(isArray(fallback)\r\n ? fallback\r\n : isObject(fallback)\r\n ? Object.keys(fallback)\r\n : isString(fallback)\r\n ? [fallback]\r\n : [start])\r\n ])];\r\n}\r\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\r\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(startLocale);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n ? fallback\r\n : fallback['default']\r\n ? fallback['default']\r\n : null;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(startLocale, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.2.0-beta.30';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val) => (isString(val) ? val.toUpperCase() : val),\r\n lower: (val) => (isString(val) ? val.toLowerCase() : val),\r\n // prettier-ignore\r\n capitalize: (val) => (isString(val)\r\n ? `${val.charAt(0).toLocaleUpperCase()}${val.substr(1)}`\r\n : val)\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _resolver;\r\n/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _fallbacker;\r\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} }\r\n ;\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} }\r\n ;\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const messageResolver = isFunction(options.messageResolver)\r\n ? options.messageResolver\r\n : _resolver || resolveWithKeyValue;\r\n const localeFallbacker = isFunction(options.localeFallbacker)\r\n ? options.localeFallbacker\r\n : _fallbacker || fallbackWithSimple;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map()\r\n ;\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map()\r\n ;\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n messageResolver,\r\n localeFallbacker,\r\n onWarn,\r\n __meta\r\n };\r\n {\r\n context.datetimeFormats = datetimeFormats;\r\n context.numberFormats = numberFormats;\r\n context.__datetimeFormatters = __datetimeFormatters;\r\n context.__numberFormatters = __numberFormatters;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n ctx.localeFallbacker(ctx, fallback, locale);\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : key\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? (!messageCompiler ? () => key : key)\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [formatScope, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // NOTE:\r\n // Fix to work around `ssrTransfrom` bug in Vite.\r\n // https://github.com/vitejs/vite/issues/4306\r\n // To get around this, use temporary variables.\r\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n let format = formatScope;\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation ? postTranslation(messaged) : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules, messageResolver: resolveValue } = context;\r\n const resolveMessage = (key) => {\r\n const val = resolveValue(message, key);\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n let options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n if (!matches) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n // Some browsers can not parse the iso datetime separated by space,\r\n // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n const dateTime = matches[3]\r\n ? matches[3].trim().startsWith('T')\r\n ? `${matches[1].trim()}${matches[3].trim()}`\r\n : `${matches[1].trim()}T${matches[3].trim()}`\r\n : matches[1].trim();\r\n value = new Date(dateTime);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n options = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n let options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n options = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, translate, translateDevTools, updateFallbackLocale };\n"],"names":["n","hasSymbol","makeSymbol","name","generateFormatCacheKey","locale","key","source","friendlyJSONstringify","json","isNumber","val","isDate","toTypeString","isRegExp","isEmptyObject","isPlainObject","warn","msg","err","assign","_globalThis","getGlobalThis","escapeHtml","rawText","hasOwnProperty","hasOwn","obj","isArray","isFunction","isString","isBoolean","isObject","objectToString","value","toDisplayString","CompileErrorCodes","createCompileError","code","loc","options","domain","messages","args","error","defaultOnError","createPosition","line","column","offset","createLocation","start","end","CHAR_SP","CHAR_CR","CHAR_LF","CHAR_LS","CHAR_PS","createScanner","str","_buf","_index","_line","_column","_peekOffset","isCRLF","index","isLF","isPS","isLS","isLineEnd","peekOffset","charAt","currentChar","currentPeek","next","peek","reset","resetPeek","skipToPeek","target","EOF","LITERAL_DELIMITER","ERROR_DOMAIN$1","createTokenizer","location","_scnr","currentOffset","currentPosition","_initLoc","_initOffset","_context","context","onError","emitError","pos","ctx","getToken","type","token","getEndToken","eat","scnr","ch","peekSpaces","buf","skipSpaces","isIdentifierStart","cc","isNumberStart","isNamedIdentifierStart","currentType","ret","isListIdentifierStart","isLiteralStart","isLinkedDotStart","isLinkedModifierStart","isLinkedDelimiterStart","isLinkedReferStart","fn","isPluralStart","isTextStart","hasSpace","prev","detectModulo","takeChar","takeIdentifierChar","takeDigit","takeHexDigit","getDigits","num","readText","readNamedIdentifier","readListIdentifier","readLiteral","literal","x","readEscapeSequence","current","readUnicodeEscapeSequence","unicode","digits","sequence","i","readInvalidIdentifier","identifiers","closure","readLinkedModifier","readLinkedRefer","detect","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","nextToken","startLoc","endLoc","ERROR_DOMAIN","KNOWN_ESCAPES","fromEscapeSequence","match","codePoint4","codePoint6","codePoint","createParser","tokenzer","startNode","node","endNode","parseText","tokenizer","parseList","parseNamed","parseLiteral","parseLinkedModifier","getTokenCaption","parseLinkedKey","parseLinked","linkedNode","parsed","nextContext","emptyLinkedKeyNode","parseMessage","startOffset","endOffset","parsePlural","msgNode","hasEmptyMessage","parseResource","parse","createTransformer","ast","traverseNodes","nodes","transformer","traverseNode","transform","createCodeGenerator","sourceMap","filename","breakLineCode","_needIndent","push","_newline","withBreakLine","_breakLineCode","indent","withNewLine","level","deindent","newline","generateLinkedNode","generator","helper","generateNode","generateMessageNode","needIndent","length","generatePluralNode","generateResource","generate","mode","helpers","s","map","baseCompile","assignedOptions","IntlifyDevToolsHooks","pathStateMachine","literalValueRE","isLiteral","exp","stripQuotes","a","b","getPathCharType","formatSubPath","path","trimmed","keys","subPathDepth","c","newChar","transition","action","typeMap","actions","maybeUnescapeQuote","nextChar","cache","resolveWithKeyValue","resolveValue","hit","len","last","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_MESSAGE_DATA_TYPE","DEFAULT_NORMALIZE","values","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","getPluralIndex","normalizeNamed","pluralIndex","props","createMessageContext","pluralRule","orgPluralRule","_list","list","_named","named","message","_modifier","normalize","interpolate","modifier","devtools","setDevToolsHook","hook","initI18nDevTools","i18n","version","meta","translateDevTools","createDevToolsHook","payloads","fallbackWithSimple","fallback","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","chain","block","appendBlockToChain","defaults","blocks","follow","appendLocaleToChain","tokens","appendItemToChain","VERSION","NOT_REOSLVED","MISSING_RESOLVE_VALUE","getDefaultLinkedModifiers","_compiler","registerMessageCompiler","compiler","_resolver","registerMessageResolver","resolver","_fallbacker","registerLocaleFallbacker","fallbacker","_additionalMeta","setAdditionalMeta","getAdditionalMeta","_cid","createCoreContext","fallbackLocale","datetimeFormats","numberFormats","modifiers","pluralRules","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","processor","warnHtmlMessage","escapeParameter","messageCompiler","messageResolver","localeFallbacker","onWarn","internalOptions","__datetimeFormatters","__numberFormatters","__meta","handleMissing","updateFallbackLocale","defaultOnCacheKey","compileCache","compileToFunction","cached","occurred","inc","CoreErrorCodes","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","parseTranslateArgs","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","escapeParams","formatScope","targetLocale","resolveMessageFormat","format","cacheBaseKey","errorDetector","compileMessageFormat","ctxOptions","getMessageContextOptions","msgContext","messaged","evaluateMessage","item","locales","missingRet","getCompileOptions","msgCtx","arg1","arg2","arg3","datetime","overrides","parseDateTimeArgs","part","datetimeFormat","id","formatter","arg4","matches","dateTime","clearDateTimeFormat","number","parseNumberArgs","numberFormat","clearNumberFormat"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}