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