{"version":3,"file":"@intlify-NyifhIy0.mjs","sources":["../../node_modules/@intlify/shared/dist/shared.mjs","../../node_modules/@intlify/message-compiler/dist/message-compiler.mjs","../../node_modules/@intlify/core-base/dist/core-base.mjs"],"sourcesContent":["/*!\n  * shared v11.3.0\n  * (c) 2026 kazuya kawaguchi\n  * Released under the MIT License.\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 * 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, '&amp;') // escape `&` first to avoid double escaping\n        .replace(/</g, '&lt;')\n        .replace(/>/g, '&gt;')\n        .replace(/\"/g, '&quot;')\n        .replace(/'/g, '&apos;')\n        .replace(/\\//g, '&#x2F;') // escape `/` to prevent closing tags or JavaScript URLs\n        .replace(/=/g, '&#x3D;'); // escape `=` to prevent attribute injection\n}\nfunction escapeAttributeValue(value) {\n    return value\n        .replace(/&(?![a-zA-Z0-9#]{2,6};)/g, '&amp;') // escape unescaped `&`\n        .replace(/\"/g, '&quot;')\n        .replace(/'/g, '&apos;')\n        .replace(/</g, '&lt;')\n        .replace(/>/g, '&gt;');\n}\nfunction sanitizeTranslatedHtml(html) {\n    // Escape dangerous characters in attribute values\n    // Process attributes with double quotes\n    html = html.replace(/(\\w+)\\s*=\\s*\"([^\"]*)\"/g, (_, attrName, attrValue) => `${attrName}=\"${escapeAttributeValue(attrValue)}\"`);\n    // Process attributes with single quotes\n    html = html.replace(/(\\w+)\\s*=\\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`);\n    // Detect and neutralize event handler attributes\n    const eventHandlerPattern = /\\s*on\\w+\\s*=\\s*[\"']?[^\"'>]+[\"']?/gi;\n    if (eventHandlerPattern.test(html)) {\n        if ((process.env.NODE_ENV !== 'production')) {\n            warn('Potentially dangerous event handlers detected in translation. ' +\n                'Consider removing onclick, onerror, etc. from your translation messages.');\n        }\n        // Neutralize event handler attributes by escaping 'on'\n        html = html.replace(/(\\s+)(on)(\\w+\\s*=)/gi, '$1&#111;n$3');\n    }\n    // Disable javascript: URLs in various contexts\n    const javascriptUrlPattern = [\n        // In href, src, action, formaction attributes\n        /(\\s+(?:href|src|action|formaction)\\s*=\\s*[\"']?)\\s*javascript:/gi,\n        // In style attributes within url()\n        /(style\\s*=\\s*[\"'][^\"']*url\\s*\\(\\s*)javascript:/gi\n    ];\n    javascriptUrlPattern.forEach(pattern => {\n        html = html.replace(pattern, '$1javascript&#58;');\n    });\n    return html;\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\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, sanitizeTranslatedHtml, toDisplayString, toTypeString, warn, warnOnce };\n","/*!\n  * message-compiler v11.3.0\n  * (c) 2026 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 === '\\\\') {\n                const nextCh = scnr.peek();\n                if (nextCh === \"{\" /* TokenChars.BraceLeft */ ||\n                    nextCh === \"}\" /* TokenChars.BraceRight */ ||\n                    nextCh === \"@\" /* TokenChars.LinkedAlias */ ||\n                    nextCh === \"|\" /* TokenChars.Pipe */ ||\n                    nextCh === '\\\\') {\n                    buf += ch + nextCh;\n                    scnr.next();\n                    scnr.next();\n                }\n                else {\n                    scnr.resetPeek();\n                    buf += ch;\n                    scnr.next();\n                }\n            }\n            else 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        // Check if takeNamedIdentifierChar stoped because of invalid characters\n        const currentChar = scnr.currentChar();\n        if (currentChar &&\n            currentChar !== '}' &&\n            currentChar !== EOF &&\n            currentChar !== CHAR_SP &&\n            currentChar !== CHAR_LF &&\n            currentChar !== '\\u3000') {\n            const invalidPart = readInvalidIdentifier(scnr);\n            emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, name + invalidPart);\n            return name + invalidPart;\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;\n// Text context escape sequences: \\\\, \\@, \\{, \\}, \\|\nconst TEXT_ESCAPES = /\\\\([\\\\@{}|])/g;\nfunction fromTextEscapeSequence(_match, char) {\n    return char;\n}\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.replace(TEXT_ESCAPES, fromTextEscapeSequence);\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/// <reference types=\"source-map-js\" />\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 v11.3.0\n  * (c) 2026 kazuya kawaguchi\n  * Released under the MIT License.\n  */\nimport { getGlobalThis, isObject, hasOwn, isNumber, create, isString, isBoolean, warn, format as format$1, isFunction, isPromise, isArray, isPlainObject, assign, isRegExp, warnOnce, isDate, isEmptyObject, join, toDisplayString, sanitizeTranslatedHtml, 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 isMessageAST(val) {\n    return (isObject(val) &&\n        resolveType(val) === 0 &&\n        (hasOwn(val, 'b') || hasOwn(val, 'body')));\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}\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}\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 != null) {\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}\nconst AST_NODE_PROPS_KEYS = [\n    ...PROPS_BODY,\n    ...PROPS_CASES,\n    ...PROPS_STATIC,\n    ...PROPS_ITEMS,\n    ...PROPS_KEY,\n    ...PROPS_MODIFIER,\n    ...PROPS_VALUE,\n    ...PROPS_TYPE\n];\nfunction createUnhandleNodeError(type) {\n    return new Error(`unhandled node type: ${type}`);\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}\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}\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}\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 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    // eslint-disable-next-line @typescript-eslint/no-explicit-any -- for generic object\n    let last = obj;\n    let i = 0;\n    while (i < len) {\n        const key = hit[i];\n        /**\n         * NOTE:\n         * if `key` is intlify message format AST node key and `last` is intlify message format AST, skip it.\n         * because the AST node is not a key-value structure.\n         */\n        if (AST_NODE_PROPS_KEYS.includes(key) && isMessageAST(last)) {\n            return null;\n        }\n        if (!isObject(last)) {\n            return null;\n        }\n        if (!hasOwn(last, key)) {\n            return null;\n        }\n        const val = last[key];\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    INVALID_NUMBER_ARGUMENT: 8,\n    INVALID_DATE_ARGUMENT: 9\n};\nconst CORE_WARN_CODES_EXTEND_POINT = 10;\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    [CoreWarnCodes.INVALID_NUMBER_ARGUMENT]: `Invalid argument for number formatting: expected a number but received '{value}'.`,\n    [CoreWarnCodes.INVALID_DATE_ARGUMENT]: `Invalid argument for datetime formatting: expected a Date, number, or ISO string but received '{value}'.`\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 = '11.3.0';\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    if (!isString(args[0]) && !isDate(args[0]) && !isNumber(args[0])) {\n        if ((process.env.NODE_ENV !== 'production')) {\n            onWarn(getWarnMessage(CoreWarnCodes.INVALID_DATE_ARGUMENT, {\n                value: String(args[0])\n            }));\n        }\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.replace(/!/g, ''), 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    if (!isNumber(args[0])) {\n        if ((process.env.NODE_ENV !== 'production')) {\n            onWarn(getWarnMessage(CoreWarnCodes.INVALID_NUMBER_ARGUMENT, {\n                value: String(args[0])\n            }));\n        }\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.replace(/!/g, ''), 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    // singular (0) | plural (1)\n    if (choicesLength === 2) {\n        // prettier-ignore\n        return choice === 1\n            ? 0\n            : 1;\n    }\n    // zero (0) | singular (1) | plural (2)\n    return Math.min(choice, 2);\n}\nfunction getPluralIndex(options) {\n    // prettier-ignore\n    const index = isNumber(options.pluralIndex)\n        ? options.pluralIndex\n        : -1;\n    return isNumber(options.named?.count)\n        ? options.named.count\n        : isNumber(options.named?.n)\n            ? options.named.n\n            : index;\n}\nfunction createMessageContext(options = {}) {\n    const locale = options.locale;\n    const pluralIndex = getPluralIndex(options);\n    const pluralRule = isString(locale) && isFunction(options.pluralRules?.[locale])\n        ? options.pluralRules[locale]\n        : pluralDefault;\n    const orgPluralRule = pluralRule === pluralDefault ? undefined : pluralDefault;\n    const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\n    const _list = options.list || [];\n    const list = (index) => _list[index];\n    const _named = options.named || create(); // eslint-disable-line @typescript-eslint/no-explicit-any\n    // normalize named\n    if (isNumber(options.pluralIndex)) {\n        _named.count ||= options.pluralIndex;\n        _named.n ||= options.pluralIndex;\n    }\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 = isFunction(options.processor?.normalize)\n        ? options.processor.normalize\n        : DEFAULT_NORMALIZE;\n    const interpolate = isFunction(options.processor?.interpolate)\n        ? options.processor.interpolate\n        : DEFAULT_INTERPOLATE;\n    const type = 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        // If the linked message is not resolved (empty string), fall back to the key itself\n        const resolved = ret === '' || ret === undefined ? key : ret;\n        const msg = \n        // The message in vnode resolved with linked are returned as an array by processor.nomalize\n        type === 'vnode' && isArray(resolved) && modifier\n            ? resolved[0]\n            : resolved;\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    let ret = postTranslation\n        ? postTranslation(messaged, key)\n        : messaged;\n    // apply HTML sanitization for security\n    if (escapeParameter && isString(ret)) {\n        ret = sanitizeTranslatedHtml(ret);\n    }\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 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                const message = `Message compilation error: ${err.message}`;\n                throw new SyntaxError(codeFrame ? `${message}\\n${codeFrame}` : message);\n            }\n            throw err;\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 { AST_NODE_PROPS_KEYS, 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":["warn","msg","err","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","escapeAttributeValue","value","sanitizeTranslatedHtml","html","_","attrName","attrValue","pattern","hasOwnProperty","hasOwn","isArray","isFunction","isString","isBoolean","isObject","isPromise","objectToString","toDisplayString","join","items","separator","str","item","index","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","nextCh","readNamedIdentifier","invalidPart","readInvalidIdentifier","readListIdentifier","isLiteral","readLiteral","literal","readEscapeSequence","current","readUnicodeEscapeSequence","unicode","digits","sequence","i","isInvalidIdentifier","identifiers","readLinkedModifier","readLinkedRefer","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","nextToken","startLoc","endLoc","ERROR_DOMAIN$2","KNOWN_ESCAPES","TEXT_ESCAPES","fromTextEscapeSequence","_match","char","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","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","isMessageAST","resolveType","PROPS_BODY","resolveBody","resolveProps","PROPS_CASES","resolveCases","PROPS_STATIC","resolveStatic","PROPS_ITEMS","resolveItems","PROPS_TYPE","PROPS_VALUE","resolveValue$1","resolved","createUnhandleNodeError","PROPS_MODIFIER","resolveLinkedModifier","PROPS_KEY","resolveLinkedKey","props","defaultValue","prop","AST_NODE_PROPS_KEYS","format","formatParts","formatMessageParts","static_","acm","formatMessagePart","modifier","defaultOnCacheKey","compileCache","detectError","baseCompile$1","compile","cacheKey","cached","devtools","setDevToolsHook","hook","initI18nDevTools","i18n","version","meta","translateDevTools","createDevToolsHook","payloads","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","_additionalMeta","setAdditionalMeta","getAdditionalMeta","_fallbackContext","setFallbackContext","getFallbackContext","_cid","createCoreContext","onWarn","_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","createMessageContext","pluralIndex","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]}