{"version":3,"file":"js/vendors-675a1cf2.min.js?t=1746616748569","mappings":"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","sources":["webpack://frontend/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js"],"sourcesContent":["/*!\n * message-compiler v9.14.3\n * (c) 2025 kazuya kawaguchi\n * Released under the MIT License.\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\n/**\n * Original Utilities\n * written by kazuya kawaguchi\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 assign = Object.assign;\nconst isString = (val) => typeof val === 'string';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\n\nconst CompileWarnCodes = {\n USE_MODULO_SYNTAX: 1,\n __EXTEND_POINT__: 2\n};\n/** @internal */\nconst warnMessages = {\n [CompileWarnCodes.USE_MODULO_SYNTAX]: `Use modulo before '{{0}}'.`\n};\nfunction createCompileWarn(code, loc, ...args) {\n const msg = format(warnMessages[code] || '', ...(args || [])) ;\n const message = { message: String(msg), code };\n if (loc) {\n message.location = loc;\n }\n return message;\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 // Special value for higher-order compilers to pick up the last code\n // to avoid collision of error codes. This should always be kept as the last\n // item.\n __EXTEND_POINT__: 17\n};\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 = format((messages || errorMessages)[code] || '', ...(args || []))\n ;\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 // eslint-disable-next-line no-unmodified-loop-condition\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: 14 /* TokenTypes.EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 14 /* 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, 14 /* 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 !== 8 /* 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 !== 9 /* 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 === 8 /* TokenTypes.LinkedAlias */ ||\n currentType === 12 /* 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 !== 10 /* 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.Modulo */ ||\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 detectModuloStart(scnr) {\n const spaces = peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"%\" /* TokenChars.Modulo */ &&\n scnr.peek() === \"{\" /* TokenChars.BraceLeft */;\n scnr.resetPeek();\n return {\n isModulo: ret,\n hasSpace: spaces.length > 0\n };\n }\n function isTextStart(scnr, reset = true) {\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return prev === \"%\" /* TokenChars.Modulo */ ? false : hasSpace;\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n return prev === \"%\" /* TokenChars.Modulo */ ? true : hasSpace;\n }\n else if (ch === \"%\" /* TokenChars.Modulo */) {\n scnr.peek();\n return fn(hasSpace, \"%\" /* TokenChars.Modulo */, true);\n }\n else if (ch === \"|\" /* TokenChars.Pipe */) {\n return prev === \"%\" /* TokenChars.Modulo */ || detectModulo\n ? true\n : !(prev === CHAR_SP || prev === CHAR_LF);\n }\n else if (ch === CHAR_SP) {\n scnr.peek();\n return fn(true, CHAR_SP, detectModulo);\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn(true, CHAR_LF, detectModulo);\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 readModulo(scnr) {\n skipSpaces(scnr);\n const ch = scnr.currentChar();\n if (ch !== \"%\" /* TokenChars.Modulo */) {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n }\n scnr.next();\n return \"%\" /* TokenChars.Modulo */;\n }\n function readText(scnr) {\n let buf = '';\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"}\" /* TokenChars.BraceRight */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n !ch) {\n break;\n }\n else if (ch === \"%\" /* TokenChars.Modulo */) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else {\n break;\n }\n }\n else if (ch === CHAR_SP || ch === CHAR_LF) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else if (isPluralStart(scnr)) {\n break;\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n return buf;\n }\n function readNamedIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let name = '';\n while ((ch = takeNamedIdentifierChar(scnr))) {\n name += ch;\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return name;\n }\n function readListIdentifier(scnr) {\n skipSpaces(scnr);\n let value = '';\n if (scnr.currentChar() === '-') {\n scnr.next();\n value += `-${getDigits(scnr)}`;\n }\n else {\n value += getDigits(scnr);\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return value;\n }\n function isLiteral(ch) {\n return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;\n }\n function readLiteral(scnr) {\n skipSpaces(scnr);\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n while ((ch = takeChar(scnr, isLiteral))) {\n if (ch === '\\\\') {\n literal += readEscapeSequence(scnr);\n }\n else {\n literal += ch;\n }\n }\n const current = scnr.currentChar();\n if (current === CHAR_LF || current === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n // TODO: Is it correct really?\n if (current === CHAR_LF) {\n scnr.next();\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n }\n return literal;\n }\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`: // eslint-disable-line no-useless-escape\n scnr.next();\n return `\\\\${ch}`;\n case 'u':\n return readUnicodeEscapeSequence(scnr, ch, 4);\n case 'U':\n return readUnicodeEscapeSequence(scnr, ch, 6);\n default:\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n return '';\n }\n }\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\n eat(scnr, unicode);\n let sequence = '';\n for (let i = 0; i < digits; i++) {\n const ch = takeHexDigit(scnr);\n if (!ch) {\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n break;\n }\n sequence += ch;\n }\n return `\\\\${unicode}${sequence}`;\n }\n function isInvalidIdentifier(ch) {\n return (ch !== \"{\" /* TokenChars.BraceLeft */ &&\n ch !== \"}\" /* TokenChars.BraceRight */ &&\n ch !== CHAR_SP &&\n ch !== CHAR_LF);\n }\n function readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n while ((ch = takeChar(scnr, isInvalidIdentifier))) {\n identifiers += ch;\n }\n return identifiers;\n }\n function readLinkedModifier(scnr) {\n let ch = '';\n let name = '';\n while ((ch = takeIdentifierChar(scnr))) {\n name += ch;\n }\n return name;\n }\n function readLinkedRefer(scnr) {\n const fn = (buf) => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"%\" /* TokenChars.Modulo */ ||\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 === 5 /* TokenTypes.Named */ ||\n context.currentType === 6 /* TokenTypes.List */ ||\n context.currentType === 7 /* 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, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\n token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validLiteral = isLiteralStart(scnr, context))) {\n token = getToken(context, 7 /* 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, 13 /* 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 === 8 /* TokenTypes.LinkedAlias */ ||\n currentType === 9 /* TokenTypes.LinkedDot */ ||\n currentType === 12 /* TokenTypes.LinkedModifier */ ||\n currentType === 10 /* 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, 8 /* 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, 9 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n case \":\" /* TokenChars.LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 10 /* 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, 12 /* 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, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 8 /* 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: 14 /* 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 const { isModulo, hasSpace } = detectModuloStart(scnr);\n if (isModulo) {\n return hasSpace\n ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr))\n : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));\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, 14 /* TokenTypes.EOF */);\n }\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\n\nconst ERROR_DOMAIN$2 = 'parser';\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\n switch (match) {\n case `\\\\\\\\`:\n return `\\\\`;\n // eslint-disable-next-line no-useless-escape\n case `\\\\\\'`:\n // eslint-disable-next-line no-useless-escape\n return `\\'`;\n default: {\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\n return String.fromCodePoint(codePoint);\n }\n // invalid ...\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\n return '�';\n }\n }\n}\nfunction createParser(options = {}) {\n const location = options.location !== false;\n const { onError, onWarn } = 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 emitWarn(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onWarn) {\n const loc = location ? createLocation(start, end) : null;\n onWarn(createCompileWarn(code, loc, args));\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 (type) {\n node.type = type;\n }\n if (location) {\n node.end = offset;\n if (node.loc) {\n node.loc.end = pos;\n }\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseList(tokenizer, index) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(5 /* NodeTypes.List */, offset, loc);\n node.index = parseInt(index, 10);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseNamed(tokenizer, key, modulo) {\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 if (modulo === true) {\n node.modulo = true;\n }\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 !== 12 /* 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 === 9 /* 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 !== 10 /* 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 11 /* 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 5 /* 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 6 /* 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 7 /* 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 let modulo = 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 6 /* 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.Modulo */:\n modulo = true;\n break;\n case 5 /* 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 || '', !!modulo));\n if (modulo) {\n emitWarn(tokenizer, CompileWarnCodes.USE_MODULO_SYNTAX, context.lastStartLoc, 0, getTokenCaption(token));\n modulo = null;\n }\n break;\n case 7 /* 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 8 /* 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 !== 14 /* 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 !== 14 /* 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 === 14 /* 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 !== 14 /* 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 === 14 /* 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 {\n throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {\n domain: ERROR_DOMAIN$1,\n args: [node.type]\n });\n }\n }\n delete node.type;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nconst ERROR_DOMAIN = 'parser';\nfunction createCodeGenerator(ast, options) {\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\n const location = options.location !== false;\n const _context = {\n filename,\n code: '',\n column: 1,\n line: 1,\n offset: 0,\n map: undefined,\n breakLineCode,\n needIndent: _needIndent,\n indentLevel: 0\n };\n if (location && ast.loc) {\n _context.source = ast.loc.source;\n }\n const context = () => _context;\n function push(code, node) {\n _context.code += code;\n }\n function _newline(n, withBreakLine = true) {\n const _breakLineCode = withBreakLine ? breakLineCode : '';\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\n }\n function indent(withNewLine = true) {\n const level = ++_context.indentLevel;\n withNewLine && _newline(level);\n }\n function deindent(withNewLine = true) {\n const level = --_context.indentLevel;\n withNewLine && _newline(level);\n }\n function newline() {\n _newline(_context.indentLevel);\n }\n const helper = (key) => `_${key}`;\n const needIndent = () => _context.needIndent;\n return {\n context,\n push,\n indent,\n deindent,\n newline,\n helper,\n needIndent\n };\n}\nfunction generateLinkedNode(generator, node) {\n const { helper } = generator;\n generator.push(`${helper(\"linked\" /* HelperNameMap.LINKED */)}(`);\n generateNode(generator, node.key);\n if (node.modifier) {\n generator.push(`, `);\n generateNode(generator, node.modifier);\n generator.push(`, _type`);\n }\n else {\n generator.push(`, undefined, _type`);\n }\n generator.push(`)`);\n}\nfunction generateMessageNode(generator, node) {\n const { helper, needIndent } = generator;\n generator.push(`${helper(\"normalize\" /* HelperNameMap.NORMALIZE */)}([`);\n generator.indent(needIndent());\n const length = node.items.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.items[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push('])');\n}\nfunction generatePluralNode(generator, node) {\n const { helper, needIndent } = generator;\n if (node.cases.length > 1) {\n generator.push(`${helper(\"plural\" /* HelperNameMap.PLURAL */)}([`);\n generator.indent(needIndent());\n const length = node.cases.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.cases[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push(`])`);\n }\n}\nfunction generateResource(generator, node) {\n if (node.body) {\n generateNode(generator, node.body);\n }\n else {\n generator.push('null');\n }\n}\nfunction generateNode(generator, node) {\n const { helper } = generator;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n generateResource(generator, node);\n break;\n case 1 /* NodeTypes.Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* NodeTypes.Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* NodeTypes.Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* NodeTypes.LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* NodeTypes.LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* NodeTypes.List */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"list\" /* HelperNameMap.LIST */)}(${node.index}))`, node);\n break;\n case 4 /* NodeTypes.Named */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"named\" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* NodeTypes.Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* NodeTypes.Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n {\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 = {} // eslint-disable-line\n) => {\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 { CompileErrorCodes, CompileWarnCodes, ERROR_DOMAIN$2 as ERROR_DOMAIN, LOCATION_STUB, baseCompile, createCompileError, createCompileWarn, createLocation, createParser, createPosition, defaultOnError, detectHtmlTag, errorMessages, warnMessages };\n"],"names":["createLocation","start","end","source","loc","RE_ARGS","format","message","args","length","isObject","hasOwnProperty","replace","match","identifier","assign","Object","isString","val","join","items","separator","reduce","str","item","index","CompileWarnCodes","USE_MODULO_SYNTAX","__EXTEND_POINT__","warnMessages","CompileErrorCodes","EXPECTED_TOKEN","INVALID_TOKEN_IN_PLACEHOLDER","UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER","UNKNOWN_ESCAPE_SEQUENCE","INVALID_UNICODE_ESCAPE_SEQUENCE","UNBALANCED_CLOSING_BRACE","UNTERMINATED_CLOSING_BRACE","EMPTY_PLACEHOLDER","NOT_ALLOW_NEST_PLACEHOLDER","INVALID_LINKED_FORMAT","MUST_HAVE_MESSAGES_IN_PLURAL","UNEXPECTED_EMPTY_LINKED_MODIFIER","UNEXPECTED_EMPTY_LINKED_KEY","UNEXPECTED_LEXICAL_ANALYSIS","UNHANDLED_CODEGEN_NODE_TYPE","UNHANDLED_MINIFIER_NODE_TYPE","errorMessages","createCompileError","code","options","domain","messages","msg","error","SyntaxError","String","location","defaultOnError","CHAR_SP","CHAR_CR","CHAR_LF","CHAR_LS","fromCharCode","CHAR_PS","createScanner","_buf","_index","_line","_column","_peekOffset","isCRLF","isPS","isLS","charAt","offset","next","isLF","line","column","peekOffset","currentChar","currentPeek","peek","reset","resetPeek","skipToPeek","target","EOF","undefined","LITERAL_DELIMITER","ERROR_DOMAIN$3","createTokenizer","_scnr","currentOffset","currentPosition","_initLoc","_initOffset","_context","currentType","startLoc","endLoc","lastType","lastOffset","lastStartLoc","lastEndLoc","braceNest","inLinked","text","context","onError","emitError","pos","ctx","err","getToken","type","value","token","getEndToken","eat","scnr","ch","peekSpaces","buf","skipSpaces","isIdentifierStart","cc","charCodeAt","isPluralStart","ret","isTextStart","fn","hasSpace","prev","detectModulo","takeChar","isIdentifier","takeIdentifierChar","isNamedIdentifier","takeNamedIdentifierChar","isDigit","takeDigit","isHexDigit","takeHexDigit","getDigits","num","readText","isLiteral","readEscapeSequence","readUnicodeEscapeSequence","unicode","digits","sequence","i","isInvalidIdentifier","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","isNamedIdentifierStart","name","readNamedIdentifier","isNumberStart","isListIdentifierStart","readListIdentifier","isLiteralStart","literal","current","readLiteral","identifiers","readInvalidIdentifier","isLinkedDotStart","isLinkedDelimiterStart","isLinkedModifierStart","readLinkedModifier","isLinkedReferStart","readLinkedRefer","isModulo","spaces","detectModuloStart","readModulo","nextToken","ERROR_DOMAIN$2","KNOWN_ESCAPES","fromEscapeSequence","codePoint4","codePoint6","codePoint","parseInt","fromCodePoint","createParser","onWarn","tokenzer","emitWarn","createCompileWarn","startNode","node","endNode","parseText","tokenizer","parseList","parseNamed","key","modulo","parseLiteral","parseLinked","linkedNode","parsed","nextConsumeToken","getTokenCaption","parseLinkedModifier","modifier","parseLinkedKey","nextContext","emptyLinkedKeyNode","parseMessage","push","parse","body","msgNode","hasEmptyMessage","cases","parsePlural","parseResource","onCacheKey","cacheKey","slice","traverseNodes","nodes","transformer","traverseNode","helper","optimizeMessageNode","static","values","ERROR_DOMAIN$1","minify","t","resource","b","c","s","valueNode","v","linked","k","m","list","named","generateNode","generator","generateResource","needIndent","indent","deindent","generatePluralNode","generateMessageNode","generateLinkedNode","JSON","stringify","generate","ast","mode","filename","sourceMap","breakLineCode","helpers","_needIndent","map","indentLevel","_newline","n","withBreakLine","_breakLineCode","repeat","withNewLine","level","newline","createCodeGenerator","toJSON","baseCompile","assignedOptions","jit","enalbeMinify","enambeOptimize","optimize","forEach","Set","add","createTransformer","Array","from","transform"],"sourceRoot":""}