{"version":3,"sources":["jsdelivr-header.js","/npm/vue-i18n@9.3.0-beta.7/dist/vue-i18n.global.js"],"names":[],"mappings":"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","file":"/npm/vue-i18n@9.3.0-beta.7/dist/vue-i18n.global.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/vue-i18n@9.3.0-beta.7/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.3.0-beta.7\n  * (c) 2022 kazuya kawaguchi\n  * Released under the MIT License.\n  */\nvar VueI18n = (function (exports, vue) {\n  'use strict';\n\n  /**\r\n   * Original Utilities\r\n   * written by kazuya kawaguchi\r\n   */\r\n  const inBrowser = typeof window !== 'undefined';\r\n  let mark;\r\n  let measure;\r\n  {\r\n      const perf = inBrowser && window.performance;\r\n      if (perf &&\r\n          perf.mark &&\r\n          perf.measure &&\r\n          perf.clearMarks &&\r\n          perf.clearMeasures) {\r\n          mark = (tag) => perf.mark(tag);\r\n          measure = (name, startTag, endTag) => {\r\n              perf.measure(name, startTag, endTag);\r\n              perf.clearMarks(startTag);\r\n              perf.clearMarks(endTag);\r\n          };\r\n      }\r\n  }\r\n  const RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n  /* eslint-disable */\r\n  function format(message, ...args) {\r\n      if (args.length === 1 && isObject(args[0])) {\r\n          args = args[0];\r\n      }\r\n      if (!args || !args.hasOwnProperty) {\r\n          args = {};\r\n      }\r\n      return message.replace(RE_ARGS, (match, identifier) => {\r\n          return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n      });\r\n  }\r\n  const hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\n  const makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\n  const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\n  const friendlyJSONstringify = (json) => JSON.stringify(json)\r\n      .replace(/\\u2028/g, '\\\\u2028')\r\n      .replace(/\\u2029/g, '\\\\u2029')\r\n      .replace(/\\u0027/g, '\\\\u0027');\r\n  const isNumber = (val) => typeof val === 'number' && isFinite(val);\r\n  const isDate = (val) => toTypeString(val) === '[object Date]';\r\n  const isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\n  const isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\n  function warn(msg, err) {\r\n      if (typeof console !== 'undefined') {\r\n          console.warn(`[intlify] ` + msg);\r\n          /* istanbul ignore if */\r\n          if (err) {\r\n              console.warn(err.stack);\r\n          }\r\n      }\r\n  }\r\n  const assign = Object.assign;\r\n  let _globalThis;\r\n  const getGlobalThis = () => {\r\n      // prettier-ignore\r\n      return (_globalThis ||\r\n          (_globalThis =\r\n              typeof globalThis !== 'undefined'\r\n                  ? globalThis\r\n                  : typeof self !== 'undefined'\r\n                      ? self\r\n                      : typeof window !== 'undefined'\r\n                          ? window\r\n                          : typeof global !== 'undefined'\r\n                              ? global\r\n                              : {}));\r\n  };\r\n  function escapeHtml(rawText) {\r\n      return rawText\r\n          .replace(/</g, '&lt;')\r\n          .replace(/>/g, '&gt;')\r\n          .replace(/\"/g, '&quot;')\r\n          .replace(/'/g, '&apos;');\r\n  }\r\n  const hasOwnProperty = Object.prototype.hasOwnProperty;\r\n  function hasOwn(obj, key) {\r\n      return hasOwnProperty.call(obj, key);\r\n  }\r\n  /* eslint-enable */\r\n  /**\r\n   * Useful Utilities By Evan you\r\n   * Modified by kazuya kawaguchi\r\n   * MIT License\r\n   * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n   * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n   */\r\n  const isArray = Array.isArray;\r\n  const isFunction = (val) => typeof val === 'function';\r\n  const isString = (val) => typeof val === 'string';\r\n  const isBoolean = (val) => typeof val === 'boolean';\r\n  const isObject = (val) => // eslint-disable-line\r\n   val !== null && typeof val === 'object';\r\n  const objectToString = Object.prototype.toString;\r\n  const toTypeString = (value) => objectToString.call(value);\r\n  const isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n  // for converting list and named values to displayed strings.\r\n  const toDisplayString = (val) => {\r\n      return val == null\r\n          ? ''\r\n          : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n              ? JSON.stringify(val, null, 2)\r\n              : String(val);\r\n  };\r\n  const RANGE = 2;\r\n  function generateCodeFrame(source, start = 0, end = source.length) {\r\n      const lines = source.split(/\\r?\\n/);\r\n      let count = 0;\r\n      const res = [];\r\n      for (let i = 0; i < lines.length; i++) {\r\n          count += lines[i].length + 1;\r\n          if (count >= start) {\r\n              for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n                  if (j < 0 || j >= lines.length)\r\n                      continue;\r\n                  const line = j + 1;\r\n                  res.push(`${line}${' '.repeat(3 - String(line).length)}|  ${lines[j]}`);\r\n                  const lineLength = lines[j].length;\r\n                  if (j === i) {\r\n                      // push underline\r\n                      const pad = start - (count - lineLength) + 1;\r\n                      const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n                      res.push(`   |  ` + ' '.repeat(pad) + '^'.repeat(length));\r\n                  }\r\n                  else if (j > i) {\r\n                      if (end > count) {\r\n                          const length = Math.max(Math.min(end - count, lineLength), 1);\r\n                          res.push(`   |  ` + '^'.repeat(length));\r\n                      }\r\n                      count += lineLength + 1;\r\n                  }\r\n              }\r\n              break;\r\n          }\r\n      }\r\n      return res.join('\\n');\r\n  }\n\n  /**\r\n   * Event emitter, forked from the below:\r\n   * - original repository url: https://github.com/developit/mitt\r\n   * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n   * - author: Jason Miller (https://github.com/developit)\r\n   * - license: MIT\r\n   */\r\n  /**\r\n   * Create a event emitter\r\n   *\r\n   * @returns An event emitter\r\n   */\r\n  function createEmitter() {\r\n      const events = new Map();\r\n      const emitter = {\r\n          events,\r\n          on(event, handler) {\r\n              const handlers = events.get(event);\r\n              const added = handlers && handlers.push(handler);\r\n              if (!added) {\r\n                  events.set(event, [handler]);\r\n              }\r\n          },\r\n          off(event, handler) {\r\n              const handlers = events.get(event);\r\n              if (handlers) {\r\n                  handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n              }\r\n          },\r\n          emit(event, payload) {\r\n              (events.get(event) || [])\r\n                  .slice()\r\n                  .map(handler => handler(payload));\r\n              (events.get('*') || [])\r\n                  .slice()\r\n                  .map(handler => handler(event, payload));\r\n          }\r\n      };\r\n      return emitter;\r\n  }\n\n  const CompileErrorCodes = {\r\n      // tokenizer error codes\r\n      EXPECTED_TOKEN: 1,\r\n      INVALID_TOKEN_IN_PLACEHOLDER: 2,\r\n      UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\r\n      UNKNOWN_ESCAPE_SEQUENCE: 4,\r\n      INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\r\n      UNBALANCED_CLOSING_BRACE: 6,\r\n      UNTERMINATED_CLOSING_BRACE: 7,\r\n      EMPTY_PLACEHOLDER: 8,\r\n      NOT_ALLOW_NEST_PLACEHOLDER: 9,\r\n      INVALID_LINKED_FORMAT: 10,\r\n      // parser error codes\r\n      MUST_HAVE_MESSAGES_IN_PLURAL: 11,\r\n      UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\r\n      UNEXPECTED_EMPTY_LINKED_KEY: 13,\r\n      UNEXPECTED_LEXICAL_ANALYSIS: 14,\r\n      // Special value for higher-order compilers to pick up the last code\r\n      // to avoid collision of error codes. This should always be kept as the last\r\n      // item.\r\n      __EXTEND_POINT__: 15\r\n  };\r\n  /** @internal */\r\n  const errorMessages$2 = {\r\n      // tokenizer error messages\r\n      [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\r\n      [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\r\n      [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\r\n      [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\r\n      [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\r\n      [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\r\n      [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\r\n      [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\r\n      [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\r\n      [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\r\n      // parser error messages\r\n      [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\r\n      [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\r\n      [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\r\n      [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`\r\n  };\r\n  function createCompileError(code, loc, options = {}) {\r\n      const { domain, messages, args } = options;\r\n      const msg = format((messages || errorMessages$2)[code] || '', ...(args || []))\r\n          ;\r\n      const error = new SyntaxError(String(msg));\r\n      error.code = code;\r\n      if (loc) {\r\n          error.location = loc;\r\n      }\r\n      error.domain = domain;\r\n      return error;\r\n  }\r\n  /** @internal */\r\n  function defaultOnError(error) {\r\n      throw error;\r\n  }\n\n  function createPosition(line, column, offset) {\r\n      return { line, column, offset };\r\n  }\r\n  function createLocation(start, end, source) {\r\n      const loc = { start, end };\r\n      if (source != null) {\r\n          loc.source = source;\r\n      }\r\n      return loc;\r\n  }\n\n  const CHAR_SP = ' ';\r\n  const CHAR_CR = '\\r';\r\n  const CHAR_LF = '\\n';\r\n  const CHAR_LS = String.fromCharCode(0x2028);\r\n  const CHAR_PS = String.fromCharCode(0x2029);\r\n  function createScanner(str) {\r\n      const _buf = str;\r\n      let _index = 0;\r\n      let _line = 1;\r\n      let _column = 1;\r\n      let _peekOffset = 0;\r\n      const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n      const isLF = (index) => _buf[index] === CHAR_LF;\r\n      const isPS = (index) => _buf[index] === CHAR_PS;\r\n      const isLS = (index) => _buf[index] === CHAR_LS;\r\n      const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n      const index = () => _index;\r\n      const line = () => _line;\r\n      const column = () => _column;\r\n      const peekOffset = () => _peekOffset;\r\n      const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n      const currentChar = () => charAt(_index);\r\n      const currentPeek = () => charAt(_index + _peekOffset);\r\n      function next() {\r\n          _peekOffset = 0;\r\n          if (isLineEnd(_index)) {\r\n              _line++;\r\n              _column = 0;\r\n          }\r\n          if (isCRLF(_index)) {\r\n              _index++;\r\n          }\r\n          _index++;\r\n          _column++;\r\n          return _buf[_index];\r\n      }\r\n      function peek() {\r\n          if (isCRLF(_index + _peekOffset)) {\r\n              _peekOffset++;\r\n          }\r\n          _peekOffset++;\r\n          return _buf[_index + _peekOffset];\r\n      }\r\n      function reset() {\r\n          _index = 0;\r\n          _line = 1;\r\n          _column = 1;\r\n          _peekOffset = 0;\r\n      }\r\n      function resetPeek(offset = 0) {\r\n          _peekOffset = offset;\r\n      }\r\n      function skipToPeek() {\r\n          const target = _index + _peekOffset;\r\n          // eslint-disable-next-line no-unmodified-loop-condition\r\n          while (target !== _index) {\r\n              next();\r\n          }\r\n          _peekOffset = 0;\r\n      }\r\n      return {\r\n          index,\r\n          line,\r\n          column,\r\n          peekOffset,\r\n          charAt,\r\n          currentChar,\r\n          currentPeek,\r\n          next,\r\n          peek,\r\n          reset,\r\n          resetPeek,\r\n          skipToPeek\r\n      };\r\n  }\n\n  const EOF = undefined;\r\n  const LITERAL_DELIMITER = \"'\";\r\n  const ERROR_DOMAIN$1 = 'tokenizer';\r\n  function createTokenizer(source, options = {}) {\r\n      const location = options.location !== false;\r\n      const _scnr = createScanner(source);\r\n      const currentOffset = () => _scnr.index();\r\n      const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n      const _initLoc = currentPosition();\r\n      const _initOffset = currentOffset();\r\n      const _context = {\r\n          currentType: 14 /* EOF */,\r\n          offset: _initOffset,\r\n          startLoc: _initLoc,\r\n          endLoc: _initLoc,\r\n          lastType: 14 /* EOF */,\r\n          lastOffset: _initOffset,\r\n          lastStartLoc: _initLoc,\r\n          lastEndLoc: _initLoc,\r\n          braceNest: 0,\r\n          inLinked: false,\r\n          text: ''\r\n      };\r\n      const context = () => _context;\r\n      const { onError } = options;\r\n      function emitError(code, pos, offset, ...args) {\r\n          const ctx = context();\r\n          pos.column += offset;\r\n          pos.offset += offset;\r\n          if (onError) {\r\n              const loc = createLocation(ctx.startLoc, pos);\r\n              const err = createCompileError(code, loc, {\r\n                  domain: ERROR_DOMAIN$1,\r\n                  args\r\n              });\r\n              onError(err);\r\n          }\r\n      }\r\n      function getToken(context, type, value) {\r\n          context.endLoc = currentPosition();\r\n          context.currentType = type;\r\n          const token = { type };\r\n          if (location) {\r\n              token.loc = createLocation(context.startLoc, context.endLoc);\r\n          }\r\n          if (value != null) {\r\n              token.value = value;\r\n          }\r\n          return token;\r\n      }\r\n      const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n      function eat(scnr, ch) {\r\n          if (scnr.currentChar() === ch) {\r\n              scnr.next();\r\n              return ch;\r\n          }\r\n          else {\r\n              emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n              return '';\r\n          }\r\n      }\r\n      function peekSpaces(scnr) {\r\n          let buf = '';\r\n          while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n              buf += scnr.currentPeek();\r\n              scnr.peek();\r\n          }\r\n          return buf;\r\n      }\r\n      function skipSpaces(scnr) {\r\n          const buf = peekSpaces(scnr);\r\n          scnr.skipToPeek();\r\n          return buf;\r\n      }\r\n      function isIdentifierStart(ch) {\r\n          if (ch === EOF) {\r\n              return false;\r\n          }\r\n          const cc = ch.charCodeAt(0);\r\n          return ((cc >= 97 && cc <= 122) || // a-z\r\n              (cc >= 65 && cc <= 90) || // A-Z\r\n              cc === 95 // _\r\n          );\r\n      }\r\n      function isNumberStart(ch) {\r\n          if (ch === EOF) {\r\n              return false;\r\n          }\r\n          const cc = ch.charCodeAt(0);\r\n          return cc >= 48 && cc <= 57; // 0-9\r\n      }\r\n      function isNamedIdentifierStart(scnr, context) {\r\n          const { currentType } = context;\r\n          if (currentType !== 2 /* BraceLeft */) {\r\n              return false;\r\n          }\r\n          peekSpaces(scnr);\r\n          const ret = isIdentifierStart(scnr.currentPeek());\r\n          scnr.resetPeek();\r\n          return ret;\r\n      }\r\n      function isListIdentifierStart(scnr, context) {\r\n          const { currentType } = context;\r\n          if (currentType !== 2 /* BraceLeft */) {\r\n              return false;\r\n          }\r\n          peekSpaces(scnr);\r\n          const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n          const ret = isNumberStart(ch);\r\n          scnr.resetPeek();\r\n          return ret;\r\n      }\r\n      function isLiteralStart(scnr, context) {\r\n          const { currentType } = context;\r\n          if (currentType !== 2 /* BraceLeft */) {\r\n              return false;\r\n          }\r\n          peekSpaces(scnr);\r\n          const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n          scnr.resetPeek();\r\n          return ret;\r\n      }\r\n      function isLinkedDotStart(scnr, context) {\r\n          const { currentType } = context;\r\n          if (currentType !== 8 /* LinkedAlias */) {\r\n              return false;\r\n          }\r\n          peekSpaces(scnr);\r\n          const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n          scnr.resetPeek();\r\n          return ret;\r\n      }\r\n      function isLinkedModifierStart(scnr, context) {\r\n          const { currentType } = context;\r\n          if (currentType !== 9 /* LinkedDot */) {\r\n              return false;\r\n          }\r\n          peekSpaces(scnr);\r\n          const ret = isIdentifierStart(scnr.currentPeek());\r\n          scnr.resetPeek();\r\n          return ret;\r\n      }\r\n      function isLinkedDelimiterStart(scnr, context) {\r\n          const { currentType } = context;\r\n          if (!(currentType === 8 /* LinkedAlias */ ||\r\n              currentType === 12 /* LinkedModifier */)) {\r\n              return false;\r\n          }\r\n          peekSpaces(scnr);\r\n          const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n          scnr.resetPeek();\r\n          return ret;\r\n      }\r\n      function isLinkedReferStart(scnr, context) {\r\n          const { currentType } = context;\r\n          if (currentType !== 10 /* LinkedDelimiter */) {\r\n              return false;\r\n          }\r\n          const fn = () => {\r\n              const ch = scnr.currentPeek();\r\n              if (ch === \"{\" /* BraceLeft */) {\r\n                  return isIdentifierStart(scnr.peek());\r\n              }\r\n              else if (ch === \"@\" /* LinkedAlias */ ||\r\n                  ch === \"%\" /* Modulo */ ||\r\n                  ch === \"|\" /* Pipe */ ||\r\n                  ch === \":\" /* LinkedDelimiter */ ||\r\n                  ch === \".\" /* LinkedDot */ ||\r\n                  ch === CHAR_SP ||\r\n                  !ch) {\r\n                  return false;\r\n              }\r\n              else if (ch === CHAR_LF) {\r\n                  scnr.peek();\r\n                  return fn();\r\n              }\r\n              else {\r\n                  // other characters\r\n                  return isIdentifierStart(ch);\r\n              }\r\n          };\r\n          const ret = fn();\r\n          scnr.resetPeek();\r\n          return ret;\r\n      }\r\n      function isPluralStart(scnr) {\r\n          peekSpaces(scnr);\r\n          const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n          scnr.resetPeek();\r\n          return ret;\r\n      }\r\n      function detectModuloStart(scnr) {\r\n          const spaces = peekSpaces(scnr);\r\n          const ret = scnr.currentPeek() === \"%\" /* Modulo */ &&\r\n              scnr.peek() === \"{\" /* BraceLeft */;\r\n          scnr.resetPeek();\r\n          return {\r\n              isModulo: ret,\r\n              hasSpace: spaces.length > 0\r\n          };\r\n      }\r\n      function isTextStart(scnr, reset = true) {\r\n          const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n              const ch = scnr.currentPeek();\r\n              if (ch === \"{\" /* BraceLeft */) {\r\n                  return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n              }\r\n              else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n                  return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n              }\r\n              else if (ch === \"%\" /* Modulo */) {\r\n                  scnr.peek();\r\n                  return fn(hasSpace, \"%\" /* Modulo */, true);\r\n              }\r\n              else if (ch === \"|\" /* Pipe */) {\r\n                  return prev === \"%\" /* Modulo */ || detectModulo\r\n                      ? true\r\n                      : !(prev === CHAR_SP || prev === CHAR_LF);\r\n              }\r\n              else if (ch === CHAR_SP) {\r\n                  scnr.peek();\r\n                  return fn(true, CHAR_SP, detectModulo);\r\n              }\r\n              else if (ch === CHAR_LF) {\r\n                  scnr.peek();\r\n                  return fn(true, CHAR_LF, detectModulo);\r\n              }\r\n              else {\r\n                  return true;\r\n              }\r\n          };\r\n          const ret = fn();\r\n          reset && scnr.resetPeek();\r\n          return ret;\r\n      }\r\n      function takeChar(scnr, fn) {\r\n          const ch = scnr.currentChar();\r\n          if (ch === EOF) {\r\n              return EOF;\r\n          }\r\n          if (fn(ch)) {\r\n              scnr.next();\r\n              return ch;\r\n          }\r\n          return null;\r\n      }\r\n      function takeIdentifierChar(scnr) {\r\n          const closure = (ch) => {\r\n              const cc = ch.charCodeAt(0);\r\n              return ((cc >= 97 && cc <= 122) || // a-z\r\n                  (cc >= 65 && cc <= 90) || // A-Z\r\n                  (cc >= 48 && cc <= 57) || // 0-9\r\n                  cc === 95 || // _\r\n                  cc === 36 // $\r\n              );\r\n          };\r\n          return takeChar(scnr, closure);\r\n      }\r\n      function takeDigit(scnr) {\r\n          const closure = (ch) => {\r\n              const cc = ch.charCodeAt(0);\r\n              return cc >= 48 && cc <= 57; // 0-9\r\n          };\r\n          return takeChar(scnr, closure);\r\n      }\r\n      function takeHexDigit(scnr) {\r\n          const closure = (ch) => {\r\n              const cc = ch.charCodeAt(0);\r\n              return ((cc >= 48 && cc <= 57) || // 0-9\r\n                  (cc >= 65 && cc <= 70) || // A-F\r\n                  (cc >= 97 && cc <= 102)); // a-f\r\n          };\r\n          return takeChar(scnr, closure);\r\n      }\r\n      function getDigits(scnr) {\r\n          let ch = '';\r\n          let num = '';\r\n          while ((ch = takeDigit(scnr))) {\r\n              num += ch;\r\n          }\r\n          return num;\r\n      }\r\n      function readModulo(scnr) {\r\n          skipSpaces(scnr);\r\n          const ch = scnr.currentChar();\r\n          if (ch !== \"%\" /* Modulo */) {\r\n              emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n          }\r\n          scnr.next();\r\n          return \"%\" /* Modulo */;\r\n      }\r\n      function readText(scnr) {\r\n          let buf = '';\r\n          while (true) {\r\n              const ch = scnr.currentChar();\r\n              if (ch === \"{\" /* BraceLeft */ ||\r\n                  ch === \"}\" /* BraceRight */ ||\r\n                  ch === \"@\" /* LinkedAlias */ ||\r\n                  ch === \"|\" /* Pipe */ ||\r\n                  !ch) {\r\n                  break;\r\n              }\r\n              else if (ch === \"%\" /* Modulo */) {\r\n                  if (isTextStart(scnr)) {\r\n                      buf += ch;\r\n                      scnr.next();\r\n                  }\r\n                  else {\r\n                      break;\r\n                  }\r\n              }\r\n              else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n                  if (isTextStart(scnr)) {\r\n                      buf += ch;\r\n                      scnr.next();\r\n                  }\r\n                  else if (isPluralStart(scnr)) {\r\n                      break;\r\n                  }\r\n                  else {\r\n                      buf += ch;\r\n                      scnr.next();\r\n                  }\r\n              }\r\n              else {\r\n                  buf += ch;\r\n                  scnr.next();\r\n              }\r\n          }\r\n          return buf;\r\n      }\r\n      function readNamedIdentifier(scnr) {\r\n          skipSpaces(scnr);\r\n          let ch = '';\r\n          let name = '';\r\n          while ((ch = takeIdentifierChar(scnr))) {\r\n              name += ch;\r\n          }\r\n          if (scnr.currentChar() === EOF) {\r\n              emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n          }\r\n          return name;\r\n      }\r\n      function readListIdentifier(scnr) {\r\n          skipSpaces(scnr);\r\n          let value = '';\r\n          if (scnr.currentChar() === '-') {\r\n              scnr.next();\r\n              value += `-${getDigits(scnr)}`;\r\n          }\r\n          else {\r\n              value += getDigits(scnr);\r\n          }\r\n          if (scnr.currentChar() === EOF) {\r\n              emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n          }\r\n          return value;\r\n      }\r\n      function readLiteral(scnr) {\r\n          skipSpaces(scnr);\r\n          eat(scnr, `\\'`);\r\n          let ch = '';\r\n          let literal = '';\r\n          const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n          while ((ch = takeChar(scnr, fn))) {\r\n              if (ch === '\\\\') {\r\n                  literal += readEscapeSequence(scnr);\r\n              }\r\n              else {\r\n                  literal += ch;\r\n              }\r\n          }\r\n          const current = scnr.currentChar();\r\n          if (current === CHAR_LF || current === EOF) {\r\n              emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\r\n              // TODO: Is it correct really?\r\n              if (current === CHAR_LF) {\r\n                  scnr.next();\r\n                  eat(scnr, `\\'`);\r\n              }\r\n              return literal;\r\n          }\r\n          eat(scnr, `\\'`);\r\n          return literal;\r\n      }\r\n      function readEscapeSequence(scnr) {\r\n          const ch = scnr.currentChar();\r\n          switch (ch) {\r\n              case '\\\\':\r\n              case `\\'`:\r\n                  scnr.next();\r\n                  return `\\\\${ch}`;\r\n              case 'u':\r\n                  return readUnicodeEscapeSequence(scnr, ch, 4);\r\n              case 'U':\r\n                  return readUnicodeEscapeSequence(scnr, ch, 6);\r\n              default:\r\n                  emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\r\n                  return '';\r\n          }\r\n      }\r\n      function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n          eat(scnr, unicode);\r\n          let sequence = '';\r\n          for (let i = 0; i < digits; i++) {\r\n              const ch = takeHexDigit(scnr);\r\n              if (!ch) {\r\n                  emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n                  break;\r\n              }\r\n              sequence += ch;\r\n          }\r\n          return `\\\\${unicode}${sequence}`;\r\n      }\r\n      function readInvalidIdentifier(scnr) {\r\n          skipSpaces(scnr);\r\n          let ch = '';\r\n          let identifiers = '';\r\n          const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n              ch !== \"}\" /* BraceRight */ &&\r\n              ch !== CHAR_SP &&\r\n              ch !== CHAR_LF;\r\n          while ((ch = takeChar(scnr, closure))) {\r\n              identifiers += ch;\r\n          }\r\n          return identifiers;\r\n      }\r\n      function readLinkedModifier(scnr) {\r\n          let ch = '';\r\n          let name = '';\r\n          while ((ch = takeIdentifierChar(scnr))) {\r\n              name += ch;\r\n          }\r\n          return name;\r\n      }\r\n      function readLinkedRefer(scnr) {\r\n          const fn = (detect = false, buf) => {\r\n              const ch = scnr.currentChar();\r\n              if (ch === \"{\" /* BraceLeft */ ||\r\n                  ch === \"%\" /* Modulo */ ||\r\n                  ch === \"@\" /* LinkedAlias */ ||\r\n                  ch === \"|\" /* Pipe */ ||\r\n                  !ch) {\r\n                  return buf;\r\n              }\r\n              else if (ch === CHAR_SP) {\r\n                  return buf;\r\n              }\r\n              else if (ch === CHAR_LF) {\r\n                  buf += ch;\r\n                  scnr.next();\r\n                  return fn(detect, buf);\r\n              }\r\n              else {\r\n                  buf += ch;\r\n                  scnr.next();\r\n                  return fn(true, buf);\r\n              }\r\n          };\r\n          return fn(false, '');\r\n      }\r\n      function readPlural(scnr) {\r\n          skipSpaces(scnr);\r\n          const plural = eat(scnr, \"|\" /* Pipe */);\r\n          skipSpaces(scnr);\r\n          return plural;\r\n      }\r\n      // TODO: We need refactoring of token parsing ...\r\n      function readTokenInPlaceholder(scnr, context) {\r\n          let token = null;\r\n          const ch = scnr.currentChar();\r\n          switch (ch) {\r\n              case \"{\" /* BraceLeft */:\r\n                  if (context.braceNest >= 1) {\r\n                      emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\r\n                  }\r\n                  scnr.next();\r\n                  token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n                  skipSpaces(scnr);\r\n                  context.braceNest++;\r\n                  return token;\r\n              case \"}\" /* BraceRight */:\r\n                  if (context.braceNest > 0 &&\r\n                      context.currentType === 2 /* BraceLeft */) {\r\n                      emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\r\n                  }\r\n                  scnr.next();\r\n                  token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n                  context.braceNest--;\r\n                  context.braceNest > 0 && skipSpaces(scnr);\r\n                  if (context.inLinked && context.braceNest === 0) {\r\n                      context.inLinked = false;\r\n                  }\r\n                  return token;\r\n              case \"@\" /* LinkedAlias */:\r\n                  if (context.braceNest > 0) {\r\n                      emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n                  }\r\n                  token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n                  context.braceNest = 0;\r\n                  return token;\r\n              default:\r\n                  let validNamedIdentifier = true;\r\n                  let validListIdentifier = true;\r\n                  let validLiteral = true;\r\n                  if (isPluralStart(scnr)) {\r\n                      if (context.braceNest > 0) {\r\n                          emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n                      }\r\n                      token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n                      // reset\r\n                      context.braceNest = 0;\r\n                      context.inLinked = false;\r\n                      return token;\r\n                  }\r\n                  if (context.braceNest > 0 &&\r\n                      (context.currentType === 5 /* Named */ ||\r\n                          context.currentType === 6 /* List */ ||\r\n                          context.currentType === 7 /* Literal */)) {\r\n                      emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n                      context.braceNest = 0;\r\n                      return readToken(scnr, context);\r\n                  }\r\n                  if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n                      token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n                      skipSpaces(scnr);\r\n                      return token;\r\n                  }\r\n                  if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n                      token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n                      skipSpaces(scnr);\r\n                      return token;\r\n                  }\r\n                  if ((validLiteral = isLiteralStart(scnr, context))) {\r\n                      token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n                      skipSpaces(scnr);\r\n                      return token;\r\n                  }\r\n                  if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n                      // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n                      token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n                      emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\r\n                      skipSpaces(scnr);\r\n                      return token;\r\n                  }\r\n                  break;\r\n          }\r\n          return token;\r\n      }\r\n      // TODO: We need refactoring of token parsing ...\r\n      function readTokenInLinked(scnr, context) {\r\n          const { currentType } = context;\r\n          let token = null;\r\n          const ch = scnr.currentChar();\r\n          if ((currentType === 8 /* LinkedAlias */ ||\r\n              currentType === 9 /* LinkedDot */ ||\r\n              currentType === 12 /* LinkedModifier */ ||\r\n              currentType === 10 /* LinkedDelimiter */) &&\r\n              (ch === CHAR_LF || ch === CHAR_SP)) {\r\n              emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n          }\r\n          switch (ch) {\r\n              case \"@\" /* LinkedAlias */:\r\n                  scnr.next();\r\n                  token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n                  context.inLinked = true;\r\n                  return token;\r\n              case \".\" /* LinkedDot */:\r\n                  skipSpaces(scnr);\r\n                  scnr.next();\r\n                  return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n              case \":\" /* LinkedDelimiter */:\r\n                  skipSpaces(scnr);\r\n                  scnr.next();\r\n                  return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n              default:\r\n                  if (isPluralStart(scnr)) {\r\n                      token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n                      // reset\r\n                      context.braceNest = 0;\r\n                      context.inLinked = false;\r\n                      return token;\r\n                  }\r\n                  if (isLinkedDotStart(scnr, context) ||\r\n                      isLinkedDelimiterStart(scnr, context)) {\r\n                      skipSpaces(scnr);\r\n                      return readTokenInLinked(scnr, context);\r\n                  }\r\n                  if (isLinkedModifierStart(scnr, context)) {\r\n                      skipSpaces(scnr);\r\n                      return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n                  }\r\n                  if (isLinkedReferStart(scnr, context)) {\r\n                      skipSpaces(scnr);\r\n                      if (ch === \"{\" /* BraceLeft */) {\r\n                          // scan the placeholder\r\n                          return readTokenInPlaceholder(scnr, context) || token;\r\n                      }\r\n                      else {\r\n                          return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n                      }\r\n                  }\r\n                  if (currentType === 8 /* LinkedAlias */) {\r\n                      emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n                  }\r\n                  context.braceNest = 0;\r\n                  context.inLinked = false;\r\n                  return readToken(scnr, context);\r\n          }\r\n      }\r\n      // TODO: We need refactoring of token parsing ...\r\n      function readToken(scnr, context) {\r\n          let token = { type: 14 /* EOF */ };\r\n          if (context.braceNest > 0) {\r\n              return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n          }\r\n          if (context.inLinked) {\r\n              return readTokenInLinked(scnr, context) || getEndToken(context);\r\n          }\r\n          const ch = scnr.currentChar();\r\n          switch (ch) {\r\n              case \"{\" /* BraceLeft */:\r\n                  return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n              case \"}\" /* BraceRight */:\r\n                  emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\r\n                  scnr.next();\r\n                  return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n              case \"@\" /* LinkedAlias */:\r\n                  return readTokenInLinked(scnr, context) || getEndToken(context);\r\n              default:\r\n                  if (isPluralStart(scnr)) {\r\n                      token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n                      // reset\r\n                      context.braceNest = 0;\r\n                      context.inLinked = false;\r\n                      return token;\r\n                  }\r\n                  const { isModulo, hasSpace } = detectModuloStart(scnr);\r\n                  if (isModulo) {\r\n                      return hasSpace\r\n                          ? getToken(context, 0 /* Text */, readText(scnr))\r\n                          : getToken(context, 4 /* Modulo */, readModulo(scnr));\r\n                  }\r\n                  if (isTextStart(scnr)) {\r\n                      return getToken(context, 0 /* Text */, readText(scnr));\r\n                  }\r\n                  break;\r\n          }\r\n          return token;\r\n      }\r\n      function nextToken() {\r\n          const { currentType, offset, startLoc, endLoc } = _context;\r\n          _context.lastType = currentType;\r\n          _context.lastOffset = offset;\r\n          _context.lastStartLoc = startLoc;\r\n          _context.lastEndLoc = endLoc;\r\n          _context.offset = currentOffset();\r\n          _context.startLoc = currentPosition();\r\n          if (_scnr.currentChar() === EOF) {\r\n              return getToken(_context, 14 /* EOF */);\r\n          }\r\n          return readToken(_scnr, _context);\r\n      }\r\n      return {\r\n          nextToken,\r\n          currentOffset,\r\n          currentPosition,\r\n          context\r\n      };\r\n  }\n\n  const ERROR_DOMAIN = 'parser';\r\n  // Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\n  const KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\n  function fromEscapeSequence(match, codePoint4, codePoint6) {\r\n      switch (match) {\r\n          case `\\\\\\\\`:\r\n              return `\\\\`;\r\n          case `\\\\\\'`:\r\n              return `\\'`;\r\n          default: {\r\n              const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n              if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n                  return String.fromCodePoint(codePoint);\r\n              }\r\n              // invalid ...\r\n              // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n              return '�';\r\n          }\r\n      }\r\n  }\r\n  function createParser(options = {}) {\r\n      const location = options.location !== false;\r\n      const { onError } = options;\r\n      function emitError(tokenzer, code, start, offset, ...args) {\r\n          const end = tokenzer.currentPosition();\r\n          end.offset += offset;\r\n          end.column += offset;\r\n          if (onError) {\r\n              const loc = createLocation(start, end);\r\n              const err = createCompileError(code, loc, {\r\n                  domain: ERROR_DOMAIN,\r\n                  args\r\n              });\r\n              onError(err);\r\n          }\r\n      }\r\n      function startNode(type, offset, loc) {\r\n          const node = {\r\n              type,\r\n              start: offset,\r\n              end: offset\r\n          };\r\n          if (location) {\r\n              node.loc = { start: loc, end: loc };\r\n          }\r\n          return node;\r\n      }\r\n      function endNode(node, offset, pos, type) {\r\n          node.end = offset;\r\n          if (type) {\r\n              node.type = type;\r\n          }\r\n          if (location && node.loc) {\r\n              node.loc.end = pos;\r\n          }\r\n      }\r\n      function parseText(tokenizer, value) {\r\n          const context = tokenizer.context();\r\n          const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n          node.value = value;\r\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n          return node;\r\n      }\r\n      function parseList(tokenizer, index) {\r\n          const context = tokenizer.context();\r\n          const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n          const node = startNode(5 /* List */, offset, loc);\r\n          node.index = parseInt(index, 10);\r\n          tokenizer.nextToken(); // skip brach right\r\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n          return node;\r\n      }\r\n      function parseNamed(tokenizer, key) {\r\n          const context = tokenizer.context();\r\n          const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n          const node = startNode(4 /* Named */, offset, loc);\r\n          node.key = key;\r\n          tokenizer.nextToken(); // skip brach right\r\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n          return node;\r\n      }\r\n      function parseLiteral(tokenizer, value) {\r\n          const context = tokenizer.context();\r\n          const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n          const node = startNode(9 /* Literal */, offset, loc);\r\n          node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n          tokenizer.nextToken(); // skip brach right\r\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n          return node;\r\n      }\r\n      function parseLinkedModifier(tokenizer) {\r\n          const token = tokenizer.nextToken();\r\n          const context = tokenizer.context();\r\n          const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n          const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n          if (token.type !== 12 /* LinkedModifier */) {\r\n              // empty modifier\r\n              emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\r\n              node.value = '';\r\n              endNode(node, offset, loc);\r\n              return {\r\n                  nextConsumeToken: token,\r\n                  node\r\n              };\r\n          }\r\n          // check token\r\n          if (token.value == null) {\r\n              emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n          }\r\n          node.value = token.value || '';\r\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n          return {\r\n              node\r\n          };\r\n      }\r\n      function parseLinkedKey(tokenizer, value) {\r\n          const context = tokenizer.context();\r\n          const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n          node.value = value;\r\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n          return node;\r\n      }\r\n      function parseLinked(tokenizer) {\r\n          const context = tokenizer.context();\r\n          const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n          let token = tokenizer.nextToken();\r\n          if (token.type === 9 /* LinkedDot */) {\r\n              const parsed = parseLinkedModifier(tokenizer);\r\n              linkedNode.modifier = parsed.node;\r\n              token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n          }\r\n          // asset check token\r\n          if (token.type !== 10 /* LinkedDelimiter */) {\r\n              emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n          }\r\n          token = tokenizer.nextToken();\r\n          // skip brace left\r\n          if (token.type === 2 /* BraceLeft */) {\r\n              token = tokenizer.nextToken();\r\n          }\r\n          switch (token.type) {\r\n              case 11 /* LinkedKey */:\r\n                  if (token.value == null) {\r\n                      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n                  }\r\n                  linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n                  break;\r\n              case 5 /* Named */:\r\n                  if (token.value == null) {\r\n                      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n                  }\r\n                  linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n                  break;\r\n              case 6 /* List */:\r\n                  if (token.value == null) {\r\n                      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n                  }\r\n                  linkedNode.key = parseList(tokenizer, token.value || '');\r\n                  break;\r\n              case 7 /* Literal */:\r\n                  if (token.value == null) {\r\n                      emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n                  }\r\n                  linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n                  break;\r\n              default:\r\n                  // empty key\r\n                  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\r\n                  const nextContext = tokenizer.context();\r\n                  const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n                  emptyLinkedKeyNode.value = '';\r\n                  endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n                  linkedNode.key = emptyLinkedKeyNode;\r\n                  endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n                  return {\r\n                      nextConsumeToken: token,\r\n                      node: linkedNode\r\n                  };\r\n          }\r\n          endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n          return {\r\n              node: linkedNode\r\n          };\r\n      }\r\n      function parseMessage(tokenizer) {\r\n          const context = tokenizer.context();\r\n          const startOffset = context.currentType === 1 /* Pipe */\r\n              ? tokenizer.currentOffset()\r\n              : context.offset;\r\n          const startLoc = context.currentType === 1 /* Pipe */\r\n              ? context.endLoc\r\n              : context.startLoc;\r\n          const node = startNode(2 /* Message */, startOffset, startLoc);\r\n          node.items = [];\r\n          let nextToken = null;\r\n          do {\r\n              const token = nextToken || tokenizer.nextToken();\r\n              nextToken = null;\r\n              switch (token.type) {\r\n                  case 0 /* Text */:\r\n                      if (token.value == null) {\r\n                          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n                      }\r\n                      node.items.push(parseText(tokenizer, token.value || ''));\r\n                      break;\r\n                  case 6 /* List */:\r\n                      if (token.value == null) {\r\n                          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n                      }\r\n                      node.items.push(parseList(tokenizer, token.value || ''));\r\n                      break;\r\n                  case 5 /* Named */:\r\n                      if (token.value == null) {\r\n                          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n                      }\r\n                      node.items.push(parseNamed(tokenizer, token.value || ''));\r\n                      break;\r\n                  case 7 /* Literal */:\r\n                      if (token.value == null) {\r\n                          emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n                      }\r\n                      node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n                      break;\r\n                  case 8 /* LinkedAlias */:\r\n                      const parsed = parseLinked(tokenizer);\r\n                      node.items.push(parsed.node);\r\n                      nextToken = parsed.nextConsumeToken || null;\r\n                      break;\r\n              }\r\n          } while (context.currentType !== 14 /* EOF */ &&\r\n              context.currentType !== 1 /* Pipe */);\r\n          // adjust message node loc\r\n          const endOffset = context.currentType === 1 /* Pipe */\r\n              ? context.lastOffset\r\n              : tokenizer.currentOffset();\r\n          const endLoc = context.currentType === 1 /* Pipe */\r\n              ? context.lastEndLoc\r\n              : tokenizer.currentPosition();\r\n          endNode(node, endOffset, endLoc);\r\n          return node;\r\n      }\r\n      function parsePlural(tokenizer, offset, loc, msgNode) {\r\n          const context = tokenizer.context();\r\n          let hasEmptyMessage = msgNode.items.length === 0;\r\n          const node = startNode(1 /* Plural */, offset, loc);\r\n          node.cases = [];\r\n          node.cases.push(msgNode);\r\n          do {\r\n              const msg = parseMessage(tokenizer);\r\n              if (!hasEmptyMessage) {\r\n                  hasEmptyMessage = msg.items.length === 0;\r\n              }\r\n              node.cases.push(msg);\r\n          } while (context.currentType !== 14 /* EOF */);\r\n          if (hasEmptyMessage) {\r\n              emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\r\n          }\r\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n          return node;\r\n      }\r\n      function parseResource(tokenizer) {\r\n          const context = tokenizer.context();\r\n          const { offset, startLoc } = context;\r\n          const msgNode = parseMessage(tokenizer);\r\n          if (context.currentType === 14 /* EOF */) {\r\n              return msgNode;\r\n          }\r\n          else {\r\n              return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n          }\r\n      }\r\n      function parse(source) {\r\n          const tokenizer = createTokenizer(source, assign({}, options));\r\n          const context = tokenizer.context();\r\n          const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n          if (location && node.loc) {\r\n              node.loc.source = source;\r\n          }\r\n          node.body = parseResource(tokenizer);\r\n          // assert whether achieved to EOF\r\n          if (context.currentType !== 14 /* EOF */) {\r\n              emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\r\n          }\r\n          endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n          return node;\r\n      }\r\n      return { parse };\r\n  }\r\n  function getTokenCaption(token) {\r\n      if (token.type === 14 /* EOF */) {\r\n          return 'EOF';\r\n      }\r\n      const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n      return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n  }\n\n  function createTransformer(ast, options = {} // eslint-disable-line\r\n  ) {\r\n      const _context = {\r\n          ast,\r\n          helpers: new Set()\r\n      };\r\n      const context = () => _context;\r\n      const helper = (name) => {\r\n          _context.helpers.add(name);\r\n          return name;\r\n      };\r\n      return { context, helper };\r\n  }\r\n  function traverseNodes(nodes, transformer) {\r\n      for (let i = 0; i < nodes.length; i++) {\r\n          traverseNode(nodes[i], transformer);\r\n      }\r\n  }\r\n  function traverseNode(node, transformer) {\r\n      // TODO: if we need pre-hook of transform, should be implemented to here\r\n      switch (node.type) {\r\n          case 1 /* Plural */:\r\n              traverseNodes(node.cases, transformer);\r\n              transformer.helper(\"plural\" /* PLURAL */);\r\n              break;\r\n          case 2 /* Message */:\r\n              traverseNodes(node.items, transformer);\r\n              break;\r\n          case 6 /* Linked */:\r\n              const linked = node;\r\n              traverseNode(linked.key, transformer);\r\n              transformer.helper(\"linked\" /* LINKED */);\r\n              transformer.helper(\"type\" /* TYPE */);\r\n              break;\r\n          case 5 /* List */:\r\n              transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n              transformer.helper(\"list\" /* LIST */);\r\n              break;\r\n          case 4 /* Named */:\r\n              transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n              transformer.helper(\"named\" /* NAMED */);\r\n              break;\r\n      }\r\n      // TODO: if we need post-hook of transform, should be implemented to here\r\n  }\r\n  // transform AST\r\n  function transform(ast, options = {} // eslint-disable-line\r\n  ) {\r\n      const transformer = createTransformer(ast);\r\n      transformer.helper(\"normalize\" /* NORMALIZE */);\r\n      // traverse\r\n      ast.body && traverseNode(ast.body, transformer);\r\n      // set meta information\r\n      const context = transformer.context();\r\n      ast.helpers = Array.from(context.helpers);\r\n  }\n\n  function createCodeGenerator(ast, options) {\r\n      const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n      const _context = {\r\n          source: ast.loc.source,\r\n          filename,\r\n          code: '',\r\n          column: 1,\r\n          line: 1,\r\n          offset: 0,\r\n          map: undefined,\r\n          breakLineCode,\r\n          needIndent: _needIndent,\r\n          indentLevel: 0\r\n      };\r\n      const context = () => _context;\r\n      function push(code, node) {\r\n          _context.code += code;\r\n      }\r\n      function _newline(n, withBreakLine = true) {\r\n          const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n          push(_needIndent ? _breakLineCode + `  `.repeat(n) : _breakLineCode);\r\n      }\r\n      function indent(withNewLine = true) {\r\n          const level = ++_context.indentLevel;\r\n          withNewLine && _newline(level);\r\n      }\r\n      function deindent(withNewLine = true) {\r\n          const level = --_context.indentLevel;\r\n          withNewLine && _newline(level);\r\n      }\r\n      function newline() {\r\n          _newline(_context.indentLevel);\r\n      }\r\n      const helper = (key) => `_${key}`;\r\n      const needIndent = () => _context.needIndent;\r\n      return {\r\n          context,\r\n          push,\r\n          indent,\r\n          deindent,\r\n          newline,\r\n          helper,\r\n          needIndent\r\n      };\r\n  }\r\n  function generateLinkedNode(generator, node) {\r\n      const { helper } = generator;\r\n      generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n      generateNode(generator, node.key);\r\n      if (node.modifier) {\r\n          generator.push(`, `);\r\n          generateNode(generator, node.modifier);\r\n          generator.push(`, _type`);\r\n      }\r\n      else {\r\n          generator.push(`, undefined, _type`);\r\n      }\r\n      generator.push(`)`);\r\n  }\r\n  function generateMessageNode(generator, node) {\r\n      const { helper, needIndent } = generator;\r\n      generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n      generator.indent(needIndent());\r\n      const length = node.items.length;\r\n      for (let i = 0; i < length; i++) {\r\n          generateNode(generator, node.items[i]);\r\n          if (i === length - 1) {\r\n              break;\r\n          }\r\n          generator.push(', ');\r\n      }\r\n      generator.deindent(needIndent());\r\n      generator.push('])');\r\n  }\r\n  function generatePluralNode(generator, node) {\r\n      const { helper, needIndent } = generator;\r\n      if (node.cases.length > 1) {\r\n          generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n          generator.indent(needIndent());\r\n          const length = node.cases.length;\r\n          for (let i = 0; i < length; i++) {\r\n              generateNode(generator, node.cases[i]);\r\n              if (i === length - 1) {\r\n                  break;\r\n              }\r\n              generator.push(', ');\r\n          }\r\n          generator.deindent(needIndent());\r\n          generator.push(`])`);\r\n      }\r\n  }\r\n  function generateResource(generator, node) {\r\n      if (node.body) {\r\n          generateNode(generator, node.body);\r\n      }\r\n      else {\r\n          generator.push('null');\r\n      }\r\n  }\r\n  function generateNode(generator, node) {\r\n      const { helper } = generator;\r\n      switch (node.type) {\r\n          case 0 /* Resource */:\r\n              generateResource(generator, node);\r\n              break;\r\n          case 1 /* Plural */:\r\n              generatePluralNode(generator, node);\r\n              break;\r\n          case 2 /* Message */:\r\n              generateMessageNode(generator, node);\r\n              break;\r\n          case 6 /* Linked */:\r\n              generateLinkedNode(generator, node);\r\n              break;\r\n          case 8 /* LinkedModifier */:\r\n              generator.push(JSON.stringify(node.value), node);\r\n              break;\r\n          case 7 /* LinkedKey */:\r\n              generator.push(JSON.stringify(node.value), node);\r\n              break;\r\n          case 5 /* List */:\r\n              generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n              break;\r\n          case 4 /* Named */:\r\n              generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n              break;\r\n          case 9 /* Literal */:\r\n              generator.push(JSON.stringify(node.value), node);\r\n              break;\r\n          case 3 /* Text */:\r\n              generator.push(JSON.stringify(node.value), node);\r\n              break;\r\n          default:\r\n              {\r\n                  throw new Error(`unhandled codegen node type: ${node.type}`);\r\n              }\r\n      }\r\n  }\r\n  // generate code from AST\r\n  const generate = (ast, options = {} // eslint-disable-line\r\n  ) => {\r\n      const mode = isString(options.mode) ? options.mode : 'normal';\r\n      const filename = isString(options.filename)\r\n          ? options.filename\r\n          : 'message.intl';\r\n      const sourceMap = !!options.sourceMap;\r\n      // prettier-ignore\r\n      const breakLineCode = options.breakLineCode != null\r\n          ? options.breakLineCode\r\n          : mode === 'arrow'\r\n              ? ';'\r\n              : '\\n';\r\n      const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n      const helpers = ast.helpers || [];\r\n      const generator = createCodeGenerator(ast, {\r\n          mode,\r\n          filename,\r\n          sourceMap,\r\n          breakLineCode,\r\n          needIndent\r\n      });\r\n      generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n      generator.indent(needIndent);\r\n      if (helpers.length > 0) {\r\n          generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n          generator.newline();\r\n      }\r\n      generator.push(`return `);\r\n      generateNode(generator, ast);\r\n      generator.deindent(needIndent);\r\n      generator.push(`}`);\r\n      const { code, map } = generator.context();\r\n      return {\r\n          ast,\r\n          code,\r\n          map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n      };\r\n  };\n\n  function baseCompile(source, options = {}) {\r\n      const assignedOptions = assign({}, options);\r\n      // parse source codes\r\n      const parser = createParser(assignedOptions);\r\n      const ast = parser.parse(source);\r\n      // transform ASTs\r\n      transform(ast, assignedOptions);\r\n      // generate javascript codes\r\n      return generate(ast, assignedOptions);\r\n  }\n\n  const pathStateMachine =  [];\r\n  pathStateMachine[0 /* BEFORE_PATH */] = {\r\n      [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n      [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n      [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n      [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n  };\r\n  pathStateMachine[1 /* IN_PATH */] = {\r\n      [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n      [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n      [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n      [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n  };\r\n  pathStateMachine[2 /* BEFORE_IDENT */] = {\r\n      [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n      [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n      [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n  };\r\n  pathStateMachine[3 /* IN_IDENT */] = {\r\n      [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n      [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n      [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n      [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n      [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n      [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n  };\r\n  pathStateMachine[4 /* IN_SUB_PATH */] = {\r\n      [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n      [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n      [\"[\" /* LEFT_BRACKET */]: [\r\n          4 /* IN_SUB_PATH */,\r\n          2 /* INC_SUB_PATH_DEPTH */\r\n      ],\r\n      [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n      [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n      [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n  };\r\n  pathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n      [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n      [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n      [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n  };\r\n  pathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n      [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n      [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n      [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n  };\r\n  /**\r\n   * Check if an expression is a literal value.\r\n   */\r\n  const literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\n  function isLiteral(exp) {\r\n      return literalValueRE.test(exp);\r\n  }\r\n  /**\r\n   * Strip quotes from a string\r\n   */\r\n  function stripQuotes(str) {\r\n      const a = str.charCodeAt(0);\r\n      const b = str.charCodeAt(str.length - 1);\r\n      return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n  }\r\n  /**\r\n   * Determine the type of a character in a keypath.\r\n   */\r\n  function getPathCharType(ch) {\r\n      if (ch === undefined || ch === null) {\r\n          return \"o\" /* END_OF_FAIL */;\r\n      }\r\n      const code = ch.charCodeAt(0);\r\n      switch (code) {\r\n          case 0x5b: // [\r\n          case 0x5d: // ]\r\n          case 0x2e: // .\r\n          case 0x22: // \"\r\n          case 0x27: // '\r\n              return ch;\r\n          case 0x5f: // _\r\n          case 0x24: // $\r\n          case 0x2d: // -\r\n              return \"i\" /* IDENT */;\r\n          case 0x09: // Tab (HT)\r\n          case 0x0a: // Newline (LF)\r\n          case 0x0d: // Return (CR)\r\n          case 0xa0: // No-break space (NBSP)\r\n          case 0xfeff: // Byte Order Mark (BOM)\r\n          case 0x2028: // Line Separator (LS)\r\n          case 0x2029: // Paragraph Separator (PS)\r\n              return \"w\" /* WORKSPACE */;\r\n      }\r\n      return \"i\" /* IDENT */;\r\n  }\r\n  /**\r\n   * Format a subPath, return its plain form if it is\r\n   * a literal string or number. Otherwise prepend the\r\n   * dynamic indicator (*).\r\n   */\r\n  function formatSubPath(path) {\r\n      const trimmed = path.trim();\r\n      // invalid leading 0\r\n      if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n          return false;\r\n      }\r\n      return isLiteral(trimmed)\r\n          ? stripQuotes(trimmed)\r\n          : \"*\" /* ASTARISK */ + trimmed;\r\n  }\r\n  /**\r\n   * Parse a string path into an array of segments\r\n   */\r\n  function parse(path) {\r\n      const keys = [];\r\n      let index = -1;\r\n      let mode = 0 /* BEFORE_PATH */;\r\n      let subPathDepth = 0;\r\n      let c;\r\n      let key; // eslint-disable-line\r\n      let newChar;\r\n      let type;\r\n      let transition;\r\n      let action;\r\n      let typeMap;\r\n      const actions = [];\r\n      actions[0 /* APPEND */] = () => {\r\n          if (key === undefined) {\r\n              key = newChar;\r\n          }\r\n          else {\r\n              key += newChar;\r\n          }\r\n      };\r\n      actions[1 /* PUSH */] = () => {\r\n          if (key !== undefined) {\r\n              keys.push(key);\r\n              key = undefined;\r\n          }\r\n      };\r\n      actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n          actions[0 /* APPEND */]();\r\n          subPathDepth++;\r\n      };\r\n      actions[3 /* PUSH_SUB_PATH */] = () => {\r\n          if (subPathDepth > 0) {\r\n              subPathDepth--;\r\n              mode = 4 /* IN_SUB_PATH */;\r\n              actions[0 /* APPEND */]();\r\n          }\r\n          else {\r\n              subPathDepth = 0;\r\n              if (key === undefined) {\r\n                  return false;\r\n              }\r\n              key = formatSubPath(key);\r\n              if (key === false) {\r\n                  return false;\r\n              }\r\n              else {\r\n                  actions[1 /* PUSH */]();\r\n              }\r\n          }\r\n      };\r\n      function maybeUnescapeQuote() {\r\n          const nextChar = path[index + 1];\r\n          if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n              nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n              (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n                  nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n              index++;\r\n              newChar = '\\\\' + nextChar;\r\n              actions[0 /* APPEND */]();\r\n              return true;\r\n          }\r\n      }\r\n      while (mode !== null) {\r\n          index++;\r\n          c = path[index];\r\n          if (c === '\\\\' && maybeUnescapeQuote()) {\r\n              continue;\r\n          }\r\n          type = getPathCharType(c);\r\n          typeMap = pathStateMachine[mode];\r\n          transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n          // check parse error\r\n          if (transition === 8 /* ERROR */) {\r\n              return;\r\n          }\r\n          mode = transition[0];\r\n          if (transition[1] !== undefined) {\r\n              action = actions[transition[1]];\r\n              if (action) {\r\n                  newChar = c;\r\n                  if (action() === false) {\r\n                      return;\r\n                  }\r\n              }\r\n          }\r\n          // check parse finish\r\n          if (mode === 7 /* AFTER_PATH */) {\r\n              return keys;\r\n          }\r\n      }\r\n  }\r\n  // path token cache\r\n  const cache = new Map();\r\n  /**\r\n   * key-value message resolver\r\n   *\r\n   * @remarks\r\n   * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n   *\r\n   * @param obj - A target object to be resolved with path\r\n   * @param path - A {@link Path | path} to resolve the value of message\r\n   *\r\n   * @returns A resolved {@link PathValue | path value}\r\n   *\r\n   * @VueI18nGeneral\r\n   */\r\n  function resolveWithKeyValue(obj, path) {\r\n      return isObject(obj) ? obj[path] : null;\r\n  }\r\n  /**\r\n   * message resolver\r\n   *\r\n   * @remarks\r\n   * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n   *\r\n   * @param obj - A target object to be resolved with path\r\n   * @param path - A {@link Path | path} to resolve the value of message\r\n   *\r\n   * @returns A resolved {@link PathValue | path value}\r\n   *\r\n   * @VueI18nGeneral\r\n   */\r\n  function resolveValue(obj, path) {\r\n      // check object\r\n      if (!isObject(obj)) {\r\n          return null;\r\n      }\r\n      // parse path\r\n      let hit = cache.get(path);\r\n      if (!hit) {\r\n          hit = parse(path);\r\n          if (hit) {\r\n              cache.set(path, hit);\r\n          }\r\n      }\r\n      // check hit\r\n      if (!hit) {\r\n          return null;\r\n      }\r\n      // resolve path value\r\n      const len = hit.length;\r\n      let last = obj;\r\n      let i = 0;\r\n      while (i < len) {\r\n          const val = last[hit[i]];\r\n          if (val === undefined) {\r\n              return null;\r\n          }\r\n          last = val;\r\n          i++;\r\n      }\r\n      return last;\r\n  }\n\n  const DEFAULT_MODIFIER = (str) => str;\r\n  const DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\n  const DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\n  const DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\n  const DEFAULT_INTERPOLATE = toDisplayString;\r\n  function pluralDefault(choice, choicesLength) {\r\n      choice = Math.abs(choice);\r\n      if (choicesLength === 2) {\r\n          // prettier-ignore\r\n          return choice\r\n              ? choice > 1\r\n                  ? 1\r\n                  : 0\r\n              : 1;\r\n      }\r\n      return choice ? Math.min(choice, 2) : 0;\r\n  }\r\n  function getPluralIndex(options) {\r\n      // prettier-ignore\r\n      const index = isNumber(options.pluralIndex)\r\n          ? options.pluralIndex\r\n          : -1;\r\n      // prettier-ignore\r\n      return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n          ? isNumber(options.named.count)\r\n              ? options.named.count\r\n              : isNumber(options.named.n)\r\n                  ? options.named.n\r\n                  : index\r\n          : index;\r\n  }\r\n  function normalizeNamed(pluralIndex, props) {\r\n      if (!props.count) {\r\n          props.count = pluralIndex;\r\n      }\r\n      if (!props.n) {\r\n          props.n = pluralIndex;\r\n      }\r\n  }\r\n  function createMessageContext(options = {}) {\r\n      const locale = options.locale;\r\n      const pluralIndex = getPluralIndex(options);\r\n      const pluralRule = isObject(options.pluralRules) &&\r\n          isString(locale) &&\r\n          isFunction(options.pluralRules[locale])\r\n          ? options.pluralRules[locale]\r\n          : pluralDefault;\r\n      const orgPluralRule = isObject(options.pluralRules) &&\r\n          isString(locale) &&\r\n          isFunction(options.pluralRules[locale])\r\n          ? pluralDefault\r\n          : undefined;\r\n      const plural = (messages) => {\r\n          return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n      };\r\n      const _list = options.list || [];\r\n      const list = (index) => _list[index];\r\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n      const _named = options.named || {};\r\n      isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n      const named = (key) => _named[key];\r\n      function message(key) {\r\n          // prettier-ignore\r\n          const msg = isFunction(options.messages)\r\n              ? options.messages(key)\r\n              : isObject(options.messages)\r\n                  ? options.messages[key]\r\n                  : false;\r\n          return !msg\r\n              ? options.parent\r\n                  ? options.parent.message(key) // resolve from parent messages\r\n                  : DEFAULT_MESSAGE\r\n              : msg;\r\n      }\r\n      const _modifier = (name) => options.modifiers\r\n          ? options.modifiers[name]\r\n          : DEFAULT_MODIFIER;\r\n      const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n          ? options.processor.normalize\r\n          : DEFAULT_NORMALIZE;\r\n      const interpolate = isPlainObject(options.processor) &&\r\n          isFunction(options.processor.interpolate)\r\n          ? options.processor.interpolate\r\n          : DEFAULT_INTERPOLATE;\r\n      const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n          ? options.processor.type\r\n          : DEFAULT_MESSAGE_DATA_TYPE;\r\n      const linked = (key, ...args) => {\r\n          const [arg1, arg2] = args;\r\n          let type = 'text';\r\n          let modifier = '';\r\n          if (args.length === 1) {\r\n              if (isObject(arg1)) {\r\n                  modifier = arg1.modifier || modifier;\r\n                  type = arg1.type || type;\r\n              }\r\n              else if (isString(arg1)) {\r\n                  modifier = arg1 || modifier;\r\n              }\r\n          }\r\n          else if (args.length === 2) {\r\n              if (isString(arg1)) {\r\n                  modifier = arg1 || modifier;\r\n              }\r\n              if (isString(arg2)) {\r\n                  type = arg2 || type;\r\n              }\r\n          }\r\n          let msg = message(key)(ctx);\r\n          // The message in vnode resolved with linked are returned as an array by processor.nomalize\r\n          if (type === 'vnode' && isArray(msg) && modifier) {\r\n              msg = msg[0];\r\n          }\r\n          return modifier ? _modifier(modifier)(msg, type) : msg;\r\n      };\r\n      const ctx = {\r\n          [\"list\" /* LIST */]: list,\r\n          [\"named\" /* NAMED */]: named,\r\n          [\"plural\" /* PLURAL */]: plural,\r\n          [\"linked\" /* LINKED */]: linked,\r\n          [\"message\" /* MESSAGE */]: message,\r\n          [\"type\" /* TYPE */]: type,\r\n          [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n          [\"normalize\" /* NORMALIZE */]: normalize\r\n      };\r\n      return ctx;\r\n  }\n\n  const IntlifyDevToolsHooks =  {\r\n      I18nInit: 'i18n:init',\r\n      FunctionTranslate: 'function:translate'\r\n  };\n\n  let devtools = null;\r\n  function setDevToolsHook(hook) {\r\n      devtools = hook;\r\n  }\r\n  function initI18nDevTools(i18n, version, meta) {\r\n      // TODO: queue if devtools is undefined\r\n      devtools &&\r\n          devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n              timestamp: Date.now(),\r\n              i18n,\r\n              version,\r\n              meta\r\n          });\r\n  }\r\n  const translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\n  function createDevToolsHook(hook) {\r\n      return (payloads) => devtools && devtools.emit(hook, payloads);\r\n  }\n\n  const CoreWarnCodes = {\r\n      NOT_FOUND_KEY: 1,\r\n      FALLBACK_TO_TRANSLATE: 2,\r\n      CANNOT_FORMAT_NUMBER: 3,\r\n      FALLBACK_TO_NUMBER_FORMAT: 4,\r\n      CANNOT_FORMAT_DATE: 5,\r\n      FALLBACK_TO_DATE_FORMAT: 6,\r\n      __EXTEND_POINT__: 7\r\n  };\r\n  /** @internal */\r\n  const warnMessages$1 = {\r\n      [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n      [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n      [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n      [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n      [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n      [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n  };\r\n  function getWarnMessage$1(code, ...args) {\r\n      return format(warnMessages$1[code], ...args);\r\n  }\n\n  /**\r\n   * Fallback with simple implemenation\r\n   *\r\n   * @remarks\r\n   * A fallback locale function implemented with a simple fallback algorithm.\r\n   *\r\n   * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n   *\r\n   * @param ctx - A {@link CoreContext | context}\r\n   * @param fallback - A {@link FallbackLocale | fallback locale}\r\n   * @param start - A starting {@link Locale | locale}\r\n   *\r\n   * @returns Fallback locales\r\n   *\r\n   * @VueI18nGeneral\r\n   */\r\n  function fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n  ) {\r\n      // prettier-ignore\r\n      return [...new Set([\r\n              start,\r\n              ...(isArray(fallback)\r\n                  ? fallback\r\n                  : isObject(fallback)\r\n                      ? Object.keys(fallback)\r\n                      : isString(fallback)\r\n                          ? [fallback]\r\n                          : [start])\r\n          ])];\r\n  }\r\n  /**\r\n   * Fallback with locale chain\r\n   *\r\n   * @remarks\r\n   * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n   *\r\n   * @param ctx - A {@link CoreContext | context}\r\n   * @param fallback - A {@link FallbackLocale | fallback locale}\r\n   * @param start - A starting {@link Locale | locale}\r\n   *\r\n   * @returns Fallback locales\r\n   *\r\n   * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n   *\r\n   * @VueI18nGeneral\r\n   */\r\n  function fallbackWithLocaleChain(ctx, fallback, start) {\r\n      const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n      const context = ctx;\r\n      if (!context.__localeChainCache) {\r\n          context.__localeChainCache = new Map();\r\n      }\r\n      let chain = context.__localeChainCache.get(startLocale);\r\n      if (!chain) {\r\n          chain = [];\r\n          // first block defined by start\r\n          let block = [start];\r\n          // while any intervening block found\r\n          while (isArray(block)) {\r\n              block = appendBlockToChain(chain, block, fallback);\r\n          }\r\n          // prettier-ignore\r\n          // last block defined by default\r\n          const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n              ? fallback\r\n              : fallback['default']\r\n                  ? fallback['default']\r\n                  : null;\r\n          // convert defaults to array\r\n          block = isString(defaults) ? [defaults] : defaults;\r\n          if (isArray(block)) {\r\n              appendBlockToChain(chain, block, false);\r\n          }\r\n          context.__localeChainCache.set(startLocale, chain);\r\n      }\r\n      return chain;\r\n  }\r\n  function appendBlockToChain(chain, block, blocks) {\r\n      let follow = true;\r\n      for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n          const locale = block[i];\r\n          if (isString(locale)) {\r\n              follow = appendLocaleToChain(chain, block[i], blocks);\r\n          }\r\n      }\r\n      return follow;\r\n  }\r\n  function appendLocaleToChain(chain, locale, blocks) {\r\n      let follow;\r\n      const tokens = locale.split('-');\r\n      do {\r\n          const target = tokens.join('-');\r\n          follow = appendItemToChain(chain, target, blocks);\r\n          tokens.splice(-1, 1);\r\n      } while (tokens.length && follow === true);\r\n      return follow;\r\n  }\r\n  function appendItemToChain(chain, target, blocks) {\r\n      let follow = false;\r\n      if (!chain.includes(target)) {\r\n          follow = true;\r\n          if (target) {\r\n              follow = target[target.length - 1] !== '!';\r\n              const locale = target.replace(/!/g, '');\r\n              chain.push(locale);\r\n              if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n                  blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n              ) {\r\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n                  follow = blocks[locale];\r\n              }\r\n          }\r\n      }\r\n      return follow;\r\n  }\n\n  /* eslint-disable @typescript-eslint/no-explicit-any */\r\n  /**\r\n   * Intlify core-base version\r\n   * @internal\r\n   */\r\n  const VERSION$1 = '9.3.0-beta.7';\r\n  const NOT_REOSLVED = -1;\r\n  const DEFAULT_LOCALE = 'en-US';\r\n  const MISSING_RESOLVE_VALUE = '';\r\n  const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\n  function getDefaultLinkedModifiers() {\r\n      return {\r\n          upper: (val, type) => {\r\n              // prettier-ignore\r\n              return type === 'text' && isString(val)\r\n                  ? val.toUpperCase()\r\n                  : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n                      ? val.children.toUpperCase()\r\n                      : val;\r\n          },\r\n          lower: (val, type) => {\r\n              // prettier-ignore\r\n              return type === 'text' && isString(val)\r\n                  ? val.toLowerCase()\r\n                  : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n                      ? val.children.toLowerCase()\r\n                      : val;\r\n          },\r\n          capitalize: (val, type) => {\r\n              // prettier-ignore\r\n              return (type === 'text' && isString(val)\r\n                  ? capitalize(val)\r\n                  : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n                      ? capitalize(val.children)\r\n                      : val);\r\n          }\r\n      };\r\n  }\r\n  let _compiler;\r\n  function registerMessageCompiler(compiler) {\r\n      _compiler = compiler;\r\n  }\r\n  let _resolver;\r\n  /**\r\n   * Register the message resolver\r\n   *\r\n   * @param resolver - A {@link MessageResolver} function\r\n   *\r\n   * @VueI18nGeneral\r\n   */\r\n  function registerMessageResolver(resolver) {\r\n      _resolver = resolver;\r\n  }\r\n  let _fallbacker;\r\n  /**\r\n   * Register the locale fallbacker\r\n   *\r\n   * @param fallbacker - A {@link LocaleFallbacker} function\r\n   *\r\n   * @VueI18nGeneral\r\n   */\r\n  function registerLocaleFallbacker(fallbacker) {\r\n      _fallbacker = fallbacker;\r\n  }\r\n  // Additional Meta for Intlify DevTools\r\n  let _additionalMeta = null;\r\n  const setAdditionalMeta =  (meta) => {\r\n      _additionalMeta = meta;\r\n  };\r\n  const getAdditionalMeta =  () => _additionalMeta;\r\n  let _fallbackContext = null;\r\n  const setFallbackContext = (context) => {\r\n      _fallbackContext = context;\r\n  };\r\n  const getFallbackContext = () => _fallbackContext;\r\n  // ID for CoreContext\r\n  let _cid = 0;\r\n  function createCoreContext(options = {}) {\r\n      // setup options\r\n      const version = isString(options.version) ? options.version : VERSION$1;\r\n      const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n      const fallbackLocale = isArray(options.fallbackLocale) ||\r\n          isPlainObject(options.fallbackLocale) ||\r\n          isString(options.fallbackLocale) ||\r\n          options.fallbackLocale === false\r\n          ? options.fallbackLocale\r\n          : locale;\r\n      const messages = isPlainObject(options.messages)\r\n          ? options.messages\r\n          : { [locale]: {} };\r\n      const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n              ? options.datetimeFormats\r\n              : { [locale]: {} }\r\n          ;\r\n      const numberFormats = isPlainObject(options.numberFormats)\r\n              ? options.numberFormats\r\n              : { [locale]: {} }\r\n          ;\r\n      const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n      const pluralRules = options.pluralRules || {};\r\n      const missing = isFunction(options.missing) ? options.missing : null;\r\n      const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n          ? options.missingWarn\r\n          : true;\r\n      const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n          ? options.fallbackWarn\r\n          : true;\r\n      const fallbackFormat = !!options.fallbackFormat;\r\n      const unresolving = !!options.unresolving;\r\n      const postTranslation = isFunction(options.postTranslation)\r\n          ? options.postTranslation\r\n          : null;\r\n      const processor = isPlainObject(options.processor) ? options.processor : null;\r\n      const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n          ? options.warnHtmlMessage\r\n          : true;\r\n      const escapeParameter = !!options.escapeParameter;\r\n      const messageCompiler = isFunction(options.messageCompiler)\r\n          ? options.messageCompiler\r\n          : _compiler;\r\n      const messageResolver = isFunction(options.messageResolver)\r\n          ? options.messageResolver\r\n          : _resolver || resolveWithKeyValue;\r\n      const localeFallbacker = isFunction(options.localeFallbacker)\r\n          ? options.localeFallbacker\r\n          : _fallbacker || fallbackWithSimple;\r\n      const fallbackContext = isObject(options.fallbackContext)\r\n          ? options.fallbackContext\r\n          : undefined;\r\n      const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n      // setup internal options\r\n      const internalOptions = options;\r\n      const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n              ? internalOptions.__datetimeFormatters\r\n              : new Map()\r\n          ;\r\n      const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n              ? internalOptions.__numberFormatters\r\n              : new Map()\r\n          ;\r\n      const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n      _cid++;\r\n      const context = {\r\n          version,\r\n          cid: _cid,\r\n          locale,\r\n          fallbackLocale,\r\n          messages,\r\n          modifiers,\r\n          pluralRules,\r\n          missing,\r\n          missingWarn,\r\n          fallbackWarn,\r\n          fallbackFormat,\r\n          unresolving,\r\n          postTranslation,\r\n          processor,\r\n          warnHtmlMessage,\r\n          escapeParameter,\r\n          messageCompiler,\r\n          messageResolver,\r\n          localeFallbacker,\r\n          fallbackContext,\r\n          onWarn,\r\n          __meta\r\n      };\r\n      {\r\n          context.datetimeFormats = datetimeFormats;\r\n          context.numberFormats = numberFormats;\r\n          context.__datetimeFormatters = __datetimeFormatters;\r\n          context.__numberFormatters = __numberFormatters;\r\n      }\r\n      // for vue-devtools timeline event\r\n      {\r\n          context.__v_emitter =\r\n              internalOptions.__v_emitter != null\r\n                  ? internalOptions.__v_emitter\r\n                  : undefined;\r\n      }\r\n      // NOTE: experimental !!\r\n      {\r\n          initI18nDevTools(context, version, __meta);\r\n      }\r\n      return context;\r\n  }\r\n  /** @internal */\r\n  function isTranslateFallbackWarn(fallback, key) {\r\n      return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n  }\r\n  /** @internal */\r\n  function isTranslateMissingWarn(missing, key) {\r\n      return missing instanceof RegExp ? missing.test(key) : missing;\r\n  }\r\n  /** @internal */\r\n  function handleMissing(context, key, locale, missingWarn, type) {\r\n      const { missing, onWarn } = context;\r\n      // for vue-devtools timeline event\r\n      {\r\n          const emitter = context.__v_emitter;\r\n          if (emitter) {\r\n              emitter.emit(\"missing\" /* MISSING */, {\r\n                  locale,\r\n                  key,\r\n                  type,\r\n                  groupId: `${type}:${key}`\r\n              });\r\n          }\r\n      }\r\n      if (missing !== null) {\r\n          const ret = missing(context, locale, key, type);\r\n          return isString(ret) ? ret : key;\r\n      }\r\n      else {\r\n          if (isTranslateMissingWarn(missingWarn, key)) {\r\n              onWarn(getWarnMessage$1(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n          }\r\n          return key;\r\n      }\r\n  }\r\n  /** @internal */\r\n  function updateFallbackLocale(ctx, locale, fallback) {\r\n      const context = ctx;\r\n      context.__localeChainCache = new Map();\r\n      ctx.localeFallbacker(ctx, fallback, locale);\r\n  }\r\n  /* eslint-enable @typescript-eslint/no-explicit-any */\n\n  const RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\n  const WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\n  function checkHtmlMessage(source, options) {\r\n      const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n          ? options.warnHtmlMessage\r\n          : true;\r\n      if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n          warn(format(WARN_MESSAGE, { source }));\r\n      }\r\n  }\r\n  const defaultOnCacheKey = (source) => source;\r\n  let compileCache = Object.create(null);\r\n  function compileToFunction(source, options = {}) {\r\n      {\r\n          // check HTML message\r\n          checkHtmlMessage(source, options);\r\n          // check caches\r\n          const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n          const key = onCacheKey(source);\r\n          const cached = compileCache[key];\r\n          if (cached) {\r\n              return cached;\r\n          }\r\n          // compile error detecting\r\n          let occurred = false;\r\n          const onError = options.onError || defaultOnError;\r\n          options.onError = (err) => {\r\n              occurred = true;\r\n              onError(err);\r\n          };\r\n          // compile\r\n          const { code } = baseCompile(source, options);\r\n          // evaluate function\r\n          const msg = new Function(`return ${code}`)();\r\n          // if occurred compile error, don't cache\r\n          return !occurred ? (compileCache[key] = msg) : msg;\r\n      }\r\n  }\n\n  let code$2 = CompileErrorCodes.__EXTEND_POINT__;\r\n  const inc$2 = () => ++code$2;\r\n  const CoreErrorCodes = {\r\n      INVALID_ARGUMENT: code$2,\r\n      INVALID_DATE_ARGUMENT: inc$2(),\r\n      INVALID_ISO_DATE_ARGUMENT: inc$2(),\r\n      __EXTEND_POINT__: inc$2() // 18\r\n  };\r\n  function createCoreError(code) {\r\n      return createCompileError(code, null, { messages: errorMessages$1 } );\r\n  }\r\n  /** @internal */\r\n  const errorMessages$1 = {\r\n      [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n      [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n          'Make sure your Date represents a valid date.',\r\n      [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n  };\n\n  const NOOP_MESSAGE_FUNCTION = () => '';\r\n  const isMessageFunction = (val) => isFunction(val);\r\n  // implementation of `translate` function\r\n  function translate(context, ...args) {\r\n      const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n      const [key, options] = parseTranslateArgs(...args);\r\n      const missingWarn = isBoolean(options.missingWarn)\r\n          ? options.missingWarn\r\n          : context.missingWarn;\r\n      const fallbackWarn = isBoolean(options.fallbackWarn)\r\n          ? options.fallbackWarn\r\n          : context.fallbackWarn;\r\n      const escapeParameter = isBoolean(options.escapeParameter)\r\n          ? options.escapeParameter\r\n          : context.escapeParameter;\r\n      const resolvedMessage = !!options.resolvedMessage;\r\n      // prettier-ignore\r\n      const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n          ? !isBoolean(options.default)\r\n              ? options.default\r\n              : (!messageCompiler ? () => key : key)\r\n          : fallbackFormat // default by `fallbackFormat` option\r\n              ? (!messageCompiler ? () => key : key)\r\n              : '';\r\n      const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n      const locale = isString(options.locale) ? options.locale : context.locale;\r\n      // escape params\r\n      escapeParameter && escapeParams(options);\r\n      // resolve message format\r\n      // eslint-disable-next-line prefer-const\r\n      let [formatScope, targetLocale, message] = !resolvedMessage\r\n          ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n          : [\r\n              key,\r\n              locale,\r\n              messages[locale] || {}\r\n          ];\r\n      // NOTE:\r\n      //  Fix to work around `ssrTransfrom` bug in Vite.\r\n      //  https://github.com/vitejs/vite/issues/4306\r\n      //  To get around this, use temporary variables.\r\n      //  https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n      let format = formatScope;\r\n      // if you use default message, set it as message format!\r\n      let cacheBaseKey = key;\r\n      if (!resolvedMessage &&\r\n          !(isString(format) || isMessageFunction(format))) {\r\n          if (enableDefaultMsg) {\r\n              format = defaultMsgOrKey;\r\n              cacheBaseKey = format;\r\n          }\r\n      }\r\n      // checking message format and target locale\r\n      if (!resolvedMessage &&\r\n          (!(isString(format) || isMessageFunction(format)) ||\r\n              !isString(targetLocale))) {\r\n          return unresolving ? NOT_REOSLVED : key;\r\n      }\r\n      if (isString(format) && context.messageCompiler == null) {\r\n          warn(`The message format compilation is not supported in this build. ` +\r\n              `Because message compiler isn't included. ` +\r\n              `You need to pre-compilation all message format. ` +\r\n              `So translate function return '${key}'.`);\r\n          return key;\r\n      }\r\n      // setup compile error detecting\r\n      let occurred = false;\r\n      const errorDetector = () => {\r\n          occurred = true;\r\n      };\r\n      // compile message format\r\n      const msg = !isMessageFunction(format)\r\n          ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n          : format;\r\n      // if occurred compile error, return the message format\r\n      if (occurred) {\r\n          return format;\r\n      }\r\n      // evaluate message with context\r\n      const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n      const msgContext = createMessageContext(ctxOptions);\r\n      const messaged = evaluateMessage(context, msg, msgContext);\r\n      // if use post translation option, proceed it with handler\r\n      const ret = postTranslation\r\n          ? postTranslation(messaged, key)\r\n          : messaged;\r\n      // NOTE: experimental !!\r\n      {\r\n          // prettier-ignore\r\n          const payloads = {\r\n              timestamp: Date.now(),\r\n              key: isString(key)\r\n                  ? key\r\n                  : isMessageFunction(format)\r\n                      ? format.key\r\n                      : '',\r\n              locale: targetLocale || (isMessageFunction(format)\r\n                  ? format.locale\r\n                  : ''),\r\n              format: isString(format)\r\n                  ? format\r\n                  : isMessageFunction(format)\r\n                      ? format.source\r\n                      : '',\r\n              message: ret\r\n          };\r\n          payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n          translateDevTools(payloads);\r\n      }\r\n      return ret;\r\n  }\r\n  function escapeParams(options) {\r\n      if (isArray(options.list)) {\r\n          options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n      }\r\n      else if (isObject(options.named)) {\r\n          Object.keys(options.named).forEach(key => {\r\n              if (isString(options.named[key])) {\r\n                  options.named[key] = escapeHtml(options.named[key]);\r\n              }\r\n          });\r\n      }\r\n  }\r\n  function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n      const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n      const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n      let message = {};\r\n      let targetLocale;\r\n      let format = null;\r\n      let from = locale;\r\n      let to = null;\r\n      const type = 'translate';\r\n      for (let i = 0; i < locales.length; i++) {\r\n          targetLocale = to = locales[i];\r\n          if (locale !== targetLocale &&\r\n              isTranslateFallbackWarn(fallbackWarn, key)) {\r\n              onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n                  key,\r\n                  target: targetLocale\r\n              }));\r\n          }\r\n          // for vue-devtools timeline event\r\n          if (locale !== targetLocale) {\r\n              const emitter = context.__v_emitter;\r\n              if (emitter) {\r\n                  emitter.emit(\"fallback\" /* FALBACK */, {\r\n                      type,\r\n                      key,\r\n                      from,\r\n                      to,\r\n                      groupId: `${type}:${key}`\r\n                  });\r\n              }\r\n          }\r\n          message =\r\n              messages[targetLocale] || {};\r\n          // for vue-devtools timeline event\r\n          let start = null;\r\n          let startTag;\r\n          let endTag;\r\n          if (inBrowser) {\r\n              start = window.performance.now();\r\n              startTag = 'intlify-message-resolve-start';\r\n              endTag = 'intlify-message-resolve-end';\r\n              mark && mark(startTag);\r\n          }\r\n          if ((format = resolveValue(message, key)) === null) {\r\n              // if null, resolve with object key path\r\n              format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n          }\r\n          // for vue-devtools timeline event\r\n          if (inBrowser) {\r\n              const end = window.performance.now();\r\n              const emitter = context.__v_emitter;\r\n              if (emitter && start && format) {\r\n                  emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n                      type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n                      key,\r\n                      message: format,\r\n                      time: end - start,\r\n                      groupId: `${type}:${key}`\r\n                  });\r\n              }\r\n              if (startTag && endTag && mark && measure) {\r\n                  mark(endTag);\r\n                  measure('intlify message resolve', startTag, endTag);\r\n              }\r\n          }\r\n          if (isString(format) || isFunction(format))\r\n              break;\r\n          const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n          key, targetLocale, missingWarn, type);\r\n          if (missingRet !== key) {\r\n              format = missingRet;\r\n          }\r\n          from = to;\r\n      }\r\n      return [format, targetLocale, message];\r\n  }\r\n  function compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n      const { messageCompiler, warnHtmlMessage } = context;\r\n      if (isMessageFunction(format)) {\r\n          const msg = format;\r\n          msg.locale = msg.locale || targetLocale;\r\n          msg.key = msg.key || key;\r\n          return msg;\r\n      }\r\n      if (messageCompiler == null) {\r\n          const msg = (() => format);\r\n          msg.locale = targetLocale;\r\n          msg.key = key;\r\n          return msg;\r\n      }\r\n      // for vue-devtools timeline event\r\n      let start = null;\r\n      let startTag;\r\n      let endTag;\r\n      if (inBrowser) {\r\n          start = window.performance.now();\r\n          startTag = 'intlify-message-compilation-start';\r\n          endTag = 'intlify-message-compilation-end';\r\n          mark && mark(startTag);\r\n      }\r\n      const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n      // for vue-devtools timeline event\r\n      if (inBrowser) {\r\n          const end = window.performance.now();\r\n          const emitter = context.__v_emitter;\r\n          if (emitter && start) {\r\n              emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n                  type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n                  message: format,\r\n                  time: end - start,\r\n                  groupId: `${'translate'}:${key}`\r\n              });\r\n          }\r\n          if (startTag && endTag && mark && measure) {\r\n              mark(endTag);\r\n              measure('intlify message compilation', startTag, endTag);\r\n          }\r\n      }\r\n      msg.locale = targetLocale;\r\n      msg.key = key;\r\n      msg.source = format;\r\n      return msg;\r\n  }\r\n  function evaluateMessage(context, msg, msgCtx) {\r\n      // for vue-devtools timeline event\r\n      let start = null;\r\n      let startTag;\r\n      let endTag;\r\n      if (inBrowser) {\r\n          start = window.performance.now();\r\n          startTag = 'intlify-message-evaluation-start';\r\n          endTag = 'intlify-message-evaluation-end';\r\n          mark && mark(startTag);\r\n      }\r\n      const messaged = msg(msgCtx);\r\n      // for vue-devtools timeline event\r\n      if (inBrowser) {\r\n          const end = window.performance.now();\r\n          const emitter = context.__v_emitter;\r\n          if (emitter && start) {\r\n              emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n                  type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n                  value: messaged,\r\n                  time: end - start,\r\n                  groupId: `${'translate'}:${msg.key}`\r\n              });\r\n          }\r\n          if (startTag && endTag && mark && measure) {\r\n              mark(endTag);\r\n              measure('intlify message evaluation', startTag, endTag);\r\n          }\r\n      }\r\n      return messaged;\r\n  }\r\n  /** @internal */\r\n  function parseTranslateArgs(...args) {\r\n      const [arg1, arg2, arg3] = args;\r\n      const options = {};\r\n      if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n          throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n      }\r\n      // prettier-ignore\r\n      const key = isNumber(arg1)\r\n          ? String(arg1)\r\n          : isMessageFunction(arg1)\r\n              ? arg1\r\n              : arg1;\r\n      if (isNumber(arg2)) {\r\n          options.plural = arg2;\r\n      }\r\n      else if (isString(arg2)) {\r\n          options.default = arg2;\r\n      }\r\n      else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n          options.named = arg2;\r\n      }\r\n      else if (isArray(arg2)) {\r\n          options.list = arg2;\r\n      }\r\n      if (isNumber(arg3)) {\r\n          options.plural = arg3;\r\n      }\r\n      else if (isString(arg3)) {\r\n          options.default = arg3;\r\n      }\r\n      else if (isPlainObject(arg3)) {\r\n          assign(options, arg3);\r\n      }\r\n      return [key, options];\r\n  }\r\n  function getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n      return {\r\n          warnHtmlMessage,\r\n          onError: (err) => {\r\n              errorDetector && errorDetector(err);\r\n              {\r\n                  const message = `Message compilation error: ${err.message}`;\r\n                  const codeFrame = err.location &&\r\n                      generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n                  const emitter = context.__v_emitter;\r\n                  if (emitter) {\r\n                      emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n                          message: source,\r\n                          error: err.message,\r\n                          start: err.location && err.location.start.offset,\r\n                          end: err.location && err.location.end.offset,\r\n                          groupId: `${'translate'}:${key}`\r\n                      });\r\n                  }\r\n                  console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n              }\r\n          },\r\n          onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n      };\r\n  }\r\n  function getMessageContextOptions(context, locale, message, options) {\r\n      const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\r\n      const resolveMessage = (key) => {\r\n          let val = resolveValue(message, key);\r\n          // fallback to root context\r\n          if (val == null && fallbackContext) {\r\n              const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\r\n              val = resolveValue(message, key);\r\n          }\r\n          if (isString(val)) {\r\n              let occurred = false;\r\n              const errorDetector = () => {\r\n                  occurred = true;\r\n              };\r\n              const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n              return !occurred\r\n                  ? msg\r\n                  : NOOP_MESSAGE_FUNCTION;\r\n          }\r\n          else if (isMessageFunction(val)) {\r\n              return val;\r\n          }\r\n          else {\r\n              // TODO: should be implemented warning message\r\n              return NOOP_MESSAGE_FUNCTION;\r\n          }\r\n      };\r\n      const ctxOptions = {\r\n          locale,\r\n          modifiers,\r\n          pluralRules,\r\n          messages: resolveMessage\r\n      };\r\n      if (context.processor) {\r\n          ctxOptions.processor = context.processor;\r\n      }\r\n      if (options.list) {\r\n          ctxOptions.list = options.list;\r\n      }\r\n      if (options.named) {\r\n          ctxOptions.named = options.named;\r\n      }\r\n      if (isNumber(options.plural)) {\r\n          ctxOptions.pluralIndex = options.plural;\r\n      }\r\n      return ctxOptions;\r\n  }\n\n  const intlDefined = typeof Intl !== 'undefined';\r\n  const Availabilities = {\r\n      dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n      numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n  };\n\n  // implementation of `datetime` function\r\n  function datetime(context, ...args) {\r\n      const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n      const { __datetimeFormatters } = context;\r\n      if (!Availabilities.dateTimeFormat) {\r\n          onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n          return MISSING_RESOLVE_VALUE;\r\n      }\r\n      const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n      const missingWarn = isBoolean(options.missingWarn)\r\n          ? options.missingWarn\r\n          : context.missingWarn;\r\n      const fallbackWarn = isBoolean(options.fallbackWarn)\r\n          ? options.fallbackWarn\r\n          : context.fallbackWarn;\r\n      const part = !!options.part;\r\n      const locale = isString(options.locale) ? options.locale : context.locale;\r\n      const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n      fallbackLocale, locale);\r\n      if (!isString(key) || key === '') {\r\n          return new Intl.DateTimeFormat(locale, overrides).format(value);\r\n      }\r\n      // resolve format\r\n      let datetimeFormat = {};\r\n      let targetLocale;\r\n      let format = null;\r\n      let from = locale;\r\n      let to = null;\r\n      const type = 'datetime format';\r\n      for (let i = 0; i < locales.length; i++) {\r\n          targetLocale = to = locales[i];\r\n          if (locale !== targetLocale &&\r\n              isTranslateFallbackWarn(fallbackWarn, key)) {\r\n              onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n                  key,\r\n                  target: targetLocale\r\n              }));\r\n          }\r\n          // for vue-devtools timeline event\r\n          if (locale !== targetLocale) {\r\n              const emitter = context.__v_emitter;\r\n              if (emitter) {\r\n                  emitter.emit(\"fallback\" /* FALBACK */, {\r\n                      type,\r\n                      key,\r\n                      from,\r\n                      to,\r\n                      groupId: `${type}:${key}`\r\n                  });\r\n              }\r\n          }\r\n          datetimeFormat =\r\n              datetimeFormats[targetLocale] || {};\r\n          format = datetimeFormat[key];\r\n          if (isPlainObject(format))\r\n              break;\r\n          handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n          from = to;\r\n      }\r\n      // checking format and target locale\r\n      if (!isPlainObject(format) || !isString(targetLocale)) {\r\n          return unresolving ? NOT_REOSLVED : key;\r\n      }\r\n      let id = `${targetLocale}__${key}`;\r\n      if (!isEmptyObject(overrides)) {\r\n          id = `${id}__${JSON.stringify(overrides)}`;\r\n      }\r\n      let formatter = __datetimeFormatters.get(id);\r\n      if (!formatter) {\r\n          formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n          __datetimeFormatters.set(id, formatter);\r\n      }\r\n      return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n  }\r\n  /** @internal */\r\n  const DATETIME_FORMAT_OPTIONS_KEYS = [\r\n      'localeMatcher',\r\n      'weekday',\r\n      'era',\r\n      'year',\r\n      'month',\r\n      'day',\r\n      'hour',\r\n      'minute',\r\n      'second',\r\n      'timeZoneName',\r\n      'formatMatcher',\r\n      'hour12',\r\n      'timeZone',\r\n      'dateStyle',\r\n      'timeStyle',\r\n      'calendar',\r\n      'dayPeriod',\r\n      'numberingSystem',\r\n      'hourCycle',\r\n      'fractionalSecondDigits'\r\n  ];\r\n  /** @internal */\r\n  function parseDateTimeArgs(...args) {\r\n      const [arg1, arg2, arg3, arg4] = args;\r\n      const options = {};\r\n      let overrides = {};\r\n      let value;\r\n      if (isString(arg1)) {\r\n          // Only allow ISO strings - other date formats are often supported,\r\n          // but may cause different results in different browsers.\r\n          const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n          if (!matches) {\r\n              throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n          }\r\n          // Some browsers can not parse the iso datetime separated by space,\r\n          // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n          const dateTime = matches[3]\r\n              ? matches[3].trim().startsWith('T')\r\n                  ? `${matches[1].trim()}${matches[3].trim()}`\r\n                  : `${matches[1].trim()}T${matches[3].trim()}`\r\n              : matches[1].trim();\r\n          value = new Date(dateTime);\r\n          try {\r\n              // This will fail if the date is not valid\r\n              value.toISOString();\r\n          }\r\n          catch (e) {\r\n              throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n          }\r\n      }\r\n      else if (isDate(arg1)) {\r\n          if (isNaN(arg1.getTime())) {\r\n              throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n          }\r\n          value = arg1;\r\n      }\r\n      else if (isNumber(arg1)) {\r\n          value = arg1;\r\n      }\r\n      else {\r\n          throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n      }\r\n      if (isString(arg2)) {\r\n          options.key = arg2;\r\n      }\r\n      else if (isPlainObject(arg2)) {\r\n          Object.keys(arg2).forEach(key => {\r\n              if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n                  overrides[key] = arg2[key];\r\n              }\r\n              else {\r\n                  options[key] = arg2[key];\r\n              }\r\n          });\r\n      }\r\n      if (isString(arg3)) {\r\n          options.locale = arg3;\r\n      }\r\n      else if (isPlainObject(arg3)) {\r\n          overrides = arg3;\r\n      }\r\n      if (isPlainObject(arg4)) {\r\n          overrides = arg4;\r\n      }\r\n      return [options.key || '', value, options, overrides];\r\n  }\r\n  /** @internal */\r\n  function clearDateTimeFormat(ctx, locale, format) {\r\n      const context = ctx;\r\n      for (const key in format) {\r\n          const id = `${locale}__${key}`;\r\n          if (!context.__datetimeFormatters.has(id)) {\r\n              continue;\r\n          }\r\n          context.__datetimeFormatters.delete(id);\r\n      }\r\n  }\n\n  // implementation of `number` function\r\n  function number(context, ...args) {\r\n      const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n      const { __numberFormatters } = context;\r\n      if (!Availabilities.numberFormat) {\r\n          onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n          return MISSING_RESOLVE_VALUE;\r\n      }\r\n      const [key, value, options, overrides] = parseNumberArgs(...args);\r\n      const missingWarn = isBoolean(options.missingWarn)\r\n          ? options.missingWarn\r\n          : context.missingWarn;\r\n      const fallbackWarn = isBoolean(options.fallbackWarn)\r\n          ? options.fallbackWarn\r\n          : context.fallbackWarn;\r\n      const part = !!options.part;\r\n      const locale = isString(options.locale) ? options.locale : context.locale;\r\n      const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n      fallbackLocale, locale);\r\n      if (!isString(key) || key === '') {\r\n          return new Intl.NumberFormat(locale, overrides).format(value);\r\n      }\r\n      // resolve format\r\n      let numberFormat = {};\r\n      let targetLocale;\r\n      let format = null;\r\n      let from = locale;\r\n      let to = null;\r\n      const type = 'number format';\r\n      for (let i = 0; i < locales.length; i++) {\r\n          targetLocale = to = locales[i];\r\n          if (locale !== targetLocale &&\r\n              isTranslateFallbackWarn(fallbackWarn, key)) {\r\n              onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n                  key,\r\n                  target: targetLocale\r\n              }));\r\n          }\r\n          // for vue-devtools timeline event\r\n          if (locale !== targetLocale) {\r\n              const emitter = context.__v_emitter;\r\n              if (emitter) {\r\n                  emitter.emit(\"fallback\" /* FALBACK */, {\r\n                      type,\r\n                      key,\r\n                      from,\r\n                      to,\r\n                      groupId: `${type}:${key}`\r\n                  });\r\n              }\r\n          }\r\n          numberFormat =\r\n              numberFormats[targetLocale] || {};\r\n          format = numberFormat[key];\r\n          if (isPlainObject(format))\r\n              break;\r\n          handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n          from = to;\r\n      }\r\n      // checking format and target locale\r\n      if (!isPlainObject(format) || !isString(targetLocale)) {\r\n          return unresolving ? NOT_REOSLVED : key;\r\n      }\r\n      let id = `${targetLocale}__${key}`;\r\n      if (!isEmptyObject(overrides)) {\r\n          id = `${id}__${JSON.stringify(overrides)}`;\r\n      }\r\n      let formatter = __numberFormatters.get(id);\r\n      if (!formatter) {\r\n          formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n          __numberFormatters.set(id, formatter);\r\n      }\r\n      return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n  }\r\n  /** @internal */\r\n  const NUMBER_FORMAT_OPTIONS_KEYS = [\r\n      'localeMatcher',\r\n      'style',\r\n      'currency',\r\n      'currencyDisplay',\r\n      'currencySign',\r\n      'useGrouping',\r\n      'minimumIntegerDigits',\r\n      'minimumFractionDigits',\r\n      'maximumFractionDigits',\r\n      'minimumSignificantDigits',\r\n      'maximumSignificantDigits',\r\n      'compactDisplay',\r\n      'notation',\r\n      'signDisplay',\r\n      'unit',\r\n      'unitDisplay',\r\n      'roundingMode',\r\n      'roundingPriority',\r\n      'roundingIncrement',\r\n      'trailingZeroDisplay'\r\n  ];\r\n  /** @internal */\r\n  function parseNumberArgs(...args) {\r\n      const [arg1, arg2, arg3, arg4] = args;\r\n      const options = {};\r\n      let overrides = {};\r\n      if (!isNumber(arg1)) {\r\n          throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n      }\r\n      const value = arg1;\r\n      if (isString(arg2)) {\r\n          options.key = arg2;\r\n      }\r\n      else if (isPlainObject(arg2)) {\r\n          Object.keys(arg2).forEach(key => {\r\n              if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n                  overrides[key] = arg2[key];\r\n              }\r\n              else {\r\n                  options[key] = arg2[key];\r\n              }\r\n          });\r\n      }\r\n      if (isString(arg3)) {\r\n          options.locale = arg3;\r\n      }\r\n      else if (isPlainObject(arg3)) {\r\n          overrides = arg3;\r\n      }\r\n      if (isPlainObject(arg4)) {\r\n          overrides = arg4;\r\n      }\r\n      return [options.key || '', value, options, overrides];\r\n  }\r\n  /** @internal */\r\n  function clearNumberFormat(ctx, locale, format) {\r\n      const context = ctx;\r\n      for (const key in format) {\r\n          const id = `${locale}__${key}`;\r\n          if (!context.__numberFormatters.has(id)) {\r\n              continue;\r\n          }\r\n          context.__numberFormatters.delete(id);\r\n      }\r\n  }\n\n  /**\r\n   * Vue I18n Version\r\n   *\r\n   * @remarks\r\n   * Semver format. Same format as the package.json `version` field.\r\n   *\r\n   * @VueI18nGeneral\r\n   */\r\n  const VERSION = '9.3.0-beta.7';\r\n  /**\r\n   * This is only called development env\r\n   * istanbul-ignore-next\r\n   */\r\n  function initDev() {\r\n      {\r\n          {\r\n              console.info(`You are running a development build of vue-i18n.\\n` +\r\n                  `Make sure to use the production build (*.prod.js) when deploying for production.`);\r\n          }\r\n      }\r\n  }\n\n  let code$1 = CoreWarnCodes.__EXTEND_POINT__;\r\n  const inc$1 = () => ++code$1;\r\n  const I18nWarnCodes = {\r\n      FALLBACK_TO_ROOT: code$1,\r\n      NOT_SUPPORTED_PRESERVE: inc$1(),\r\n      NOT_SUPPORTED_FORMATTER: inc$1(),\r\n      NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),\r\n      NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),\r\n      COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),\r\n      NOT_FOUND_PARENT_SCOPE: inc$1() // 13\r\n  };\r\n  const warnMessages = {\r\n      [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\r\n      [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\r\n      [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\r\n      [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\r\n      [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\r\n      [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n      [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`\r\n  };\r\n  function getWarnMessage(code, ...args) {\r\n      return format(warnMessages[code], ...args);\r\n  }\n\n  let code = CompileErrorCodes.__EXTEND_POINT__;\r\n  const inc = () => ++code;\r\n  const I18nErrorCodes = {\r\n      // composer module errors\r\n      UNEXPECTED_RETURN_TYPE: code,\r\n      // legacy module errors\r\n      INVALID_ARGUMENT: inc(),\r\n      // i18n module errors\r\n      MUST_BE_CALL_SETUP_TOP: inc(),\r\n      NOT_INSLALLED: inc(),\r\n      NOT_AVAILABLE_IN_LEGACY_MODE: inc(),\r\n      // directive module errors\r\n      REQUIRED_VALUE: inc(),\r\n      INVALID_VALUE: inc(),\r\n      // vue-devtools errors\r\n      CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),\r\n      NOT_INSLALLED_WITH_PROVIDE: inc(),\r\n      // unexpected error\r\n      UNEXPECTED_ERROR: inc(),\r\n      // not compatible legacy vue-i18n constructor\r\n      NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),\r\n      // bridge support vue 2.x only\r\n      BRIDGE_SUPPORT_VUE_2_ONLY: inc(),\r\n      // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\r\n      MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),\r\n      // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\r\n      NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),\r\n      // for enhancement\r\n      __EXTEND_POINT__: inc() // 29\r\n  };\r\n  function createI18nError(code, ...args) {\r\n      return createCompileError(code, null, { messages: errorMessages, args } );\r\n  }\r\n  const errorMessages = {\r\n      [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\r\n      [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\r\n      [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\r\n      [I18nErrorCodes.NOT_INSLALLED]: 'Need to install with `app.use` function',\r\n      [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\r\n      [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\r\n      [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\r\n      [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\r\n      [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\r\n      [I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\r\n      [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\r\n      [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\r\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',\r\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'\r\n  };\n\n  const TransrateVNodeSymbol = \r\n  /* #__PURE__*/ makeSymbol('__transrateVNode');\r\n  const DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\r\n  const NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\r\n  const EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\r\n  const DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\r\n  const SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\n  const InejctWithOption = /* #__PURE__*/ makeSymbol('__injectWithOption');\r\n  const __VUE_I18N_BRIDGE__ =  '__VUE_I18N_BRIDGE__';\n\n  /* eslint-disable @typescript-eslint/no-explicit-any */\r\n  /**\r\n   * Transform flat json in obj to normal json in obj\r\n   */\r\n  function handleFlatJson(obj) {\r\n      // check obj\r\n      if (!isObject(obj)) {\r\n          return obj;\r\n      }\r\n      for (const key in obj) {\r\n          // check key\r\n          if (!hasOwn(obj, key)) {\r\n              continue;\r\n          }\r\n          // handle for normal json\r\n          if (!key.includes('.')) {\r\n              // recursive process value if value is also a object\r\n              if (isObject(obj[key])) {\r\n                  handleFlatJson(obj[key]);\r\n              }\r\n          }\r\n          // handle for flat json, transform to normal json\r\n          else {\r\n              // go to the last object\r\n              const subKeys = key.split('.');\r\n              const lastIndex = subKeys.length - 1;\r\n              let currentObj = obj;\r\n              for (let i = 0; i < lastIndex; i++) {\r\n                  if (!(subKeys[i] in currentObj)) {\r\n                      currentObj[subKeys[i]] = {};\r\n                  }\r\n                  currentObj = currentObj[subKeys[i]];\r\n              }\r\n              // update last object value, delete old property\r\n              currentObj[subKeys[lastIndex]] = obj[key];\r\n              delete obj[key];\r\n              // recursive process value if value is also a object\r\n              if (isObject(currentObj[subKeys[lastIndex]])) {\r\n                  handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n              }\r\n          }\r\n      }\r\n      return obj;\r\n  }\r\n  function getLocaleMessages(locale, options) {\r\n      const { messages, __i18n, messageResolver, flatJson } = options;\r\n      // prettier-ignore\r\n      const ret = isPlainObject(messages)\r\n          ? messages\r\n          : isArray(__i18n)\r\n              ? {}\r\n              : { [locale]: {} };\r\n      // merge locale messages of i18n custom block\r\n      if (isArray(__i18n)) {\r\n          __i18n.forEach(custom => {\r\n              if ('locale' in custom && 'resource' in custom) {\r\n                  const { locale, resource } = custom;\r\n                  if (locale) {\r\n                      ret[locale] = ret[locale] || {};\r\n                      deepCopy(resource, ret[locale]);\r\n                  }\r\n                  else {\r\n                      deepCopy(resource, ret);\r\n                  }\r\n              }\r\n              else {\r\n                  isString(custom) && deepCopy(JSON.parse(custom), ret);\r\n              }\r\n          });\r\n      }\r\n      // handle messages for flat json\r\n      if (messageResolver == null && flatJson) {\r\n          for (const key in ret) {\r\n              if (hasOwn(ret, key)) {\r\n                  handleFlatJson(ret[key]);\r\n              }\r\n          }\r\n      }\r\n      return ret;\r\n  }\r\n  const isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n  function deepCopy(src, des) {\r\n      // src and des should both be objects, and non of then can be a array\r\n      if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n          throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n      }\r\n      for (const key in src) {\r\n          if (hasOwn(src, key)) {\r\n              if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n                  // replace with src[key] when:\r\n                  // src[key] or des[key] is not a object, or\r\n                  // src[key] or des[key] is a array\r\n                  des[key] = src[key];\r\n              }\r\n              else {\r\n                  // src[key] and des[key] are both object, merge them\r\n                  deepCopy(src[key], des[key]);\r\n              }\r\n          }\r\n      }\r\n  }\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  function getComponentOptions(instance) {\r\n      return instance.type ;\r\n  }\r\n  function adjustI18nResources(global, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\r\n  ) {\r\n      let messages = isObject(options.messages) ? options.messages : {};\r\n      if ('__i18nGlobal' in componentOptions) {\r\n          messages = getLocaleMessages(global.locale.value, {\r\n              messages,\r\n              __i18n: componentOptions.__i18nGlobal\r\n          });\r\n      }\r\n      // merge locale messages\r\n      const locales = Object.keys(messages);\r\n      if (locales.length) {\r\n          locales.forEach(locale => {\r\n              global.mergeLocaleMessage(locale, messages[locale]);\r\n          });\r\n      }\r\n      {\r\n          // merge datetime formats\r\n          if (isObject(options.datetimeFormats)) {\r\n              const locales = Object.keys(options.datetimeFormats);\r\n              if (locales.length) {\r\n                  locales.forEach(locale => {\r\n                      global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n                  });\r\n              }\r\n          }\r\n          // merge number formats\r\n          if (isObject(options.numberFormats)) {\r\n              const locales = Object.keys(options.numberFormats);\r\n              if (locales.length) {\r\n                  locales.forEach(locale => {\r\n                      global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n                  });\r\n              }\r\n          }\r\n      }\r\n  }\r\n  function createTextNode(key) {\r\n      return vue.createVNode(vue.Text, null, key, 0)\r\n          ;\r\n  }\r\n  /* eslint-enable @typescript-eslint/no-explicit-any */\n\n  /* eslint-disable @typescript-eslint/no-explicit-any */\r\n  // extend VNode interface\r\n  const DEVTOOLS_META = '__INTLIFY_META__';\r\n  let composerID = 0;\r\n  function defineCoreMissingHandler(missing) {\r\n      return ((ctx, locale, key, type) => {\r\n          return missing(locale, key, vue.getCurrentInstance() || undefined, type);\r\n      });\r\n  }\r\n  // for Intlify DevTools\r\n  const getMetaInfo =  () => {\r\n      const instance = vue.getCurrentInstance();\r\n      let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n      return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\r\n          ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n          : null;\r\n  };\r\n  /**\r\n   * Create composer interface factory\r\n   *\r\n   * @internal\r\n   */\r\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n  function createComposer(options = {}, VueI18nLegacy) {\r\n      const { __root } = options;\r\n      const _isGlobal = __root === undefined;\r\n      let _inheritLocale = isBoolean(options.inheritLocale)\r\n          ? options.inheritLocale\r\n          : true;\r\n      const _locale = vue.ref(\r\n      // prettier-ignore\r\n      __root && _inheritLocale\r\n          ? __root.locale.value\r\n          : isString(options.locale)\r\n              ? options.locale\r\n              : DEFAULT_LOCALE);\r\n      const _fallbackLocale = vue.ref(\r\n      // prettier-ignore\r\n      __root && _inheritLocale\r\n          ? __root.fallbackLocale.value\r\n          : isString(options.fallbackLocale) ||\r\n              isArray(options.fallbackLocale) ||\r\n              isPlainObject(options.fallbackLocale) ||\r\n              options.fallbackLocale === false\r\n              ? options.fallbackLocale\r\n              : _locale.value);\r\n      const _messages = vue.ref(getLocaleMessages(_locale.value, options));\r\n      // prettier-ignore\r\n      const _datetimeFormats = vue.ref(isPlainObject(options.datetimeFormats)\r\n              ? options.datetimeFormats\r\n              : { [_locale.value]: {} })\r\n          ;\r\n      // prettier-ignore\r\n      const _numberFormats = vue.ref(isPlainObject(options.numberFormats)\r\n              ? options.numberFormats\r\n              : { [_locale.value]: {} })\r\n          ;\r\n      // warning suppress options\r\n      // prettier-ignore\r\n      let _missingWarn = __root\r\n          ? __root.missingWarn\r\n          : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n              ? options.missingWarn\r\n              : true;\r\n      // prettier-ignore\r\n      let _fallbackWarn = __root\r\n          ? __root.fallbackWarn\r\n          : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n              ? options.fallbackWarn\r\n              : true;\r\n      // prettier-ignore\r\n      let _fallbackRoot = __root\r\n          ? __root.fallbackRoot\r\n          : isBoolean(options.fallbackRoot)\r\n              ? options.fallbackRoot\r\n              : true;\r\n      // configure fall back to root\r\n      let _fallbackFormat = !!options.fallbackFormat;\r\n      // runtime missing\r\n      let _missing = isFunction(options.missing) ? options.missing : null;\r\n      let _runtimeMissing = isFunction(options.missing)\r\n          ? defineCoreMissingHandler(options.missing)\r\n          : null;\r\n      // postTranslation handler\r\n      let _postTranslation = isFunction(options.postTranslation)\r\n          ? options.postTranslation\r\n          : null;\r\n      // prettier-ignore\r\n      let _warnHtmlMessage = __root\r\n          ? __root.warnHtmlMessage\r\n          : isBoolean(options.warnHtmlMessage)\r\n              ? options.warnHtmlMessage\r\n              : true;\r\n      let _escapeParameter = !!options.escapeParameter;\r\n      // custom linked modifiers\r\n      // prettier-ignore\r\n      const _modifiers = __root\r\n          ? __root.modifiers\r\n          : isPlainObject(options.modifiers)\r\n              ? options.modifiers\r\n              : {};\r\n      // pluralRules\r\n      let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n      // runtime context\r\n      // eslint-disable-next-line prefer-const\r\n      let _context;\r\n      const getCoreContext = () => {\r\n          _isGlobal && setFallbackContext(null);\r\n          const ctxOptions = {\r\n              version: VERSION,\r\n              locale: _locale.value,\r\n              fallbackLocale: _fallbackLocale.value,\r\n              messages: _messages.value,\r\n              modifiers: _modifiers,\r\n              pluralRules: _pluralRules,\r\n              missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n              missingWarn: _missingWarn,\r\n              fallbackWarn: _fallbackWarn,\r\n              fallbackFormat: _fallbackFormat,\r\n              unresolving: true,\r\n              postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n              warnHtmlMessage: _warnHtmlMessage,\r\n              escapeParameter: _escapeParameter,\r\n              messageResolver: options.messageResolver,\r\n              __meta: { framework: 'vue' }\r\n          };\r\n          {\r\n              ctxOptions.datetimeFormats = _datetimeFormats.value;\r\n              ctxOptions.numberFormats = _numberFormats.value;\r\n              ctxOptions.__datetimeFormatters = isPlainObject(_context)\r\n                  ? _context.__datetimeFormatters\r\n                  : undefined;\r\n              ctxOptions.__numberFormatters = isPlainObject(_context)\r\n                  ? _context.__numberFormatters\r\n                  : undefined;\r\n          }\r\n          {\r\n              ctxOptions.__v_emitter = isPlainObject(_context)\r\n                  ? _context.__v_emitter\r\n                  : undefined;\r\n          }\r\n          const ctx = createCoreContext(ctxOptions);\r\n          _isGlobal && setFallbackContext(ctx);\r\n          return ctx;\r\n      };\r\n      _context = getCoreContext();\r\n      updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n      // track reactivity\r\n      function trackReactivityValues() {\r\n          return [\r\n                  _locale.value,\r\n                  _fallbackLocale.value,\r\n                  _messages.value,\r\n                  _datetimeFormats.value,\r\n                  _numberFormats.value\r\n              ]\r\n              ;\r\n      }\r\n      // locale\r\n      const locale = vue.computed({\r\n          get: () => _locale.value,\r\n          set: val => {\r\n              _locale.value = val;\r\n              _context.locale = _locale.value;\r\n          }\r\n      });\r\n      // fallbackLocale\r\n      const fallbackLocale = vue.computed({\r\n          get: () => _fallbackLocale.value,\r\n          set: val => {\r\n              _fallbackLocale.value = val;\r\n              _context.fallbackLocale = _fallbackLocale.value;\r\n              updateFallbackLocale(_context, _locale.value, val);\r\n          }\r\n      });\r\n      // messages\r\n      const messages = vue.computed(() => _messages.value);\r\n      // datetimeFormats\r\n      const datetimeFormats = /* #__PURE__*/ vue.computed(() => _datetimeFormats.value);\r\n      // numberFormats\r\n      const numberFormats = /* #__PURE__*/ vue.computed(() => _numberFormats.value);\r\n      // getPostTranslationHandler\r\n      function getPostTranslationHandler() {\r\n          return isFunction(_postTranslation) ? _postTranslation : null;\r\n      }\r\n      // setPostTranslationHandler\r\n      function setPostTranslationHandler(handler) {\r\n          _postTranslation = handler;\r\n          _context.postTranslation = handler;\r\n      }\r\n      // getMissingHandler\r\n      function getMissingHandler() {\r\n          return _missing;\r\n      }\r\n      // setMissingHandler\r\n      function setMissingHandler(handler) {\r\n          if (handler !== null) {\r\n              _runtimeMissing = defineCoreMissingHandler(handler);\r\n          }\r\n          _missing = handler;\r\n          _context.missing = _runtimeMissing;\r\n      }\r\n      function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n      ) {\r\n          return type !== 'translate' || !arg.resolvedMessage;\r\n      }\r\n      const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\r\n          trackReactivityValues(); // track reactive dependency\r\n          // NOTE: experimental !!\r\n          let ret;\r\n          {\r\n              try {\r\n                  setAdditionalMeta(getMetaInfo());\r\n                  if (!_isGlobal) {\r\n                      _context.fallbackContext = __root\r\n                          ? getFallbackContext()\r\n                          : undefined;\r\n                  }\r\n                  ret = fn(_context);\r\n              }\r\n              finally {\r\n                  setAdditionalMeta(null);\r\n                  if (!_isGlobal) {\r\n                      _context.fallbackContext = undefined;\r\n                  }\r\n              }\r\n          }\r\n          if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n              const [key, arg2] = argumentParser();\r\n              if (__root &&\r\n                  isString(key) &&\r\n                  isResolvedTranslateMessage(warnType, arg2)) {\r\n                  if (_fallbackRoot &&\r\n                      (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n                          isTranslateMissingWarn(_missingWarn, key))) {\r\n                      warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\r\n                          key,\r\n                          type: warnType\r\n                      }));\r\n                  }\r\n                  // for vue-devtools timeline event\r\n                  {\r\n                      const { __v_emitter: emitter } = _context;\r\n                      if (emitter && _fallbackRoot) {\r\n                          emitter.emit(\"fallback\" /* FALBACK */, {\r\n                              type: warnType,\r\n                              key,\r\n                              to: 'global',\r\n                              groupId: `${warnType}:${key}`\r\n                          });\r\n                      }\r\n                  }\r\n              }\r\n              return __root && _fallbackRoot\r\n                  ? fallbackSuccess(__root)\r\n                  : fallbackFail(key);\r\n          }\r\n          else if (successCondition(ret)) {\r\n              return ret;\r\n          }\r\n          else {\r\n              /* istanbul ignore next */\r\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\r\n          }\r\n      };\r\n      // t\r\n      function t(...args) {\r\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));\r\n      }\r\n      // rt\r\n      function rt(...args) {\r\n          const [arg1, arg2, arg3] = args;\r\n          if (arg3 && !isObject(arg3)) {\r\n              throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n          }\r\n          return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n      }\r\n      // d\r\n      function d(...args) {\r\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));\r\n      }\r\n      // n\r\n      function n(...args) {\r\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));\r\n      }\r\n      // for custom processor\r\n      function normalize(values) {\r\n          return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\r\n              ? createTextNode(String(val))\r\n              : val);\r\n      }\r\n      const interpolate = (val) => val;\r\n      const processor = {\r\n          normalize,\r\n          interpolate,\r\n          type: 'vnode'\r\n      };\r\n      // transrateVNode, using for `i18n-t` component\r\n      function transrateVNode(...args) {\r\n          return wrapWithDeps(context => {\r\n              let ret;\r\n              const _context = context;\r\n              try {\r\n                  _context.processor = processor;\r\n                  ret = Reflect.apply(translate, null, [_context, ...args]);\r\n              }\r\n              finally {\r\n                  _context.processor = null;\r\n              }\r\n              return ret;\r\n          }, () => parseTranslateArgs(...args), 'translate', \r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          root => root[TransrateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\r\n      }\r\n      // numberParts, using for `i18n-n` component\r\n      function numberParts(...args) {\r\n          return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n      }\r\n      // datetimeParts, using for `i18n-d` component\r\n      function datetimeParts(...args) {\r\n          return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n      }\r\n      function setPluralRules(rules) {\r\n          _pluralRules = rules;\r\n          _context.pluralRules = _pluralRules;\r\n      }\r\n      // te\r\n      function te(key, locale) {\r\n          const targetLocale = isString(locale) ? locale : _locale.value;\r\n          const message = getLocaleMessage(targetLocale);\r\n          return _context.messageResolver(message, key) !== null;\r\n      }\r\n      function resolveMessages(key) {\r\n          let messages = null;\r\n          const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n          for (let i = 0; i < locales.length; i++) {\r\n              const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n              const messageValue = _context.messageResolver(targetLocaleMessages, key);\r\n              if (messageValue != null) {\r\n                  messages = messageValue;\r\n                  break;\r\n              }\r\n          }\r\n          return messages;\r\n      }\r\n      // tm\r\n      function tm(key) {\r\n          const messages = resolveMessages(key);\r\n          // prettier-ignore\r\n          return messages != null\r\n              ? messages\r\n              : __root\r\n                  ? __root.tm(key) || {}\r\n                  : {};\r\n      }\r\n      // getLocaleMessage\r\n      function getLocaleMessage(locale) {\r\n          return (_messages.value[locale] || {});\r\n      }\r\n      // setLocaleMessage\r\n      function setLocaleMessage(locale, message) {\r\n          _messages.value[locale] = message;\r\n          _context.messages = _messages.value;\r\n      }\r\n      // mergeLocaleMessage\r\n      function mergeLocaleMessage(locale, message) {\r\n          _messages.value[locale] = _messages.value[locale] || {};\r\n          deepCopy(message, _messages.value[locale]);\r\n          _context.messages = _messages.value;\r\n      }\r\n      // getDateTimeFormat\r\n      function getDateTimeFormat(locale) {\r\n          return _datetimeFormats.value[locale] || {};\r\n      }\r\n      // setDateTimeFormat\r\n      function setDateTimeFormat(locale, format) {\r\n          _datetimeFormats.value[locale] = format;\r\n          _context.datetimeFormats = _datetimeFormats.value;\r\n          clearDateTimeFormat(_context, locale, format);\r\n      }\r\n      // mergeDateTimeFormat\r\n      function mergeDateTimeFormat(locale, format) {\r\n          _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n          _context.datetimeFormats = _datetimeFormats.value;\r\n          clearDateTimeFormat(_context, locale, format);\r\n      }\r\n      // getNumberFormat\r\n      function getNumberFormat(locale) {\r\n          return _numberFormats.value[locale] || {};\r\n      }\r\n      // setNumberFormat\r\n      function setNumberFormat(locale, format) {\r\n          _numberFormats.value[locale] = format;\r\n          _context.numberFormats = _numberFormats.value;\r\n          clearNumberFormat(_context, locale, format);\r\n      }\r\n      // mergeNumberFormat\r\n      function mergeNumberFormat(locale, format) {\r\n          _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n          _context.numberFormats = _numberFormats.value;\r\n          clearNumberFormat(_context, locale, format);\r\n      }\r\n      // for debug\r\n      composerID++;\r\n      // watch root locale & fallbackLocale\r\n      if (__root && inBrowser) {\r\n          vue.watch(__root.locale, (val) => {\r\n              if (_inheritLocale) {\r\n                  _locale.value = val;\r\n                  _context.locale = val;\r\n                  updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n              }\r\n          });\r\n          vue.watch(__root.fallbackLocale, (val) => {\r\n              if (_inheritLocale) {\r\n                  _fallbackLocale.value = val;\r\n                  _context.fallbackLocale = val;\r\n                  updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n              }\r\n          });\r\n      }\r\n      // define basic composition API!\r\n      const composer = {\r\n          id: composerID,\r\n          locale,\r\n          fallbackLocale,\r\n          get inheritLocale() {\r\n              return _inheritLocale;\r\n          },\r\n          set inheritLocale(val) {\r\n              _inheritLocale = val;\r\n              if (val && __root) {\r\n                  _locale.value = __root.locale.value;\r\n                  _fallbackLocale.value = __root.fallbackLocale.value;\r\n                  updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n              }\r\n          },\r\n          get availableLocales() {\r\n              return Object.keys(_messages.value).sort();\r\n          },\r\n          messages,\r\n          get modifiers() {\r\n              return _modifiers;\r\n          },\r\n          get pluralRules() {\r\n              return _pluralRules || {};\r\n          },\r\n          get isGlobal() {\r\n              return _isGlobal;\r\n          },\r\n          get missingWarn() {\r\n              return _missingWarn;\r\n          },\r\n          set missingWarn(val) {\r\n              _missingWarn = val;\r\n              _context.missingWarn = _missingWarn;\r\n          },\r\n          get fallbackWarn() {\r\n              return _fallbackWarn;\r\n          },\r\n          set fallbackWarn(val) {\r\n              _fallbackWarn = val;\r\n              _context.fallbackWarn = _fallbackWarn;\r\n          },\r\n          get fallbackRoot() {\r\n              return _fallbackRoot;\r\n          },\r\n          set fallbackRoot(val) {\r\n              _fallbackRoot = val;\r\n          },\r\n          get fallbackFormat() {\r\n              return _fallbackFormat;\r\n          },\r\n          set fallbackFormat(val) {\r\n              _fallbackFormat = val;\r\n              _context.fallbackFormat = _fallbackFormat;\r\n          },\r\n          get warnHtmlMessage() {\r\n              return _warnHtmlMessage;\r\n          },\r\n          set warnHtmlMessage(val) {\r\n              _warnHtmlMessage = val;\r\n              _context.warnHtmlMessage = val;\r\n          },\r\n          get escapeParameter() {\r\n              return _escapeParameter;\r\n          },\r\n          set escapeParameter(val) {\r\n              _escapeParameter = val;\r\n              _context.escapeParameter = val;\r\n          },\r\n          t,\r\n          getLocaleMessage,\r\n          setLocaleMessage,\r\n          mergeLocaleMessage,\r\n          getPostTranslationHandler,\r\n          setPostTranslationHandler,\r\n          getMissingHandler,\r\n          setMissingHandler,\r\n          [SetPluralRulesSymbol]: setPluralRules\r\n      };\r\n      {\r\n          composer.datetimeFormats = datetimeFormats;\r\n          composer.numberFormats = numberFormats;\r\n          composer.rt = rt;\r\n          composer.te = te;\r\n          composer.tm = tm;\r\n          composer.d = d;\r\n          composer.n = n;\r\n          composer.getDateTimeFormat = getDateTimeFormat;\r\n          composer.setDateTimeFormat = setDateTimeFormat;\r\n          composer.mergeDateTimeFormat = mergeDateTimeFormat;\r\n          composer.getNumberFormat = getNumberFormat;\r\n          composer.setNumberFormat = setNumberFormat;\r\n          composer.mergeNumberFormat = mergeNumberFormat;\r\n          composer[InejctWithOption] = options.__injectWithOption;\r\n          composer[TransrateVNodeSymbol] = transrateVNode;\r\n          composer[DatetimePartsSymbol] = datetimeParts;\r\n          composer[NumberPartsSymbol] = numberParts;\r\n      }\r\n      // for vue-devtools timeline event\r\n      {\r\n          composer[EnableEmitter] = (emitter) => {\r\n              _context.__v_emitter = emitter;\r\n          };\r\n          composer[DisableEmitter] = () => {\r\n              _context.__v_emitter = undefined;\r\n          };\r\n      }\r\n      return composer;\r\n  }\r\n  /* eslint-enable @typescript-eslint/no-explicit-any */\n\n  /* eslint-disable @typescript-eslint/no-explicit-any */\r\n  /**\r\n   * Convert to I18n Composer Options from VueI18n Options\r\n   *\r\n   * @internal\r\n   */\r\n  function convertComposerOptions(options) {\r\n      const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n      const fallbackLocale = isString(options.fallbackLocale) ||\r\n          isArray(options.fallbackLocale) ||\r\n          isPlainObject(options.fallbackLocale) ||\r\n          options.fallbackLocale === false\r\n          ? options.fallbackLocale\r\n          : locale;\r\n      const missing = isFunction(options.missing) ? options.missing : undefined;\r\n      const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n          isRegExp(options.silentTranslationWarn)\r\n          ? !options.silentTranslationWarn\r\n          : true;\r\n      const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n          isRegExp(options.silentFallbackWarn)\r\n          ? !options.silentFallbackWarn\r\n          : true;\r\n      const fallbackRoot = isBoolean(options.fallbackRoot)\r\n          ? options.fallbackRoot\r\n          : true;\r\n      const fallbackFormat = !!options.formatFallbackMessages;\r\n      const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n      const pluralizationRules = options.pluralizationRules;\r\n      const postTranslation = isFunction(options.postTranslation)\r\n          ? options.postTranslation\r\n          : undefined;\r\n      const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n          ? options.warnHtmlInMessage !== 'off'\r\n          : true;\r\n      const escapeParameter = !!options.escapeParameterHtml;\r\n      const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n      if (options.formatter) {\r\n          warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n      }\r\n      if (options.preserveDirectiveContent) {\r\n          warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n      }\r\n      let messages = options.messages;\r\n      if (isPlainObject(options.sharedMessages)) {\r\n          const sharedMessages = options.sharedMessages;\r\n          const locales = Object.keys(sharedMessages);\r\n          messages = locales.reduce((messages, locale) => {\r\n              const message = messages[locale] || (messages[locale] = {});\r\n              assign(message, sharedMessages[locale]);\r\n              return messages;\r\n          }, (messages || {}));\r\n      }\r\n      const { __i18n, __root, __injectWithOption } = options;\r\n      const datetimeFormats = options.datetimeFormats;\r\n      const numberFormats = options.numberFormats;\r\n      const flatJson = options.flatJson;\r\n      return {\r\n          locale,\r\n          fallbackLocale,\r\n          messages,\r\n          flatJson,\r\n          datetimeFormats,\r\n          numberFormats,\r\n          missing,\r\n          missingWarn,\r\n          fallbackWarn,\r\n          fallbackRoot,\r\n          fallbackFormat,\r\n          modifiers,\r\n          pluralRules: pluralizationRules,\r\n          postTranslation,\r\n          warnHtmlMessage,\r\n          escapeParameter,\r\n          messageResolver: options.messageResolver,\r\n          inheritLocale,\r\n          __i18n,\r\n          __root,\r\n          __injectWithOption\r\n      };\r\n  }\r\n  /**\r\n   * create VueI18n interface factory\r\n   *\r\n   * @internal\r\n   */\r\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n  function createVueI18n(options = {}, VueI18nLegacy) {\r\n      {\r\n          const composer = createComposer(convertComposerOptions(options));\r\n          // defines VueI18n\r\n          const vueI18n = {\r\n              // id\r\n              id: composer.id,\r\n              // locale\r\n              get locale() {\r\n                  return composer.locale.value;\r\n              },\r\n              set locale(val) {\r\n                  composer.locale.value = val;\r\n              },\r\n              // fallbackLocale\r\n              get fallbackLocale() {\r\n                  return composer.fallbackLocale.value;\r\n              },\r\n              set fallbackLocale(val) {\r\n                  composer.fallbackLocale.value = val;\r\n              },\r\n              // messages\r\n              get messages() {\r\n                  return composer.messages.value;\r\n              },\r\n              // datetimeFormats\r\n              get datetimeFormats() {\r\n                  return composer.datetimeFormats.value;\r\n              },\r\n              // numberFormats\r\n              get numberFormats() {\r\n                  return composer.numberFormats.value;\r\n              },\r\n              // availableLocales\r\n              get availableLocales() {\r\n                  return composer.availableLocales;\r\n              },\r\n              // formatter\r\n              get formatter() {\r\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n                  // dummy\r\n                  return {\r\n                      interpolate() {\r\n                          return [];\r\n                      }\r\n                  };\r\n              },\r\n              set formatter(val) {\r\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n              },\r\n              // missing\r\n              get missing() {\r\n                  return composer.getMissingHandler();\r\n              },\r\n              set missing(handler) {\r\n                  composer.setMissingHandler(handler);\r\n              },\r\n              // silentTranslationWarn\r\n              get silentTranslationWarn() {\r\n                  return isBoolean(composer.missingWarn)\r\n                      ? !composer.missingWarn\r\n                      : composer.missingWarn;\r\n              },\r\n              set silentTranslationWarn(val) {\r\n                  composer.missingWarn = isBoolean(val) ? !val : val;\r\n              },\r\n              // silentFallbackWarn\r\n              get silentFallbackWarn() {\r\n                  return isBoolean(composer.fallbackWarn)\r\n                      ? !composer.fallbackWarn\r\n                      : composer.fallbackWarn;\r\n              },\r\n              set silentFallbackWarn(val) {\r\n                  composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n              },\r\n              // modifiers\r\n              get modifiers() {\r\n                  return composer.modifiers;\r\n              },\r\n              // formatFallbackMessages\r\n              get formatFallbackMessages() {\r\n                  return composer.fallbackFormat;\r\n              },\r\n              set formatFallbackMessages(val) {\r\n                  composer.fallbackFormat = val;\r\n              },\r\n              // postTranslation\r\n              get postTranslation() {\r\n                  return composer.getPostTranslationHandler();\r\n              },\r\n              set postTranslation(handler) {\r\n                  composer.setPostTranslationHandler(handler);\r\n              },\r\n              // sync\r\n              get sync() {\r\n                  return composer.inheritLocale;\r\n              },\r\n              set sync(val) {\r\n                  composer.inheritLocale = val;\r\n              },\r\n              // warnInHtmlMessage\r\n              get warnHtmlInMessage() {\r\n                  return composer.warnHtmlMessage ? 'warn' : 'off';\r\n              },\r\n              set warnHtmlInMessage(val) {\r\n                  composer.warnHtmlMessage = val !== 'off';\r\n              },\r\n              // escapeParameterHtml\r\n              get escapeParameterHtml() {\r\n                  return composer.escapeParameter;\r\n              },\r\n              set escapeParameterHtml(val) {\r\n                  composer.escapeParameter = val;\r\n              },\r\n              // preserveDirectiveContent\r\n              get preserveDirectiveContent() {\r\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n                  return true;\r\n              },\r\n              set preserveDirectiveContent(val) {\r\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n              },\r\n              // pluralizationRules\r\n              get pluralizationRules() {\r\n                  return composer.pluralRules || {};\r\n              },\r\n              // for internal\r\n              __composer: composer,\r\n              // t\r\n              t(...args) {\r\n                  const [arg1, arg2, arg3] = args;\r\n                  const options = {};\r\n                  let list = null;\r\n                  let named = null;\r\n                  if (!isString(arg1)) {\r\n                      throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n                  }\r\n                  const key = arg1;\r\n                  if (isString(arg2)) {\r\n                      options.locale = arg2;\r\n                  }\r\n                  else if (isArray(arg2)) {\r\n                      list = arg2;\r\n                  }\r\n                  else if (isPlainObject(arg2)) {\r\n                      named = arg2;\r\n                  }\r\n                  if (isArray(arg3)) {\r\n                      list = arg3;\r\n                  }\r\n                  else if (isPlainObject(arg3)) {\r\n                      named = arg3;\r\n                  }\r\n                  // return composer.t(key, (list || named || {}) as any, options)\r\n                  return Reflect.apply(composer.t, composer, [\r\n                      key,\r\n                      (list || named || {}),\r\n                      options\r\n                  ]);\r\n              },\r\n              rt(...args) {\r\n                  return Reflect.apply(composer.rt, composer, [...args]);\r\n              },\r\n              // tc\r\n              tc(...args) {\r\n                  const [arg1, arg2, arg3] = args;\r\n                  const options = { plural: 1 };\r\n                  let list = null;\r\n                  let named = null;\r\n                  if (!isString(arg1)) {\r\n                      throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n                  }\r\n                  const key = arg1;\r\n                  if (isString(arg2)) {\r\n                      options.locale = arg2;\r\n                  }\r\n                  else if (isNumber(arg2)) {\r\n                      options.plural = arg2;\r\n                  }\r\n                  else if (isArray(arg2)) {\r\n                      list = arg2;\r\n                  }\r\n                  else if (isPlainObject(arg2)) {\r\n                      named = arg2;\r\n                  }\r\n                  if (isString(arg3)) {\r\n                      options.locale = arg3;\r\n                  }\r\n                  else if (isArray(arg3)) {\r\n                      list = arg3;\r\n                  }\r\n                  else if (isPlainObject(arg3)) {\r\n                      named = arg3;\r\n                  }\r\n                  // return composer.t(key, (list || named || {}) as any, options)\r\n                  return Reflect.apply(composer.t, composer, [\r\n                      key,\r\n                      (list || named || {}),\r\n                      options\r\n                  ]);\r\n              },\r\n              // te\r\n              te(key, locale) {\r\n                  return composer.te(key, locale);\r\n              },\r\n              // tm\r\n              tm(key) {\r\n                  return composer.tm(key);\r\n              },\r\n              // getLocaleMessage\r\n              getLocaleMessage(locale) {\r\n                  return composer.getLocaleMessage(locale);\r\n              },\r\n              // setLocaleMessage\r\n              setLocaleMessage(locale, message) {\r\n                  composer.setLocaleMessage(locale, message);\r\n              },\r\n              // mergeLocaleMessage\r\n              mergeLocaleMessage(locale, message) {\r\n                  composer.mergeLocaleMessage(locale, message);\r\n              },\r\n              // d\r\n              d(...args) {\r\n                  return Reflect.apply(composer.d, composer, [...args]);\r\n              },\r\n              // getDateTimeFormat\r\n              getDateTimeFormat(locale) {\r\n                  return composer.getDateTimeFormat(locale);\r\n              },\r\n              // setDateTimeFormat\r\n              setDateTimeFormat(locale, format) {\r\n                  composer.setDateTimeFormat(locale, format);\r\n              },\r\n              // mergeDateTimeFormat\r\n              mergeDateTimeFormat(locale, format) {\r\n                  composer.mergeDateTimeFormat(locale, format);\r\n              },\r\n              // n\r\n              n(...args) {\r\n                  return Reflect.apply(composer.n, composer, [...args]);\r\n              },\r\n              // getNumberFormat\r\n              getNumberFormat(locale) {\r\n                  return composer.getNumberFormat(locale);\r\n              },\r\n              // setNumberFormat\r\n              setNumberFormat(locale, format) {\r\n                  composer.setNumberFormat(locale, format);\r\n              },\r\n              // mergeNumberFormat\r\n              mergeNumberFormat(locale, format) {\r\n                  composer.mergeNumberFormat(locale, format);\r\n              },\r\n              // getChoiceIndex\r\n              // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n              getChoiceIndex(choice, choicesLength) {\r\n                  warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\r\n                  return -1;\r\n              },\r\n              // for internal\r\n              __onComponentInstanceCreated(target) {\r\n                  const { componentInstanceCreatedListener } = options;\r\n                  if (componentInstanceCreatedListener) {\r\n                      componentInstanceCreatedListener(target, vueI18n);\r\n                  }\r\n              }\r\n          };\r\n          // for vue-devtools timeline event\r\n          {\r\n              vueI18n.__enableEmitter = (emitter) => {\r\n                  const __composer = composer;\r\n                  __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n              };\r\n              vueI18n.__disableEmitter = () => {\r\n                  const __composer = composer;\r\n                  __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n              };\r\n          }\r\n          return vueI18n;\r\n      }\r\n  }\r\n  /* eslint-enable @typescript-eslint/no-explicit-any */\n\n  const baseFormatProps = {\r\n      tag: {\r\n          type: [String, Object]\r\n      },\r\n      locale: {\r\n          type: String\r\n      },\r\n      scope: {\r\n          type: String,\r\n          // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n          validator: (val /* ComponetI18nScope */) => val === 'parent' || val === 'global',\r\n          default: 'parent' /* ComponetI18nScope */\r\n      },\r\n      i18n: {\r\n          type: Object\r\n      }\r\n  };\n\n  function getInterpolateArg(\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  { slots }, // SetupContext,\r\n  keys) {\r\n      if (keys.length === 1 && keys[0] === 'default') {\r\n          // default slot with list\r\n          const ret = slots.default ? slots.default() : [];\r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          return ret.reduce((slot, current) => {\r\n              return [\r\n                  ...slot,\r\n                  // prettier-ignore\r\n                  ...(current.type === vue.Fragment ? current.children : [current]\r\n                      )\r\n              ];\r\n          }, []);\r\n      }\r\n      else {\r\n          // named slots\r\n          return keys.reduce((arg, key) => {\r\n              const slot = slots[key];\r\n              if (slot) {\r\n                  arg[key] = slot();\r\n              }\r\n              return arg;\r\n          }, {});\r\n      }\r\n  }\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  function getFragmentableTag(tag) {\r\n      return vue.Fragment ;\r\n  }\n\n  /**\r\n   * Translation Component\r\n   *\r\n   * @remarks\r\n   * See the following items for property about details\r\n   *\r\n   * @VueI18nSee [TranslationProps](component#translationprops)\r\n   * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n   * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n   *\r\n   * @example\r\n   * ```html\r\n   * <div id=\"app\">\r\n   *   <!-- ... -->\r\n   *   <i18n path=\"term\" tag=\"label\" for=\"tos\">\r\n   *     <a :href=\"url\" target=\"_blank\">{{ $t('tos') }}</a>\r\n   *   </i18n>\r\n   *   <!-- ... -->\r\n   * </div>\r\n   * ```\r\n   * ```js\r\n   * import { createApp } from 'vue'\r\n   * import { createI18n } from 'vue-i18n'\r\n   *\r\n   * const messages = {\r\n   *   en: {\r\n   *     tos: 'Term of Service',\r\n   *     term: 'I accept xxx {0}.'\r\n   *   },\r\n   *   ja: {\r\n   *     tos: '利用規約',\r\n   *     term: '私は xxx の{0}に同意します。'\r\n   *   }\r\n   * }\r\n   *\r\n   * const i18n = createI18n({\r\n   *   locale: 'en',\r\n   *   messages\r\n   * })\r\n   *\r\n   * const app = createApp({\r\n   *   data: {\r\n   *     url: '/term'\r\n   *   }\r\n   * }).use(i18n).mount('#app')\r\n   * ```\r\n   *\r\n   * @VueI18nComponent\r\n   */\r\n  const Translation =  /* defineComponent */ {\r\n      /* eslint-disable */\r\n      name: 'i18n-t',\r\n      props: assign({\r\n          keypath: {\r\n              type: String,\r\n              required: true\r\n          },\r\n          plural: {\r\n              type: [Number, String],\r\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n              validator: (val) => isNumber(val) || !isNaN(val)\r\n          }\r\n      }, baseFormatProps),\r\n      /* eslint-enable */\r\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n      setup(props, context) {\r\n          const { slots, attrs } = context;\r\n          // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n          const i18n = props.i18n ||\r\n              useI18n({\r\n                  useScope: props.scope,\r\n                  __useComponent: true\r\n              });\r\n          return () => {\r\n              const keys = Object.keys(slots).filter(key => key !== '_');\r\n              const options = {};\r\n              if (props.locale) {\r\n                  options.locale = props.locale;\r\n              }\r\n              if (props.plural !== undefined) {\r\n                  options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n              }\r\n              const arg = getInterpolateArg(context, keys);\r\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n              const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n              const assignedAttrs = assign({}, attrs);\r\n              const tag = isString(props.tag) || isObject(props.tag)\r\n                  ? props.tag\r\n                  : getFragmentableTag();\r\n              return vue.h(tag, assignedAttrs, children);\r\n          };\r\n      }\r\n  };\n\n  function isVNode(target) {\r\n      return isArray(target) && !isString(target[0]);\r\n  }\r\n  function renderFormatter(props, context, slotKeys, partFormatter) {\r\n      const { slots, attrs } = context;\r\n      return () => {\r\n          const options = { part: true };\r\n          let overrides = {};\r\n          if (props.locale) {\r\n              options.locale = props.locale;\r\n          }\r\n          if (isString(props.format)) {\r\n              options.key = props.format;\r\n          }\r\n          else if (isObject(props.format)) {\r\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n              if (isString(props.format.key)) {\r\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n                  options.key = props.format.key;\r\n              }\r\n              // Filter out number format options only\r\n              overrides = Object.keys(props.format).reduce((options, prop) => {\r\n                  return slotKeys.includes(prop)\r\n                      ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n                      : options;\r\n              }, {});\r\n          }\r\n          const parts = partFormatter(...[props.value, options, overrides]);\r\n          let children = [options.key];\r\n          if (isArray(parts)) {\r\n              children = parts.map((part, index) => {\r\n                  const slot = slots[part.type];\r\n                  const node = slot\r\n                      ? slot({ [part.type]: part.value, index, parts })\r\n                      : [part.value];\r\n                  if (isVNode(node)) {\r\n                      node[0].key = `${part.type}-${index}`;\r\n                  }\r\n                  return node;\r\n              });\r\n          }\r\n          else if (isString(parts)) {\r\n              children = [parts];\r\n          }\r\n          const assignedAttrs = assign({}, attrs);\r\n          const tag = isString(props.tag) || isObject(props.tag)\r\n              ? props.tag\r\n              : getFragmentableTag();\r\n          return vue.h(tag, assignedAttrs, children);\r\n      };\r\n  }\n\n  /**\r\n   * Number Format Component\r\n   *\r\n   * @remarks\r\n   * See the following items for property about details\r\n   *\r\n   * @VueI18nSee [FormattableProps](component#formattableprops)\r\n   * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n   * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n   *\r\n   * @VueI18nDanger\r\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)\r\n   *\r\n   * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n   *\r\n   * @VueI18nComponent\r\n   */\r\n  const NumberFormat =  /* defineComponent */ {\r\n      /* eslint-disable */\r\n      name: 'i18n-n',\r\n      props: assign({\r\n          value: {\r\n              type: Number,\r\n              required: true\r\n          },\r\n          format: {\r\n              type: [String, Object]\r\n          }\r\n      }, baseFormatProps),\r\n      /* eslint-enable */\r\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n      setup(props, context) {\r\n          const i18n = props.i18n ||\r\n              useI18n({ useScope: 'parent', __useComponent: true });\r\n          return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          i18n[NumberPartsSymbol](...args));\r\n      }\r\n  };\n\n  /**\r\n   * Datetime Format Component\r\n   *\r\n   * @remarks\r\n   * See the following items for property about details\r\n   *\r\n   * @VueI18nSee [FormattableProps](component#formattableprops)\r\n   * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n   * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n   *\r\n   * @VueI18nDanger\r\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)\r\n   *\r\n   * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n   *\r\n   * @VueI18nComponent\r\n   */\r\n  const DatetimeFormat =  /*defineComponent */ {\r\n      /* eslint-disable */\r\n      name: 'i18n-d',\r\n      props: assign({\r\n          value: {\r\n              type: [Number, Date],\r\n              required: true\r\n          },\r\n          format: {\r\n              type: [String, Object]\r\n          }\r\n      }, baseFormatProps),\r\n      /* eslint-enable */\r\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n      setup(props, context) {\r\n          const i18n = props.i18n ||\r\n              useI18n({ useScope: 'parent', __useComponent: true });\r\n          return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          i18n[DatetimePartsSymbol](...args));\r\n      }\r\n  };\n\n  function getComposer$2(i18n, instance) {\r\n      const i18nInternal = i18n;\r\n      if (i18n.mode === 'composition') {\r\n          return (i18nInternal.__getInstance(instance) || i18n.global);\r\n      }\r\n      else {\r\n          const vueI18n = i18nInternal.__getInstance(instance);\r\n          return vueI18n != null\r\n              ? vueI18n.__composer\r\n              : i18n.global.__composer;\r\n      }\r\n  }\r\n  function vTDirective(i18n) {\r\n      const _process = (binding) => {\r\n          const { instance, modifiers, value } = binding;\r\n          /* istanbul ignore if */\r\n          if (!instance || !instance.$) {\r\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n          }\r\n          const composer = getComposer$2(i18n, instance.$);\r\n          if (modifiers.preserve) {\r\n              warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\r\n          }\r\n          const parsedValue = parseValue(value);\r\n          return [\r\n              Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\r\n              composer\r\n          ];\r\n      };\r\n      const register = (el, binding) => {\r\n          const [textContent, composer] = _process(binding);\r\n          if (inBrowser && i18n.global === composer) {\r\n              // global scope only\r\n              el.__i18nWatcher = vue.watch(composer.locale, () => {\r\n                  binding.instance && binding.instance.$forceUpdate();\r\n              });\r\n          }\r\n          el.__composer = composer;\r\n          el.textContent = textContent;\r\n      };\r\n      const unregister = (el) => {\r\n          if (inBrowser && el.__i18nWatcher) {\r\n              el.__i18nWatcher();\r\n              el.__i18nWatcher = undefined;\r\n              delete el.__i18nWatcher;\r\n          }\r\n          if (el.__composer) {\r\n              el.__composer = undefined;\r\n              delete el.__composer;\r\n          }\r\n      };\r\n      const update = (el, { value }) => {\r\n          if (el.__composer) {\r\n              const composer = el.__composer;\r\n              const parsedValue = parseValue(value);\r\n              el.textContent = Reflect.apply(composer.t, composer, [\r\n                  ...makeParams(parsedValue)\r\n              ]);\r\n          }\r\n      };\r\n      const getSSRProps = (binding) => {\r\n          const [textContent] = _process(binding);\r\n          return { textContent };\r\n      };\r\n      return {\r\n          created: register,\r\n          unmounted: unregister,\r\n          beforeUpdate: update,\r\n          getSSRProps\r\n      };\r\n  }\r\n  function parseValue(value) {\r\n      if (isString(value)) {\r\n          return { path: value };\r\n      }\r\n      else if (isPlainObject(value)) {\r\n          if (!('path' in value)) {\r\n              throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\r\n          }\r\n          return value;\r\n      }\r\n      else {\r\n          throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n      }\r\n  }\r\n  function makeParams(value) {\r\n      const { path, locale, args, choice, plural } = value;\r\n      const options = {};\r\n      const named = args || {};\r\n      if (isString(locale)) {\r\n          options.locale = locale;\r\n      }\r\n      if (isNumber(choice)) {\r\n          options.plural = choice;\r\n      }\r\n      if (isNumber(plural)) {\r\n          options.plural = plural;\r\n      }\r\n      return [path, named, options];\r\n  }\n\n  function apply(app, i18n, ...options) {\r\n      const pluginOptions = isPlainObject(options[0])\r\n          ? options[0]\r\n          : {};\r\n      const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n      const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n          ? pluginOptions.globalInstall\r\n          : true;\r\n      if (globalInstall && useI18nComponentName) {\r\n          warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\r\n              name: Translation.name\r\n          }));\r\n      }\r\n      if (globalInstall) {\r\n          // install components\r\n          app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n          app.component(NumberFormat.name, NumberFormat);\r\n          app.component(DatetimeFormat.name, DatetimeFormat);\r\n      }\r\n      // install directive\r\n      {\r\n          app.directive('t', vTDirective(i18n));\r\n      }\r\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 = {\r\n      [\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */]: 'Vue I18n devtools',\r\n      [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'I18n Resources',\r\n      [\"vue-i18n-timeline\" /* TIMELINE */]: 'Vue I18n'\r\n  };\r\n  const VueDevToolsPlaceholders = {\r\n      [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'Search for scopes ...'\r\n  };\r\n  const VueDevToolsTimelineColors = {\r\n      [\"vue-i18n-timeline\" /* TIMELINE */]: 0xffcd19\r\n  };\n\n  const VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\n  let devtoolsApi;\r\n  async function enableDevTools(app, i18n) {\r\n      return new Promise((resolve, reject) => {\r\n          try {\r\n              setupDevtoolsPlugin({\r\n                  id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n                  label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n                  packageName: 'vue-i18n',\r\n                  homepage: 'https://vue-i18n.intlify.dev',\r\n                  logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n                  componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n                  app: app // eslint-disable-line @typescript-eslint/no-explicit-any\r\n              }, api => {\r\n                  devtoolsApi = api;\r\n                  api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n                      updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n                  });\r\n                  api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n                      if (componentInstance.vnode.el &&\r\n                          componentInstance.vnode.el.__VUE_I18N__ &&\r\n                          instanceData) {\r\n                          if (i18n.mode === 'legacy') {\r\n                              // ignore global scope on legacy mode\r\n                              if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n                                  i18n.global.__composer) {\r\n                                  inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n                              }\r\n                          }\r\n                          else {\r\n                              inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n                          }\r\n                      }\r\n                  });\r\n                  api.addInspector({\r\n                      id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n                      label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n                      icon: 'language',\r\n                      treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n                  });\r\n                  api.on.getInspectorTree(payload => {\r\n                      if (payload.app === app &&\r\n                          payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n                          registerScope(payload, i18n);\r\n                      }\r\n                  });\r\n                  const roots = new Map();\r\n                  api.on.getInspectorState(async (payload) => {\r\n                      if (payload.app === app &&\r\n                          payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n                          api.unhighlightElement();\r\n                          inspectScope(payload, i18n);\r\n                          if (payload.nodeId === 'global') {\r\n                              if (!roots.has(payload.app)) {\r\n                                  const [root] = await api.getComponentInstances(payload.app);\r\n                                  roots.set(payload.app, root);\r\n                              }\r\n                              api.highlightElement(roots.get(payload.app));\r\n                          }\r\n                          else {\r\n                              const instance = getComponentInstance(payload.nodeId, i18n);\r\n                              instance && api.highlightElement(instance);\r\n                          }\r\n                      }\r\n                  });\r\n                  api.on.editInspectorState(payload => {\r\n                      if (payload.app === app &&\r\n                          payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n                          editScope(payload, i18n);\r\n                      }\r\n                  });\r\n                  api.addTimelineLayer({\r\n                      id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n                      label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n                      color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n                  });\r\n                  resolve(true);\r\n              });\r\n          }\r\n          catch (e) {\r\n              console.error(e);\r\n              reject(false);\r\n          }\r\n      });\r\n  }\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  function getI18nScopeLable(instance) {\r\n      return (instance.type.name ||\r\n          instance.type.displayName ||\r\n          instance.type.__file ||\r\n          'Anonymous');\r\n  }\r\n  function updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n  treeNode, i18n) {\r\n      // prettier-ignore\r\n      const global = i18n.mode === 'composition'\r\n          ? i18n.global\r\n          : i18n.global.__composer;\r\n      if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\r\n          // add custom tags local scope only\r\n          if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n              const tag = {\r\n                  label: `i18n (${getI18nScopeLable(instance)} Scope)`,\r\n                  textColor: 0x000000,\r\n                  backgroundColor: 0xffcd19\r\n              };\r\n              treeNode.tags.push(tag);\r\n          }\r\n      }\r\n  }\r\n  function inspectComposer(instanceData, composer) {\r\n      const type = VUE_I18N_COMPONENT_TYPES;\r\n      instanceData.state.push({\r\n          type,\r\n          key: 'locale',\r\n          editable: true,\r\n          value: composer.locale.value\r\n      });\r\n      instanceData.state.push({\r\n          type,\r\n          key: 'availableLocales',\r\n          editable: false,\r\n          value: composer.availableLocales\r\n      });\r\n      instanceData.state.push({\r\n          type,\r\n          key: 'fallbackLocale',\r\n          editable: true,\r\n          value: composer.fallbackLocale.value\r\n      });\r\n      instanceData.state.push({\r\n          type,\r\n          key: 'inheritLocale',\r\n          editable: true,\r\n          value: composer.inheritLocale\r\n      });\r\n      instanceData.state.push({\r\n          type,\r\n          key: 'messages',\r\n          editable: false,\r\n          value: getLocaleMessageValue(composer.messages.value)\r\n      });\r\n      {\r\n          instanceData.state.push({\r\n              type,\r\n              key: 'datetimeFormats',\r\n              editable: false,\r\n              value: composer.datetimeFormats.value\r\n          });\r\n          instanceData.state.push({\r\n              type,\r\n              key: 'numberFormats',\r\n              editable: false,\r\n              value: composer.numberFormats.value\r\n          });\r\n      }\r\n  }\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  function getLocaleMessageValue(messages) {\r\n      const value = {};\r\n      Object.keys(messages).forEach((key) => {\r\n          const v = messages[key];\r\n          if (isFunction(v) && 'source' in v) {\r\n              value[key] = getMessageFunctionDetails(v);\r\n          }\r\n          else if (isObject(v)) {\r\n              value[key] = getLocaleMessageValue(v);\r\n          }\r\n          else {\r\n              value[key] = v;\r\n          }\r\n      });\r\n      return value;\r\n  }\r\n  const ESC = {\r\n      '<': '&lt;',\r\n      '>': '&gt;',\r\n      '\"': '&quot;',\r\n      '&': '&amp;'\r\n  };\r\n  function escape(s) {\r\n      return s.replace(/[<>\"&]/g, escapeChar);\r\n  }\r\n  function escapeChar(a) {\r\n      return ESC[a] || a;\r\n  }\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  function getMessageFunctionDetails(func) {\r\n      const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n      return {\r\n          _custom: {\r\n              type: 'function',\r\n              display: `<span>ƒ</span> ${argString}`\r\n          }\r\n      };\r\n  }\r\n  function registerScope(payload, i18n) {\r\n      payload.rootNodes.push({\r\n          id: 'global',\r\n          label: 'Global Scope'\r\n      });\r\n      // prettier-ignore\r\n      const global = i18n.mode === 'composition'\r\n          ? i18n.global\r\n          : i18n.global.__composer;\r\n      for (const [keyInstance, instance] of i18n.__instances) {\r\n          // prettier-ignore\r\n          const composer = i18n.mode === 'composition'\r\n              ? instance\r\n              : instance.__composer;\r\n          if (global === composer) {\r\n              continue;\r\n          }\r\n          payload.rootNodes.push({\r\n              id: composer.id.toString(),\r\n              label: `${getI18nScopeLable(keyInstance)} Scope`\r\n          });\r\n      }\r\n  }\r\n  function getComponentInstance(nodeId, i18n) {\r\n      let instance = null;\r\n      if (nodeId !== 'global') {\r\n          for (const [component, composer] of i18n.__instances.entries()) {\r\n              if (composer.id.toString() === nodeId) {\r\n                  instance = component;\r\n                  break;\r\n              }\r\n          }\r\n      }\r\n      return instance;\r\n  }\r\n  function getComposer$1(nodeId, i18n) {\r\n      if (nodeId === 'global') {\r\n          return i18n.mode === 'composition'\r\n              ? i18n.global\r\n              : i18n.global.__composer;\r\n      }\r\n      else {\r\n          const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n          if (instance) {\r\n              return i18n.mode === 'composition'\r\n                  ? instance\r\n                  : instance.__composer;\r\n          }\r\n          else {\r\n              return null;\r\n          }\r\n      }\r\n  }\r\n  function inspectScope(payload, i18n\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  ) {\r\n      const composer = getComposer$1(payload.nodeId, i18n);\r\n      if (composer) {\r\n          // TODO:\r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          payload.state = makeScopeInspectState(composer);\r\n      }\r\n      return null;\r\n  }\r\n  function makeScopeInspectState(composer) {\r\n      const state = {};\r\n      const localeType = 'Locale related info';\r\n      const localeStates = [\r\n          {\r\n              type: localeType,\r\n              key: 'locale',\r\n              editable: true,\r\n              value: composer.locale.value\r\n          },\r\n          {\r\n              type: localeType,\r\n              key: 'fallbackLocale',\r\n              editable: true,\r\n              value: composer.fallbackLocale.value\r\n          },\r\n          {\r\n              type: localeType,\r\n              key: 'availableLocales',\r\n              editable: false,\r\n              value: composer.availableLocales\r\n          },\r\n          {\r\n              type: localeType,\r\n              key: 'inheritLocale',\r\n              editable: true,\r\n              value: composer.inheritLocale\r\n          }\r\n      ];\r\n      state[localeType] = localeStates;\r\n      const localeMessagesType = 'Locale messages info';\r\n      const localeMessagesStates = [\r\n          {\r\n              type: localeMessagesType,\r\n              key: 'messages',\r\n              editable: false,\r\n              value: getLocaleMessageValue(composer.messages.value)\r\n          }\r\n      ];\r\n      state[localeMessagesType] = localeMessagesStates;\r\n      {\r\n          const datetimeFormatsType = 'Datetime formats info';\r\n          const datetimeFormatsStates = [\r\n              {\r\n                  type: datetimeFormatsType,\r\n                  key: 'datetimeFormats',\r\n                  editable: false,\r\n                  value: composer.datetimeFormats.value\r\n              }\r\n          ];\r\n          state[datetimeFormatsType] = datetimeFormatsStates;\r\n          const numberFormatsType = 'Datetime formats info';\r\n          const numberFormatsStates = [\r\n              {\r\n                  type: numberFormatsType,\r\n                  key: 'numberFormats',\r\n                  editable: false,\r\n                  value: composer.numberFormats.value\r\n              }\r\n          ];\r\n          state[numberFormatsType] = numberFormatsStates;\r\n      }\r\n      return state;\r\n  }\r\n  function addTimelineEvent(event, payload) {\r\n      if (devtoolsApi) {\r\n          let groupId;\r\n          if (payload && 'groupId' in payload) {\r\n              groupId = payload.groupId;\r\n              delete payload.groupId;\r\n          }\r\n          devtoolsApi.addTimelineEvent({\r\n              layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n              event: {\r\n                  title: event,\r\n                  groupId,\r\n                  time: Date.now(),\r\n                  meta: {},\r\n                  data: payload || {},\r\n                  logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n                      ? 'error'\r\n                      : event === \"fallback\" /* FALBACK */ ||\r\n                          event === \"missing\" /* MISSING */\r\n                          ? 'warning'\r\n                          : 'default'\r\n              }\r\n          });\r\n      }\r\n  }\r\n  function editScope(payload, i18n) {\r\n      const composer = getComposer$1(payload.nodeId, i18n);\r\n      if (composer) {\r\n          const [field] = payload.path;\r\n          if (field === 'locale' && isString(payload.state.value)) {\r\n              composer.locale.value = payload.state.value;\r\n          }\r\n          else if (field === 'fallbackLocale' &&\r\n              (isString(payload.state.value) ||\r\n                  isArray(payload.state.value) ||\r\n                  isObject(payload.state.value))) {\r\n              composer.fallbackLocale.value = payload.state.value;\r\n          }\r\n          else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n              composer.inheritLocale = payload.state.value;\r\n          }\r\n      }\r\n  }\n\n  /**\r\n   * Supports compatibility for legacy vue-i18n APIs\r\n   * This mixin is used when we use vue-i18n@v9.x or later\r\n   */\r\n  function defineMixin(vuei18n, composer, i18n) {\r\n      return {\r\n          beforeCreate() {\r\n              const instance = vue.getCurrentInstance();\r\n              /* istanbul ignore if */\r\n              if (!instance) {\r\n                  throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n              }\r\n              const options = this.$options;\r\n              if (options.i18n) {\r\n                  const optionsI18n = options.i18n;\r\n                  if (options.__i18n) {\r\n                      optionsI18n.__i18n = options.__i18n;\r\n                  }\r\n                  optionsI18n.__root = composer;\r\n                  if (this === this.$root) {\r\n                      this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n                  }\r\n                  else {\r\n                      optionsI18n.__injectWithOption = true;\r\n                      this.$i18n = createVueI18n(optionsI18n);\r\n                  }\r\n              }\r\n              else if (options.__i18n) {\r\n                  if (this === this.$root) {\r\n                      this.$i18n = mergeToRoot(vuei18n, options);\r\n                  }\r\n                  else {\r\n                      this.$i18n = createVueI18n({\r\n                          __i18n: options.__i18n,\r\n                          __injectWithOption: true,\r\n                          __root: composer\r\n                      });\r\n                  }\r\n              }\r\n              else {\r\n                  // set global\r\n                  this.$i18n = vuei18n;\r\n              }\r\n              if (options.__i18nGlobal) {\r\n                  adjustI18nResources(composer, options, options);\r\n              }\r\n              vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n              i18n.__setInstance(instance, this.$i18n);\r\n              // defines vue-i18n legacy APIs\r\n              this.$t = (...args) => this.$i18n.t(...args);\r\n              this.$rt = (...args) => this.$i18n.rt(...args);\r\n              this.$tc = (...args) => this.$i18n.tc(...args);\r\n              this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n              this.$d = (...args) => this.$i18n.d(...args);\r\n              this.$n = (...args) => this.$i18n.n(...args);\r\n              this.$tm = (key) => this.$i18n.tm(key);\r\n          },\r\n          mounted() {\r\n              /* istanbul ignore if */\r\n              if (this.$el &&\r\n                  this.$i18n) {\r\n                  this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n                  const emitter = (this.__v_emitter =\r\n                      createEmitter());\r\n                  const _vueI18n = this.$i18n;\r\n                  _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n                  emitter.on('*', addTimelineEvent);\r\n              }\r\n          },\r\n          unmounted() {\r\n              const instance = vue.getCurrentInstance();\r\n              /* istanbul ignore if */\r\n              if (!instance) {\r\n                  throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n              }\r\n              /* istanbul ignore if */\r\n              if (this.$el &&\r\n                  this.$el.__VUE_I18N__) {\r\n                  if (this.__v_emitter) {\r\n                      this.__v_emitter.off('*', addTimelineEvent);\r\n                      delete this.__v_emitter;\r\n                  }\r\n                  if (this.$i18n) {\r\n                      const _vueI18n = this.$i18n;\r\n                      _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n                      delete this.$el.__VUE_I18N__;\r\n                  }\r\n              }\r\n              delete this.$t;\r\n              delete this.$rt;\r\n              delete this.$tc;\r\n              delete this.$te;\r\n              delete this.$d;\r\n              delete this.$n;\r\n              delete this.$tm;\r\n              i18n.__deleteInstance(instance);\r\n              delete this.$i18n;\r\n          }\r\n      };\r\n  }\r\n  function mergeToRoot(root, options) {\r\n      root.locale = options.locale || root.locale;\r\n      root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n      root.missing = options.missing || root.missing;\r\n      root.silentTranslationWarn =\r\n          options.silentTranslationWarn || root.silentFallbackWarn;\r\n      root.silentFallbackWarn =\r\n          options.silentFallbackWarn || root.silentFallbackWarn;\r\n      root.formatFallbackMessages =\r\n          options.formatFallbackMessages || root.formatFallbackMessages;\r\n      root.postTranslation = options.postTranslation || root.postTranslation;\r\n      root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n      root.escapeParameterHtml =\r\n          options.escapeParameterHtml || root.escapeParameterHtml;\r\n      root.sync = options.sync || root.sync;\r\n      root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n      const messages = getLocaleMessages(root.locale, {\r\n          messages: options.messages,\r\n          __i18n: options.__i18n\r\n      });\r\n      Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n      if (options.datetimeFormats) {\r\n          Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n      }\r\n      if (options.numberFormats) {\r\n          Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n      }\r\n      return root;\r\n  }\n\n  /**\r\n   * Injection key for {@link useI18n}\r\n   *\r\n   * @remarks\r\n   * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\r\n   * Specify the i18n instance created by {@link createI18n} together with `provide` function.\r\n   *\r\n   * @VueI18nGeneral\r\n   */\r\n  const I18nInjectionKey = \r\n  /* #__PURE__*/ makeSymbol('global-vue-i18n');\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n  function createI18n(options = {}, VueI18nLegacy) {\r\n      // prettier-ignore\r\n      const __legacyMode = isBoolean(options.legacy)\r\n              ? options.legacy\r\n              : true;\r\n      // prettier-ignore\r\n      const __globalInjection = isBoolean(options.globalInjection)\r\n          ? options.globalInjection\r\n          : true;\r\n      // prettier-ignore\r\n      const __allowComposition = __legacyMode\r\n              ? !!options.allowComposition\r\n              : true;\r\n      const __instances = new Map();\r\n      const [globalScope, __global] = createGlobal(options, __legacyMode);\r\n      const symbol = makeSymbol('vue-i18n' );\r\n      function __getInstance(component) {\r\n          return __instances.get(component) || null;\r\n      }\r\n      function __setInstance(component, instance) {\r\n          __instances.set(component, instance);\r\n      }\r\n      function __deleteInstance(component) {\r\n          __instances.delete(component);\r\n      }\r\n      {\r\n          const i18n = {\r\n              // mode\r\n              get mode() {\r\n                  return __legacyMode\r\n                      ? 'legacy'\r\n                      : 'composition';\r\n              },\r\n              // allowComposition\r\n              get allowComposition() {\r\n                  return __allowComposition;\r\n              },\r\n              // install plugin\r\n              async install(app, ...options) {\r\n                  {\r\n                      app.__VUE_I18N__ = i18n;\r\n                  }\r\n                  // setup global provider\r\n                  app.__VUE_I18N_SYMBOL__ = symbol;\r\n                  app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n                  // global method and properties injection for Composition API\r\n                  if (!__legacyMode && __globalInjection) {\r\n                      injectGlobalFields(app, i18n.global);\r\n                  }\r\n                  // install built-in components and directive\r\n                  {\r\n                      apply(app, i18n, ...options);\r\n                  }\r\n                  // setup mixin for Legacy API\r\n                  if (__legacyMode) {\r\n                      app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n                  }\r\n                  // release global scope\r\n                  const unmountApp = app.unmount;\r\n                  app.unmount = () => {\r\n                      i18n.dispose();\r\n                      unmountApp();\r\n                  };\r\n                  // setup vue-devtools plugin\r\n                  {\r\n                      const ret = await enableDevTools(app, i18n);\r\n                      if (!ret) {\r\n                          throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\r\n                      }\r\n                      const emitter = createEmitter();\r\n                      if (__legacyMode) {\r\n                          const _vueI18n = __global;\r\n                          _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n                      }\r\n                      else {\r\n                          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n                          const _composer = __global;\r\n                          _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n                      }\r\n                      emitter.on('*', addTimelineEvent);\r\n                  }\r\n              },\r\n              // global accessor\r\n              get global() {\r\n                  return __global;\r\n              },\r\n              dispose() {\r\n                  globalScope.stop();\r\n              },\r\n              // @internal\r\n              __instances,\r\n              // @internal\r\n              __getInstance,\r\n              // @internal\r\n              __setInstance,\r\n              // @internal\r\n              __deleteInstance\r\n          };\r\n          return i18n;\r\n      }\r\n  }\r\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n  function useI18n(options = {}) {\r\n      const instance = vue.getCurrentInstance();\r\n      if (instance == null) {\r\n          throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\r\n      }\r\n      if (!instance.isCE &&\r\n          instance.appContext.app != null &&\r\n          !instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n          throw createI18nError(I18nErrorCodes.NOT_INSLALLED);\r\n      }\r\n      const i18n = getI18nInstance(instance);\r\n      const global = getGlobalComposer(i18n);\r\n      const componentOptions = getComponentOptions(instance);\r\n      const scope = getScope(options, componentOptions);\r\n      {\r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          if (i18n.mode === 'legacy' && !options.__useComponent) {\r\n              if (!i18n.allowComposition) {\r\n                  throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\r\n              }\r\n              return useI18nForLegacy(instance, scope, global, options);\r\n          }\r\n      }\r\n      if (scope === 'global') {\r\n          adjustI18nResources(global, options, componentOptions);\r\n          return global;\r\n      }\r\n      if (scope === 'parent') {\r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          let composer = getComposer(i18n, instance, options.__useComponent);\r\n          if (composer == null) {\r\n              {\r\n                  warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\r\n              }\r\n              composer = global;\r\n          }\r\n          return composer;\r\n      }\r\n      const i18nInternal = i18n;\r\n      let composer = i18nInternal.__getInstance(instance);\r\n      if (composer == null) {\r\n          const composerOptions = assign({}, options);\r\n          if ('__i18n' in componentOptions) {\r\n              composerOptions.__i18n = componentOptions.__i18n;\r\n          }\r\n          if (global) {\r\n              composerOptions.__root = global;\r\n          }\r\n          composer = createComposer(composerOptions);\r\n          setupLifeCycle(i18nInternal, instance, composer);\r\n          i18nInternal.__setInstance(instance, composer);\r\n      }\r\n      return composer;\r\n  }\r\n  /**\r\n   * Cast to VueI18n legacy compatible type\r\n   *\r\n   * @remarks\r\n   * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\r\n   *\r\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.\r\n   *\r\n   * @param i18n - An instance of {@link I18n}\r\n   * @returns A i18n instance which is casted to {@link VueI18n} type\r\n   *\r\n   * @VueI18nTip\r\n   * :new: provided by **vue-i18n-bridge only**\r\n   *\r\n   * @VueI18nGeneral\r\n   */\r\n  const castToVueI18n =  (i18n\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  ) => {\r\n      if (!(__VUE_I18N_BRIDGE__ in i18n)) {\r\n          throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\r\n      }\r\n      return i18n;\r\n  };\r\n  function createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\r\n  ) {\r\n      const scope = vue.effectScope();\r\n      {\r\n          const obj = legacyMode\r\n              ? scope.run(() => createVueI18n(options))\r\n              : scope.run(() => createComposer(options));\r\n          if (obj == null) {\r\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n          }\r\n          return [scope, obj];\r\n      }\r\n  }\r\n  function getI18nInstance(instance) {\r\n      {\r\n          const i18n = vue.inject(!instance.isCE\r\n              ? instance.appContext.app.__VUE_I18N_SYMBOL__\r\n              : I18nInjectionKey);\r\n          /* istanbul ignore if */\r\n          if (!i18n) {\r\n              throw createI18nError(!instance.isCE\r\n                  ? I18nErrorCodes.UNEXPECTED_ERROR\r\n                  : I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE);\r\n          }\r\n          return i18n;\r\n      }\r\n  }\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  function getScope(options, componentOptions) {\r\n      // prettier-ignore\r\n      return isEmptyObject(options)\r\n          ? ('__i18n' in componentOptions)\r\n              ? 'local'\r\n              : 'global'\r\n          : !options.useScope\r\n              ? 'local'\r\n              : options.useScope;\r\n  }\r\n  function getGlobalComposer(i18n) {\r\n      // prettier-ignore\r\n      return i18n.mode === 'composition'\r\n              ? i18n.global\r\n              : i18n.global.__composer\r\n          ;\r\n  }\r\n  function getComposer(i18n, target, useComponent = false) {\r\n      let composer = null;\r\n      const root = target.root;\r\n      let current = target.parent;\r\n      while (current != null) {\r\n          const i18nInternal = i18n;\r\n          if (i18n.mode === 'composition') {\r\n              composer = i18nInternal.__getInstance(current);\r\n          }\r\n          else {\r\n              {\r\n                  const vueI18n = i18nInternal.__getInstance(current);\r\n                  if (vueI18n != null) {\r\n                      composer = vueI18n\r\n                          .__composer;\r\n                      if (useComponent &&\r\n                          composer &&\r\n                          !composer[InejctWithOption] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n                      ) {\r\n                          composer = null;\r\n                      }\r\n                  }\r\n              }\r\n          }\r\n          if (composer != null) {\r\n              break;\r\n          }\r\n          if (root === current) {\r\n              break;\r\n          }\r\n          current = current.parent;\r\n      }\r\n      return composer;\r\n  }\r\n  function setupLifeCycle(i18n, target, composer) {\r\n      let emitter = null;\r\n      {\r\n          vue.onMounted(() => {\r\n              // inject composer instance to DOM for intlify-devtools\r\n              if (target.vnode.el) {\r\n                  target.vnode.el.__VUE_I18N__ = composer;\r\n                  emitter = createEmitter();\r\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n                  const _composer = composer;\r\n                  _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n                  emitter.on('*', addTimelineEvent);\r\n              }\r\n          }, target);\r\n          vue.onUnmounted(() => {\r\n              // remove composer instance from DOM for intlify-devtools\r\n              if (target.vnode.el &&\r\n                  target.vnode.el.__VUE_I18N__) {\r\n                  emitter && emitter.off('*', addTimelineEvent);\r\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n                  const _composer = composer;\r\n                  _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n                  delete target.vnode.el.__VUE_I18N__;\r\n              }\r\n              i18n.__deleteInstance(target);\r\n          }, target);\r\n      }\r\n  }\r\n  function useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\r\n  ) {\r\n      const isLocale = scope === 'local';\r\n      const _composer = vue.shallowRef(null);\r\n      if (isLocale &&\r\n          instance.proxy &&\r\n          !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\r\n          throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\r\n      }\r\n      const _inheritLocale = isBoolean(options.inheritLocale)\r\n          ? options.inheritLocale\r\n          : true;\r\n      const _locale = vue.ref(\r\n      // prettier-ignore\r\n      isLocale && _inheritLocale\r\n          ? root.locale.value\r\n          : isString(options.locale)\r\n              ? options.locale\r\n              : DEFAULT_LOCALE);\r\n      const _fallbackLocale = vue.ref(\r\n      // prettier-ignore\r\n      isLocale && _inheritLocale\r\n          ? root.fallbackLocale.value\r\n          : isString(options.fallbackLocale) ||\r\n              isArray(options.fallbackLocale) ||\r\n              isPlainObject(options.fallbackLocale) ||\r\n              options.fallbackLocale === false\r\n              ? options.fallbackLocale\r\n              : _locale.value);\r\n      const _messages = vue.ref(getLocaleMessages(_locale.value, options));\r\n      // prettier-ignore\r\n      const _datetimeFormats = vue.ref(isPlainObject(options.datetimeFormats)\r\n          ? options.datetimeFormats\r\n          : { [_locale.value]: {} });\r\n      // prettier-ignore\r\n      const _numberFormats = vue.ref(isPlainObject(options.numberFormats)\r\n          ? options.numberFormats\r\n          : { [_locale.value]: {} });\r\n      // prettier-ignore\r\n      const _missingWarn = isLocale\r\n          ? root.missingWarn\r\n          : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n              ? options.missingWarn\r\n              : true;\r\n      // prettier-ignore\r\n      const _fallbackWarn = isLocale\r\n          ? root.fallbackWarn\r\n          : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n              ? options.fallbackWarn\r\n              : true;\r\n      // prettier-ignore\r\n      const _fallbackRoot = isLocale\r\n          ? root.fallbackRoot\r\n          : isBoolean(options.fallbackRoot)\r\n              ? options.fallbackRoot\r\n              : true;\r\n      // configure fall back to root\r\n      const _fallbackFormat = !!options.fallbackFormat;\r\n      // runtime missing\r\n      const _missing = isFunction(options.missing) ? options.missing : null;\r\n      // postTranslation handler\r\n      const _postTranslation = isFunction(options.postTranslation)\r\n          ? options.postTranslation\r\n          : null;\r\n      // prettier-ignore\r\n      const _warnHtmlMessage = isLocale\r\n          ? root.warnHtmlMessage\r\n          : isBoolean(options.warnHtmlMessage)\r\n              ? options.warnHtmlMessage\r\n              : true;\r\n      const _escapeParameter = !!options.escapeParameter;\r\n      // prettier-ignore\r\n      const _modifiers = isLocale\r\n          ? root.modifiers\r\n          : isPlainObject(options.modifiers)\r\n              ? options.modifiers\r\n              : {};\r\n      // pluralRules\r\n      const _pluralRules = options.pluralRules || (isLocale && root.pluralRules);\r\n      // track reactivity\r\n      function trackReactivityValues() {\r\n          return [\r\n              _locale.value,\r\n              _fallbackLocale.value,\r\n              _messages.value,\r\n              _datetimeFormats.value,\r\n              _numberFormats.value\r\n          ];\r\n      }\r\n      // locale\r\n      const locale = vue.computed({\r\n          get: () => {\r\n              return _composer.value ? _composer.value.locale.value : _locale.value;\r\n          },\r\n          set: val => {\r\n              if (_composer.value) {\r\n                  _composer.value.locale.value = val;\r\n              }\r\n              _locale.value = val;\r\n          }\r\n      });\r\n      // fallbackLocale\r\n      const fallbackLocale = vue.computed({\r\n          get: () => {\r\n              return _composer.value\r\n                  ? _composer.value.fallbackLocale.value\r\n                  : _fallbackLocale.value;\r\n          },\r\n          set: val => {\r\n              if (_composer.value) {\r\n                  _composer.value.fallbackLocale.value = val;\r\n              }\r\n              _fallbackLocale.value = val;\r\n          }\r\n      });\r\n      // messages\r\n      const messages = vue.computed(() => {\r\n          if (_composer.value) {\r\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n              return _composer.value.messages.value;\r\n          }\r\n          else {\r\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n              return _messages.value;\r\n          }\r\n      });\r\n      const datetimeFormats = vue.computed(() => _datetimeFormats.value);\r\n      const numberFormats = vue.computed(() => _numberFormats.value);\r\n      function getPostTranslationHandler() {\r\n          return _composer.value\r\n              ? _composer.value.getPostTranslationHandler()\r\n              : _postTranslation;\r\n      }\r\n      function setPostTranslationHandler(handler) {\r\n          if (_composer.value) {\r\n              _composer.value.setPostTranslationHandler(handler);\r\n          }\r\n      }\r\n      function getMissingHandler() {\r\n          return _composer.value ? _composer.value.getMissingHandler() : _missing;\r\n      }\r\n      function setMissingHandler(handler) {\r\n          if (_composer.value) {\r\n              _composer.value.setMissingHandler(handler);\r\n          }\r\n      }\r\n      function warpWithDeps(fn) {\r\n          trackReactivityValues();\r\n          return fn();\r\n      }\r\n      function t(...args) {\r\n          return _composer.value\r\n              ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\r\n              : warpWithDeps(() => '');\r\n      }\r\n      function rt(...args) {\r\n          return _composer.value\r\n              ? Reflect.apply(_composer.value.rt, null, [...args])\r\n              : '';\r\n      }\r\n      function d(...args) {\r\n          return _composer.value\r\n              ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\r\n              : warpWithDeps(() => '');\r\n      }\r\n      function n(...args) {\r\n          return _composer.value\r\n              ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\r\n              : warpWithDeps(() => '');\r\n      }\r\n      function tm(key) {\r\n          return _composer.value ? _composer.value.tm(key) : {};\r\n      }\r\n      function te(key, locale) {\r\n          return _composer.value ? _composer.value.te(key, locale) : false;\r\n      }\r\n      function getLocaleMessage(locale) {\r\n          return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\r\n      }\r\n      function setLocaleMessage(locale, message) {\r\n          if (_composer.value) {\r\n              _composer.value.setLocaleMessage(locale, message);\r\n              _messages.value[locale] = message;\r\n          }\r\n      }\r\n      function mergeLocaleMessage(locale, message) {\r\n          if (_composer.value) {\r\n              _composer.value.mergeLocaleMessage(locale, message);\r\n          }\r\n      }\r\n      function getDateTimeFormat(locale) {\r\n          return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\r\n      }\r\n      function setDateTimeFormat(locale, format) {\r\n          if (_composer.value) {\r\n              _composer.value.setDateTimeFormat(locale, format);\r\n              _datetimeFormats.value[locale] = format;\r\n          }\r\n      }\r\n      function mergeDateTimeFormat(locale, format) {\r\n          if (_composer.value) {\r\n              _composer.value.mergeDateTimeFormat(locale, format);\r\n          }\r\n      }\r\n      function getNumberFormat(locale) {\r\n          return _composer.value ? _composer.value.getNumberFormat(locale) : {};\r\n      }\r\n      function setNumberFormat(locale, format) {\r\n          if (_composer.value) {\r\n              _composer.value.setNumberFormat(locale, format);\r\n              _numberFormats.value[locale] = format;\r\n          }\r\n      }\r\n      function mergeNumberFormat(locale, format) {\r\n          if (_composer.value) {\r\n              _composer.value.mergeNumberFormat(locale, format);\r\n          }\r\n      }\r\n      const wrapper = {\r\n          get id() {\r\n              return _composer.value ? _composer.value.id : -1;\r\n          },\r\n          locale,\r\n          fallbackLocale,\r\n          messages,\r\n          datetimeFormats,\r\n          numberFormats,\r\n          get inheritLocale() {\r\n              return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\r\n          },\r\n          set inheritLocale(val) {\r\n              if (_composer.value) {\r\n                  _composer.value.inheritLocale = val;\r\n              }\r\n          },\r\n          get availableLocales() {\r\n              return _composer.value\r\n                  ? _composer.value.availableLocales\r\n                  : Object.keys(_messages.value);\r\n          },\r\n          get modifiers() {\r\n              return (_composer.value ? _composer.value.modifiers : _modifiers);\r\n          },\r\n          get pluralRules() {\r\n              return (_composer.value ? _composer.value.pluralRules : _pluralRules);\r\n          },\r\n          get isGlobal() {\r\n              return _composer.value ? _composer.value.isGlobal : false;\r\n          },\r\n          get missingWarn() {\r\n              return _composer.value ? _composer.value.missingWarn : _missingWarn;\r\n          },\r\n          set missingWarn(val) {\r\n              if (_composer.value) {\r\n                  _composer.value.missingWarn = val;\r\n              }\r\n          },\r\n          get fallbackWarn() {\r\n              return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\r\n          },\r\n          set fallbackWarn(val) {\r\n              if (_composer.value) {\r\n                  _composer.value.missingWarn = val;\r\n              }\r\n          },\r\n          get fallbackRoot() {\r\n              return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\r\n          },\r\n          set fallbackRoot(val) {\r\n              if (_composer.value) {\r\n                  _composer.value.fallbackRoot = val;\r\n              }\r\n          },\r\n          get fallbackFormat() {\r\n              return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\r\n          },\r\n          set fallbackFormat(val) {\r\n              if (_composer.value) {\r\n                  _composer.value.fallbackFormat = val;\r\n              }\r\n          },\r\n          get warnHtmlMessage() {\r\n              return _composer.value\r\n                  ? _composer.value.warnHtmlMessage\r\n                  : _warnHtmlMessage;\r\n          },\r\n          set warnHtmlMessage(val) {\r\n              if (_composer.value) {\r\n                  _composer.value.warnHtmlMessage = val;\r\n              }\r\n          },\r\n          get escapeParameter() {\r\n              return _composer.value\r\n                  ? _composer.value.escapeParameter\r\n                  : _escapeParameter;\r\n          },\r\n          set escapeParameter(val) {\r\n              if (_composer.value) {\r\n                  _composer.value.escapeParameter = val;\r\n              }\r\n          },\r\n          t,\r\n          getPostTranslationHandler,\r\n          setPostTranslationHandler,\r\n          getMissingHandler,\r\n          setMissingHandler,\r\n          rt,\r\n          d,\r\n          n,\r\n          tm,\r\n          te,\r\n          getLocaleMessage,\r\n          setLocaleMessage,\r\n          mergeLocaleMessage,\r\n          getDateTimeFormat,\r\n          setDateTimeFormat,\r\n          mergeDateTimeFormat,\r\n          getNumberFormat,\r\n          setNumberFormat,\r\n          mergeNumberFormat\r\n      };\r\n      function sync(composer) {\r\n          composer.locale.value = _locale.value;\r\n          composer.fallbackLocale.value = _fallbackLocale.value;\r\n          Object.keys(_messages.value).forEach(locale => {\r\n              composer.mergeLocaleMessage(locale, _messages.value[locale]);\r\n          });\r\n          Object.keys(_datetimeFormats.value).forEach(locale => {\r\n              composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\r\n          });\r\n          Object.keys(_numberFormats.value).forEach(locale => {\r\n              composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\r\n          });\r\n          composer.escapeParameter = _escapeParameter;\r\n          composer.fallbackFormat = _fallbackFormat;\r\n          composer.fallbackRoot = _fallbackRoot;\r\n          composer.fallbackWarn = _fallbackWarn;\r\n          composer.missingWarn = _missingWarn;\r\n          composer.warnHtmlMessage = _warnHtmlMessage;\r\n      }\r\n      vue.onBeforeMount(() => {\r\n          if (instance.proxy == null || instance.proxy.$i18n == null) {\r\n              throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\r\n          }\r\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n          const composer = (_composer.value = instance.proxy.$i18n\r\n              .__composer);\r\n          if (scope === 'global') {\r\n              _locale.value = composer.locale.value;\r\n              _fallbackLocale.value = composer.fallbackLocale.value;\r\n              _messages.value = composer.messages.value;\r\n              _datetimeFormats.value = composer.datetimeFormats.value;\r\n              _numberFormats.value = composer.numberFormats.value;\r\n          }\r\n          else if (isLocale) {\r\n              sync(composer);\r\n          }\r\n      });\r\n      return wrapper;\r\n  }\r\n  const globalExportProps = [\r\n      'locale',\r\n      'fallbackLocale',\r\n      'availableLocales'\r\n  ];\r\n  const globalExportMethods = ['t', 'rt', 'd', 'n', 'tm', 'te']\r\n      ;\r\n  function injectGlobalFields(app, composer) {\r\n      const i18n = Object.create(null);\r\n      globalExportProps.forEach(prop => {\r\n          const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n          if (!desc) {\r\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n          }\r\n          const wrap = vue.isRef(desc.value) // check computed props\r\n              ? {\r\n                  get() {\r\n                      return desc.value.value;\r\n                  },\r\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n                  set(val) {\r\n                      desc.value.value = val;\r\n                  }\r\n              }\r\n              : {\r\n                  get() {\r\n                      return desc.get && desc.get();\r\n                  }\r\n              };\r\n          Object.defineProperty(i18n, prop, wrap);\r\n      });\r\n      app.config.globalProperties.$i18n = i18n;\r\n      globalExportMethods.forEach(method => {\r\n          const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n          if (!desc || !desc.value) {\r\n              throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n          }\r\n          Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n      });\r\n  }\n\n  // register message compiler at vue-i18n\r\n  registerMessageCompiler(compileToFunction);\r\n  // register message resolver at vue-i18n\r\n  registerMessageResolver(resolveValue);\r\n  // register fallback locale at vue-i18n\r\n  registerLocaleFallbacker(fallbackWithLocaleChain);\r\n  // NOTE: experimental !!\r\n  {\r\n      const target = getGlobalThis();\r\n      target.__INTLIFY__ = true;\r\n      setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n  }\r\n  {\r\n      initDev();\r\n  }\n\n  exports.DatetimeFormat = DatetimeFormat;\n  exports.I18nInjectionKey = I18nInjectionKey;\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  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n\n})({}, Vue);\n"]}