{"version":3,"sources":["jsdelivr-header.js","/npm/vue-i18n@11.4.10/dist/vue-i18n.global.js"],"names":[],"mappings":"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","file":"/npm/vue-i18n@11.4.10/dist/vue-i18n.global.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/vue-i18n@11.4.10/dist/vue-i18n.global.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\n  * vue-i18n v11.4.10\n  * (c) 2026 kazuya kawaguchi\n  * Released under the MIT License.\n  */\nvar VueI18n = (function (exports, Vue) {\n  'use strict';\n\n  function _interopNamespaceDefault(e) {\n    var n = Object.create(null);\n    if (e) {\n      for (var k in e) {\n        n[k] = e[k];\n      }\n    }\n    n.default = e;\n    return Object.freeze(n);\n  }\n\n  var Vue__namespace = /*#__PURE__*/_interopNamespaceDefault(Vue);\n\n  /**\n   * Original Utilities\n   * written by kazuya kawaguchi\n   */\n  const inBrowser = typeof window !== 'undefined';\n  let mark;\n  let measure;\n  {\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  }\n  const RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n  /* eslint-disable */\n  function format$1(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  }\n  const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);\n  const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\n  const friendlyJSONstringify = (json) => JSON.stringify(json)\n      .replace(/\\u2028/g, '\\\\u2028')\n      .replace(/\\u2029/g, '\\\\u2029')\n      .replace(/\\u0027/g, '\\\\u0027');\n  const isNumber = (val) => typeof val === 'number' && isFinite(val);\n  function toDevtoolsGroupId(type, key) {\n      return isString(key) || isNumber(key) ? `${type}:${key}` : type;\n  }\n  const isDate = (val) => toTypeString(val) === '[object Date]';\n  const isRegExp = (val) => toTypeString(val) === '[object RegExp]';\n  const isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\n  const assign = Object.assign;\n  const _create = Object.create;\n  const create = (obj = null) => _create(obj);\n  let _globalThis;\n  const 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  };\n  const hasOwnProperty = Object.prototype.hasOwnProperty;\n  function 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   */\n  const isArray = Array.isArray;\n  const isFunction = (val) => typeof val === 'function';\n  const isString = (val) => typeof val === 'string';\n  const isBoolean = (val) => typeof val === 'boolean';\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const isObject = (val) => val !== null && typeof val === 'object';\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const isPromise = (val) => {\n      return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n  };\n  const objectToString = Object.prototype.toString;\n  const toTypeString = (value) => objectToString.call(value);\n  const isPlainObject = (val) => toTypeString(val) === '[object Object]';\n  // for converting list and named values to displayed strings.\n  const 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  };\n  function join(items, separator = '') {\n      return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n  }\n  const RANGE = 2;\n  function 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  function 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  }\n  const hasWarned = {};\n  function warnOnce(msg) {\n      if (!hasWarned[msg]) {\n          hasWarned[msg] = true;\n          warn(msg);\n      }\n  }\n\n  function 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  }\n  function escapeAttributeValue(value) {\n      return value\n          .replace(/&(?![a-z0-9#]{2,6};)/gi, '&amp;') // escape unescaped `&`\n          .replace(/\"/g, '&quot;')\n          .replace(/'/g, '&apos;')\n          .replace(/</g, '&lt;')\n          .replace(/>/g, '&gt;');\n  }\n  const javascriptSchemePattern = /^javascript:/i;\n  const urlAttributePattern = /^(?:href|src|action|formaction)$/i;\n  const numericCharacterReferencePattern = /&#(?:x([0-9a-f]+)|(\\d+));?/gi;\n  const namedWhitespaceCharacterReferencePattern = /&(?:Tab|NewLine);/g;\n  const colonCharacterReferencePattern = /&colon;?/gi;\n  // eslint-disable-next-line no-control-regex -- URL scheme normalization requires the full control range\n  const controlOrWhitespacePattern = /[\\u0000-\\u0020\\u007f-\\u009f]/g;\n  const eventHandlerPattern = /(?:^|[\\s\"'<>/])on\\w+\\s*=\\s*[\"']?[^\"'>]+[\"']?/i;\n  const eventHandlerAttributePattern = /(^|[\\s\"'<>/])on(\\w+\\s*=)/gi;\n  const unquotedUrlAttributePattern = /(^|[\\s\"'<>/])((?:href|src|action|formaction)\\s*=\\s*)([^\\s\"'=<>`]+)/gi;\n  function decodeNumericCharacterReference(match, hex, decimal) {\n      const digits = hex || decimal;\n      if (!digits) {\n          return match;\n      }\n      const codePoint = Number.parseInt(digits, hex ? 16 : 10);\n      return codePoint <= 0x7f ? String.fromCharCode(codePoint) : match;\n  }\n  function hasJavascriptScheme(value) {\n      const normalized = value\n          .replace(numericCharacterReferencePattern, decodeNumericCharacterReference)\n          .replace(namedWhitespaceCharacterReferencePattern, '')\n          .replace(colonCharacterReferencePattern, ':')\n          .replace(controlOrWhitespacePattern, '');\n      return javascriptSchemePattern.test(normalized);\n  }\n  function sanitizeStyleValue(value) {\n      const urlPattern = /url\\s*\\(/gi;\n      let sanitized = '';\n      let cursor = 0;\n      let match;\n      while ((match = urlPattern.exec(value)) !== null) {\n          const urlStart = match.index;\n          const openParenIndex = urlPattern.lastIndex - 1;\n          let index = openParenIndex + 1;\n          let depth = 1;\n          let quote = null;\n          for (; index < value.length; index++) {\n              const char = value[index];\n              if (quote) {\n                  if (char === quote) {\n                      quote = null;\n                  }\n                  continue;\n              }\n              if (char === '\"' || char === \"'\") {\n                  quote = char;\n              }\n              else if (char === '(') {\n                  depth++;\n              }\n              else if (char === ')') {\n                  depth--;\n                  if (depth === 0) {\n                      break;\n                  }\n              }\n          }\n          if (depth !== 0) {\n              break;\n          }\n          const rawUrlValue = value.slice(openParenIndex + 1, index).trim();\n          const unquotedUrlValue = (rawUrlValue.startsWith('\"') && rawUrlValue.endsWith('\"')) ||\n              (rawUrlValue.startsWith(\"'\") && rawUrlValue.endsWith(\"'\"))\n              ? rawUrlValue.slice(1, -1).trim()\n              : rawUrlValue;\n          sanitized += value.slice(cursor, urlStart);\n          sanitized += hasJavascriptScheme(unquotedUrlValue)\n              ? 'url(about:blank)'\n              : value.slice(urlStart, index + 1);\n          cursor = index + 1;\n      }\n      return sanitized + value.slice(cursor);\n  }\n  function sanitizeAttributeValue(attrName, value) {\n      if (urlAttributePattern.test(attrName) && hasJavascriptScheme(value)) {\n          return 'about:blank';\n      }\n      const sanitizedValue = attrName.toLowerCase() === 'style' ? sanitizeStyleValue(value) : value;\n      return escapeAttributeValue(sanitizedValue);\n  }\n  function 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}=\"${sanitizeAttributeValue(attrName, attrValue)}\"`);\n      // Process attributes with single quotes\n      html = html.replace(/([\\w:-]+)\\s*=\\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${sanitizeAttributeValue(attrName, attrValue)}'`);\n      // Detect and neutralize event handler attributes\n      if (eventHandlerPattern.test(html)) {\n          {\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(eventHandlerAttributePattern, '$1&#111;n$2');\n      }\n      // Disable javascript: URLs in unquoted attributes\n      html = html.replace(unquotedUrlAttributePattern, (match, boundary, prefix, attrValue) => hasJavascriptScheme(attrValue) ? `${boundary}${prefix}about:blank` : match);\n      return html;\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   */\n  function 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\n  const isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  function 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              const value = src[key];\n              if (isArray(value)) {\n                  // replace arrays instead of merging them, without retaining source references\n                  const copied = [];\n                  copied.length = value.length;\n                  des[key] = copied;\n                  stack.push({ src: value, des: copied });\n              }\n              else if (isObject(value)) {\n                  if (!isObject(des[key]) || isArray(des[key])) {\n                      des[key] = create();\n                  }\n                  stack.push({ src: value, des: des[key] });\n              }\n              else {\n                  des[key] = value;\n              }\n          });\n      }\n  }\n\n  function createPosition(line, column, offset) {\n      return { line, column, offset };\n  }\n  function createLocation(start, end, source) {\n      const loc = { start, end };\n      return loc;\n  }\n\n  const 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.\n  const COMPILE_ERROR_CODES_EXTEND_POINT = 17;\n  /** @internal */\n  const errorMessages$2 = {\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  };\n  function createCompileError(code, loc, options = {}) {\n      const { domain, messages, args } = options;\n      const msg = format$1((messages || errorMessages$2)[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 */\n  function defaultOnError(error) {\n      throw error;\n  }\n\n  // eslint-disable-next-line no-useless-escape\n  const RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\n  const detectHtmlTag = (source) => RE_HTML_TAG.test(source);\n\n  const CHAR_SP = ' ';\n  const CHAR_CR = '\\r';\n  const CHAR_LF = '\\n';\n  const CHAR_LS = String.fromCharCode(0x2028);\n  const CHAR_PS = String.fromCharCode(0x2029);\n  function 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\n  const EOF = undefined;\n  const DOT = '.';\n  const LITERAL_DELIMITER = \"'\";\n  const ERROR_DOMAIN$3 = 'tokenizer';\n  function 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\n  const ERROR_DOMAIN$2 = 'parser';\n  // Backslash backslash, backslash quote, uHHHH, UHHHHHH.\n  const KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\n  // Text context escape sequences: \\\\, \\@, \\{, \\}, \\|\n  const TEXT_ESCAPES = /\\\\([\\\\@{}|])/g;\n  function fromTextEscapeSequence(_match, char) {\n      return char;\n  }\n  function 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  }\n  function 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  }\n  function 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\n  function 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  }\n  function traverseNodes(nodes, transformer) {\n      for (let i = 0; i < nodes.length; i++) {\n          traverseNode(nodes[i], transformer);\n      }\n  }\n  function 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\n  function 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\n  function 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  }\n  function 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\n  const ERROR_DOMAIN$1 = 'minifier';\n  /* eslint-disable @typescript-eslint/no-explicit-any */\n  function 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  /// <reference types=\"source-map-js\" />\n  const ERROR_DOMAIN = 'parser';\n  function createCodeGenerator(ast, options) {\n      const { 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  }\n  function 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  }\n  function 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  }\n  function 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  }\n  function generateResource(generator, node) {\n      if (node.body) {\n          generateNode(generator, node.body);\n      }\n      else {\n          generator.push('null');\n      }\n  }\n  function 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\n  const 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      !!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          filename,\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\n  function baseCompile$1(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\n  function isMessageAST(val) {\n      return (isObject(val) &&\n          resolveType(val) === 0 &&\n          (hasOwn(val, 'b') || hasOwn(val, 'body')));\n  }\n  const PROPS_BODY = ['b', 'body'];\n  function resolveBody(node) {\n      return resolveProps(node, PROPS_BODY);\n  }\n  const PROPS_CASES = ['c', 'cases'];\n  function resolveCases(node) {\n      return resolveProps(node, PROPS_CASES, []);\n  }\n  const PROPS_STATIC = ['s', 'static'];\n  function resolveStatic(node) {\n      return resolveProps(node, PROPS_STATIC);\n  }\n  const PROPS_ITEMS = ['i', 'items'];\n  function resolveItems(node) {\n      return resolveProps(node, PROPS_ITEMS, []);\n  }\n  const PROPS_TYPE = ['t', 'type'];\n  function resolveType(node) {\n      return resolveProps(node, PROPS_TYPE);\n  }\n  const PROPS_VALUE = ['v', 'value'];\n  function 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  }\n  const PROPS_MODIFIER = ['m', 'modifier'];\n  function resolveLinkedModifier(node) {\n      return resolveProps(node, PROPS_MODIFIER);\n  }\n  const PROPS_KEY = ['k', 'key'];\n  function 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  }\n  function 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  }\n  const 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  ];\n  function createUnhandleNodeError(type) {\n      return new Error(`unhandled node type: ${type}`);\n  }\n\n  function format(ast) {\n      const msg = (ctx) => formatParts(ctx, ast);\n      return msg;\n  }\n  function 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  }\n  function 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  }\n  function 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\n  const WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\n  function checkHtmlMessage(source, warnHtmlMessage) {\n      if (warnHtmlMessage && detectHtmlTag(source)) {\n          warn(format$1(WARN_MESSAGE, { source }));\n      }\n  }\n  const defaultOnCacheKey = (message) => message;\n  let compileCache = create();\n  function 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__ */\n  function compile(message, context) {\n      if (isString(message)) {\n          // check HTML message\n          const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n              ? context.warnHtmlMessage\n              : true;\n          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: true,\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 (!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\n  let devtools = null;\n  function setDevToolsHook(hook) {\n      devtools = hook;\n  }\n  function 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  }\n  const translateDevTools = \n  /* #__PURE__*/ createDevToolsHook('function:translate');\n  function createDevToolsHook(hook) {\n      return (payloads) => devtools && devtools.emit(hook, payloads);\n  }\n\n  const 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  };\n  const CORE_ERROR_CODES_EXTEND_POINT = 24;\n  function createCoreError(code) {\n      return createCompileError(code, null, { messages: errorMessages$1 } );\n  }\n  /** @internal */\n  const errorMessages$1 = {\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 */\n  function getLocale(context, options) {\n      return options.locale != null\n          ? resolveLocale(options.locale)\n          : resolveLocale(context.locale);\n  }\n  let _resolveLocale;\n  /** @internal */\n  function 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, the chain consists of `start` plus the specified fallback: for a string or array `fallbackLocale`, the value as specified in the props is used; for a map `fallbackLocale`, the map's **keys** are used and the `default` key is skipped since it is not a locale name.\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   */\n  function 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).filter(locale => locale !== 'default')\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   */\n  function 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      const fallbackKey = friendlyJSONstringify(fallback);\n      let chains = context.__localeChainCache.get(startLocale);\n      if (!chains) {\n          chains = new Map();\n          context.__localeChainCache.set(startLocale, chains);\n      }\n      const cached = chains.get(fallbackKey);\n      if (cached) {\n          return cached;\n      }\n      const 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      chains.set(fallbackKey, chain);\n      return chain;\n  }\n  function 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  }\n  function 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  }\n  function 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\n  const pathStateMachine = [];\n  pathStateMachine[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  };\n  pathStateMachine[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  };\n  pathStateMachine[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  };\n  pathStateMachine[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  };\n  pathStateMachine[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  };\n  pathStateMachine[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  };\n  pathStateMachine[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   */\n  const literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\n  function isLiteral(exp) {\n      return literalValueRE.test(exp);\n  }\n  /**\n   * Strip quotes from a string\n   */\n  function 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   */\n  function 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   */\n  function 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   */\n  function 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\n  const 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   */\n  function 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   */\n  function 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\n  const 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  };\n  const CORE_WARN_CODES_EXTEND_POINT = 10;\n  /** @internal */\n  const warnMessages$1 = {\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  };\n  function getWarnMessage$1(code, ...args) {\n      return format$1(warnMessages$1[code], ...args);\n  }\n\n  /* eslint-disable @typescript-eslint/no-explicit-any */\n  /**\n   * Intlify core-base version\n   * @internal\n   */\n  const VERSION$1 = '11.4.10';\n  const NOT_REOSLVED = -1;\n  const DEFAULT_LOCALE = 'en-US';\n  const MISSING_RESOLVE_VALUE = '';\n  const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\n  function 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  }\n  let _compiler;\n  function registerMessageCompiler(compiler) {\n      _compiler = compiler;\n  }\n  let _resolver;\n  /**\n   * Register the message resolver\n   *\n   * @param resolver - A {@link MessageResolver} function\n   *\n   * @VueI18nGeneral\n   */\n  function registerMessageResolver(resolver) {\n      _resolver = resolver;\n  }\n  let _fallbacker;\n  /**\n   * Register the locale fallbacker\n   *\n   * @param fallbacker - A {@link LocaleFallbacker} function\n   *\n   * @VueI18nGeneral\n   */\n  function registerLocaleFallbacker(fallbacker) {\n      _fallbacker = fallbacker;\n  }\n  // Additional Meta for Intlify DevTools\n  let _additionalMeta = null;\n  /* #__NO_SIDE_EFFECTS__ */\n  const setAdditionalMeta = (meta) => {\n      _additionalMeta = meta;\n  };\n  /* #__NO_SIDE_EFFECTS__ */\n  const getAdditionalMeta = () => _additionalMeta;\n  let _fallbackContext = null;\n  const setFallbackContext = (context) => {\n      _fallbackContext = context;\n  };\n  const getFallbackContext = () => _fallbackContext;\n  // ID for CoreContext\n  let _cid = 0;\n  function createCoreContext(options = {}) {\n      // setup options\n      const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\n      const version = isString(options.version) ? options.version : VERSION$1;\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      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      {\n          context.__v_emitter =\n              internalOptions.__v_emitter != null\n                  ? internalOptions.__v_emitter\n                  : undefined;\n      }\n      // NOTE: experimental !!\n      {\n          initI18nDevTools(context, version, __meta);\n      }\n      return context;\n  }\n  const createResources = (locale) => ({ [locale]: create() });\n  /** @internal */\n  function isTranslateFallbackWarn(fallback, key) {\n      return fallback instanceof RegExp ? fallback.test(key) : fallback;\n  }\n  /** @internal */\n  function isTranslateMissingWarn(missing, key) {\n      return missing instanceof RegExp ? missing.test(key) : missing;\n  }\n  /** @internal */\n  function handleMissing(context, key, locale, missingWarn, type) {\n      const { missing, onWarn } = context;\n      // for vue-devtools timeline event\n      {\n          const emitter = context.__v_emitter;\n          if (emitter) {\n              emitter.emit('missing', {\n                  locale,\n                  key,\n                  type,\n                  groupId: toDevtoolsGroupId(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 (isTranslateMissingWarn(missingWarn, key)) {\n              onWarn(getWarnMessage$1(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\n          }\n          return key;\n      }\n  }\n  /** @internal */\n  function updateFallbackLocale(ctx, locale, fallback) {\n      const context = ctx;\n      context.__localeChainCache = new Map();\n      ctx.localeFallbacker(ctx, fallback, locale);\n  }\n  /** @internal */\n  function isAlmostSameLocale(locale, compareLocale) {\n      if (locale === compareLocale)\n          return false;\n      return locale.split('-')[0] === compareLocale.split('-')[0];\n  }\n  /** @internal */\n  function 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\n  function resolveFormatLocale(context, key, locale, formats, missingWarn, fallbackWarn, type) {\n      const { fallbackLocale, localeFallbacker, onWarn } = context;\n      const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n      fallbackLocale, locale);\n      let from = locale;\n      for (let i = 0; i < locales.length; i++) {\n          const targetLocale = locales[i];\n          if (locale !== targetLocale &&\n              isTranslateFallbackWarn(fallbackWarn, key)) {\n              onWarn(getWarnMessage$1(type === 'datetime format'\n                  ? CoreWarnCodes.FALLBACK_TO_DATE_FORMAT\n                  : CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\n                  key,\n                  target: targetLocale\n              }));\n          }\n          if (locale !== targetLocale) {\n              const emitter = context.__v_emitter;\n              if (emitter) {\n                  emitter.emit('fallback', {\n                      type,\n                      key,\n                      from,\n                      to: targetLocale,\n                      groupId: toDevtoolsGroupId(type, key)\n                  });\n              }\n          }\n          const format = (formats[targetLocale] || {})[key];\n          if (isPlainObject(format) && isString(targetLocale)) {\n              return targetLocale;\n          }\n          handleMissing(context, key, targetLocale, missingWarn, type);\n          from = targetLocale;\n      }\n      return null;\n  }\n  function getFormatterCacheKey(locale, key, overrides) {\n      let id = `${locale}__${key}`;\n      if (isPlainObject(overrides) && !isEmptyObject(overrides)) {\n          id = `${id}__${JSON.stringify(overrides)}`;\n      }\n      return id;\n  }\n  function clearFormatCache(formatters, locale, format) {\n      for (const key in format) {\n          const prefix = `${locale}__${key}`;\n          for (const id of formatters.keys()) {\n              if (id === prefix || id.startsWith(`${prefix}__`)) {\n                  formatters.delete(id);\n              }\n          }\n      }\n  }\n  function parseFormatArgs(args, options, initialOverrides, optionsKeys) {\n      const [, arg2, arg3, arg4] = args;\n      let overrides = initialOverrides;\n      if (isString(arg2)) {\n          options.key = arg2;\n      }\n      else if (isPlainObject(arg2)) {\n          Object.keys(arg2).forEach(key => {\n              if (optionsKeys.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 overrides;\n  }\n\n  const intlDefined = typeof Intl !== 'undefined';\n  const Availabilities = {\n      dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n      numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n  };\n\n  // implementation of `datetime` function\n  function datetime(context, ...args) {\n      const { datetimeFormats, unresolving, onWarn } = context;\n      const { __datetimeFormatters } = context;\n      if (!Availabilities.dateTimeFormat) {\n          onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_DATE));\n          return MISSING_RESOLVE_VALUE;\n      }\n      if (!isString(args[0]) && !isDate(args[0]) && !isNumber(args[0])) {\n          {\n              onWarn(getWarnMessage$1(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      if (!isString(key) || key === '') {\n          const formatter = new Intl.DateTimeFormat(locale.replace(/!/g, ''), overrides);\n          return !part ? formatter.format(value) : formatter.formatToParts(value);\n      }\n      const targetLocale = resolveFormatLocale(context, key, locale, datetimeFormats, missingWarn, fallbackWarn, 'datetime format');\n      if (!isString(targetLocale)) {\n          return unresolving ? NOT_REOSLVED : key;\n      }\n      const format = datetimeFormats[targetLocale][key];\n      const id = getFormatterCacheKey(targetLocale, key, overrides);\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 */\n  const 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 */\n  function parseDateTimeArgs(...args) {\n      const [arg1] = args;\n      const options = create();\n      const initialOverrides = 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      const overrides = parseFormatArgs(args, options, initialOverrides, DATETIME_FORMAT_OPTIONS_KEYS);\n      return [options.key || '', value, options, overrides];\n  }\n  /** @internal */\n  function clearDateTimeFormat(ctx, locale, format) {\n      const context = ctx;\n      clearFormatCache(context.__datetimeFormatters, locale, format);\n  }\n\n  // implementation of `number` function\n  function number(context, ...args) {\n      const { numberFormats, unresolving, onWarn } = context;\n      const { __numberFormatters } = context;\n      if (!Availabilities.numberFormat) {\n          onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\n          return MISSING_RESOLVE_VALUE;\n      }\n      if (!isNumber(args[0])) {\n          {\n              onWarn(getWarnMessage$1(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      if (!isString(key) || key === '') {\n          const formatter = new Intl.NumberFormat(locale.replace(/!/g, ''), overrides);\n          return !part ? formatter.format(value) : formatter.formatToParts(value);\n      }\n      const targetLocale = resolveFormatLocale(context, key, locale, numberFormats, missingWarn, fallbackWarn, 'number format');\n      if (!isString(targetLocale)) {\n          return unresolving ? NOT_REOSLVED : key;\n      }\n      const format = numberFormats[targetLocale][key];\n      const id = getFormatterCacheKey(targetLocale, key, overrides);\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 */\n  const 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 */\n  function parseNumberArgs(...args) {\n      const [arg1] = args;\n      const options = create();\n      const initialOverrides = create();\n      if (!isNumber(arg1)) {\n          throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n      }\n      const value = arg1;\n      const overrides = parseFormatArgs(args, options, initialOverrides, NUMBER_FORMAT_OPTIONS_KEYS);\n      return [options.key || '', value, options, overrides];\n  }\n  /** @internal */\n  function clearNumberFormat(ctx, locale, format) {\n      const context = ctx;\n      clearFormatCache(context.__numberFormatters, locale, format);\n  }\n\n  const DEFAULT_MODIFIER = (str) => str;\n  const DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\n  const DEFAULT_MESSAGE_DATA_TYPE = 'text';\n  const DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : join(values);\n  const DEFAULT_INTERPOLATE = toDisplayString;\n  function 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  }\n  function 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  }\n  function 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\n  const NOOP_MESSAGE_FUNCTION = () => '';\n  const isMessageFunction = (val) => isFunction(val);\n  // implementation of `translate` function\n  function 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 (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      {\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  }\n  function 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  }\n  function 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 (locale !== targetLocale &&\n              !isAlmostSameLocale(locale, targetLocale) &&\n              isTranslateFallbackWarn(fallbackWarn, key)) {\n              onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\n                  key,\n                  target: targetLocale\n              }));\n          }\n          const emitter = context.__v_emitter\n              ;\n          // for vue-devtools timeline event\n          if (locale !== targetLocale) {\n              if (emitter) {\n                  emitter.emit('fallback', {\n                      type,\n                      key,\n                      from,\n                      to,\n                      groupId: toDevtoolsGroupId(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 (inBrowser && emitter) {\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 (inBrowser && emitter) {\n              const end = window.performance.now();\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: toDevtoolsGroupId(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  }\n  function 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      const emitter = context.__v_emitter\n          ;\n      let start = null;\n      let startTag;\n      let endTag;\n      if (inBrowser && emitter) {\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 (inBrowser && emitter) {\n          const end = window.performance.now();\n          if (emitter && start) {\n              emitter.emit('message-compilation', {\n                  type: 'message-compilation',\n                  message: format,\n                  time: end - start,\n                  groupId: toDevtoolsGroupId('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  }\n  function evaluateMessage(context, msg, msgCtx) {\n      // for vue-devtools timeline event\n      const emitter = context.__v_emitter\n          ;\n      let start = null;\n      let startTag;\n      let endTag;\n      if (inBrowser && emitter) {\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 (inBrowser && emitter) {\n          const end = window.performance.now();\n          if (emitter && start) {\n              emitter.emit('message-evaluation', {\n                  type: 'message-evaluation',\n                  value: messaged,\n                  time: end - start,\n                  groupId: toDevtoolsGroupId('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 */\n  function 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  }\n  function getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {\n      return {\n          locale,\n          key,\n          warnHtmlMessage,\n          onError: (err) => {\n              onError && onError(err);\n              {\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: toDevtoolsGroupId('translate', key)\n                      });\n                  }\n                  const message = `Message compilation error: ${err.message}`;\n                  throw new SyntaxError(codeFrame ? `${message}\\n${codeFrame}` : message);\n              }\n          },\n          onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\n      };\n  }\n  function 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  }\n  function 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 [format, , 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 = format ?? 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   * Vue I18n Version\n   *\n   * @remarks\n   * Semver format. Same format as the package.json `version` field.\n   *\n   * @VueI18nGeneral\n   */\n  const VERSION = '11.4.10';\n  /**\n   * This is only called development env\n   * istanbul-ignore-next\n   */\n  function initDev() {\n      {\n          {\n              console.info(`You are running a development build of vue-i18n.\\n` +\n                  `Make sure to use the production build (*.prod.js) when deploying for production.`);\n          }\n      }\n  }\n\n  const I18nErrorCodes = {\n      // composer module errors\n      UNEXPECTED_RETURN_TYPE: CORE_ERROR_CODES_EXTEND_POINT, // 24\n      // legacy module errors\n      INVALID_ARGUMENT: 25,\n      // i18n module errors\n      MUST_BE_CALL_SETUP_TOP: 26,\n      NOT_INSTALLED: 27,\n      // directive module errors\n      REQUIRED_VALUE: 28,\n      INVALID_VALUE: 29,\n      // vue-devtools errors\n      CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: 30,\n      NOT_INSTALLED_WITH_PROVIDE: 31,\n      // unexpected error\n      UNEXPECTED_ERROR: 32,\n      // not compatible legacy vue-i18n constructor\n      NOT_COMPATIBLE_LEGACY_VUE_I18N: 33,\n      // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\n      NOT_AVAILABLE_COMPOSITION_IN_LEGACY: 34\n  };\n  function createI18nError(code, ...args) {\n      return createCompileError(code, null, { messages: errorMessages, args } );\n  }\n  const errorMessages = {\n      [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\n      [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\n      [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\n      [I18nErrorCodes.NOT_INSTALLED]: 'Need to install with `app.use` function',\n      [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\n      [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\n      [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\n      [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\n      [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\n      [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\n      [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\n  };\n\n  const TranslateVNodeSymbol = \n  /* #__PURE__*/ makeSymbol('__translateVNode');\n  const DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\n  const NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\n  const EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\n  const DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\n  const SetPluralRulesSymbol = makeSymbol('__setPluralRules');\n  const InejctWithOptionSymbol = \n  /* #__PURE__*/ makeSymbol('__injectWithOption');\n  const DisposeSymbol = /* #__PURE__*/ makeSymbol('__dispose');\n\n  const I18nWarnCodes = {\n      FALLBACK_TO_ROOT: CORE_WARN_CODES_EXTEND_POINT, // 10\n      NOT_FOUND_PARENT_SCOPE: (CORE_WARN_CODES_EXTEND_POINT + 1),\n      IGNORE_OBJ_FLATTEN: (CORE_WARN_CODES_EXTEND_POINT + 2),\n      /**\n       * @deprecated will be removed at vue-i18n v12\n       */\n      DEPRECATE_LEGACY_MODE: (CORE_WARN_CODES_EXTEND_POINT + 3),\n      /**\n       * @deprecated will be removed at vue-i18n v12\n       */\n      DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE: (CORE_WARN_CODES_EXTEND_POINT +\n          4),\n      // duplicate `useI18n` calling\n      DUPLICATE_USE_I18N_CALLING: (CORE_WARN_CODES_EXTEND_POINT + 5)\n  };\n  const warnMessages = {\n      [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\n      [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`,\n      [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`,\n      /**\n       * @deprecated will be removed at vue-i18n v12\n       */\n      [I18nWarnCodes.DEPRECATE_LEGACY_MODE]: `Legacy API mode has been deprecated in v11. Use Composition API mode instead.\\nAbout how to use the Composition API mode, see https://vue-i18n.intlify.dev/guide/advanced/composition.html`,\n      /**\n       * @deprecated will be removed at vue-i18n v12\n       */\n      [I18nWarnCodes.DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE]: `'v-t' has been deprecated in v11. Use translate APIs ('t' or '$t') instead.`,\n      [I18nWarnCodes.DUPLICATE_USE_I18N_CALLING]: \"Duplicate `useI18n` calling by local scope. Please don't call it on local scope, due to it does not work properly in component.\"\n  };\n  function getWarnMessage(code, ...args) {\n      return format$1(warnMessages[code], ...args);\n  }\n\n  /* eslint-disable @typescript-eslint/no-explicit-any */\n  /**\n   * Transform flat json in obj to normal json in obj\n   */\n  function handleFlatJson(obj) {\n      // check obj\n      if (!isObject(obj)) {\n          return obj;\n      }\n      if (isMessageAST(obj)) {\n          return obj;\n      }\n      for (const key in obj) {\n          // check key\n          if (!hasOwn(obj, key)) {\n              continue;\n          }\n          // handle for normal json\n          if (!key.includes('.')) {\n              // recursive process value if value is also a object\n              if (isObject(obj[key])) {\n                  handleFlatJson(obj[key]);\n              }\n          }\n          // handle for flat json, transform to normal json\n          else {\n              // go to the last object\n              const subKeys = key.split('.');\n              const lastIndex = subKeys.length - 1;\n              let currentObj = obj;\n              let hasStringValue = false;\n              for (let i = 0; i < lastIndex; i++) {\n                  if (subKeys[i] === '__proto__') {\n                      throw new Error(`unsafe key: ${subKeys[i]}`);\n                  }\n                  if (!(subKeys[i] in currentObj)) {\n                      currentObj[subKeys[i]] = create();\n                  }\n                  if (!isObject(currentObj[subKeys[i]])) {\n                      warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, {\n                              key: subKeys[i]\n                          }));\n                      hasStringValue = true;\n                      break;\n                  }\n                  currentObj = currentObj[subKeys[i]];\n              }\n              // update last object value, delete old property\n              if (!hasStringValue) {\n                  if (!isMessageAST(currentObj)) {\n                      currentObj[subKeys[lastIndex]] = obj[key];\n                      delete obj[key];\n                  }\n                  else {\n                      /**\n                       * NOTE:\n                       * if the last object is a message AST and subKeys[lastIndex] has message AST prop key, ignore to copy and key deletion\n                       */\n                      if (!AST_NODE_PROPS_KEYS.includes(subKeys[lastIndex])) {\n                          delete obj[key];\n                      }\n                  }\n              }\n              // recursive process value if value is also a object\n              if (!isMessageAST(currentObj)) {\n                  const target = currentObj[subKeys[lastIndex]];\n                  if (isObject(target)) {\n                      handleFlatJson(target);\n                  }\n              }\n          }\n      }\n      return obj;\n  }\n  function getLocaleMessages(locale, options) {\n      const { messages, __i18n, messageResolver, flatJson } = options;\n      // prettier-ignore\n      const ret = (isPlainObject(messages)\n          ? messages\n          : isArray(__i18n)\n              ? create()\n              : { [locale]: create() });\n      // merge locale messages of i18n custom block\n      if (isArray(__i18n)) {\n          __i18n.forEach(custom => {\n              if ('locale' in custom && 'resource' in custom) {\n                  const { locale, resource } = custom;\n                  if (locale) {\n                      ret[locale] = ret[locale] || create();\n                      deepCopy(resource, ret[locale]);\n                  }\n                  else {\n                      deepCopy(resource, ret);\n                  }\n              }\n              else {\n                  isString(custom) && deepCopy(JSON.parse(custom), ret);\n              }\n          });\n      }\n      // handle messages for flat json\n      if (messageResolver == null && flatJson) {\n          for (const key in ret) {\n              if (hasOwn(ret, key)) {\n                  handleFlatJson(ret[key]);\n              }\n          }\n      }\n      return ret;\n  }\n  function getComponentOptions(instance) {\n      return instance.type;\n  }\n  function adjustI18nResources(gl, options, componentOptions) {\n      // prettier-ignore\n      let messages = isObject(options.messages)\n          ? options.messages\n          : create();\n      if ('__i18nGlobal' in componentOptions) {\n          messages = getLocaleMessages(gl.locale.value, {\n              messages,\n              __i18n: componentOptions.__i18nGlobal\n          });\n      }\n      // merge locale messages\n      const locales = Object.keys(messages);\n      if (locales.length) {\n          locales.forEach(locale => {\n              gl.mergeLocaleMessage(locale, messages[locale]);\n          });\n      }\n      {\n          // merge datetime formats\n          if (isObject(options.datetimeFormats)) {\n              const locales = Object.keys(options.datetimeFormats);\n              if (locales.length) {\n                  locales.forEach(locale => {\n                      gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\n                  });\n              }\n          }\n          // merge number formats\n          if (isObject(options.numberFormats)) {\n              const locales = Object.keys(options.numberFormats);\n              if (locales.length) {\n                  locales.forEach(locale => {\n                      gl.mergeNumberFormat(locale, options.numberFormats[locale]);\n                  });\n              }\n          }\n      }\n  }\n  function createTextNode(key) {\n      return Vue.createVNode(Vue.Text, null, key, 0);\n  }\n  function getCurrentInstance() {\n      {\n          // NOTE(kazupon): avoid missing-export warnings with Vue <= 3.5\n          const key = 'currentInstance';\n          if (key in Vue__namespace) {\n              return Vue__namespace[key];\n          }\n          return Vue.getCurrentInstance();\n      }\n  }\n  /* eslint-enable @typescript-eslint/no-explicit-any */\n\n  /* eslint-disable @typescript-eslint/no-explicit-any */\n  // extend VNode interface\n  const DEVTOOLS_META = '__INTLIFY_META__';\n  const NOOP_RETURN_ARRAY = () => [];\n  const NOOP_RETURN_FALSE = () => false;\n  let composerID = 0;\n  function defineCoreMissingHandler(missing) {\n      return ((ctx, locale, key, type) => {\n          return missing(locale, key, getCurrentInstance() || undefined, type);\n      });\n  }\n  // for Intlify DevTools\n  /* #__NO_SIDE_EFFECTS__ */\n  const getMetaInfo = () => {\n      const instance = getCurrentInstance();\n      let meta = null;\n      return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\n          ? { [DEVTOOLS_META]: meta }\n          : null;\n  };\n  /**\n   * Create composer interface factory\n   *\n   * @internal\n   */\n  function createComposer(options = {}) {\n      const { __root, __injectWithOption } = options;\n      const _isGlobal = __root === undefined;\n      const flatJson = options.flatJson;\n      const _ref = inBrowser ? Vue.ref : Vue.shallowRef;\n      let _inheritLocale = isBoolean(options.inheritLocale)\n          ? options.inheritLocale\n          : true;\n      const _locale = _ref(\n      // prettier-ignore\n      __root && _inheritLocale\n          ? __root.locale.value\n          : isString(options.locale)\n              ? options.locale\n              : DEFAULT_LOCALE);\n      const _fallbackLocale = _ref(\n      // prettier-ignore\n      __root && _inheritLocale\n          ? __root.fallbackLocale.value\n          : isString(options.fallbackLocale) ||\n              isArray(options.fallbackLocale) ||\n              isPlainObject(options.fallbackLocale) ||\n              options.fallbackLocale === false\n              ? options.fallbackLocale\n              : _locale.value);\n      const _messages = _ref(getLocaleMessages(_locale.value, options));\n      // prettier-ignore\n      const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats)\n              ? options.datetimeFormats\n              : { [_locale.value]: {} })\n          ;\n      // prettier-ignore\n      const _numberFormats = _ref(isPlainObject(options.numberFormats)\n              ? options.numberFormats\n              : { [_locale.value]: {} })\n          ;\n      // warning suppress options\n      // prettier-ignore\n      let _missingWarn = __root\n          ? __root.missingWarn\n          : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n              ? options.missingWarn\n              : true;\n      // prettier-ignore\n      let _fallbackWarn = __root\n          ? __root.fallbackWarn\n          : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n              ? options.fallbackWarn\n              : true;\n      // prettier-ignore\n      let _fallbackRoot = __root\n          ? __root.fallbackRoot\n          : isBoolean(options.fallbackRoot)\n              ? options.fallbackRoot\n              : true;\n      // configure fall back to root\n      let _fallbackFormat = !!options.fallbackFormat;\n      // runtime missing\n      let _missing = isFunction(options.missing) ? options.missing : null;\n      let _runtimeMissing = isFunction(options.missing)\n          ? defineCoreMissingHandler(options.missing)\n          : null;\n      // postTranslation handler\n      let _postTranslation = isFunction(options.postTranslation)\n          ? options.postTranslation\n          : null;\n      // prettier-ignore\n      let _warnHtmlMessage = __root\n          ? __root.warnHtmlMessage\n          : isBoolean(options.warnHtmlMessage)\n              ? options.warnHtmlMessage\n              : true;\n      let _escapeParameter = !!options.escapeParameter;\n      // custom linked modifiers\n      // prettier-ignore\n      const _modifiers = __root\n          ? __root.modifiers\n          : isPlainObject(options.modifiers)\n              ? options.modifiers\n              : {};\n      // pluralRules\n      let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\n      // runtime context\n      // eslint-disable-next-line prefer-const\n      let _context;\n      const getCoreContext = () => {\n          _isGlobal && setFallbackContext(null);\n          const ctxOptions = {\n              version: VERSION,\n              locale: _locale.value,\n              fallbackLocale: _fallbackLocale.value,\n              messages: _messages.value,\n              modifiers: _modifiers,\n              pluralRules: _pluralRules,\n              missing: _runtimeMissing === null ? undefined : _runtimeMissing,\n              missingWarn: _missingWarn,\n              fallbackWarn: _fallbackWarn,\n              fallbackFormat: _fallbackFormat,\n              unresolving: true,\n              postTranslation: _postTranslation === null ? undefined : _postTranslation,\n              warnHtmlMessage: _warnHtmlMessage,\n              escapeParameter: _escapeParameter,\n              messageResolver: options.messageResolver,\n              messageCompiler: options.messageCompiler,\n              __meta: { framework: 'vue' }\n          };\n          {\n              ctxOptions.datetimeFormats = _datetimeFormats.value;\n              ctxOptions.numberFormats = _numberFormats.value;\n              ctxOptions.__datetimeFormatters = isPlainObject(_context)\n                  ? _context.__datetimeFormatters\n                  : undefined;\n              ctxOptions.__numberFormatters = isPlainObject(_context)\n                  ? _context.__numberFormatters\n                  : undefined;\n          }\n          {\n              ctxOptions.__v_emitter = isPlainObject(_context)\n                  ? _context.__v_emitter\n                  : undefined;\n          }\n          const ctx = createCoreContext(ctxOptions);\n          _isGlobal && setFallbackContext(ctx);\n          return ctx;\n      };\n      _context = getCoreContext();\n      updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n      // track reactivity\n      function trackReactivityValues() {\n          return [\n                  _locale.value,\n                  _fallbackLocale.value,\n                  _messages.value,\n                  _datetimeFormats.value,\n                  _numberFormats.value\n              ]\n              ;\n      }\n      // locale\n      const locale = Vue.computed({\n          get: () => _locale.value,\n          set: val => {\n              _context.locale = val;\n              _locale.value = val;\n          }\n      });\n      // fallbackLocale\n      const fallbackLocale = Vue.computed({\n          get: () => _fallbackLocale.value,\n          set: val => {\n              _context.fallbackLocale = val;\n              _fallbackLocale.value = val;\n              updateFallbackLocale(_context, _locale.value, val);\n          }\n      });\n      // messages\n      const messages = Vue.computed(() => _messages.value);\n      // datetimeFormats\n      const datetimeFormats = /* #__PURE__*/ Vue.computed(() => _datetimeFormats.value);\n      // numberFormats\n      const numberFormats = /* #__PURE__*/ Vue.computed(() => _numberFormats.value);\n      // getPostTranslationHandler\n      function getPostTranslationHandler() {\n          return isFunction(_postTranslation) ? _postTranslation : null;\n      }\n      // setPostTranslationHandler\n      function setPostTranslationHandler(handler) {\n          _postTranslation = handler;\n          _context.postTranslation = handler;\n      }\n      // getMissingHandler\n      function getMissingHandler() {\n          return _missing;\n      }\n      // setMissingHandler\n      function setMissingHandler(handler) {\n          if (handler !== null) {\n              _runtimeMissing = defineCoreMissingHandler(handler);\n          }\n          _missing = handler;\n          _context.missing = _runtimeMissing;\n      }\n      function isResolvedTranslateMessage(type, arg) {\n          return type !== 'translate' || !arg.resolvedMessage;\n      }\n      const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\n          trackReactivityValues(); // track reactive dependency\n          // NOTE: experimental !!\n          let ret;\n          try {\n              if (true || false) {\n                  setAdditionalMeta(getMetaInfo());\n              }\n              if (!_isGlobal) {\n                  _context.fallbackContext = __root\n                      ? getFallbackContext()\n                      : undefined;\n              }\n              ret = fn(_context);\n          }\n          finally {\n              if (!_isGlobal) {\n                  _context.fallbackContext = undefined;\n              }\n          }\n          if ((warnType !== 'translate exists' && // for not `te` (e.g `t`)\n              isNumber(ret) &&\n              ret === NOT_REOSLVED) ||\n              (warnType === 'translate exists' && !ret) // for `te`\n          ) {\n              const [key, arg2] = argumentParser();\n              if (__root &&\n                  isString(key) &&\n                  isResolvedTranslateMessage(warnType, arg2)) {\n                  if (_fallbackRoot &&\n                      (isTranslateFallbackWarn(_fallbackWarn, key) ||\n                          isTranslateMissingWarn(_missingWarn, key))) {\n                      warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\n                          key,\n                          type: warnType\n                      }));\n                  }\n                  // for vue-devtools timeline event\n                  {\n                      const { __v_emitter: emitter } = _context;\n                      if (emitter && _fallbackRoot) {\n                          emitter.emit('fallback', {\n                              type: warnType,\n                              key,\n                              to: 'global',\n                              groupId: toDevtoolsGroupId(warnType, key)\n                          });\n                      }\n                  }\n              }\n              return __root && _fallbackRoot\n                  ? fallbackSuccess(__root)\n                  : fallbackFail(key);\n          }\n          else if (successCondition(ret)) {\n              return ret;\n          }\n          else {\n              /* istanbul ignore next */\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\n          }\n      };\n      // t\n      function t(...args) {\n          return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\n      }\n      // rt\n      function rt(...args) {\n          const [arg1, arg2, arg3] = args;\n          if (arg3 && !isObject(arg3)) {\n              throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n          }\n          return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\n      }\n      // d\n      function d(...args) {\n          return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val) || isArray(val));\n      }\n      // n\n      function n(...args) {\n          return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val) || isArray(val));\n      }\n      // for custom processor\n      function normalize(values) {\n          return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\n              ? createTextNode(String(val))\n              : val);\n      }\n      const interpolate = (val) => val;\n      const processor = {\n          normalize,\n          interpolate,\n          type: 'vnode'\n      };\n      // translateVNode, using for `i18n-t` component\n      function translateVNode(...args) {\n          return wrapWithDeps(context => {\n              let ret;\n              const _context = context;\n              try {\n                  _context.processor = processor;\n                  ret = Reflect.apply(translate, null, [_context, ...args]);\n              }\n              finally {\n                  _context.processor = null;\n              }\n              return ret;\n          }, () => parseTranslateArgs(...args), 'translate', root => root[TranslateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\n      }\n      // numberParts, using for `i18n-n` component\n      function numberParts(...args) {\n          return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n      }\n      // datetimeParts, using for `i18n-d` component\n      function datetimeParts(...args) {\n          return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n      }\n      function setPluralRules(rules) {\n          _pluralRules = rules;\n          _context.pluralRules = _pluralRules;\n      }\n      // te\n      function te(key, locale) {\n          return wrapWithDeps(() => {\n              if (!key) {\n                  return false;\n              }\n              const targetLocale = isString(locale) ? locale : _locale.value;\n              // When locale is explicitly specified, check only that locale (no fallback chain)\n              // When locale is not specified, check the fallback locale chain\n              const locales = isString(locale)\n                  ? [targetLocale]\n                  : fallbackWithLocaleChain(_context, _fallbackLocale.value, targetLocale);\n              for (let i = 0; i < locales.length; i++) {\n                  const message = getLocaleMessage(locales[i]);\n                  let resolved = _context.messageResolver(message, key);\n                  // if null, resolve with object key path (for flat keys containing dots)\n                  if (resolved === null) {\n                      resolved = message[key];\n                  }\n                  if (isMessageAST(resolved) ||\n                      isMessageFunction(resolved) ||\n                      isString(resolved)) {\n                      return true;\n                  }\n              }\n              return false;\n          }, () => [key], 'translate exists', root => {\n              return Reflect.apply(root.te, root, [key, locale]);\n          }, NOOP_RETURN_FALSE, val => isBoolean(val));\n      }\n      function resolveMessages(key) {\n          let messages = null;\n          const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\n          for (let i = 0; i < locales.length; i++) {\n              const targetLocaleMessages = _messages.value[locales[i]] || {};\n              const messageValue = _context.messageResolver(targetLocaleMessages, key);\n              if (messageValue != null) {\n                  messages = messageValue;\n                  break;\n              }\n          }\n          return messages;\n      }\n      // tm\n      function tm(key) {\n          const messages = resolveMessages(key);\n          // prettier-ignore\n          return messages != null\n              ? messages\n              : __root\n                  ? __root.tm(key) || {}\n                  : {};\n      }\n      // getLocaleMessage\n      function getLocaleMessage(locale) {\n          return (_messages.value[locale] || {});\n      }\n      // setLocaleMessage\n      function setLocaleMessage(locale, message) {\n          if (flatJson) {\n              const _message = { [locale]: message };\n              for (const key in _message) {\n                  if (hasOwn(_message, key)) {\n                      handleFlatJson(_message[key]);\n                  }\n              }\n              message = _message[locale];\n          }\n          _messages.value[locale] = message;\n          _context.messages = _messages.value;\n      }\n      // mergeLocaleMessage\n      function mergeLocaleMessage(locale, message) {\n          _messages.value[locale] = _messages.value[locale] || {};\n          const _message = { [locale]: message };\n          if (flatJson) {\n              for (const key in _message) {\n                  if (hasOwn(_message, key)) {\n                      handleFlatJson(_message[key]);\n                  }\n              }\n          }\n          message = _message[locale];\n          deepCopy(message, _messages.value[locale]);\n          _context.messages = _messages.value;\n      }\n      // getDateTimeFormat\n      function getDateTimeFormat(locale) {\n          return _datetimeFormats.value[locale] || {};\n      }\n      // setDateTimeFormat\n      function setDateTimeFormat(locale, format) {\n          _datetimeFormats.value[locale] = format;\n          _context.datetimeFormats = _datetimeFormats.value;\n          clearDateTimeFormat(_context, locale, format);\n      }\n      // mergeDateTimeFormat\n      function mergeDateTimeFormat(locale, format) {\n          _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\n          _context.datetimeFormats = _datetimeFormats.value;\n          clearDateTimeFormat(_context, locale, format);\n      }\n      // getNumberFormat\n      function getNumberFormat(locale) {\n          return _numberFormats.value[locale] || {};\n      }\n      // setNumberFormat\n      function setNumberFormat(locale, format) {\n          _numberFormats.value[locale] = format;\n          _context.numberFormats = _numberFormats.value;\n          clearNumberFormat(_context, locale, format);\n      }\n      // mergeNumberFormat\n      function mergeNumberFormat(locale, format) {\n          _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\n          _context.numberFormats = _numberFormats.value;\n          clearNumberFormat(_context, locale, format);\n      }\n      // for debug\n      composerID++;\n      // watch root locale & fallbackLocale\n      if (__root && inBrowser) {\n          Vue.watch(__root.locale, (val) => {\n              if (_inheritLocale) {\n                  _locale.value = val;\n                  _context.locale = val;\n                  updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n              }\n          });\n          Vue.watch(__root.fallbackLocale, (val) => {\n              if (_inheritLocale) {\n                  _fallbackLocale.value = val;\n                  _context.fallbackLocale = val;\n                  updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n              }\n          });\n      }\n      // define basic composition API!\n      const composer = {\n          id: composerID,\n          locale,\n          fallbackLocale,\n          get inheritLocale() {\n              return _inheritLocale;\n          },\n          set inheritLocale(val) {\n              _inheritLocale = val;\n              if (val && __root) {\n                  _locale.value = __root.locale.value;\n                  _fallbackLocale.value = __root.fallbackLocale.value;\n                  updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n              }\n          },\n          get availableLocales() {\n              return Object.keys(_messages.value).sort();\n          },\n          messages,\n          get modifiers() {\n              return _modifiers;\n          },\n          get pluralRules() {\n              return _pluralRules || {};\n          },\n          get isGlobal() {\n              return _isGlobal;\n          },\n          get missingWarn() {\n              return _missingWarn;\n          },\n          set missingWarn(val) {\n              _missingWarn = val;\n              _context.missingWarn = _missingWarn;\n          },\n          get fallbackWarn() {\n              return _fallbackWarn;\n          },\n          set fallbackWarn(val) {\n              _fallbackWarn = val;\n              _context.fallbackWarn = _fallbackWarn;\n          },\n          get fallbackRoot() {\n              return _fallbackRoot;\n          },\n          set fallbackRoot(val) {\n              _fallbackRoot = val;\n          },\n          get fallbackFormat() {\n              return _fallbackFormat;\n          },\n          set fallbackFormat(val) {\n              _fallbackFormat = val;\n              _context.fallbackFormat = _fallbackFormat;\n          },\n          get warnHtmlMessage() {\n              return _warnHtmlMessage;\n          },\n          set warnHtmlMessage(val) {\n              _warnHtmlMessage = val;\n              _context.warnHtmlMessage = val;\n          },\n          get escapeParameter() {\n              return _escapeParameter;\n          },\n          set escapeParameter(val) {\n              _escapeParameter = val;\n              _context.escapeParameter = val;\n          },\n          t,\n          getLocaleMessage,\n          setLocaleMessage,\n          mergeLocaleMessage,\n          getPostTranslationHandler,\n          setPostTranslationHandler,\n          getMissingHandler,\n          setMissingHandler,\n          [SetPluralRulesSymbol]: setPluralRules\n      };\n      {\n          composer.datetimeFormats = datetimeFormats;\n          composer.numberFormats = numberFormats;\n          composer.rt = rt;\n          composer.te = te;\n          composer.tm = tm;\n          composer.d = d;\n          composer.n = n;\n          composer.getDateTimeFormat = getDateTimeFormat;\n          composer.setDateTimeFormat = setDateTimeFormat;\n          composer.mergeDateTimeFormat = mergeDateTimeFormat;\n          composer.getNumberFormat = getNumberFormat;\n          composer.setNumberFormat = setNumberFormat;\n          composer.mergeNumberFormat = mergeNumberFormat;\n          composer[InejctWithOptionSymbol] = __injectWithOption;\n          composer[TranslateVNodeSymbol] = translateVNode;\n          composer[DatetimePartsSymbol] = datetimeParts;\n          composer[NumberPartsSymbol] = numberParts;\n      }\n      // for vue-devtools timeline event\n      {\n          composer[EnableEmitter] = (emitter) => {\n              _context.__v_emitter = emitter;\n          };\n          composer[DisableEmitter] = () => {\n              _context.__v_emitter = undefined;\n          };\n      }\n      return composer;\n  }\n  /* eslint-enable @typescript-eslint/no-explicit-any */\n\n  var global$1 = (typeof global !== \"undefined\" ? global :\n              typeof self !== \"undefined\" ? self :\n              typeof window !== \"undefined\" ? window : {});\n\n  function getDevtoolsGlobalHook() {\n      return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n  }\n  function getTarget() {\n      // @ts-ignore\n      return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n          ? window\n          : typeof global$1 !== 'undefined'\n              ? global$1\n              : {};\n  }\n  const isProxyAvailable = typeof Proxy === 'function';\n\n  const HOOK_SETUP = 'devtools-plugin:setup';\n  const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n\n  let supported;\n  let perf;\n  function isPerformanceSupported() {\n      var _a;\n      if (supported !== undefined) {\n          return supported;\n      }\n      if (typeof window !== 'undefined' && window.performance) {\n          supported = true;\n          perf = window.performance;\n      }\n      else if (typeof global$1 !== 'undefined' && ((_a = global$1.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n          supported = true;\n          perf = global$1.perf_hooks.performance;\n      }\n      else {\n          supported = false;\n      }\n      return supported;\n  }\n  function now() {\n      return isPerformanceSupported() ? perf.now() : Date.now();\n  }\n\n  class ApiProxy {\n      constructor(plugin, hook) {\n          this.target = null;\n          this.targetQueue = [];\n          this.onQueue = [];\n          this.plugin = plugin;\n          this.hook = hook;\n          const defaultSettings = {};\n          if (plugin.settings) {\n              for (const id in plugin.settings) {\n                  const item = plugin.settings[id];\n                  defaultSettings[id] = item.defaultValue;\n              }\n          }\n          const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n          let currentSettings = Object.assign({}, defaultSettings);\n          try {\n              const raw = localStorage.getItem(localSettingsSaveId);\n              const data = JSON.parse(raw);\n              Object.assign(currentSettings, data);\n          }\n          catch (e) {\n              // noop\n          }\n          this.fallbacks = {\n              getSettings() {\n                  return currentSettings;\n              },\n              setSettings(value) {\n                  try {\n                      localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n                  }\n                  catch (e) {\n                      // noop\n                  }\n                  currentSettings = value;\n              },\n              now() {\n                  return now();\n              },\n          };\n          if (hook) {\n              hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n                  if (pluginId === this.plugin.id) {\n                      this.fallbacks.setSettings(value);\n                  }\n              });\n          }\n          this.proxiedOn = new Proxy({}, {\n              get: (_target, prop) => {\n                  if (this.target) {\n                      return this.target.on[prop];\n                  }\n                  else {\n                      return (...args) => {\n                          this.onQueue.push({\n                              method: prop,\n                              args,\n                          });\n                      };\n                  }\n              },\n          });\n          this.proxiedTarget = new Proxy({}, {\n              get: (_target, prop) => {\n                  if (this.target) {\n                      return this.target[prop];\n                  }\n                  else if (prop === 'on') {\n                      return this.proxiedOn;\n                  }\n                  else if (Object.keys(this.fallbacks).includes(prop)) {\n                      return (...args) => {\n                          this.targetQueue.push({\n                              method: prop,\n                              args,\n                              resolve: () => { },\n                          });\n                          return this.fallbacks[prop](...args);\n                      };\n                  }\n                  else {\n                      return (...args) => {\n                          return new Promise(resolve => {\n                              this.targetQueue.push({\n                                  method: prop,\n                                  args,\n                                  resolve,\n                              });\n                          });\n                      };\n                  }\n              },\n          });\n      }\n      async setRealTarget(target) {\n          this.target = target;\n          for (const item of this.onQueue) {\n              this.target.on[item.method](...item.args);\n          }\n          for (const item of this.targetQueue) {\n              item.resolve(await this.target[item.method](...item.args));\n          }\n      }\n  }\n\n  function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n      const descriptor = pluginDescriptor;\n      const target = getTarget();\n      const hook = getDevtoolsGlobalHook();\n      const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n      if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n          hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n      }\n      else {\n          const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n          const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n          list.push({\n              pluginDescriptor: descriptor,\n              setupFn,\n              proxy,\n          });\n          if (proxy)\n              setupFn(proxy.proxiedTarget);\n      }\n  }\n\n  const VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\n  const VueDevToolsLabels = {\n      'vue-devtools-plugin-vue-i18n': 'Vue I18n DevTools',\n      'vue-i18n-resource-inspector': 'Vue I18n DevTools',\n      'vue-i18n-timeline': 'Vue I18n'\n  };\n  const VueDevToolsPlaceholders = {\n      'vue-i18n-resource-inspector': 'Search for scopes ...'\n  };\n  const VueDevToolsTimelineColors = {\n      'vue-i18n-timeline': 0xffcd19\n  };\n  let devtoolsApi;\n  async function enableDevTools(app, i18n) {\n      return new Promise((resolve, reject) => {\n          try {\n              setupDevtoolsPlugin({\n                  id: 'vue-devtools-plugin-vue-i18n',\n                  label: VueDevToolsLabels['vue-devtools-plugin-vue-i18n'],\n                  packageName: 'vue-i18n',\n                  homepage: 'https://vue-i18n.intlify.dev',\n                  logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\n                  componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\n                  app: app // eslint-disable-line @typescript-eslint/no-explicit-any\n              }, api => {\n                  devtoolsApi = api;\n                  api.on.visitComponentTree(({ componentInstance, treeNode }) => {\n                      updateComponentTreeTags(componentInstance, treeNode, i18n);\n                  });\n                  api.on.inspectComponent(({ componentInstance, instanceData }) => {\n                      if (componentInstance.__VUE_I18N__ && instanceData) {\n                          if (i18n.mode === 'legacy') {\n                              // ignore global scope on legacy mode\n                              if (componentInstance.__VUE_I18N__ !==\n                                  i18n.global.__composer) {\n                                  inspectComposer(instanceData, componentInstance.__VUE_I18N__);\n                              }\n                          }\n                          else {\n                              inspectComposer(instanceData, componentInstance.__VUE_I18N__);\n                          }\n                      }\n                  });\n                  api.addInspector({\n                      id: 'vue-i18n-resource-inspector',\n                      label: VueDevToolsLabels['vue-i18n-resource-inspector'],\n                      icon: 'language',\n                      treeFilterPlaceholder: VueDevToolsPlaceholders['vue-i18n-resource-inspector']\n                  });\n                  api.on.getInspectorTree(payload => {\n                      if (payload.app === app &&\n                          payload.inspectorId === 'vue-i18n-resource-inspector') {\n                          registerScope(payload, i18n);\n                      }\n                  });\n                  const roots = new Map();\n                  api.on.getInspectorState(async (payload) => {\n                      if (payload.app === app &&\n                          payload.inspectorId === 'vue-i18n-resource-inspector') {\n                          api.unhighlightElement();\n                          inspectScope(payload, i18n);\n                          if (payload.nodeId === 'global') {\n                              if (!roots.has(payload.app)) {\n                                  const [root] = await api.getComponentInstances(payload.app);\n                                  roots.set(payload.app, root);\n                              }\n                              api.highlightElement(roots.get(payload.app));\n                          }\n                          else {\n                              const instance = getComponentInstance(payload.nodeId, i18n);\n                              instance && api.highlightElement(instance);\n                          }\n                      }\n                  });\n                  api.on.editInspectorState(payload => {\n                      if (payload.app === app &&\n                          payload.inspectorId === 'vue-i18n-resource-inspector') {\n                          editScope(payload, i18n);\n                      }\n                  });\n                  api.addTimelineLayer({\n                      id: 'vue-i18n-timeline',\n                      label: VueDevToolsLabels['vue-i18n-timeline'],\n                      color: VueDevToolsTimelineColors['vue-i18n-timeline']\n                  });\n                  resolve(true);\n              });\n          }\n          catch (e) {\n              console.error(e);\n              // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n              reject(false);\n          }\n      });\n  }\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  function getI18nScopeLable(instance) {\n      return (instance.type.name ||\n          instance.type.displayName ||\n          instance.type.__file ||\n          'Anonymous');\n  }\n  function updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\n  treeNode, i18n) {\n      // prettier-ignore\n      const global = i18n.mode === 'composition'\n          ? i18n.global\n          : i18n.global.__composer;\n      if (instance && instance.__VUE_I18N__) {\n          // add custom tags local scope only\n          if (instance.__VUE_I18N__ !== global) {\n              const tag = {\n                  label: `i18n (${getI18nScopeLable(instance)} Scope)`,\n                  textColor: 0x000000,\n                  backgroundColor: 0xffcd19\n              };\n              treeNode.tags.push(tag);\n          }\n      }\n  }\n  function inspectComposer(instanceData, composer) {\n      const type = VUE_I18N_COMPONENT_TYPES;\n      instanceData.state.push({\n          type,\n          key: 'locale',\n          editable: true,\n          value: composer.locale.value\n      });\n      instanceData.state.push({\n          type,\n          key: 'availableLocales',\n          editable: false,\n          value: composer.availableLocales\n      });\n      instanceData.state.push({\n          type,\n          key: 'fallbackLocale',\n          editable: true,\n          value: composer.fallbackLocale.value\n      });\n      instanceData.state.push({\n          type,\n          key: 'inheritLocale',\n          editable: true,\n          value: composer.inheritLocale\n      });\n      instanceData.state.push({\n          type,\n          key: 'messages',\n          editable: false,\n          value: getLocaleMessageValue(composer.messages.value)\n      });\n      {\n          instanceData.state.push({\n              type,\n              key: 'datetimeFormats',\n              editable: false,\n              value: composer.datetimeFormats.value\n          });\n          instanceData.state.push({\n              type,\n              key: 'numberFormats',\n              editable: false,\n              value: composer.numberFormats.value\n          });\n      }\n  }\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  function getLocaleMessageValue(messages) {\n      const value = {};\n      Object.keys(messages).forEach((key) => {\n          const v = messages[key];\n          if (isFunction(v) && 'source' in v) {\n              value[key] = getMessageFunctionDetails(v);\n          }\n          else if (isMessageAST(v) && v.loc && v.loc.source) {\n              value[key] = v.loc.source;\n          }\n          else if (isObject(v)) {\n              value[key] = getLocaleMessageValue(v);\n          }\n          else {\n              value[key] = v;\n          }\n      });\n      return value;\n  }\n  const ESC = {\n      '<': '&lt;',\n      '>': '&gt;',\n      '\"': '&quot;',\n      '&': '&amp;'\n  };\n  function escape(s) {\n      return s.replace(/[<>\"&]/g, escapeChar);\n  }\n  function escapeChar(a) {\n      return ESC[a] || a;\n  }\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  function getMessageFunctionDetails(func) {\n      const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\n      return {\n          _custom: {\n              type: 'function',\n              display: `<span>ƒ</span> ${argString}`\n          }\n      };\n  }\n  function registerScope(payload, i18n) {\n      payload.rootNodes.push({\n          id: 'global',\n          label: 'Global Scope'\n      });\n      // prettier-ignore\n      const global = i18n.mode === 'composition'\n          ? i18n.global\n          : i18n.global.__composer;\n      for (const [keyInstance, instance] of i18n.__instances) {\n          // prettier-ignore\n          const composer = i18n.mode === 'composition'\n              ? instance\n              : instance.__composer;\n          if (global === composer) {\n              continue;\n          }\n          payload.rootNodes.push({\n              id: composer.id.toString(),\n              label: `${getI18nScopeLable(keyInstance)} Scope`\n          });\n      }\n  }\n  function getComponentInstance(nodeId, i18n) {\n      let instance = null;\n      if (nodeId !== 'global') {\n          for (const [component, composer] of i18n.__instances.entries()) {\n              if (composer.id.toString() === nodeId) {\n                  instance = component;\n                  break;\n              }\n          }\n      }\n      return instance;\n  }\n  function getComposer$2(nodeId, i18n) {\n      if (nodeId === 'global') {\n          return i18n.mode === 'composition'\n              ? i18n.global\n              : i18n.global.__composer;\n      }\n      else {\n          const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\n          if (instance) {\n              return i18n.mode === 'composition'\n                  ? instance\n                  : instance.__composer;\n          }\n          else {\n              return null;\n          }\n      }\n  }\n  function inspectScope(payload, i18n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ) {\n      const composer = getComposer$2(payload.nodeId, i18n);\n      if (composer) {\n          // TODO:\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          payload.state = makeScopeInspectState(composer);\n      }\n      return null;\n  }\n  function makeScopeInspectState(composer) {\n      const state = {};\n      const localeType = 'Locale related info';\n      const localeStates = [\n          {\n              type: localeType,\n              key: 'locale',\n              editable: true,\n              value: composer.locale.value\n          },\n          {\n              type: localeType,\n              key: 'fallbackLocale',\n              editable: true,\n              value: composer.fallbackLocale.value\n          },\n          {\n              type: localeType,\n              key: 'availableLocales',\n              editable: false,\n              value: composer.availableLocales\n          },\n          {\n              type: localeType,\n              key: 'inheritLocale',\n              editable: true,\n              value: composer.inheritLocale\n          }\n      ];\n      state[localeType] = localeStates;\n      const localeMessagesType = 'Locale messages info';\n      const localeMessagesStates = [\n          {\n              type: localeMessagesType,\n              key: 'messages',\n              editable: false,\n              value: getLocaleMessageValue(composer.messages.value)\n          }\n      ];\n      state[localeMessagesType] = localeMessagesStates;\n      {\n          const datetimeFormatsType = 'Datetime formats info';\n          const datetimeFormatsStates = [\n              {\n                  type: datetimeFormatsType,\n                  key: 'datetimeFormats',\n                  editable: false,\n                  value: composer.datetimeFormats.value\n              }\n          ];\n          state[datetimeFormatsType] = datetimeFormatsStates;\n          const numberFormatsType = 'Datetime formats info';\n          const numberFormatsStates = [\n              {\n                  type: numberFormatsType,\n                  key: 'numberFormats',\n                  editable: false,\n                  value: composer.numberFormats.value\n              }\n          ];\n          state[numberFormatsType] = numberFormatsStates;\n      }\n      return state;\n  }\n  function addTimelineEvent(event, payload) {\n      if (devtoolsApi) {\n          let groupId;\n          if (payload && 'groupId' in payload) {\n              groupId = payload.groupId;\n              delete payload.groupId;\n          }\n          devtoolsApi.addTimelineEvent({\n              layerId: 'vue-i18n-timeline',\n              event: {\n                  title: event,\n                  groupId,\n                  time: Date.now(),\n                  meta: {},\n                  data: payload || {},\n                  logType: event === 'compile-error'\n                      ? 'error'\n                      : event === 'fallback' || event === 'missing'\n                          ? 'warning'\n                          : 'default'\n              }\n          });\n      }\n  }\n  function editScope(payload, i18n) {\n      const composer = getComposer$2(payload.nodeId, i18n);\n      if (composer) {\n          const [field] = payload.path;\n          if (field === 'locale' && isString(payload.state.value)) {\n              composer.locale.value = payload.state.value;\n          }\n          else if (field === 'fallbackLocale' &&\n              (isString(payload.state.value) ||\n                  isArray(payload.state.value) ||\n                  isObject(payload.state.value))) {\n              composer.fallbackLocale.value = payload.state.value;\n          }\n          else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\n              composer.inheritLocale = payload.state.value;\n          }\n      }\n  }\n\n  /* eslint-disable @typescript-eslint/no-explicit-any */\n  /**\n   * Convert to I18n Composer Options from VueI18n Options\n   *\n   * @internal\n   */\n  function convertComposerOptions(options) {\n      const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\n      const fallbackLocale = isString(options.fallbackLocale) ||\n          isArray(options.fallbackLocale) ||\n          isPlainObject(options.fallbackLocale) ||\n          options.fallbackLocale === false\n          ? options.fallbackLocale\n          : locale;\n      const missing = isFunction(options.missing) ? options.missing : undefined;\n      const missingWarn = isBoolean(options.silentTranslationWarn) ||\n          isRegExp(options.silentTranslationWarn)\n          ? !options.silentTranslationWarn\n          : true;\n      const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\n          isRegExp(options.silentFallbackWarn)\n          ? !options.silentFallbackWarn\n          : true;\n      const fallbackRoot = isBoolean(options.fallbackRoot)\n          ? options.fallbackRoot\n          : true;\n      const fallbackFormat = !!options.formatFallbackMessages;\n      const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\n      const pluralizationRules = options.pluralizationRules;\n      const postTranslation = isFunction(options.postTranslation)\n          ? options.postTranslation\n          : undefined;\n      const warnHtmlMessage = isString(options.warnHtmlInMessage)\n          ? options.warnHtmlInMessage !== 'off'\n          : true;\n      const escapeParameter = !!options.escapeParameterHtml;\n      const inheritLocale = isBoolean(options.sync) ? options.sync : true;\n      let messages = options.messages;\n      if (isPlainObject(options.sharedMessages)) {\n          const sharedMessages = options.sharedMessages;\n          const locales = Object.keys(sharedMessages);\n          messages = locales.reduce((messages, locale) => {\n              const message = messages[locale] || (messages[locale] = {});\n              assign(message, sharedMessages[locale]);\n              return messages;\n          }, (messages || {}));\n      }\n      const { __i18n, __root, __injectWithOption } = options;\n      const datetimeFormats = options.datetimeFormats;\n      const numberFormats = options.numberFormats;\n      const flatJson = options.flatJson;\n      return {\n          locale,\n          fallbackLocale,\n          messages,\n          flatJson,\n          datetimeFormats,\n          numberFormats,\n          missing,\n          missingWarn,\n          fallbackWarn,\n          fallbackRoot,\n          fallbackFormat,\n          modifiers,\n          pluralRules: pluralizationRules,\n          postTranslation,\n          warnHtmlMessage,\n          escapeParameter,\n          messageResolver: options.messageResolver,\n          inheritLocale,\n          __i18n,\n          __root,\n          __injectWithOption\n      };\n  }\n  /**\n   * create VueI18n interface factory\n   *\n   * @internal\n   *\n   * @deprecated will be removed at vue-i18n v12\n   */\n  function createVueI18n(options = {}) {\n      const composer = createComposer(convertComposerOptions(options));\n      const { __extender } = options;\n      // defines VueI18n\n      const vueI18n = {\n          // id\n          id: composer.id,\n          // locale\n          get locale() {\n              return composer.locale.value;\n          },\n          set locale(val) {\n              composer.locale.value = val;\n          },\n          // fallbackLocale\n          get fallbackLocale() {\n              return composer.fallbackLocale.value;\n          },\n          set fallbackLocale(val) {\n              composer.fallbackLocale.value = val;\n          },\n          // messages\n          get messages() {\n              return composer.messages.value;\n          },\n          // datetimeFormats\n          get datetimeFormats() {\n              return composer.datetimeFormats.value;\n          },\n          // numberFormats\n          get numberFormats() {\n              return composer.numberFormats.value;\n          },\n          // availableLocales\n          get availableLocales() {\n              return composer.availableLocales;\n          },\n          // missing\n          get missing() {\n              return composer.getMissingHandler();\n          },\n          set missing(handler) {\n              composer.setMissingHandler(handler);\n          },\n          // silentTranslationWarn\n          get silentTranslationWarn() {\n              return isBoolean(composer.missingWarn)\n                  ? !composer.missingWarn\n                  : composer.missingWarn;\n          },\n          set silentTranslationWarn(val) {\n              composer.missingWarn = isBoolean(val) ? !val : val;\n          },\n          // silentFallbackWarn\n          get silentFallbackWarn() {\n              return isBoolean(composer.fallbackWarn)\n                  ? !composer.fallbackWarn\n                  : composer.fallbackWarn;\n          },\n          set silentFallbackWarn(val) {\n              composer.fallbackWarn = isBoolean(val) ? !val : val;\n          },\n          // modifiers\n          get modifiers() {\n              return composer.modifiers;\n          },\n          // formatFallbackMessages\n          get formatFallbackMessages() {\n              return composer.fallbackFormat;\n          },\n          set formatFallbackMessages(val) {\n              composer.fallbackFormat = val;\n          },\n          // postTranslation\n          get postTranslation() {\n              return composer.getPostTranslationHandler();\n          },\n          set postTranslation(handler) {\n              composer.setPostTranslationHandler(handler);\n          },\n          // sync\n          get sync() {\n              return composer.inheritLocale;\n          },\n          set sync(val) {\n              composer.inheritLocale = val;\n          },\n          // warnInHtmlMessage\n          get warnHtmlInMessage() {\n              return composer.warnHtmlMessage ? 'warn' : 'off';\n          },\n          set warnHtmlInMessage(val) {\n              composer.warnHtmlMessage = val !== 'off';\n          },\n          // escapeParameterHtml\n          get escapeParameterHtml() {\n              return composer.escapeParameter;\n          },\n          set escapeParameterHtml(val) {\n              composer.escapeParameter = val;\n          },\n          // pluralizationRules\n          get pluralizationRules() {\n              return composer.pluralRules || {};\n          },\n          // for internal\n          __composer: composer,\n          // t\n          t(...args) {\n              return Reflect.apply(composer.t, composer, [...args]);\n          },\n          // rt\n          rt(...args) {\n              return Reflect.apply(composer.rt, composer, [...args]);\n          },\n          // te\n          te(key, locale) {\n              return composer.te(key, locale);\n          },\n          // tm\n          tm(key) {\n              return composer.tm(key);\n          },\n          // getLocaleMessage\n          getLocaleMessage(locale) {\n              return composer.getLocaleMessage(locale);\n          },\n          // setLocaleMessage\n          setLocaleMessage(locale, message) {\n              composer.setLocaleMessage(locale, message);\n          },\n          // mergeLocaleMessage\n          mergeLocaleMessage(locale, message) {\n              composer.mergeLocaleMessage(locale, message);\n          },\n          // d\n          d(...args) {\n              return Reflect.apply(composer.d, composer, [...args]);\n          },\n          // getDateTimeFormat\n          getDateTimeFormat(locale) {\n              return composer.getDateTimeFormat(locale);\n          },\n          // setDateTimeFormat\n          setDateTimeFormat(locale, format) {\n              composer.setDateTimeFormat(locale, format);\n          },\n          // mergeDateTimeFormat\n          mergeDateTimeFormat(locale, format) {\n              composer.mergeDateTimeFormat(locale, format);\n          },\n          // n\n          n(...args) {\n              return Reflect.apply(composer.n, composer, [...args]);\n          },\n          // getNumberFormat\n          getNumberFormat(locale) {\n              return composer.getNumberFormat(locale);\n          },\n          // setNumberFormat\n          setNumberFormat(locale, format) {\n              composer.setNumberFormat(locale, format);\n          },\n          // mergeNumberFormat\n          mergeNumberFormat(locale, format) {\n              composer.mergeNumberFormat(locale, format);\n          }\n      };\n      vueI18n.__extender = __extender;\n      // for vue-devtools timeline event\n      {\n          vueI18n.__enableEmitter = (emitter) => {\n              const __composer = composer;\n              __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\n          };\n          vueI18n.__disableEmitter = () => {\n              const __composer = composer;\n              __composer[DisableEmitter] && __composer[DisableEmitter]();\n          };\n      }\n      return vueI18n;\n  }\n  /* eslint-enable @typescript-eslint/no-explicit-any */\n\n  /**\n   * Supports compatibility for legacy vue-i18n APIs\n   * This mixin is used when we use vue-i18n@v9.x or later\n   */\n  function defineMixin(vuei18n, composer, i18n) {\n      return {\n          beforeCreate() {\n              const instance = getCurrentInstance();\n              /* istanbul ignore if */\n              if (!instance) {\n                  throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n              }\n              const options = this.$options;\n              if (options.i18n) {\n                  const optionsI18n = options.i18n;\n                  if (options.__i18n) {\n                      optionsI18n.__i18n = options.__i18n;\n                  }\n                  optionsI18n.__root = composer;\n                  if (this === this.$root) {\n                      // merge option and gttach global\n                      this.$i18n = mergeToGlobal(vuei18n, optionsI18n);\n                  }\n                  else {\n                      optionsI18n.__injectWithOption = true;\n                      optionsI18n.__extender = i18n.__vueI18nExtend;\n                      // atttach local VueI18n instance\n                      this.$i18n = createVueI18n(optionsI18n);\n                      // extend VueI18n instance\n                      const _vueI18n = this.$i18n;\n                      if (_vueI18n.__extender) {\n                          _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n                      }\n                  }\n              }\n              else if (options.__i18n) {\n                  if (this === this.$root) {\n                      // merge option and gttach global\n                      this.$i18n = mergeToGlobal(vuei18n, options);\n                  }\n                  else {\n                      // atttach local VueI18n instance\n                      this.$i18n = createVueI18n({\n                          __i18n: options.__i18n,\n                          __injectWithOption: true,\n                          __extender: i18n.__vueI18nExtend,\n                          __root: composer\n                      });\n                      // extend VueI18n instance\n                      const _vueI18n = this.$i18n;\n                      if (_vueI18n.__extender) {\n                          _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n                      }\n                  }\n              }\n              else {\n                  // attach global VueI18n instance\n                  this.$i18n = vuei18n;\n              }\n              if (options.__i18nGlobal) {\n                  adjustI18nResources(composer, options, options);\n              }\n              // defines vue-i18n legacy APIs\n              this.$t = (...args) => this.$i18n.t(...args);\n              this.$rt = (...args) => this.$i18n.rt(...args);\n              this.$te = (key, locale) => this.$i18n.te(key, locale);\n              this.$d = (...args) => this.$i18n.d(...args);\n              this.$n = (...args) => this.$i18n.n(...args);\n              this.$tm = (key) => this.$i18n.tm(key);\n              i18n.__setInstance(instance, this.$i18n);\n          },\n          mounted() {\n              /* istanbul ignore if */\n              if (this.$i18n) {\n                  const instance = getCurrentInstance();\n                  if (!instance) {\n                      return;\n                  }\n                  const _vueI18n = this.$i18n;\n                  instance.__VUE_I18N__ = _vueI18n.__composer;\n                  const emitter = (this.__v_emitter =\n                      createEmitter());\n                  _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n                  emitter.on('*', addTimelineEvent);\n              }\n          },\n          unmounted() {\n              const instance = getCurrentInstance();\n              /* istanbul ignore if */\n              if (!instance) {\n                  throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n              }\n              const _vueI18n = this.$i18n;\n              /* istanbul ignore if */\n              if (instance.__VUE_I18N__) {\n                  if (this.__v_emitter) {\n                      this.__v_emitter.off('*', addTimelineEvent);\n                      delete this.__v_emitter;\n                  }\n                  if (_vueI18n) {\n                      _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\n                      delete instance.__VUE_I18N__;\n                  }\n              }\n              // setup-only components skip beforeCreate but still run unmounted\n              if (!_vueI18n) {\n                  return;\n              }\n              delete this.$t;\n              delete this.$rt;\n              delete this.$te;\n              delete this.$d;\n              delete this.$n;\n              delete this.$tm;\n              if (_vueI18n?.__disposer) {\n                  _vueI18n.__disposer();\n                  delete _vueI18n.__disposer;\n                  delete _vueI18n.__extender;\n              }\n              i18n.__deleteInstance(instance);\n              delete this.$i18n;\n          }\n      };\n  }\n  function mergeToGlobal(g, options) {\n      g.locale = options.locale || g.locale;\n      g.fallbackLocale = options.fallbackLocale || g.fallbackLocale;\n      g.missing = options.missing || g.missing;\n      g.silentTranslationWarn =\n          options.silentTranslationWarn || g.silentFallbackWarn;\n      g.silentFallbackWarn = options.silentFallbackWarn || g.silentFallbackWarn;\n      g.formatFallbackMessages =\n          options.formatFallbackMessages || g.formatFallbackMessages;\n      g.postTranslation = options.postTranslation || g.postTranslation;\n      g.warnHtmlInMessage = options.warnHtmlInMessage || g.warnHtmlInMessage;\n      g.escapeParameterHtml = options.escapeParameterHtml || g.escapeParameterHtml;\n      g.sync = options.sync || g.sync;\n      g.__composer[SetPluralRulesSymbol](options.pluralizationRules || g.pluralizationRules);\n      const messages = getLocaleMessages(g.locale, {\n          messages: options.messages,\n          __i18n: options.__i18n\n      });\n      Object.keys(messages).forEach(locale => g.mergeLocaleMessage(locale, messages[locale]));\n      if (options.datetimeFormats) {\n          Object.keys(options.datetimeFormats).forEach(locale => g.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\n      }\n      if (options.numberFormats) {\n          Object.keys(options.numberFormats).forEach(locale => g.mergeNumberFormat(locale, options.numberFormats[locale]));\n      }\n      return g;\n  }\n\n  const baseFormatProps = {\n      tag: {\n          type: [String, Object]\n      },\n      locale: {\n          type: String\n      },\n      scope: {\n          type: String,\n          // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n          validator: (val /* ComponentI18nScope */) => val === 'parent' || val === 'global',\n          default: 'parent' /* ComponentI18nScope */\n      },\n      i18n: {\n          type: Object\n      }\n  };\n\n  function getInterpolateArg(\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  { slots }, // SetupContext,\n  keys) {\n      if (keys.length === 1 && keys[0] === 'default') {\n          // default slot with list\n          const ret = slots.default ? slots.default() : [];\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          return ret.reduce((slot, current) => {\n              return [\n                  ...slot,\n                  // prettier-ignore\n                  ...(current.type === Vue.Fragment ? current.children : [current])\n              ];\n          }, []);\n      }\n      else {\n          // named slots\n          return keys.reduce((arg, key) => {\n              const slot = slots[key];\n              if (slot) {\n                  arg[key] = slot();\n              }\n              return arg;\n          }, create());\n      }\n  }\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  function getFragmentableTag() {\n      return Vue.Fragment;\n  }\n\n  const TranslationImpl = /*#__PURE__*/ Vue.defineComponent({\n      /* eslint-disable */\n      name: 'i18n-t',\n      props: assign({\n          keypath: {\n              type: String,\n              required: true\n          },\n          plural: {\n              type: [Number, String],\n              validator: (val) => isNumber(val) || !isNaN(val)\n          }\n      }, baseFormatProps),\n      /* eslint-enable */\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      setup(props, context) {\n          const { slots, attrs } = context;\n          // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n          const i18n = props.i18n ||\n              useI18n({\n                  useScope: props.scope,\n                  __useComponent: true\n              });\n          return () => {\n              const renderChildren = () => {\n                  const keys = Object.keys(slots).filter(key => key[0] !== '_');\n                  const options = create();\n                  if (props.locale) {\n                      options.locale = props.locale;\n                  }\n                  if (props.plural !== undefined) {\n                      options.plural = isString(props.plural) ? +props.plural : props.plural;\n                  }\n                  const arg = getInterpolateArg(context, keys);\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                  return i18n[TranslateVNodeSymbol](props.keypath, arg, options);\n              };\n              const assignedAttrs = assign(create(), attrs);\n              const tag = isString(props.tag) || isObject(props.tag)\n                  ? props.tag\n                  : getFragmentableTag();\n              return isObject(tag)\n                  ? Vue.h(tag, assignedAttrs, { default: renderChildren })\n                  : Vue.h(tag, assignedAttrs, renderChildren());\n          };\n      }\n  });\n  /**\n   * export the public type for h/tsx inference\n   * also to avoid inline import() in generated d.ts files\n   */\n  /**\n   * Translation Component\n   *\n   * @remarks\n   * See the following items for property about details\n   *\n   * @VueI18nSee [TranslationProps](component#translationprops)\n   * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n   * @VueI18nSee [Component Interpolation](../guide/advanced/component)\n   *\n   * @example\n   * ```html\n   * <div id=\"app\">\n   *   <!-- ... -->\n   *   <i18n keypath=\"term\" tag=\"label\" for=\"tos\">\n   *     <a :href=\"url\" target=\"_blank\">{{ $t('tos') }}</a>\n   *   </i18n>\n   *   <!-- ... -->\n   * </div>\n   * ```\n   * ```js\n   * import { createApp } from 'vue'\n   * import { createI18n } from 'vue-i18n'\n   *\n   * const messages = {\n   *   en: {\n   *     tos: 'Term of Service',\n   *     term: 'I accept xxx {0}.'\n   *   },\n   *   ja: {\n   *     tos: '利用規約',\n   *     term: '私は xxx の{0}に同意します。'\n   *   }\n   * }\n   *\n   * const i18n = createI18n({\n   *   locale: 'en',\n   *   messages\n   * })\n   *\n   * const app = createApp({\n   *   data: {\n   *     url: '/term'\n   *   }\n   * }).use(i18n).mount('#app')\n   * ```\n   *\n   * @VueI18nComponent\n   */\n  const Translation = TranslationImpl;\n  const I18nT = Translation;\n\n  function isVNode(target) {\n      return isArray(target) && !isString(target[0]);\n  }\n  function renderFormatter(props, context, slotKeys, partFormatter) {\n      const { slots, attrs } = context;\n      return () => {\n          const renderChildren = () => {\n              const options = { part: true };\n              let overrides = create();\n              if (props.locale) {\n                  options.locale = props.locale;\n              }\n              if (isString(props.format)) {\n                  options.key = props.format;\n              }\n              else if (isObject(props.format)) {\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                  if (isString(props.format.key)) {\n                      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                      options.key = props.format.key;\n                  }\n                  // Filter out number format options only\n                  overrides = Object.keys(props.format).reduce((options, prop) => {\n                      return slotKeys.includes(prop)\n                          ? assign(create(), options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\n                          : options;\n                  }, create());\n              }\n              const parts = partFormatter(...[props.value, options, overrides]);\n              let children = [options.key];\n              if (isArray(parts)) {\n                  children = parts.map((part, index) => {\n                      const slot = slots[part.type];\n                      const node = slot\n                          ? slot({ [part.type]: part.value, index, parts })\n                          : [part.value];\n                      if (isVNode(node)) {\n                          node[0].key = `${part.type}-${index}`;\n                      }\n                      return node;\n                  });\n              }\n              else if (isString(parts)) {\n                  children = [parts];\n              }\n              return children;\n          };\n          const assignedAttrs = assign(create(), attrs);\n          const tag = isString(props.tag) || isObject(props.tag)\n              ? props.tag\n              : getFragmentableTag();\n          return isObject(tag)\n              ? Vue.h(tag, assignedAttrs, { default: renderChildren })\n              : Vue.h(tag, assignedAttrs, renderChildren());\n      };\n  }\n\n  const NumberFormatImpl = /*#__PURE__*/ Vue.defineComponent({\n      /* eslint-disable */\n      name: 'i18n-n',\n      props: assign({\n          value: {\n              type: Number,\n              required: true\n          },\n          format: {\n              type: [String, Object]\n          }\n      }, baseFormatProps),\n      /* eslint-enable */\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      setup(props, context) {\n          const i18n = props.i18n ||\n              useI18n({\n                  useScope: props.scope,\n                  __useComponent: true\n              });\n          return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          i18n[NumberPartsSymbol](...args));\n      }\n  });\n  /**\n   * export the public type for h/tsx inference\n   * also to avoid inline import() in generated d.ts files\n   */\n  /**\n   * Number Format Component\n   *\n   * @remarks\n   * See the following items for property about details\n   *\n   * @VueI18nSee [FormattableProps](component#formattableprops)\n   * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n   * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\n   *\n   * @VueI18nDanger\n   * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\n   *\n   * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\n   *\n   * @VueI18nComponent\n   */\n  const NumberFormat = NumberFormatImpl;\n  const I18nN = NumberFormat;\n\n  function getComposer$1(i18n, instance) {\n      const i18nInternal = i18n;\n      if (i18n.mode === 'composition') {\n          return (i18nInternal.__getInstance(instance) || i18n.global);\n      }\n      else {\n          const vueI18n = i18nInternal.__getInstance(instance);\n          return vueI18n != null\n              ? vueI18n.__composer\n              : i18n.global.__composer;\n      }\n  }\n  /**\n   * @deprecated will be removed at vue-i18n v12\n   */\n  function vTDirective(i18n) {\n      const _process = (binding) => {\n          {\n              warnOnce(getWarnMessage(I18nWarnCodes.DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE));\n          }\n          const { instance, value } = binding;\n          /* istanbul ignore if */\n          if (!instance || !instance.$) {\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n          }\n          const composer = getComposer$1(i18n, instance.$);\n          const parsedValue = parseValue(value);\n          return [\n              Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\n              composer\n          ];\n      };\n      const register = (el, binding) => {\n          const [textContent, composer] = _process(binding);\n          if (inBrowser) {\n              el.__i18nWatcher = Vue.watch(composer.locale, () => {\n                  binding.instance && binding.instance.$forceUpdate();\n              });\n          }\n          el.__composer = composer;\n          el.textContent = textContent;\n      };\n      const unregister = (el) => {\n          if (inBrowser && el.__i18nWatcher) {\n              el.__i18nWatcher();\n              el.__i18nWatcher = undefined;\n              delete el.__i18nWatcher;\n          }\n          if (el.__composer) {\n              el.__composer = undefined;\n              delete el.__composer;\n          }\n      };\n      const update = (el, { value }) => {\n          if (el.__composer) {\n              const composer = el.__composer;\n              const parsedValue = parseValue(value);\n              el.textContent = Reflect.apply(composer.t, composer, [\n                  ...makeParams(parsedValue)\n              ]);\n          }\n      };\n      const getSSRProps = (binding) => {\n          const [textContent] = _process(binding);\n          return { textContent };\n      };\n      return {\n          created: register,\n          unmounted: unregister,\n          beforeUpdate: update,\n          getSSRProps\n      };\n  }\n  function parseValue(value) {\n      if (isString(value)) {\n          return { path: value };\n      }\n      else if (isPlainObject(value)) {\n          if (!('path' in value)) {\n              throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\n          }\n          return value;\n      }\n      else {\n          throw createI18nError(I18nErrorCodes.INVALID_VALUE);\n      }\n  }\n  function makeParams(value) {\n      const { path, locale, args, choice, plural } = value;\n      const options = {};\n      const named = args || {};\n      if (isString(locale)) {\n          options.locale = locale;\n      }\n      if (isNumber(choice)) {\n          options.plural = choice;\n      }\n      if (isNumber(plural)) {\n          options.plural = plural;\n      }\n      return [path, named, options];\n  }\n\n  function apply(app, i18n, ...options) {\n      const pluginOptions = isPlainObject(options[0])\n          ? options[0]\n          : {};\n      const globalInstall = isBoolean(pluginOptions.globalInstall)\n          ? pluginOptions.globalInstall\n          : true;\n      if (globalInstall) {\n          [Translation.name, 'I18nT'].forEach(name => app.component(name, Translation));\n          [NumberFormat.name, 'I18nN'].forEach(name => app.component(name, NumberFormat));\n          [DatetimeFormat.name, 'I18nD'].forEach(name => app.component(name, DatetimeFormat));\n      }\n      // install directive\n      {\n          app.directive('t', vTDirective(i18n));\n      }\n  }\n\n  /**\n   * Injection key for {@link useI18n}\n   *\n   * @remarks\n   * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\n   * Specify the i18n instance created by {@link createI18n} together with `provide` function.\n   *\n   * @VueI18nGeneral\n   */\n  const I18nInjectionKey = \n  /* #__PURE__*/ makeSymbol('global-vue-i18n');\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  function createI18n(options = {}) {\n      // prettier-ignore\n      const __legacyMode = isBoolean(options.legacy)\n              ? options.legacy\n              : true;\n      if (__legacyMode) {\n          warnOnce(getWarnMessage(I18nWarnCodes.DEPRECATE_LEGACY_MODE));\n      }\n      // prettier-ignore\n      const __globalInjection = isBoolean(options.globalInjection)\n          ? options.globalInjection\n          : true;\n      const __instances = new Map();\n      const [globalScope, __global] = createGlobal(options, __legacyMode);\n      const symbol = /* #__PURE__*/ makeSymbol('vue-i18n' );\n      function __getInstance(component) {\n          return __instances.get(component) || null;\n      }\n      function __setInstance(component, instance) {\n          __instances.set(component, instance);\n      }\n      function __deleteInstance(component) {\n          __instances.delete(component);\n      }\n      const i18n = {\n          // mode\n          get mode() {\n              return __legacyMode\n                  ? 'legacy'\n                  : 'composition';\n          },\n          // install plugin\n          async install(app, ...options) {\n              {\n                  app.__VUE_I18N__ = i18n;\n              }\n              // setup global provider\n              app.__VUE_I18N_SYMBOL__ = symbol;\n              app.provide(app.__VUE_I18N_SYMBOL__, i18n);\n              // set composer & vuei18n extend hook options from plugin options\n              if (isPlainObject(options[0])) {\n                  const opts = options[0];\n                  i18n.__composerExtend =\n                      opts.__composerExtend;\n                  i18n.__vueI18nExtend =\n                      opts.__vueI18nExtend;\n              }\n              // global method and properties injection for Composition API\n              let globalReleaseHandler = null;\n              if (!__legacyMode && __globalInjection) {\n                  globalReleaseHandler = injectGlobalFields(app, i18n.global);\n              }\n              // install built-in components and directive\n              {\n                  apply(app, i18n, ...options);\n              }\n              // setup mixin for Legacy API\n              if (__legacyMode) {\n                  app.mixin(defineMixin(__global, __global.__composer, i18n));\n              }\n              // release global scope\n              const unmountApp = app.unmount;\n              app.unmount = () => {\n                  globalReleaseHandler && globalReleaseHandler();\n                  i18n.dispose();\n                  unmountApp();\n              };\n              // setup vue-devtools plugin\n              {\n                  const ret = await enableDevTools(app, i18n);\n                  if (!ret) {\n                      throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\n                  }\n                  const emitter = createEmitter();\n                  if (__legacyMode) {\n                      const _vueI18n = __global;\n                      _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n                  }\n                  else {\n                      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                      const _composer = __global;\n                      _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n                  }\n                  emitter.on('*', addTimelineEvent);\n              }\n          },\n          // global accessor\n          get global() {\n              return __global;\n          },\n          dispose() {\n              globalScope.stop();\n          },\n          // @internal\n          __instances,\n          // @internal\n          __getInstance,\n          // @internal\n          __setInstance,\n          // @internal\n          __deleteInstance\n      };\n      return i18n;\n  }\n  function useI18n(options = {}) {\n      const instance = getCurrentInstance();\n      if (instance == null) {\n          throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\n      }\n      if (!instance.isCE &&\n          instance.appContext.app != null &&\n          !instance.appContext.app.__VUE_I18N_SYMBOL__) {\n          throw createI18nError(I18nErrorCodes.NOT_INSTALLED);\n      }\n      const i18n = getI18nInstance(instance);\n      const gl = getGlobalComposer(i18n);\n      const componentOptions = getComponentOptions(instance);\n      const scope = getScope(options, componentOptions);\n      if (scope === 'global') {\n          adjustI18nResources(gl, options, componentOptions);\n          return gl;\n      }\n      if (scope === 'parent') {\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          let composer = getComposer(i18n, instance, options.__useComponent);\n          if (composer == null) {\n              {\n                  warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\n              }\n              composer = gl;\n          }\n          return composer;\n      }\n      // Isolated scope - independent composer not tied to component\n      if (scope === 'isolated') {\n          // Composition API mode only\n          if (i18n.mode !== 'composition') {\n              throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\n          }\n          const i18nInternalIso = i18n;\n          const composerOptions = assign({}, options);\n          // Find parent composer via parent chain (or fall back to global)\n          const parentComposer = getComposer(i18n, instance);\n          composerOptions.__root = parentComposer || gl;\n          const composer = createComposer(composerOptions);\n          // ComposerExtend hook\n          if (i18nInternalIso.__composerExtend) {\n              composer[DisposeSymbol] =\n                  i18nInternalIso.__composerExtend(composer);\n          }\n          // Setup devtools emitter (no target.__VUE_I18N__ attachment -\n          // multiple isolated composers per component are allowed)\n          let emitter = null;\n          {\n              emitter = createEmitter();\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\n              const _composer = composer;\n              _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n              emitter.on('*', addTimelineEvent);\n          }\n          // Lifecycle cleanup via onScopeDispose\n          const currentScope = Vue.getCurrentScope();\n          if (currentScope) {\n              Vue.onScopeDispose(() => {\n                  {\n                      emitter && emitter.off('*', addTimelineEvent);\n                      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                      const _composer = composer;\n                      _composer[DisableEmitter] && _composer[DisableEmitter]();\n                  }\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                  const dispose = composer[DisposeSymbol];\n                  if (dispose) {\n                      dispose();\n                      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                      delete composer[DisposeSymbol];\n                  }\n              });\n          }\n          return composer;\n      }\n      const i18nInternal = i18n;\n      let composer = i18nInternal.__getInstance(instance);\n      if (composer == null) {\n          const composerOptions = assign({}, options);\n          if ('__i18n' in componentOptions) {\n              composerOptions.__i18n = componentOptions.__i18n;\n          }\n          if (gl) {\n              composerOptions.__root = gl;\n          }\n          composer = createComposer(composerOptions);\n          if (i18nInternal.__composerExtend) {\n              composer[DisposeSymbol] =\n                  i18nInternal.__composerExtend(composer);\n          }\n          setupLifeCycle(i18nInternal, instance, composer);\n          i18nInternal.__setInstance(instance, composer);\n      }\n      else {\n          if (scope === 'local') {\n              warn(getWarnMessage(I18nWarnCodes.DUPLICATE_USE_I18N_CALLING));\n          }\n      }\n      return composer;\n  }\n  function createGlobal(options, legacyMode) {\n      const scope = Vue.effectScope();\n      const obj = legacyMode\n          ? scope.run(() => createVueI18n(options))\n          : scope.run(() => createComposer(options));\n      if (obj == null) {\n          throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n      }\n      return [scope, obj];\n  }\n  function getI18nInstance(instance) {\n      const i18n = Vue.inject(!instance.isCE\n          ? instance.appContext.app.__VUE_I18N_SYMBOL__\n          : I18nInjectionKey);\n      /* istanbul ignore if */\n      if (!i18n) {\n          throw createI18nError(!instance.isCE\n              ? I18nErrorCodes.UNEXPECTED_ERROR\n              : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE);\n      }\n      return i18n;\n  }\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  function getScope(options, componentOptions) {\n      // prettier-ignore\n      return isEmptyObject(options)\n          ? ('__i18n' in componentOptions)\n              ? 'local'\n              : 'global'\n          : !options.useScope\n              ? 'local'\n              : options.useScope;\n  }\n  function getGlobalComposer(i18n) {\n      // prettier-ignore\n      return i18n.mode === 'composition'\n          ? i18n.global\n          : i18n.global.__composer;\n  }\n  function getComposer(i18n, target, useComponent = false) {\n      let composer = null;\n      const root = target.root;\n      let current = getParentComponentInstance(target, useComponent);\n      while (current != null) {\n          const i18nInternal = i18n;\n          if (i18n.mode === 'composition') {\n              composer = i18nInternal.__getInstance(current);\n          }\n          else {\n              {\n                  const vueI18n = i18nInternal.__getInstance(current);\n                  if (vueI18n != null) {\n                      composer = vueI18n\n                          .__composer;\n                      if (useComponent &&\n                          composer &&\n                          !composer[InejctWithOptionSymbol] // eslint-disable-line @typescript-eslint/no-explicit-any\n                      ) {\n                          composer = null;\n                      }\n                  }\n              }\n          }\n          if (composer != null) {\n              break;\n          }\n          if (root === current) {\n              break;\n          }\n          current = current.parent;\n      }\n      return composer;\n  }\n  function getParentComponentInstance(target, useComponent = false) {\n      if (target == null) {\n          return null;\n      }\n      // if `useComponent: true` will be specified, we get lexical scope owner instance for use-case slots\n      return !useComponent\n          ? target.parent\n          : target.vnode.ctx || target.parent; // eslint-disable-line @typescript-eslint/no-explicit-any\n  }\n  function setupLifeCycle(i18n, target, composer) {\n      let emitter = null;\n      Vue.onMounted(() => {\n          // inject composer instance to DOM for intlify-devtools\n          {\n              target.__VUE_I18N__ = composer;\n              emitter = createEmitter();\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\n              const _composer = composer;\n              _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n              emitter.on('*', addTimelineEvent);\n          }\n      }, target);\n      Vue.onUnmounted(() => {\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          const _composer = composer;\n          // remove composer instance from DOM for intlify-devtools\n          {\n              emitter && emitter.off('*', addTimelineEvent);\n              _composer[DisableEmitter] && _composer[DisableEmitter]();\n              delete target.__VUE_I18N__;\n          }\n          i18n.__deleteInstance(target);\n          // dispose extended resources\n          const dispose = _composer[DisposeSymbol];\n          if (dispose) {\n              dispose();\n              delete _composer[DisposeSymbol];\n          }\n      }, target);\n  }\n  const globalExportProps = [\n      'locale',\n      'fallbackLocale',\n      'availableLocales'\n  ];\n  const globalExportMethods = ['t', 'rt', 'd', 'n', 'tm', 'te']\n      ;\n  function injectGlobalFields(app, composer) {\n      const i18n = Object.create(null);\n      globalExportProps.forEach(prop => {\n          const desc = Object.getOwnPropertyDescriptor(composer, prop);\n          if (!desc) {\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n          }\n          const wrap = Vue.isRef(desc.value) // check computed props\n              ? {\n                  get() {\n                      return desc.value.value;\n                  },\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                  set(val) {\n                      desc.value.value = val;\n                  }\n              }\n              : {\n                  get() {\n                      return desc.get && desc.get();\n                  }\n              };\n          Object.defineProperty(i18n, prop, wrap);\n      });\n      app.config.globalProperties.$i18n = i18n;\n      globalExportMethods.forEach(method => {\n          const desc = Object.getOwnPropertyDescriptor(composer, method);\n          if (!desc || !desc.value) {\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n          }\n          Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\n      });\n      const dispose = () => {\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          delete app.config.globalProperties.$i18n;\n          globalExportMethods.forEach(method => {\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\n              delete app.config.globalProperties[`$${method}`];\n          });\n      };\n      return dispose;\n  }\n\n  const DatetimeFormatImpl = /* #__PURE__*/ Vue.defineComponent({\n      /* eslint-disable */\n      name: 'i18n-d',\n      props: assign({\n          value: {\n              type: [Number, Date],\n              required: true\n          },\n          format: {\n              type: [String, Object]\n          }\n      }, baseFormatProps),\n      /* eslint-enable */\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      setup(props, context) {\n          const i18n = props.i18n ||\n              useI18n({\n                  useScope: props.scope,\n                  __useComponent: true\n              });\n          return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          i18n[DatetimePartsSymbol](...args));\n      }\n  });\n  /**\n   * Datetime Format Component\n   *\n   * @remarks\n   * See the following items for property about details\n   *\n   * @VueI18nSee [FormattableProps](component#formattableprops)\n   * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n   * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\n   *\n   * @VueI18nDanger\n   * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\n   *\n   * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\n   *\n   * @VueI18nComponent\n   */\n  const DatetimeFormat = DatetimeFormatImpl;\n  const I18nD = DatetimeFormat;\n\n  // register message compiler at vue-i18n\n  registerMessageCompiler(compile);\n  // register message resolver at vue-i18n\n  registerMessageResolver(resolveValue);\n  // register fallback locale at vue-i18n\n  registerLocaleFallbacker(fallbackWithLocaleChain);\n  // NOTE: experimental !!\n  {\n      const target = getGlobalThis();\n      target.__INTLIFY__ = true;\n      setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\n  }\n  {\n      initDev();\n  }\n\n  exports.DatetimeFormat = DatetimeFormat;\n  exports.I18nD = I18nD;\n  exports.I18nInjectionKey = I18nInjectionKey;\n  exports.I18nN = I18nN;\n  exports.I18nT = I18nT;\n  exports.NumberFormat = NumberFormat;\n  exports.Translation = Translation;\n  exports.VERSION = VERSION;\n  exports.createI18n = createI18n;\n  exports.useI18n = useI18n;\n  exports.vTDirective = vTDirective;\n\n  return exports;\n\n})({}, Vue);\n"]}