{"version":3,"sources":["jsdelivr-header.js","/npm/vue-i18n@9.14.5/dist/vue-i18n.global.js"],"names":[],"mappings":"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","file":"/npm/vue-i18n@9.14.5/dist/vue-i18n.global.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/vue-i18n@9.14.5/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 v9.14.5\n  * (c) 2025 kazuya kawaguchi\n  * Released under the MIT License.\n  */\nvar VueI18n = (function (exports, vue) {\n  'use strict';\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  /**\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  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  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-zA-Z0-9#]{2,6};)/g, '&amp;') // escape unescaped `&`\n          .replace(/\"/g, '&quot;')\n          .replace(/'/g, '&apos;')\n          .replace(/</g, '&lt;')\n          .replace(/>/g, '&gt;');\n  }\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}=\"${escapeAttributeValue(attrValue)}\"`);\n      // Process attributes with single quotes\n      html = html.replace(/(\\w+)\\s*=\\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`);\n      // Detect and neutralize event handler attributes\n      const eventHandlerPattern = /\\s*on\\w+\\s*=\\s*[\"']?[^\"'>]+[\"']?/gi;\n      if (eventHandlerPattern.test(html)) {\n          {\n              warn('Potentially dangerous event handlers detected in translation. ' +\n                  'Consider removing onclick, onerror, etc. from your translation messages.');\n          }\n          // Neutralize event handler attributes by escaping 'on'\n          html = html.replace(/(\\s+)(on)(\\w+\\s*=)/gi, '$1&#111;n$3');\n      }\n      // Disable javascript: URLs in various contexts\n      const javascriptUrlPattern = [\n          // In href, src, action, formaction attributes\n          /(\\s+(?:href|src|action|formaction)\\s*=\\s*[\"']?)\\s*javascript:/gi,\n          // In style attributes within url()\n          /(style\\s*=\\s*[\"'][^\"']*url\\s*\\(\\s*)javascript:/gi\n      ];\n      javascriptUrlPattern.forEach(pattern => {\n          html = html.replace(pattern, '$1javascript&#58;');\n      });\n      return html;\n  }\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) => {\n      if (!isObject(val))\n          return false;\n      const proto = Object.getPrototypeOf(val);\n      return proto === null || proto.constructor === Object;\n  };\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  function incrementer(code) {\n      let current = code;\n      return () => ++current;\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, @typescript-eslint/explicit-module-boundary-types\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              // if src[key] is an object/array, set des[key]\n              // to empty object/array to prevent setting by reference\n              if (isObject(src[key]) && !isObject(des[key])) {\n                  des[key] = Array.isArray(src[key]) ? [] : create();\n              }\n              if (isNotObjectOrIsArray(des[key]) || isNotObjectOrIsArray(src[key])) {\n                  // replace with src[key] when:\n                  // src[key] or des[key] is not an object, or\n                  // src[key] or des[key] is an array\n                  des[key] = src[key];\n              }\n              else {\n                  // src[key] and des[key] are both objects, merge them\n                  stack.push({ src: src[key], des: des[key] });\n              }\n          });\n      }\n  }\n\n  function createPosition(line, column, offset) {\n      return { line, column, offset };\n  }\n  function createLocation(start, end, source) {\n      const loc = { start, end };\n      if (source != null) {\n          loc.source = source;\n      }\n      return loc;\n  }\n\n  const CompileWarnCodes = {\n      USE_MODULO_SYNTAX: 1,\n      __EXTEND_POINT__: 2\n  };\n  /** @internal */\n  const warnMessages$2 = {\n      [CompileWarnCodes.USE_MODULO_SYNTAX]: `Use modulo before '{{0}}'.`\n  };\n  function createCompileWarn(code, loc, ...args) {\n      const msg = format$1(warnMessages$2[code] || '', ...(args || [])) ;\n      const message = { message: String(msg), code };\n      if (loc) {\n          message.location = loc;\n      }\n      return message;\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      // Special value for higher-order compilers to pick up the last code\n      // to avoid collision of error codes. This should always be kept as the last\n      // item.\n      __EXTEND_POINT__: 17\n  };\n  /** @internal */\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          // eslint-disable-next-line no-unmodified-loop-condition\n          while (target !== _index) {\n              next();\n          }\n          _peekOffset = 0;\n      }\n      return {\n          index,\n          line,\n          column,\n          peekOffset,\n          charAt,\n          currentChar,\n          currentPeek,\n          next,\n          peek,\n          reset,\n          resetPeek,\n          skipToPeek\n      };\n  }\n\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: 14 /* TokenTypes.EOF */,\n          offset: _initOffset,\n          startLoc: _initLoc,\n          endLoc: _initLoc,\n          lastType: 14 /* TokenTypes.EOF */,\n          lastOffset: _initOffset,\n          lastStartLoc: _initLoc,\n          lastEndLoc: _initLoc,\n          braceNest: 0,\n          inLinked: false,\n          text: ''\n      };\n      const context = () => _context;\n      const { onError } = options;\n      function emitError(code, pos, offset, ...args) {\n          const ctx = context();\n          pos.column += offset;\n          pos.offset += offset;\n          if (onError) {\n              const loc = location ? createLocation(ctx.startLoc, pos) : null;\n              const err = createCompileError(code, loc, {\n                  domain: ERROR_DOMAIN$3,\n                  args\n              });\n              onError(err);\n          }\n      }\n      function getToken(context, type, value) {\n          context.endLoc = currentPosition();\n          context.currentType = type;\n          const token = { type };\n          if (location) {\n              token.loc = createLocation(context.startLoc, context.endLoc);\n          }\n          if (value != null) {\n              token.value = value;\n          }\n          return token;\n      }\n      const getEndToken = (context) => getToken(context, 14 /* TokenTypes.EOF */);\n      function eat(scnr, ch) {\n          if (scnr.currentChar() === ch) {\n              scnr.next();\n              return ch;\n          }\n          else {\n              emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n              return '';\n          }\n      }\n      function peekSpaces(scnr) {\n          let buf = '';\n          while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\n              buf += scnr.currentPeek();\n              scnr.peek();\n          }\n          return buf;\n      }\n      function skipSpaces(scnr) {\n          const buf = peekSpaces(scnr);\n          scnr.skipToPeek();\n          return buf;\n      }\n      function isIdentifierStart(ch) {\n          if (ch === EOF) {\n              return false;\n          }\n          const cc = ch.charCodeAt(0);\n          return ((cc >= 97 && cc <= 122) || // a-z\n              (cc >= 65 && cc <= 90) || // A-Z\n              cc === 95 // _\n          );\n      }\n      function isNumberStart(ch) {\n          if (ch === EOF) {\n              return false;\n          }\n          const cc = ch.charCodeAt(0);\n          return cc >= 48 && cc <= 57; // 0-9\n      }\n      function isNamedIdentifierStart(scnr, context) {\n          const { currentType } = context;\n          if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n              return false;\n          }\n          peekSpaces(scnr);\n          const ret = isIdentifierStart(scnr.currentPeek());\n          scnr.resetPeek();\n          return ret;\n      }\n      function isListIdentifierStart(scnr, context) {\n          const { currentType } = context;\n          if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n              return false;\n          }\n          peekSpaces(scnr);\n          const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\n          const ret = isNumberStart(ch);\n          scnr.resetPeek();\n          return ret;\n      }\n      function isLiteralStart(scnr, context) {\n          const { currentType } = context;\n          if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n              return false;\n          }\n          peekSpaces(scnr);\n          const ret = scnr.currentPeek() === LITERAL_DELIMITER;\n          scnr.resetPeek();\n          return ret;\n      }\n      function isLinkedDotStart(scnr, context) {\n          const { currentType } = context;\n          if (currentType !== 8 /* TokenTypes.LinkedAlias */) {\n              return false;\n          }\n          peekSpaces(scnr);\n          const ret = scnr.currentPeek() === \".\" /* TokenChars.LinkedDot */;\n          scnr.resetPeek();\n          return ret;\n      }\n      function isLinkedModifierStart(scnr, context) {\n          const { currentType } = context;\n          if (currentType !== 9 /* TokenTypes.LinkedDot */) {\n              return false;\n          }\n          peekSpaces(scnr);\n          const ret = isIdentifierStart(scnr.currentPeek());\n          scnr.resetPeek();\n          return ret;\n      }\n      function isLinkedDelimiterStart(scnr, context) {\n          const { currentType } = context;\n          if (!(currentType === 8 /* TokenTypes.LinkedAlias */ ||\n              currentType === 12 /* TokenTypes.LinkedModifier */)) {\n              return false;\n          }\n          peekSpaces(scnr);\n          const ret = scnr.currentPeek() === \":\" /* TokenChars.LinkedDelimiter */;\n          scnr.resetPeek();\n          return ret;\n      }\n      function isLinkedReferStart(scnr, context) {\n          const { currentType } = context;\n          if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) {\n              return false;\n          }\n          const fn = () => {\n              const ch = scnr.currentPeek();\n              if (ch === \"{\" /* TokenChars.BraceLeft */) {\n                  return isIdentifierStart(scnr.peek());\n              }\n              else if (ch === \"@\" /* TokenChars.LinkedAlias */ ||\n                  ch === \"%\" /* TokenChars.Modulo */ ||\n                  ch === \"|\" /* TokenChars.Pipe */ ||\n                  ch === \":\" /* TokenChars.LinkedDelimiter */ ||\n                  ch === \".\" /* TokenChars.LinkedDot */ ||\n                  ch === CHAR_SP ||\n                  !ch) {\n                  return false;\n              }\n              else if (ch === CHAR_LF) {\n                  scnr.peek();\n                  return fn();\n              }\n              else {\n                  // other characters\n                  return isTextStart(scnr, false);\n              }\n          };\n          const ret = fn();\n          scnr.resetPeek();\n          return ret;\n      }\n      function isPluralStart(scnr) {\n          peekSpaces(scnr);\n          const ret = scnr.currentPeek() === \"|\" /* TokenChars.Pipe */;\n          scnr.resetPeek();\n          return ret;\n      }\n      function detectModuloStart(scnr) {\n          const spaces = peekSpaces(scnr);\n          const ret = scnr.currentPeek() === \"%\" /* TokenChars.Modulo */ &&\n              scnr.peek() === \"{\" /* TokenChars.BraceLeft */;\n          scnr.resetPeek();\n          return {\n              isModulo: ret,\n              hasSpace: spaces.length > 0\n          };\n      }\n      function isTextStart(scnr, reset = true) {\n          const fn = (hasSpace = false, prev = '', detectModulo = false) => {\n              const ch = scnr.currentPeek();\n              if (ch === \"{\" /* TokenChars.BraceLeft */) {\n                  return prev === \"%\" /* TokenChars.Modulo */ ? false : hasSpace;\n              }\n              else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n                  return prev === \"%\" /* TokenChars.Modulo */ ? true : hasSpace;\n              }\n              else if (ch === \"%\" /* TokenChars.Modulo */) {\n                  scnr.peek();\n                  return fn(hasSpace, \"%\" /* TokenChars.Modulo */, true);\n              }\n              else if (ch === \"|\" /* TokenChars.Pipe */) {\n                  return prev === \"%\" /* TokenChars.Modulo */ || detectModulo\n                      ? true\n                      : !(prev === CHAR_SP || prev === CHAR_LF);\n              }\n              else if (ch === CHAR_SP) {\n                  scnr.peek();\n                  return fn(true, CHAR_SP, detectModulo);\n              }\n              else if (ch === CHAR_LF) {\n                  scnr.peek();\n                  return fn(true, CHAR_LF, detectModulo);\n              }\n              else {\n                  return true;\n              }\n          };\n          const ret = fn();\n          reset && scnr.resetPeek();\n          return ret;\n      }\n      function takeChar(scnr, fn) {\n          const ch = scnr.currentChar();\n          if (ch === EOF) {\n              return EOF;\n          }\n          if (fn(ch)) {\n              scnr.next();\n              return ch;\n          }\n          return null;\n      }\n      function isIdentifier(ch) {\n          const cc = ch.charCodeAt(0);\n          return ((cc >= 97 && cc <= 122) || // a-z\n              (cc >= 65 && cc <= 90) || // A-Z\n              (cc >= 48 && cc <= 57) || // 0-9\n              cc === 95 || // _\n              cc === 36 // $\n          );\n      }\n      function takeIdentifierChar(scnr) {\n          return takeChar(scnr, isIdentifier);\n      }\n      function isNamedIdentifier(ch) {\n          const cc = ch.charCodeAt(0);\n          return ((cc >= 97 && cc <= 122) || // a-z\n              (cc >= 65 && cc <= 90) || // A-Z\n              (cc >= 48 && cc <= 57) || // 0-9\n              cc === 95 || // _\n              cc === 36 || // $\n              cc === 45 // -\n          );\n      }\n      function takeNamedIdentifierChar(scnr) {\n          return takeChar(scnr, isNamedIdentifier);\n      }\n      function isDigit(ch) {\n          const cc = ch.charCodeAt(0);\n          return cc >= 48 && cc <= 57; // 0-9\n      }\n      function takeDigit(scnr) {\n          return takeChar(scnr, isDigit);\n      }\n      function isHexDigit(ch) {\n          const cc = ch.charCodeAt(0);\n          return ((cc >= 48 && cc <= 57) || // 0-9\n              (cc >= 65 && cc <= 70) || // A-F\n              (cc >= 97 && cc <= 102)); // a-f\n      }\n      function takeHexDigit(scnr) {\n          return takeChar(scnr, isHexDigit);\n      }\n      function getDigits(scnr) {\n          let ch = '';\n          let num = '';\n          while ((ch = takeDigit(scnr))) {\n              num += ch;\n          }\n          return num;\n      }\n      function readModulo(scnr) {\n          skipSpaces(scnr);\n          const ch = scnr.currentChar();\n          if (ch !== \"%\" /* TokenChars.Modulo */) {\n              emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n          }\n          scnr.next();\n          return \"%\" /* TokenChars.Modulo */;\n      }\n      function readText(scnr) {\n          let buf = '';\n          // eslint-disable-next-line no-constant-condition\n          while (true) {\n              const ch = scnr.currentChar();\n              if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n                  ch === \"}\" /* TokenChars.BraceRight */ ||\n                  ch === \"@\" /* TokenChars.LinkedAlias */ ||\n                  ch === \"|\" /* TokenChars.Pipe */ ||\n                  !ch) {\n                  break;\n              }\n              else if (ch === \"%\" /* TokenChars.Modulo */) {\n                  if (isTextStart(scnr)) {\n                      buf += ch;\n                      scnr.next();\n                  }\n                  else {\n                      break;\n                  }\n              }\n              else if (ch === CHAR_SP || ch === CHAR_LF) {\n                  if (isTextStart(scnr)) {\n                      buf += ch;\n                      scnr.next();\n                  }\n                  else if (isPluralStart(scnr)) {\n                      break;\n                  }\n                  else {\n                      buf += ch;\n                      scnr.next();\n                  }\n              }\n              else {\n                  buf += ch;\n                  scnr.next();\n              }\n          }\n          return buf;\n      }\n      function readNamedIdentifier(scnr) {\n          skipSpaces(scnr);\n          let ch = '';\n          let name = '';\n          while ((ch = takeNamedIdentifierChar(scnr))) {\n              name += ch;\n          }\n          if (scnr.currentChar() === EOF) {\n              emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n          }\n          return name;\n      }\n      function readListIdentifier(scnr) {\n          skipSpaces(scnr);\n          let value = '';\n          if (scnr.currentChar() === '-') {\n              scnr.next();\n              value += `-${getDigits(scnr)}`;\n          }\n          else {\n              value += getDigits(scnr);\n          }\n          if (scnr.currentChar() === EOF) {\n              emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n          }\n          return value;\n      }\n      function isLiteral(ch) {\n          return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;\n      }\n      function readLiteral(scnr) {\n          skipSpaces(scnr);\n          // eslint-disable-next-line no-useless-escape\n          eat(scnr, `\\'`);\n          let ch = '';\n          let literal = '';\n          while ((ch = takeChar(scnr, isLiteral))) {\n              if (ch === '\\\\') {\n                  literal += readEscapeSequence(scnr);\n              }\n              else {\n                  literal += ch;\n              }\n          }\n          const current = scnr.currentChar();\n          if (current === CHAR_LF || current === EOF) {\n              emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n              // TODO: Is it correct really?\n              if (current === CHAR_LF) {\n                  scnr.next();\n                  // eslint-disable-next-line no-useless-escape\n                  eat(scnr, `\\'`);\n              }\n              return literal;\n          }\n          // eslint-disable-next-line no-useless-escape\n          eat(scnr, `\\'`);\n          return literal;\n      }\n      function readEscapeSequence(scnr) {\n          const ch = scnr.currentChar();\n          switch (ch) {\n              case '\\\\':\n              case `\\'`: // eslint-disable-line no-useless-escape\n                  scnr.next();\n                  return `\\\\${ch}`;\n              case 'u':\n                  return readUnicodeEscapeSequence(scnr, ch, 4);\n              case 'U':\n                  return readUnicodeEscapeSequence(scnr, ch, 6);\n              default:\n                  emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n                  return '';\n          }\n      }\n      function readUnicodeEscapeSequence(scnr, unicode, digits) {\n          eat(scnr, unicode);\n          let sequence = '';\n          for (let i = 0; i < digits; i++) {\n              const ch = takeHexDigit(scnr);\n              if (!ch) {\n                  emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n                  break;\n              }\n              sequence += ch;\n          }\n          return `\\\\${unicode}${sequence}`;\n      }\n      function isInvalidIdentifier(ch) {\n          return (ch !== \"{\" /* TokenChars.BraceLeft */ &&\n              ch !== \"}\" /* TokenChars.BraceRight */ &&\n              ch !== CHAR_SP &&\n              ch !== CHAR_LF);\n      }\n      function readInvalidIdentifier(scnr) {\n          skipSpaces(scnr);\n          let ch = '';\n          let identifiers = '';\n          while ((ch = takeChar(scnr, isInvalidIdentifier))) {\n              identifiers += ch;\n          }\n          return identifiers;\n      }\n      function readLinkedModifier(scnr) {\n          let ch = '';\n          let name = '';\n          while ((ch = takeIdentifierChar(scnr))) {\n              name += ch;\n          }\n          return name;\n      }\n      function readLinkedRefer(scnr) {\n          const fn = (buf) => {\n              const ch = scnr.currentChar();\n              if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n                  ch === \"%\" /* TokenChars.Modulo */ ||\n                  ch === \"@\" /* TokenChars.LinkedAlias */ ||\n                  ch === \"|\" /* TokenChars.Pipe */ ||\n                  ch === \"(\" /* TokenChars.ParenLeft */ ||\n                  ch === \")\" /* TokenChars.ParenRight */ ||\n                  !ch) {\n                  return buf;\n              }\n              else if (ch === CHAR_SP) {\n                  return buf;\n              }\n              else if (ch === CHAR_LF || ch === DOT) {\n                  buf += ch;\n                  scnr.next();\n                  return fn(buf);\n              }\n              else {\n                  buf += ch;\n                  scnr.next();\n                  return fn(buf);\n              }\n          };\n          return fn('');\n      }\n      function readPlural(scnr) {\n          skipSpaces(scnr);\n          const plural = eat(scnr, \"|\" /* TokenChars.Pipe */);\n          skipSpaces(scnr);\n          return plural;\n      }\n      // TODO: We need refactoring of token parsing ...\n      function readTokenInPlaceholder(scnr, context) {\n          let token = null;\n          const ch = scnr.currentChar();\n          switch (ch) {\n              case \"{\" /* TokenChars.BraceLeft */:\n                  if (context.braceNest >= 1) {\n                      emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n                  }\n                  scnr.next();\n                  token = getToken(context, 2 /* TokenTypes.BraceLeft */, \"{\" /* TokenChars.BraceLeft */);\n                  skipSpaces(scnr);\n                  context.braceNest++;\n                  return token;\n              case \"}\" /* TokenChars.BraceRight */:\n                  if (context.braceNest > 0 &&\n                      context.currentType === 2 /* TokenTypes.BraceLeft */) {\n                      emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n                  }\n                  scnr.next();\n                  token = getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n                  context.braceNest--;\n                  context.braceNest > 0 && skipSpaces(scnr);\n                  if (context.inLinked && context.braceNest === 0) {\n                      context.inLinked = false;\n                  }\n                  return token;\n              case \"@\" /* TokenChars.LinkedAlias */:\n                  if (context.braceNest > 0) {\n                      emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n                  }\n                  token = readTokenInLinked(scnr, context) || getEndToken(context);\n                  context.braceNest = 0;\n                  return token;\n              default: {\n                  let validNamedIdentifier = true;\n                  let validListIdentifier = true;\n                  let validLiteral = true;\n                  if (isPluralStart(scnr)) {\n                      if (context.braceNest > 0) {\n                          emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n                      }\n                      token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n                      // reset\n                      context.braceNest = 0;\n                      context.inLinked = false;\n                      return token;\n                  }\n                  if (context.braceNest > 0 &&\n                      (context.currentType === 5 /* TokenTypes.Named */ ||\n                          context.currentType === 6 /* TokenTypes.List */ ||\n                          context.currentType === 7 /* TokenTypes.Literal */)) {\n                      emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n                      context.braceNest = 0;\n                      return readToken(scnr, context);\n                  }\n                  if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\n                      token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n                      skipSpaces(scnr);\n                      return token;\n                  }\n                  if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\n                      token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));\n                      skipSpaces(scnr);\n                      return token;\n                  }\n                  if ((validLiteral = isLiteralStart(scnr, context))) {\n                      token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr));\n                      skipSpaces(scnr);\n                      return token;\n                  }\n                  if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\n                      // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\n                      token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));\n                      emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\n                      skipSpaces(scnr);\n                      return token;\n                  }\n                  break;\n              }\n          }\n          return token;\n      }\n      // TODO: We need refactoring of token parsing ...\n      function readTokenInLinked(scnr, context) {\n          const { currentType } = context;\n          let token = null;\n          const ch = scnr.currentChar();\n          if ((currentType === 8 /* TokenTypes.LinkedAlias */ ||\n              currentType === 9 /* TokenTypes.LinkedDot */ ||\n              currentType === 12 /* TokenTypes.LinkedModifier */ ||\n              currentType === 10 /* TokenTypes.LinkedDelimiter */) &&\n              (ch === CHAR_LF || ch === CHAR_SP)) {\n              emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n          }\n          switch (ch) {\n              case \"@\" /* TokenChars.LinkedAlias */:\n                  scnr.next();\n                  token = getToken(context, 8 /* TokenTypes.LinkedAlias */, \"@\" /* TokenChars.LinkedAlias */);\n                  context.inLinked = true;\n                  return token;\n              case \".\" /* TokenChars.LinkedDot */:\n                  skipSpaces(scnr);\n                  scnr.next();\n                  return getToken(context, 9 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n              case \":\" /* TokenChars.LinkedDelimiter */:\n                  skipSpaces(scnr);\n                  scnr.next();\n                  return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, \":\" /* TokenChars.LinkedDelimiter */);\n              default:\n                  if (isPluralStart(scnr)) {\n                      token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n                      // reset\n                      context.braceNest = 0;\n                      context.inLinked = false;\n                      return token;\n                  }\n                  if (isLinkedDotStart(scnr, context) ||\n                      isLinkedDelimiterStart(scnr, context)) {\n                      skipSpaces(scnr);\n                      return readTokenInLinked(scnr, context);\n                  }\n                  if (isLinkedModifierStart(scnr, context)) {\n                      skipSpaces(scnr);\n                      return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));\n                  }\n                  if (isLinkedReferStart(scnr, context)) {\n                      skipSpaces(scnr);\n                      if (ch === \"{\" /* TokenChars.BraceLeft */) {\n                          // scan the placeholder\n                          return readTokenInPlaceholder(scnr, context) || token;\n                      }\n                      else {\n                          return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n                      }\n                  }\n                  if (currentType === 8 /* TokenTypes.LinkedAlias */) {\n                      emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n                  }\n                  context.braceNest = 0;\n                  context.inLinked = false;\n                  return readToken(scnr, context);\n          }\n      }\n      // TODO: We need refactoring of token parsing ...\n      function readToken(scnr, context) {\n          let token = { type: 14 /* TokenTypes.EOF */ };\n          if (context.braceNest > 0) {\n              return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n          }\n          if (context.inLinked) {\n              return readTokenInLinked(scnr, context) || getEndToken(context);\n          }\n          const ch = scnr.currentChar();\n          switch (ch) {\n              case \"{\" /* TokenChars.BraceLeft */:\n                  return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n              case \"}\" /* TokenChars.BraceRight */:\n                  emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n                  scnr.next();\n                  return getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n              case \"@\" /* TokenChars.LinkedAlias */:\n                  return readTokenInLinked(scnr, context) || getEndToken(context);\n              default: {\n                  if (isPluralStart(scnr)) {\n                      token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n                      // reset\n                      context.braceNest = 0;\n                      context.inLinked = false;\n                      return token;\n                  }\n                  const { isModulo, hasSpace } = detectModuloStart(scnr);\n                  if (isModulo) {\n                      return hasSpace\n                          ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr))\n                          : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));\n                  }\n                  if (isTextStart(scnr)) {\n                      return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));\n                  }\n                  break;\n              }\n          }\n          return token;\n      }\n      function nextToken() {\n          const { currentType, offset, startLoc, endLoc } = _context;\n          _context.lastType = currentType;\n          _context.lastOffset = offset;\n          _context.lastStartLoc = startLoc;\n          _context.lastEndLoc = endLoc;\n          _context.offset = currentOffset();\n          _context.startLoc = currentPosition();\n          if (_scnr.currentChar() === EOF) {\n              return getToken(_context, 14 /* TokenTypes.EOF */);\n          }\n          return readToken(_scnr, _context);\n      }\n      return {\n          nextToken,\n          currentOffset,\n          currentPosition,\n          context\n      };\n  }\n\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  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, onWarn } = options;\n      function emitError(tokenzer, code, start, offset, ...args) {\n          const end = tokenzer.currentPosition();\n          end.offset += offset;\n          end.column += offset;\n          if (onError) {\n              const loc = location ? createLocation(start, end) : null;\n              const err = createCompileError(code, loc, {\n                  domain: ERROR_DOMAIN$2,\n                  args\n              });\n              onError(err);\n          }\n      }\n      function emitWarn(tokenzer, code, start, offset, ...args) {\n          const end = tokenzer.currentPosition();\n          end.offset += offset;\n          end.column += offset;\n          if (onWarn) {\n              const loc = location ? createLocation(start, end) : null;\n              onWarn(createCompileWarn(code, loc, args));\n          }\n      }\n      function startNode(type, offset, loc) {\n          const node = { type };\n          if (location) {\n              node.start = offset;\n              node.end = offset;\n              node.loc = { start: loc, end: loc };\n          }\n          return node;\n      }\n      function endNode(node, offset, pos, type) {\n          if (type) {\n              node.type = type;\n          }\n          if (location) {\n              node.end = offset;\n              if (node.loc) {\n                  node.loc.end = pos;\n              }\n          }\n      }\n      function parseText(tokenizer, value) {\n          const context = tokenizer.context();\n          const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n          node.value = value;\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n          return node;\n      }\n      function parseList(tokenizer, index) {\n          const context = tokenizer.context();\n          const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n          const node = startNode(5 /* NodeTypes.List */, offset, loc);\n          node.index = parseInt(index, 10);\n          tokenizer.nextToken(); // skip brach right\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n          return node;\n      }\n      function parseNamed(tokenizer, key, modulo) {\n          const context = tokenizer.context();\n          const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n          const node = startNode(4 /* NodeTypes.Named */, offset, loc);\n          node.key = key;\n          if (modulo === true) {\n              node.modulo = true;\n          }\n          tokenizer.nextToken(); // skip brach right\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n          return node;\n      }\n      function parseLiteral(tokenizer, value) {\n          const context = tokenizer.context();\n          const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n          const node = startNode(9 /* NodeTypes.Literal */, offset, loc);\n          node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\n          tokenizer.nextToken(); // skip brach right\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n          return node;\n      }\n      function parseLinkedModifier(tokenizer) {\n          const token = tokenizer.nextToken();\n          const context = tokenizer.context();\n          const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\n          const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);\n          if (token.type !== 12 /* TokenTypes.LinkedModifier */) {\n              // empty modifier\n              emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\n              node.value = '';\n              endNode(node, offset, loc);\n              return {\n                  nextConsumeToken: token,\n                  node\n              };\n          }\n          // check token\n          if (token.value == null) {\n              emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n          }\n          node.value = token.value || '';\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n          return {\n              node\n          };\n      }\n      function parseLinkedKey(tokenizer, value) {\n          const context = tokenizer.context();\n          const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);\n          node.value = value;\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n          return node;\n      }\n      function parseLinked(tokenizer) {\n          const context = tokenizer.context();\n          const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);\n          let token = tokenizer.nextToken();\n          if (token.type === 9 /* TokenTypes.LinkedDot */) {\n              const parsed = parseLinkedModifier(tokenizer);\n              linkedNode.modifier = parsed.node;\n              token = parsed.nextConsumeToken || tokenizer.nextToken();\n          }\n          // asset check token\n          if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) {\n              emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n          }\n          token = tokenizer.nextToken();\n          // skip brace left\n          if (token.type === 2 /* TokenTypes.BraceLeft */) {\n              token = tokenizer.nextToken();\n          }\n          switch (token.type) {\n              case 11 /* TokenTypes.LinkedKey */:\n                  if (token.value == null) {\n                      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n                  }\n                  linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\n                  break;\n              case 5 /* TokenTypes.Named */:\n                  if (token.value == null) {\n                      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n                  }\n                  linkedNode.key = parseNamed(tokenizer, token.value || '');\n                  break;\n              case 6 /* TokenTypes.List */:\n                  if (token.value == null) {\n                      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n                  }\n                  linkedNode.key = parseList(tokenizer, token.value || '');\n                  break;\n              case 7 /* TokenTypes.Literal */:\n                  if (token.value == null) {\n                      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n                  }\n                  linkedNode.key = parseLiteral(tokenizer, token.value || '');\n                  break;\n              default: {\n                  // empty key\n                  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n                  const nextContext = tokenizer.context();\n                  const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);\n                  emptyLinkedKeyNode.value = '';\n                  endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\n                  linkedNode.key = emptyLinkedKeyNode;\n                  endNode(linkedNode, nextContext.offset, nextContext.startLoc);\n                  return {\n                      nextConsumeToken: token,\n                      node: linkedNode\n                  };\n              }\n          }\n          endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\n          return {\n              node: linkedNode\n          };\n      }\n      function parseMessage(tokenizer) {\n          const context = tokenizer.context();\n          const startOffset = context.currentType === 1 /* TokenTypes.Pipe */\n              ? tokenizer.currentOffset()\n              : context.offset;\n          const startLoc = context.currentType === 1 /* TokenTypes.Pipe */\n              ? context.endLoc\n              : context.startLoc;\n          const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);\n          node.items = [];\n          let nextToken = null;\n          let modulo = null;\n          do {\n              const token = nextToken || tokenizer.nextToken();\n              nextToken = null;\n              switch (token.type) {\n                  case 0 /* TokenTypes.Text */:\n                      if (token.value == null) {\n                          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n                      }\n                      node.items.push(parseText(tokenizer, token.value || ''));\n                      break;\n                  case 6 /* TokenTypes.List */:\n                      if (token.value == null) {\n                          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n                      }\n                      node.items.push(parseList(tokenizer, token.value || ''));\n                      break;\n                  case 4 /* TokenTypes.Modulo */:\n                      modulo = true;\n                      break;\n                  case 5 /* TokenTypes.Named */:\n                      if (token.value == null) {\n                          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n                      }\n                      node.items.push(parseNamed(tokenizer, token.value || '', !!modulo));\n                      if (modulo) {\n                          emitWarn(tokenizer, CompileWarnCodes.USE_MODULO_SYNTAX, context.lastStartLoc, 0, getTokenCaption(token));\n                          modulo = null;\n                      }\n                      break;\n                  case 7 /* TokenTypes.Literal */:\n                      if (token.value == null) {\n                          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n                      }\n                      node.items.push(parseLiteral(tokenizer, token.value || ''));\n                      break;\n                  case 8 /* TokenTypes.LinkedAlias */: {\n                      const parsed = parseLinked(tokenizer);\n                      node.items.push(parsed.node);\n                      nextToken = parsed.nextConsumeToken || null;\n                      break;\n                  }\n              }\n          } while (context.currentType !== 14 /* TokenTypes.EOF */ &&\n              context.currentType !== 1 /* TokenTypes.Pipe */);\n          // adjust message node loc\n          const endOffset = context.currentType === 1 /* TokenTypes.Pipe */\n              ? context.lastOffset\n              : tokenizer.currentOffset();\n          const endLoc = context.currentType === 1 /* TokenTypes.Pipe */\n              ? context.lastEndLoc\n              : tokenizer.currentPosition();\n          endNode(node, endOffset, endLoc);\n          return node;\n      }\n      function parsePlural(tokenizer, offset, loc, msgNode) {\n          const context = tokenizer.context();\n          let hasEmptyMessage = msgNode.items.length === 0;\n          const node = startNode(1 /* NodeTypes.Plural */, offset, loc);\n          node.cases = [];\n          node.cases.push(msgNode);\n          do {\n              const msg = parseMessage(tokenizer);\n              if (!hasEmptyMessage) {\n                  hasEmptyMessage = msg.items.length === 0;\n              }\n              node.cases.push(msg);\n          } while (context.currentType !== 14 /* TokenTypes.EOF */);\n          if (hasEmptyMessage) {\n              emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\n          }\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n          return node;\n      }\n      function parseResource(tokenizer) {\n          const context = tokenizer.context();\n          const { offset, startLoc } = context;\n          const msgNode = parseMessage(tokenizer);\n          if (context.currentType === 14 /* TokenTypes.EOF */) {\n              return msgNode;\n          }\n          else {\n              return parsePlural(tokenizer, offset, startLoc, msgNode);\n          }\n      }\n      function parse(source) {\n          const tokenizer = createTokenizer(source, assign({}, options));\n          const context = tokenizer.context();\n          const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);\n          if (location && node.loc) {\n              node.loc.source = source;\n          }\n          node.body = parseResource(tokenizer);\n          if (options.onCacheKey) {\n              node.cacheKey = options.onCacheKey(source);\n          }\n          // assert whether achieved to EOF\n          if (context.currentType !== 14 /* TokenTypes.EOF */) {\n              emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\n          }\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n          return node;\n      }\n      return { parse };\n  }\n  function getTokenCaption(token) {\n      if (token.type === 14 /* TokenTypes.EOF */) {\n          return 'EOF';\n      }\n      const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\n      return name.length > 10 ? name.slice(0, 9) + '…' : name;\n  }\n\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 { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\n      const location = options.location !== false;\n      const _context = {\n          filename,\n          code: '',\n          column: 1,\n          line: 1,\n          offset: 0,\n          map: undefined,\n          breakLineCode,\n          needIndent: _needIndent,\n          indentLevel: 0\n      };\n      if (location && ast.loc) {\n          _context.source = ast.loc.source;\n      }\n      const context = () => _context;\n      function push(code, node) {\n          _context.code += code;\n      }\n      function _newline(n, withBreakLine = true) {\n          const _breakLineCode = withBreakLine ? breakLineCode : '';\n          push(_needIndent ? _breakLineCode + `  `.repeat(n) : _breakLineCode);\n      }\n      function indent(withNewLine = true) {\n          const level = ++_context.indentLevel;\n          withNewLine && _newline(level);\n      }\n      function deindent(withNewLine = true) {\n          const level = --_context.indentLevel;\n          withNewLine && _newline(level);\n      }\n      function newline() {\n          _newline(_context.indentLevel);\n      }\n      const helper = (key) => `_${key}`;\n      const needIndent = () => _context.needIndent;\n      return {\n          context,\n          push,\n          indent,\n          deindent,\n          newline,\n          helper,\n          needIndent\n      };\n  }\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 = {} // eslint-disable-line\n  ) => {\n      const mode = isString(options.mode) ? options.mode : 'normal';\n      const filename = isString(options.filename)\n          ? options.filename\n          : 'message.intl';\n      const sourceMap = !!options.sourceMap;\n      // prettier-ignore\n      const breakLineCode = options.breakLineCode != null\n          ? options.breakLineCode\n          : mode === 'arrow'\n              ? ';'\n              : '\\n';\n      const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\n      const helpers = ast.helpers || [];\n      const generator = createCodeGenerator(ast, {\n          mode,\n          filename,\n          sourceMap,\n          breakLineCode,\n          needIndent\n      });\n      generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\n      generator.indent(needIndent);\n      if (helpers.length > 0) {\n          generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);\n          generator.newline();\n      }\n      generator.push(`return `);\n      generateNode(generator, ast);\n      generator.deindent(needIndent);\n      generator.push(`}`);\n      delete ast.helpers;\n      const { code, map } = generator.context();\n      return {\n          ast,\n          code,\n          map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\n      };\n  };\n\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  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      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          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 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      if (choicesLength === 2) {\n          // prettier-ignore\n          return choice\n              ? choice > 1\n                  ? 1\n                  : 0\n              : 1;\n      }\n      return choice ? Math.min(choice, 2) : 0;\n  }\n  function getPluralIndex(options) {\n      // prettier-ignore\n      const index = isNumber(options.pluralIndex)\n          ? options.pluralIndex\n          : -1;\n      // prettier-ignore\n      return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\n          ? isNumber(options.named.count)\n              ? options.named.count\n              : isNumber(options.named.n)\n                  ? options.named.n\n                  : index\n          : index;\n  }\n  function normalizeNamed(pluralIndex, props) {\n      if (!props.count) {\n          props.count = pluralIndex;\n      }\n      if (!props.n) {\n          props.n = pluralIndex;\n      }\n  }\n  function createMessageContext(options = {}) {\n      const locale = options.locale;\n      const pluralIndex = getPluralIndex(options);\n      const pluralRule = isObject(options.pluralRules) &&\n          isString(locale) &&\n          isFunction(options.pluralRules[locale])\n          ? options.pluralRules[locale]\n          : pluralDefault;\n      const orgPluralRule = isObject(options.pluralRules) &&\n          isString(locale) &&\n          isFunction(options.pluralRules[locale])\n          ? pluralDefault\n          : undefined;\n      const plural = (messages) => {\n          return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\n      };\n      const _list = options.list || [];\n      const list = (index) => _list[index];\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      const _named = options.named || create();\n      isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\n      const named = (key) => _named[key];\n      function message(key) {\n          // prettier-ignore\n          const msg = isFunction(options.messages)\n              ? options.messages(key)\n              : isObject(options.messages)\n                  ? options.messages[key]\n                  : false;\n          return !msg\n              ? options.parent\n                  ? options.parent.message(key) // resolve from parent messages\n                  : DEFAULT_MESSAGE\n              : msg;\n      }\n      const _modifier = (name) => options.modifiers\n          ? options.modifiers[name]\n          : DEFAULT_MODIFIER;\n      const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\n          ? options.processor.normalize\n          : DEFAULT_NORMALIZE;\n      const interpolate = isPlainObject(options.processor) &&\n          isFunction(options.processor.interpolate)\n          ? options.processor.interpolate\n          : DEFAULT_INTERPOLATE;\n      const type = isPlainObject(options.processor) && isString(options.processor.type)\n          ? options.processor.type\n          : DEFAULT_MESSAGE_DATA_TYPE;\n      const linked = (key, ...args) => {\n          const [arg1, arg2] = args;\n          let type = 'text';\n          let modifier = '';\n          if (args.length === 1) {\n              if (isObject(arg1)) {\n                  modifier = arg1.modifier || modifier;\n                  type = arg1.type || type;\n              }\n              else if (isString(arg1)) {\n                  modifier = arg1 || modifier;\n              }\n          }\n          else if (args.length === 2) {\n              if (isString(arg1)) {\n                  modifier = arg1 || modifier;\n              }\n              if (isString(arg2)) {\n                  type = arg2 || type;\n              }\n          }\n          const ret = message(key)(ctx);\n          const msg = \n          // The message in vnode resolved with linked are returned as an array by processor.nomalize\n          type === 'vnode' && isArray(ret) && modifier\n              ? ret[0]\n              : ret;\n          return modifier ? _modifier(modifier)(msg, type) : msg;\n      };\n      const ctx = {\n          [\"list\" /* HelperNameMap.LIST */]: list,\n          [\"named\" /* HelperNameMap.NAMED */]: named,\n          [\"plural\" /* HelperNameMap.PLURAL */]: plural,\n          [\"linked\" /* HelperNameMap.LINKED */]: linked,\n          [\"message\" /* HelperNameMap.MESSAGE */]: message,\n          [\"type\" /* HelperNameMap.TYPE */]: type,\n          [\"interpolate\" /* HelperNameMap.INTERPOLATE */]: interpolate,\n          [\"normalize\" /* HelperNameMap.NORMALIZE */]: normalize,\n          [\"values\" /* HelperNameMap.VALUES */]: assign(create(), _list, _named)\n      };\n      return ctx;\n  }\n\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\" /* IntlifyDevToolsHooks.I18nInit */, {\n              timestamp: Date.now(),\n              i18n,\n              version,\n              meta\n          });\n  }\n  const translateDevTools = /* #__PURE__*/ createDevToolsHook(\"function:translate\" /* IntlifyDevToolsHooks.FunctionTranslate */);\n  function createDevToolsHook(hook) {\n      return (payloads) => devtools && devtools.emit(hook, payloads);\n  }\n\n  const code$3 = CompileWarnCodes.__EXTEND_POINT__;\n  const inc$3 = incrementer(code$3);\n  const CoreWarnCodes = {\n      NOT_FOUND_KEY: code$3, // 2\n      FALLBACK_TO_TRANSLATE: inc$3(), // 3\n      CANNOT_FORMAT_NUMBER: inc$3(), // 4\n      FALLBACK_TO_NUMBER_FORMAT: inc$3(), // 5\n      CANNOT_FORMAT_DATE: inc$3(), // 6\n      FALLBACK_TO_DATE_FORMAT: inc$3(), // 7\n      EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: inc$3(), // 8\n      __EXTEND_POINT__: inc$3() // 9\n  };\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  };\n  function getWarnMessage$1(code, ...args) {\n      return format$1(warnMessages$1[code], ...args);\n  }\n\n  const code$2 = CompileErrorCodes.__EXTEND_POINT__;\n  const inc$2 = incrementer(code$2);\n  const CoreErrorCodes = {\n      INVALID_ARGUMENT: code$2, // 17\n      INVALID_DATE_ARGUMENT: inc$2(), // 18\n      INVALID_ISO_DATE_ARGUMENT: inc$2(), // 19\n      NOT_SUPPORT_NON_STRING_MESSAGE: inc$2(), // 20\n      NOT_SUPPORT_LOCALE_PROMISE_VALUE: inc$2(), // 21\n      NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: inc$2(), // 22\n      NOT_SUPPORT_LOCALE_TYPE: inc$2(), // 23\n      __EXTEND_POINT__: inc$2() // 24\n  };\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, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\n   *\n   * @param ctx - A {@link CoreContext | context}\n   * @param fallback - A {@link FallbackLocale | fallback locale}\n   * @param start - A starting {@link Locale | locale}\n   *\n   * @returns Fallback locales\n   *\n   * @VueI18nGeneral\n   */\n  function fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\n  ) {\n      // prettier-ignore\n      return [...new Set([\n              start,\n              ...(isArray(fallback)\n                  ? fallback\n                  : isObject(fallback)\n                      ? Object.keys(fallback)\n                      : isString(fallback)\n                          ? [fallback]\n                          : [start])\n          ])];\n  }\n  /**\n   * Fallback with locale chain\n   *\n   * @remarks\n   * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\n   *\n   * @param ctx - A {@link CoreContext | context}\n   * @param fallback - A {@link FallbackLocale | fallback locale}\n   * @param start - A starting {@link Locale | locale}\n   *\n   * @returns Fallback locales\n   *\n   * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\n   *\n   * @VueI18nGeneral\n   */\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      let chain = context.__localeChainCache.get(startLocale);\n      if (!chain) {\n          chain = [];\n          // first block defined by start\n          let block = [start];\n          // while any intervening block found\n          while (isArray(block)) {\n              block = appendBlockToChain(chain, block, fallback);\n          }\n          // prettier-ignore\n          // last block defined by default\n          const defaults = isArray(fallback) || !isPlainObject(fallback)\n              ? fallback\n              : fallback['default']\n                  ? fallback['default']\n                  : null;\n          // convert defaults to array\n          block = isString(defaults) ? [defaults] : defaults;\n          if (isArray(block)) {\n              appendBlockToChain(chain, block, false);\n          }\n          context.__localeChainCache.set(startLocale, chain);\n      }\n      return chain;\n  }\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  /* eslint-disable @typescript-eslint/no-explicit-any */\n  /**\n   * Intlify core-base version\n   * @internal\n   */\n  const VERSION$1 = '9.14.5';\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\" /* VueDevToolsTimelineEvents.MISSING */, {\n                  locale,\n                  key,\n                  type,\n                  groupId: `${type}:${key}`\n              });\n          }\n      }\n      if (missing !== null) {\n          const ret = missing(context, locale, key, type);\n          return isString(ret) ? ret : key;\n      }\n      else {\n          if (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 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 onCompileWarn(_warn) {\n      if (_warn.code === CompileWarnCodes.USE_MODULO_SYNTAX) {\n          warn(`The use of named interpolation with modulo syntax is deprecated. ` +\n              `It will be removed in v10.\\n` +\n              `reference: https://vue-i18n.intlify.dev/guide/essentials/syntax#rails-i18n-format \\n` +\n              `(message compiler warning message: ${_warn.message})`);\n      }\n  }\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  function compile(message, context) {\n      // set onWarn\n      {\n          context.onWarn = onCompileWarn;\n      }\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  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              : '';\n      const enableDefaultMsg = fallbackFormat || 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          // for vue-devtools timeline event\n          if (locale !== targetLocale) {\n              const emitter = context.__v_emitter;\n              if (emitter) {\n                  emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n                      type,\n                      key,\n                      from,\n                      to,\n                      groupId: `${type}:${key}`\n                  });\n              }\n          }\n          message =\n              messages[targetLocale] || create();\n          // for vue-devtools timeline event\n          let start = null;\n          let startTag;\n          let endTag;\n          if (inBrowser) {\n              start = window.performance.now();\n              startTag = 'intlify-message-resolve-start';\n              endTag = 'intlify-message-resolve-end';\n              mark && mark(startTag);\n          }\n          if ((format = resolveValue(message, key)) === null) {\n              // if null, resolve with object key path\n              format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\n          }\n          // for vue-devtools timeline event\n          if (inBrowser) {\n              const end = window.performance.now();\n              const emitter = context.__v_emitter;\n              if (emitter && start && format) {\n                  emitter.emit(\"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */, {\n                      type: \"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */,\n                      key,\n                      message: format,\n                      time: end - start,\n                      groupId: `${type}:${key}`\n                  });\n              }\n              if (startTag && endTag && mark && measure) {\n                  mark(endTag);\n                  measure('intlify message resolve', startTag, endTag);\n              }\n          }\n          if (isString(format) || isMessageAST(format) || isMessageFunction(format)) {\n              break;\n          }\n          if (!isImplicitFallback(targetLocale, locales)) {\n              const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n              key, targetLocale, missingWarn, type);\n              if (missingRet !== key) {\n                  format = missingRet;\n              }\n          }\n          from = to;\n      }\n      return [format, targetLocale, message];\n  }\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      let start = null;\n      let startTag;\n      let endTag;\n      if (inBrowser) {\n          start = window.performance.now();\n          startTag = 'intlify-message-compilation-start';\n          endTag = 'intlify-message-compilation-end';\n          mark && mark(startTag);\n      }\n      const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError));\n      // for vue-devtools timeline event\n      if (inBrowser) {\n          const end = window.performance.now();\n          const emitter = context.__v_emitter;\n          if (emitter && start) {\n              emitter.emit(\"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */, {\n                  type: \"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */,\n                  message: format,\n                  time: end - start,\n                  groupId: `${'translate'}:${key}`\n              });\n          }\n          if (startTag && endTag && mark && measure) {\n              mark(endTag);\n              measure('intlify message compilation', startTag, endTag);\n          }\n      }\n      msg.locale = targetLocale;\n      msg.key = key;\n      msg.source = format;\n      return msg;\n  }\n  function evaluateMessage(context, msg, msgCtx) {\n      // for vue-devtools timeline event\n      let start = null;\n      let startTag;\n      let endTag;\n      if (inBrowser) {\n          start = window.performance.now();\n          startTag = 'intlify-message-evaluation-start';\n          endTag = 'intlify-message-evaluation-end';\n          mark && mark(startTag);\n      }\n      const messaged = msg(msgCtx);\n      // for vue-devtools timeline event\n      if (inBrowser) {\n          const end = window.performance.now();\n          const emitter = context.__v_emitter;\n          if (emitter && start) {\n              emitter.emit(\"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */, {\n                  type: \"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */,\n                  value: messaged,\n                  time: end - start,\n                  groupId: `${'translate'}:${msg.key}`\n              });\n          }\n          if (startTag && endTag && mark && measure) {\n              mark(endTag);\n              measure('intlify message evaluation', startTag, endTag);\n          }\n      }\n      return messaged;\n  }\n  /** @internal */\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 message = `Message compilation error: ${err.message}`;\n                  const codeFrame = err.location &&\n                      _source &&\n                      generateCodeFrame(_source, err.location.start.offset, err.location.end.offset);\n                  const emitter = context.__v_emitter;\n                  if (emitter && _source) {\n                      emitter.emit(\"compile-error\" /* VueDevToolsTimelineEvents.COMPILE_ERROR */, {\n                          message: _source,\n                          error: err.message,\n                          start: err.location && err.location.start.offset,\n                          end: err.location && err.location.end.offset,\n                          groupId: `${'translate'}:${key}`\n                      });\n                  }\n                  console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\n              }\n          },\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) => {\n          let val = resolveValue(message, key);\n          // fallback to root context\n          if (val == null && fallbackContext) {\n              const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\n              val = resolveValue(message, key);\n          }\n          if (isString(val) || isMessageAST(val)) {\n              let occurred = false;\n              const onError = () => {\n                  occurred = true;\n              };\n              const msg = compileMessageFormat(context, key, locale, val, key, onError);\n              return !occurred\n                  ? msg\n                  : NOOP_MESSAGE_FUNCTION;\n          }\n          else if (isMessageFunction(val)) {\n              return val;\n          }\n          else {\n              // TODO: should be implemented warning message\n              return NOOP_MESSAGE_FUNCTION;\n          }\n      };\n      const ctxOptions = {\n          locale,\n          modifiers,\n          pluralRules,\n          messages: resolveMessage\n      };\n      if (context.processor) {\n          ctxOptions.processor = context.processor;\n      }\n      if (options.list) {\n          ctxOptions.list = options.list;\n      }\n      if (options.named) {\n          ctxOptions.named = options.named;\n      }\n      if (isNumber(options.plural)) {\n          ctxOptions.pluralIndex = options.plural;\n      }\n      return ctxOptions;\n  }\n\n  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, fallbackLocale, onWarn, localeFallbacker } = context;\n      const { __datetimeFormatters } = context;\n      if (!Availabilities.dateTimeFormat) {\n          onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_DATE));\n          return MISSING_RESOLVE_VALUE;\n      }\n      const [key, value, options, overrides] = parseDateTimeArgs(...args);\n      const missingWarn = isBoolean(options.missingWarn)\n          ? options.missingWarn\n          : context.missingWarn;\n      const fallbackWarn = isBoolean(options.fallbackWarn)\n          ? options.fallbackWarn\n          : context.fallbackWarn;\n      const part = !!options.part;\n      const locale = getLocale(context, options);\n      const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n      fallbackLocale, locale);\n      if (!isString(key) || key === '') {\n          return new Intl.DateTimeFormat(locale, overrides).format(value);\n      }\n      // resolve format\n      let datetimeFormat = {};\n      let targetLocale;\n      let format = null;\n      let from = locale;\n      let to = null;\n      const type = 'datetime format';\n      for (let i = 0; i < locales.length; i++) {\n          targetLocale = to = locales[i];\n          if (locale !== targetLocale &&\n              isTranslateFallbackWarn(fallbackWarn, key)) {\n              onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\n                  key,\n                  target: targetLocale\n              }));\n          }\n          // for vue-devtools timeline event\n          if (locale !== targetLocale) {\n              const emitter = context.__v_emitter;\n              if (emitter) {\n                  emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n                      type,\n                      key,\n                      from,\n                      to,\n                      groupId: `${type}:${key}`\n                  });\n              }\n          }\n          datetimeFormat =\n              datetimeFormats[targetLocale] || {};\n          format = datetimeFormat[key];\n          if (isPlainObject(format))\n              break;\n          handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n          from = to;\n      }\n      // checking format and target locale\n      if (!isPlainObject(format) || !isString(targetLocale)) {\n          return unresolving ? NOT_REOSLVED : key;\n      }\n      let id = `${targetLocale}__${key}`;\n      if (!isEmptyObject(overrides)) {\n          id = `${id}__${JSON.stringify(overrides)}`;\n      }\n      let formatter = __datetimeFormatters.get(id);\n      if (!formatter) {\n          formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\n          __datetimeFormatters.set(id, formatter);\n      }\n      return !part ? formatter.format(value) : formatter.formatToParts(value);\n  }\n  /** @internal */\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, arg2, arg3, arg4] = args;\n      const options = create();\n      let overrides = create();\n      let value;\n      if (isString(arg1)) {\n          // Only allow ISO strings - other date formats are often supported,\n          // but may cause different results in different browsers.\n          const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\n          if (!matches) {\n              throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n          }\n          // Some browsers can not parse the iso datetime separated by space,\n          // this is a compromise solution by replace the 'T'/' ' with 'T'\n          const dateTime = matches[3]\n              ? matches[3].trim().startsWith('T')\n                  ? `${matches[1].trim()}${matches[3].trim()}`\n                  : `${matches[1].trim()}T${matches[3].trim()}`\n              : matches[1].trim();\n          value = new Date(dateTime);\n          try {\n              // This will fail if the date is not valid\n              value.toISOString();\n          }\n          catch (e) {\n              throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n          }\n      }\n      else if (isDate(arg1)) {\n          if (isNaN(arg1.getTime())) {\n              throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\n          }\n          value = arg1;\n      }\n      else if (isNumber(arg1)) {\n          value = arg1;\n      }\n      else {\n          throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n      }\n      if (isString(arg2)) {\n          options.key = arg2;\n      }\n      else if (isPlainObject(arg2)) {\n          Object.keys(arg2).forEach(key => {\n              if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\n                  overrides[key] = arg2[key];\n              }\n              else {\n                  options[key] = arg2[key];\n              }\n          });\n      }\n      if (isString(arg3)) {\n          options.locale = arg3;\n      }\n      else if (isPlainObject(arg3)) {\n          overrides = arg3;\n      }\n      if (isPlainObject(arg4)) {\n          overrides = arg4;\n      }\n      return [options.key || '', value, options, overrides];\n  }\n  /** @internal */\n  function clearDateTimeFormat(ctx, locale, format) {\n      const context = ctx;\n      for (const key in format) {\n          const id = `${locale}__${key}`;\n          if (!context.__datetimeFormatters.has(id)) {\n              continue;\n          }\n          context.__datetimeFormatters.delete(id);\n      }\n  }\n\n  // implementation of `number` function\n  function number(context, ...args) {\n      const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n      const { __numberFormatters } = context;\n      if (!Availabilities.numberFormat) {\n          onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\n          return MISSING_RESOLVE_VALUE;\n      }\n      const [key, value, options, overrides] = parseNumberArgs(...args);\n      const missingWarn = isBoolean(options.missingWarn)\n          ? options.missingWarn\n          : context.missingWarn;\n      const fallbackWarn = isBoolean(options.fallbackWarn)\n          ? options.fallbackWarn\n          : context.fallbackWarn;\n      const part = !!options.part;\n      const locale = getLocale(context, options);\n      const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n      fallbackLocale, locale);\n      if (!isString(key) || key === '') {\n          return new Intl.NumberFormat(locale, overrides).format(value);\n      }\n      // resolve format\n      let numberFormat = {};\n      let targetLocale;\n      let format = null;\n      let from = locale;\n      let to = null;\n      const type = 'number format';\n      for (let i = 0; i < locales.length; i++) {\n          targetLocale = to = locales[i];\n          if (locale !== targetLocale &&\n              isTranslateFallbackWarn(fallbackWarn, key)) {\n              onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\n                  key,\n                  target: targetLocale\n              }));\n          }\n          // for vue-devtools timeline event\n          if (locale !== targetLocale) {\n              const emitter = context.__v_emitter;\n              if (emitter) {\n                  emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n                      type,\n                      key,\n                      from,\n                      to,\n                      groupId: `${type}:${key}`\n                  });\n              }\n          }\n          numberFormat =\n              numberFormats[targetLocale] || {};\n          format = numberFormat[key];\n          if (isPlainObject(format))\n              break;\n          handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n          from = to;\n      }\n      // checking format and target locale\n      if (!isPlainObject(format) || !isString(targetLocale)) {\n          return unresolving ? NOT_REOSLVED : key;\n      }\n      let id = `${targetLocale}__${key}`;\n      if (!isEmptyObject(overrides)) {\n          id = `${id}__${JSON.stringify(overrides)}`;\n      }\n      let formatter = __numberFormatters.get(id);\n      if (!formatter) {\n          formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\n          __numberFormatters.set(id, formatter);\n      }\n      return !part ? formatter.format(value) : formatter.formatToParts(value);\n  }\n  /** @internal */\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, arg2, arg3, arg4] = args;\n      const options = create();\n      let overrides = create();\n      if (!isNumber(arg1)) {\n          throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n      }\n      const value = arg1;\n      if (isString(arg2)) {\n          options.key = arg2;\n      }\n      else if (isPlainObject(arg2)) {\n          Object.keys(arg2).forEach(key => {\n              if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\n                  overrides[key] = arg2[key];\n              }\n              else {\n                  options[key] = arg2[key];\n              }\n          });\n      }\n      if (isString(arg3)) {\n          options.locale = arg3;\n      }\n      else if (isPlainObject(arg3)) {\n          overrides = arg3;\n      }\n      if (isPlainObject(arg4)) {\n          overrides = arg4;\n      }\n      return [options.key || '', value, options, overrides];\n  }\n  /** @internal */\n  function clearNumberFormat(ctx, locale, format) {\n      const context = ctx;\n      for (const key in format) {\n          const id = `${locale}__${key}`;\n          if (!context.__numberFormatters.has(id)) {\n              continue;\n          }\n          context.__numberFormatters.delete(id);\n      }\n  }\n\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 = '9.14.5';\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 code$1 = CoreWarnCodes.__EXTEND_POINT__;\n  const inc$1 = incrementer(code$1);\n  const I18nWarnCodes = {\n      FALLBACK_TO_ROOT: code$1, // 9\n      NOT_SUPPORTED_PRESERVE: inc$1(), // 10\n      NOT_SUPPORTED_FORMATTER: inc$1(), // 11\n      NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(), // 12\n      NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(), // 13\n      COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(), // 14\n      NOT_FOUND_PARENT_SCOPE: inc$1(), // 15\n      IGNORE_OBJ_FLATTEN: inc$1(), // 16\n      NOTICE_DROP_ALLOW_COMPOSITION: inc$1(), // 17\n      NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG: inc$1() // 18\n  };\n  const warnMessages = {\n      [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\n      [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\n      [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\n      [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\n      [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\n      [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\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      [I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION]: `'allowComposition' option will be dropped in the next major version. For more information, please see 👉 https://tinyurl.com/2p97mcze`,\n      [I18nWarnCodes.NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG]: `'translateExistCompatible' option will be dropped in the next major version.`\n  };\n  function getWarnMessage(code, ...args) {\n      return format$1(warnMessages[code], ...args);\n  }\n\n  const code = CoreErrorCodes.__EXTEND_POINT__;\n  const inc = incrementer(code);\n  const I18nErrorCodes = {\n      // composer module errors\n      UNEXPECTED_RETURN_TYPE: code, // 24\n      // legacy module errors\n      INVALID_ARGUMENT: inc(), // 25\n      // i18n module errors\n      MUST_BE_CALL_SETUP_TOP: inc(), // 26\n      NOT_INSTALLED: inc(), // 27\n      NOT_AVAILABLE_IN_LEGACY_MODE: inc(), // 28\n      // directive module errors\n      REQUIRED_VALUE: inc(), // 29\n      INVALID_VALUE: inc(), // 30\n      // vue-devtools errors\n      CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(), // 31\n      NOT_INSTALLED_WITH_PROVIDE: inc(), // 32\n      // unexpected error\n      UNEXPECTED_ERROR: inc(), // 33\n      // not compatible legacy vue-i18n constructor\n      NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(), // 34\n      // bridge support vue 2.x only\n      BRIDGE_SUPPORT_VUE_2_ONLY: inc(), // 35\n      // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\n      MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(), // 36\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: inc(), // 37\n      // for enhancement\n      __EXTEND_POINT__: inc() // 38\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.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\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.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\n      [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\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  const __VUE_I18N_BRIDGE__ =  '__VUE_I18N_BRIDGE__';\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  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  function getComponentOptions(instance) {\n      return instance.type ;\n  }\n  function adjustI18nResources(gl, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\n  ) {\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  }\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, vue.getCurrentInstance() || undefined, type);\n      });\n  }\n  // for Intlify DevTools\n  /* #__NO_SIDE_EFFECTS__ */\n  const getMetaInfo = () => {\n      const instance = vue.getCurrentInstance();\n      let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\n      return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\n          ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\n          : null;\n  };\n  /**\n   * Create composer interface factory\n   *\n   * @internal\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n  function createComposer(options = {}, VueI18nLegacy) {\n      const { __root, __injectWithOption } = options;\n      const _isGlobal = __root === undefined;\n      const flatJson = options.flatJson;\n      const _ref = inBrowser ? vue.ref : vue.shallowRef;\n      const translateExistCompatible = !!options.translateExistCompatible;\n      {\n          if (translateExistCompatible && !false) {\n              warnOnce(getWarnMessage(I18nWarnCodes.NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG));\n          }\n      }\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              _locale.value = val;\n              _context.locale = _locale.value;\n          }\n      });\n      // fallbackLocale\n      const fallbackLocale = vue.computed({\n          get: () => _fallbackLocale.value,\n          set: val => {\n              _fallbackLocale.value = val;\n              _context.fallbackLocale = _fallbackLocale.value;\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 // eslint-disable-line @typescript-eslint/no-explicit-any\n      ) {\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\" /* VueDevToolsTimelineEvents.FALBACK */, {\n                              type: warnType,\n                              key,\n                              to: 'global',\n                              groupId: `${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));\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));\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', \n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          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', \n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          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', \n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          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              const message = getLocaleMessage(targetLocale);\n              const resolved = _context.messageResolver(message, key);\n              return !translateExistCompatible\n                  ? isMessageAST(resolved) ||\n                      isMessageFunction(resolved) ||\n                      isString(resolved)\n                  : resolved != null;\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  /* 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      if (options.formatter) {\n          warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n      }\n      if (options.preserveDirectiveContent) {\n          warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n      }\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      const translateExistCompatible = options\n          .translateExistCompatible;\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          translateExistCompatible,\n          __i18n,\n          __root,\n          __injectWithOption\n      };\n  }\n  /**\n   * create VueI18n interface factory\n   *\n   * @internal\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n  function createVueI18n(options = {}, VueI18nLegacy) {\n      {\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              // formatter\n              get formatter() {\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n                  // dummy\n                  return {\n                      interpolate() {\n                          return [];\n                      }\n                  };\n              },\n              set formatter(val) {\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\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              // preserveDirectiveContent\n              get preserveDirectiveContent() {\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n                  return true;\n              },\n              set preserveDirectiveContent(val) {\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n              },\n              // pluralizationRules\n              get pluralizationRules() {\n                  return composer.pluralRules || {};\n              },\n              // for internal\n              __composer: composer,\n              // t\n              t(...args) {\n                  const [arg1, arg2, arg3] = args;\n                  const options = {};\n                  let list = null;\n                  let named = null;\n                  if (!isString(arg1)) {\n                      throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n                  }\n                  const key = arg1;\n                  if (isString(arg2)) {\n                      options.locale = arg2;\n                  }\n                  else if (isArray(arg2)) {\n                      list = arg2;\n                  }\n                  else if (isPlainObject(arg2)) {\n                      named = arg2;\n                  }\n                  if (isArray(arg3)) {\n                      list = arg3;\n                  }\n                  else if (isPlainObject(arg3)) {\n                      named = arg3;\n                  }\n                  // return composer.t(key, (list || named || {}) as any, options)\n                  return Reflect.apply(composer.t, composer, [\n                      key,\n                      (list || named || {}),\n                      options\n                  ]);\n              },\n              rt(...args) {\n                  return Reflect.apply(composer.rt, composer, [...args]);\n              },\n              // tc\n              tc(...args) {\n                  const [arg1, arg2, arg3] = args;\n                  const options = { plural: 1 };\n                  let list = null;\n                  let named = null;\n                  if (!isString(arg1)) {\n                      throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n                  }\n                  const key = arg1;\n                  if (isString(arg2)) {\n                      options.locale = arg2;\n                  }\n                  else if (isNumber(arg2)) {\n                      options.plural = arg2;\n                  }\n                  else if (isArray(arg2)) {\n                      list = arg2;\n                  }\n                  else if (isPlainObject(arg2)) {\n                      named = arg2;\n                  }\n                  if (isString(arg3)) {\n                      options.locale = arg3;\n                  }\n                  else if (isArray(arg3)) {\n                      list = arg3;\n                  }\n                  else if (isPlainObject(arg3)) {\n                      named = arg3;\n                  }\n                  // return composer.t(key, (list || named || {}) as any, options)\n                  return Reflect.apply(composer.t, composer, [\n                      key,\n                      (list || named || {}),\n                      options\n                  ]);\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              // getChoiceIndex\n              // eslint-disable-next-line @typescript-eslint/no-unused-vars\n              getChoiceIndex(choice, choicesLength) {\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\n                  return -1;\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  }\n  /* eslint-enable @typescript-eslint/no-explicit-any */\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      }\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(tag) {\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              // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 keys = Object.keys(slots).filter(key => key !== '_');\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              const children = i18n[TranslateVNodeSymbol](props.keypath, arg, options);\n              const assignedAttrs = assign(create(), attrs);\n              const tag = isString(props.tag) || isObject(props.tag)\n                  ? props.tag\n                  : getFragmentableTag();\n              return vue.h(tag, assignedAttrs, children);\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 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          const assignedAttrs = assign(create(), attrs);\n          const tag = isString(props.tag) || isObject(props.tag)\n              ? props.tag\n              : getFragmentableTag();\n          return vue.h(tag, assignedAttrs, children);\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  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  function getComposer$2(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  function vTDirective(i18n) {\n      const _process = (binding) => {\n          const { instance, modifiers, value } = binding;\n          /* istanbul ignore if */\n          if (!instance || !instance.$) {\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n          }\n          const composer = getComposer$2(i18n, instance.$);\n          if (modifiers.preserve) {\n              warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\n          }\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 && i18n.global === composer) {\n              // global scope only\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 useI18nComponentName = !!pluginOptions.useI18nComponentName;\n      const globalInstall = isBoolean(pluginOptions.globalInstall)\n          ? pluginOptions.globalInstall\n          : true;\n      if (globalInstall && useI18nComponentName) {\n          warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\n              name: Translation.name\n          }));\n      }\n      if (globalInstall) {\n          [!useI18nComponentName ? Translation.name : 'i18n', '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  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 VueDevToolsLabels = {\n      [\"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */]: 'Vue I18n devtools',\n      [\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'I18n Resources',\n      [\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]: 'Vue I18n'\n  };\n  const VueDevToolsPlaceholders = {\n      [\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'Search for scopes ...'\n  };\n  const VueDevToolsTimelineColors = {\n      [\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]: 0xffcd19\n  };\n\n  const VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\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\" /* VueDevToolsIDs.PLUGIN */,\n                  label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */],\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.vnode.el &&\n                          componentInstance.vnode.el.__VUE_I18N__ &&\n                          instanceData) {\n                          if (i18n.mode === 'legacy') {\n                              // ignore global scope on legacy mode\n                              if (componentInstance.vnode.el.__VUE_I18N__ !==\n                                  i18n.global.__composer) {\n                                  inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\n                              }\n                          }\n                          else {\n                              inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\n                          }\n                      }\n                  });\n                  api.addInspector({\n                      id: \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */,\n                      label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */],\n                      icon: 'language',\n                      treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]\n                  });\n                  api.on.getInspectorTree(payload => {\n                      if (payload.app === app &&\n                          payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_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\" /* VueDevToolsIDs.CUSTOM_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\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n                          editScope(payload, i18n);\n                      }\n                  });\n                  api.addTimelineLayer({\n                      id: \"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */,\n                      label: VueDevToolsLabels[\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */],\n                      color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]\n                  });\n                  resolve(true);\n              });\n          }\n          catch (e) {\n              console.error(e);\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.vnode.el && instance.vnode.el.__VUE_I18N__) {\n          // add custom tags local scope only\n          if (instance.vnode.el.__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$1(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$1(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\" /* VueDevToolsIDs.TIMELINE */,\n              event: {\n                  title: event,\n                  groupId,\n                  time: Date.now(),\n                  meta: {},\n                  data: payload || {},\n                  logType: event === \"compile-error\" /* VueDevToolsTimelineEvents.COMPILE_ERROR */\n                      ? 'error'\n                      : event === \"fallback\" /* VueDevToolsTimelineEvents.FALBACK */ ||\n                          event === \"missing\" /* VueDevToolsTimelineEvents.MISSING */\n                          ? 'warning'\n                          : 'default'\n              }\n          });\n      }\n  }\n  function editScope(payload, i18n) {\n      const composer = getComposer$1(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  /**\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 = vue.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.$tc = (...args) => this.$i18n.tc(...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.$el &&\n                  this.$i18n) {\n                  const _vueI18n = this.$i18n;\n                  this.$el.__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 = vue.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 (this.$el &&\n                  this.$el.__VUE_I18N__) {\n                  if (this.__v_emitter) {\n                      this.__v_emitter.off('*', addTimelineEvent);\n                      delete this.__v_emitter;\n                  }\n                  if (this.$i18n) {\n                      _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\n                      delete this.$el.__VUE_I18N__;\n                  }\n              }\n              delete this.$t;\n              delete this.$rt;\n              delete this.$tc;\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  /**\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, @typescript-eslint/explicit-module-boundary-types\n  function createI18n(options = {}, VueI18nLegacy) {\n      // prettier-ignore\n      const __legacyMode = isBoolean(options.legacy)\n              ? options.legacy\n              : true;\n      // prettier-ignore\n      const __globalInjection = isBoolean(options.globalInjection)\n          ? options.globalInjection\n          : true;\n      // prettier-ignore\n      const __allowComposition = __legacyMode\n              ? !!options.allowComposition\n              : true;\n      const __instances = new Map();\n      const [globalScope, __global] = createGlobal(options, __legacyMode);\n      const symbol = /* #__PURE__*/ makeSymbol('vue-i18n' );\n      {\n          if (__legacyMode && __allowComposition && !false) {\n              warn(getWarnMessage(I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION));\n          }\n      }\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      {\n          const i18n = {\n              // mode\n              get mode() {\n                  return __legacyMode\n                      ? 'legacy'\n                      : 'composition';\n              },\n              // allowComposition\n              get allowComposition() {\n                  return __allowComposition;\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  }\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n  function useI18n(options = {}) {\n      const instance = vue.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      {\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          if (i18n.mode === 'legacy' && !options.__useComponent) {\n              if (!i18n.allowComposition) {\n                  throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\n              }\n              return useI18nForLegacy(instance, scope, gl, options);\n          }\n      }\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      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      return composer;\n  }\n  /**\n   * Cast to VueI18n legacy compatible type\n   *\n   * @remarks\n   * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\n   *\n   * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\n   *\n   * @param i18n - An instance of {@link I18n}\n   * @returns A i18n instance which is casted to {@link VueI18n} type\n   *\n   * @VueI18nTip\n   * :new: provided by **vue-i18n-bridge only**\n   *\n   * @VueI18nGeneral\n   */\n  /* #__NO_SIDE_EFFECTS__ */\n  const castToVueI18n = (i18n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ) => {\n      if (!(__VUE_I18N_BRIDGE__ in i18n)) {\n          throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\n      }\n      return i18n;\n  };\n  function createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\n  ) {\n      const scope = vue.effectScope();\n      {\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  }\n  function getI18nInstance(instance) {\n      {\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  }\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  }\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      {\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  }\n  function setupLifeCycle(i18n, target, composer) {\n      let emitter = null;\n      {\n          vue.onMounted(() => {\n              // inject composer instance to DOM for intlify-devtools\n              if (target.vnode.el) {\n                  target.vnode.el.__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              if (target.vnode.el &&\n                  target.vnode.el.__VUE_I18N__) {\n                  emitter && emitter.off('*', addTimelineEvent);\n                  _composer[DisableEmitter] && _composer[DisableEmitter]();\n                  delete target.vnode.el.__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  }\n  function useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\n  ) {\n      const isLocalScope = scope === 'local';\n      const _composer = vue.shallowRef(null);\n      if (isLocalScope &&\n          instance.proxy &&\n          !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\n          throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\n      }\n      const _inheritLocale = isBoolean(options.inheritLocale)\n          ? options.inheritLocale\n          : !isString(options.locale);\n      const _locale = vue.ref(\n      // prettier-ignore\n      !isLocalScope || _inheritLocale\n          ? root.locale.value\n          : isString(options.locale)\n              ? options.locale\n              : DEFAULT_LOCALE);\n      const _fallbackLocale = vue.ref(\n      // prettier-ignore\n      !isLocalScope || _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 = vue.ref(getLocaleMessages(_locale.value, options));\n      // prettier-ignore\n      const _datetimeFormats = vue.ref(isPlainObject(options.datetimeFormats)\n          ? options.datetimeFormats\n          : { [_locale.value]: {} });\n      // prettier-ignore\n      const _numberFormats = vue.ref(isPlainObject(options.numberFormats)\n          ? options.numberFormats\n          : { [_locale.value]: {} });\n      // prettier-ignore\n      const _missingWarn = isLocalScope\n          ? root.missingWarn\n          : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n              ? options.missingWarn\n              : true;\n      // prettier-ignore\n      const _fallbackWarn = isLocalScope\n          ? root.fallbackWarn\n          : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n              ? options.fallbackWarn\n              : true;\n      // prettier-ignore\n      const _fallbackRoot = isLocalScope\n          ? root.fallbackRoot\n          : isBoolean(options.fallbackRoot)\n              ? options.fallbackRoot\n              : true;\n      // configure fall back to root\n      const _fallbackFormat = !!options.fallbackFormat;\n      // runtime missing\n      const _missing = isFunction(options.missing) ? options.missing : null;\n      // postTranslation handler\n      const _postTranslation = isFunction(options.postTranslation)\n          ? options.postTranslation\n          : null;\n      // prettier-ignore\n      const _warnHtmlMessage = isLocalScope\n          ? root.warnHtmlMessage\n          : isBoolean(options.warnHtmlMessage)\n              ? options.warnHtmlMessage\n              : true;\n      const _escapeParameter = !!options.escapeParameter;\n      // prettier-ignore\n      const _modifiers = isLocalScope\n          ? root.modifiers\n          : isPlainObject(options.modifiers)\n              ? options.modifiers\n              : {};\n      // pluralRules\n      const _pluralRules = options.pluralRules || (isLocalScope && root.pluralRules);\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      // locale\n      const locale = vue.computed({\n          get: () => {\n              return _composer.value ? _composer.value.locale.value : _locale.value;\n          },\n          set: val => {\n              if (_composer.value) {\n                  _composer.value.locale.value = val;\n              }\n              _locale.value = val;\n          }\n      });\n      // fallbackLocale\n      const fallbackLocale = vue.computed({\n          get: () => {\n              return _composer.value\n                  ? _composer.value.fallbackLocale.value\n                  : _fallbackLocale.value;\n          },\n          set: val => {\n              if (_composer.value) {\n                  _composer.value.fallbackLocale.value = val;\n              }\n              _fallbackLocale.value = val;\n          }\n      });\n      // messages\n      const messages = vue.computed(() => {\n          if (_composer.value) {\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\n              return _composer.value.messages.value;\n          }\n          else {\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\n              return _messages.value;\n          }\n      });\n      const datetimeFormats = vue.computed(() => _datetimeFormats.value);\n      const numberFormats = vue.computed(() => _numberFormats.value);\n      function getPostTranslationHandler() {\n          return _composer.value\n              ? _composer.value.getPostTranslationHandler()\n              : _postTranslation;\n      }\n      function setPostTranslationHandler(handler) {\n          if (_composer.value) {\n              _composer.value.setPostTranslationHandler(handler);\n          }\n      }\n      function getMissingHandler() {\n          return _composer.value ? _composer.value.getMissingHandler() : _missing;\n      }\n      function setMissingHandler(handler) {\n          if (_composer.value) {\n              _composer.value.setMissingHandler(handler);\n          }\n      }\n      function warpWithDeps(fn) {\n          trackReactivityValues();\n          return fn();\n      }\n      function t(...args) {\n          return _composer.value\n              ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\n              : warpWithDeps(() => '');\n      }\n      function rt(...args) {\n          return _composer.value\n              ? Reflect.apply(_composer.value.rt, null, [...args])\n              : '';\n      }\n      function d(...args) {\n          return _composer.value\n              ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\n              : warpWithDeps(() => '');\n      }\n      function n(...args) {\n          return _composer.value\n              ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\n              : warpWithDeps(() => '');\n      }\n      function tm(key) {\n          return _composer.value ? _composer.value.tm(key) : {};\n      }\n      function te(key, locale) {\n          return _composer.value ? _composer.value.te(key, locale) : false;\n      }\n      function getLocaleMessage(locale) {\n          return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\n      }\n      function setLocaleMessage(locale, message) {\n          if (_composer.value) {\n              _composer.value.setLocaleMessage(locale, message);\n              _messages.value[locale] = message;\n          }\n      }\n      function mergeLocaleMessage(locale, message) {\n          if (_composer.value) {\n              _composer.value.mergeLocaleMessage(locale, message);\n          }\n      }\n      function getDateTimeFormat(locale) {\n          return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\n      }\n      function setDateTimeFormat(locale, format) {\n          if (_composer.value) {\n              _composer.value.setDateTimeFormat(locale, format);\n              _datetimeFormats.value[locale] = format;\n          }\n      }\n      function mergeDateTimeFormat(locale, format) {\n          if (_composer.value) {\n              _composer.value.mergeDateTimeFormat(locale, format);\n          }\n      }\n      function getNumberFormat(locale) {\n          return _composer.value ? _composer.value.getNumberFormat(locale) : {};\n      }\n      function setNumberFormat(locale, format) {\n          if (_composer.value) {\n              _composer.value.setNumberFormat(locale, format);\n              _numberFormats.value[locale] = format;\n          }\n      }\n      function mergeNumberFormat(locale, format) {\n          if (_composer.value) {\n              _composer.value.mergeNumberFormat(locale, format);\n          }\n      }\n      const wrapper = {\n          get id() {\n              return _composer.value ? _composer.value.id : -1;\n          },\n          locale,\n          fallbackLocale,\n          messages,\n          datetimeFormats,\n          numberFormats,\n          get inheritLocale() {\n              return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\n          },\n          set inheritLocale(val) {\n              if (_composer.value) {\n                  _composer.value.inheritLocale = val;\n              }\n          },\n          get availableLocales() {\n              return _composer.value\n                  ? _composer.value.availableLocales\n                  : Object.keys(_messages.value);\n          },\n          get modifiers() {\n              return (_composer.value ? _composer.value.modifiers : _modifiers);\n          },\n          get pluralRules() {\n              return (_composer.value ? _composer.value.pluralRules : _pluralRules);\n          },\n          get isGlobal() {\n              return _composer.value ? _composer.value.isGlobal : false;\n          },\n          get missingWarn() {\n              return _composer.value ? _composer.value.missingWarn : _missingWarn;\n          },\n          set missingWarn(val) {\n              if (_composer.value) {\n                  _composer.value.missingWarn = val;\n              }\n          },\n          get fallbackWarn() {\n              return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\n          },\n          set fallbackWarn(val) {\n              if (_composer.value) {\n                  _composer.value.missingWarn = val;\n              }\n          },\n          get fallbackRoot() {\n              return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\n          },\n          set fallbackRoot(val) {\n              if (_composer.value) {\n                  _composer.value.fallbackRoot = val;\n              }\n          },\n          get fallbackFormat() {\n              return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\n          },\n          set fallbackFormat(val) {\n              if (_composer.value) {\n                  _composer.value.fallbackFormat = val;\n              }\n          },\n          get warnHtmlMessage() {\n              return _composer.value\n                  ? _composer.value.warnHtmlMessage\n                  : _warnHtmlMessage;\n          },\n          set warnHtmlMessage(val) {\n              if (_composer.value) {\n                  _composer.value.warnHtmlMessage = val;\n              }\n          },\n          get escapeParameter() {\n              return _composer.value\n                  ? _composer.value.escapeParameter\n                  : _escapeParameter;\n          },\n          set escapeParameter(val) {\n              if (_composer.value) {\n                  _composer.value.escapeParameter = val;\n              }\n          },\n          t,\n          getPostTranslationHandler,\n          setPostTranslationHandler,\n          getMissingHandler,\n          setMissingHandler,\n          rt,\n          d,\n          n,\n          tm,\n          te,\n          getLocaleMessage,\n          setLocaleMessage,\n          mergeLocaleMessage,\n          getDateTimeFormat,\n          setDateTimeFormat,\n          mergeDateTimeFormat,\n          getNumberFormat,\n          setNumberFormat,\n          mergeNumberFormat\n      };\n      function sync(composer) {\n          composer.locale.value = _locale.value;\n          composer.fallbackLocale.value = _fallbackLocale.value;\n          Object.keys(_messages.value).forEach(locale => {\n              composer.mergeLocaleMessage(locale, _messages.value[locale]);\n          });\n          Object.keys(_datetimeFormats.value).forEach(locale => {\n              composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\n          });\n          Object.keys(_numberFormats.value).forEach(locale => {\n              composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\n          });\n          composer.escapeParameter = _escapeParameter;\n          composer.fallbackFormat = _fallbackFormat;\n          composer.fallbackRoot = _fallbackRoot;\n          composer.fallbackWarn = _fallbackWarn;\n          composer.missingWarn = _missingWarn;\n          composer.warnHtmlMessage = _warnHtmlMessage;\n      }\n      vue.onBeforeMount(() => {\n          if (instance.proxy == null || instance.proxy.$i18n == null) {\n              throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\n          }\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          const composer = (_composer.value = instance.proxy.$i18n\n              .__composer);\n          if (scope === 'global') {\n              _locale.value = composer.locale.value;\n              _fallbackLocale.value = composer.fallbackLocale.value;\n              _messages.value = composer.messages.value;\n              _datetimeFormats.value = composer.datetimeFormats.value;\n              _numberFormats.value = composer.numberFormats.value;\n          }\n          else if (isLocalScope) {\n              sync(composer);\n          }\n      });\n      return wrapper;\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  // register message compiler at vue-i18n\n  {\n      registerMessageCompiler(compile);\n  }\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.castToVueI18n = castToVueI18n;\n  exports.createI18n = createI18n;\n  exports.useI18n = useI18n;\n  exports.vTDirective = vTDirective;\n\n  return exports;\n\n})({}, Vue);\n"]}