{"version":3,"file":"js/npm.intlify.26238620.js","mappings":"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","sources":["webpack://kkpam_www/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack://kkpam_www/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack://kkpam_www/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack://kkpam_www/./node_modules/@intlify/shared/dist/shared.esm-bundler.js"],"sourcesContent":["/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isString, isFunction, isNumber, isPlainObject, toDisplayString, isArray, format, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[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\npathStateMachine[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\npathStateMachine[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\npathStateMachine[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\npathStateMachine[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\npathStateMachine[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\npathStateMachine[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\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nconst 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\nfunction 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\nfunction 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\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction 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\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst 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\nconst warnMessages = {\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\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nconst VERSION = '9.2.2';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\nfunction 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\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _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\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _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\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\nlet _fallbackContext = null;\r\nconst setFallbackContext = (context) => {\r\n _fallbackContext = context;\r\n};\r\nconst getFallbackContext = () => _fallbackContext;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\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 if ((process.env.NODE_ENV !== 'production')) {\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 if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\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 ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction 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\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction 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\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && 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\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\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\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction 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 ((process.env.NODE_ENV !== 'production') && 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 if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\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\nfunction 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\nfunction 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 ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(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 ((process.env.NODE_ENV !== 'production') && 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 ((process.env.NODE_ENV !== 'production') && 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 ((process.env.NODE_ENV !== 'production') && 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\nfunction 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 ((process.env.NODE_ENV !== 'production') && 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 ((process.env.NODE_ENV !== 'production') && 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\nfunction 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 ((process.env.NODE_ENV !== 'production') && 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 ((process.env.NODE_ENV !== 'production') && 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\nfunction 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\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\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 else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction 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\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst 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\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(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 ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(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 ((process.env.NODE_ENV !== 'production') && 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\nconst 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\nfunction 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\nfunction 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\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(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 ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(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 ((process.env.NODE_ENV !== 'production') && 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\nconst 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\nfunction 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\nfunction 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// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * message-compiler v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\nconst 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\nconst errorMessages = {\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\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\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\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction 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\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction 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\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction 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\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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 if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst 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\nfunction 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\nexport { CompileErrorCodes, ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * shared v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\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\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction 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\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction 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\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst 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\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction 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\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst 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\nconst RANGE = 2;\r\nfunction 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\nfunction 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\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n"],"names":["IntlifyDevToolsHooks","I18nInit","FunctionTranslate","pathStateMachine","literalValueRE","isLiteral","exp","test","stripQuotes","str","a","charCodeAt","b","length","slice","getPathCharType","ch","undefined","code","formatSubPath","path","trimmed","trim","charAt","isNaN","parseInt","parse","keys","c","key","newChar","type","transition","action","typeMap","index","mode","subPathDepth","actions","maybeUnescapeQuote","nextChar","push","cache","Map","resolveWithKeyValue","obj","resolveValue","hit","get","set","len","last","i","val","DEFAULT_MODIFIER","DEFAULT_MESSAGE","ctx","DEFAULT_MESSAGE_DATA_TYPE","DEFAULT_NORMALIZE","values","join","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","Math","abs","min","getPluralIndex","options","pluralIndex","named","count","n","normalizeNamed","props","createMessageContext","locale","pluralRule","pluralRules","orgPluralRule","plural","messages","_list","list","_named","message","msg","parent","_modifier","name","modifiers","normalize","processor","interpolate","linked","args","arg1","arg2","modifier","devtools","setDevToolsHook","hook","initI18nDevTools","i18n","version","meta","emit","timestamp","Date","now","translateDevTools","createDevToolsHook","payloads","CoreWarnCodes","NOT_FOUND_KEY","FALLBACK_TO_TRANSLATE","CANNOT_FORMAT_NUMBER","FALLBACK_TO_NUMBER_FORMAT","CANNOT_FORMAT_DATE","FALLBACK_TO_DATE_FORMAT","__EXTEND_POINT__","fallbackWithSimple","fallback","start","Set","Object","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","context","__localeChainCache","chain","block","appendBlockToChain","defaults","blocks","follow","appendLocaleToChain","tokens","split","target","appendItemToChain","splice","includes","replace","VERSION","NOT_REOSLVED","MISSING_RESOLVE_VALUE","capitalize","toLocaleUpperCase","substr","getDefaultLinkedModifiers","upper","toUpperCase","children","lower","toLowerCase","_compiler","_resolver","_fallbacker","registerMessageCompiler","compiler","registerMessageResolver","resolver","registerLocaleFallbacker","fallbacker","_additionalMeta","setAdditionalMeta","getAdditionalMeta","_fallbackContext","setFallbackContext","getFallbackContext","_cid","createCoreContext","fallbackLocale","datetimeFormats","numberFormats","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","warnHtmlMessage","escapeParameter","messageCompiler","messageResolver","localeFallbacker","fallbackContext","onWarn","internalOptions","__datetimeFormatters","__numberFormatters","__meta","cid","__INTLIFY_PROD_DEVTOOLS__","handleMissing","ret","updateFallbackLocale","defaultOnCacheKey","source","compileCache","create","compileToFunction","onCacheKey","cached","occurred","onError","err","Function","inc","CoreErrorCodes","INVALID_ARGUMENT","INVALID_DATE_ARGUMENT","INVALID_ISO_DATE_ARGUMENT","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","parseTranslateArgs","resolvedMessage","defaultMsgOrKey","default","enableDefaultMsg","escapeParams","formatScope","targetLocale","resolveMessageFormat","format","cacheBaseKey","errorDetector","compileMessageFormat","ctxOptions","getMessageContextOptions","msgContext","messaged","evaluateMessage","map","item","forEach","locales","from","to","missingRet","getCompileOptions","msgCtx","arg3","String","resolveMessage","intlDefined","Intl","DateTimeFormat","NumberFormat","datetime","value","overrides","parseDateTimeArgs","part","datetimeFormat","id","JSON","stringify","formatter","formatToParts","DATETIME_FORMAT_OPTIONS_KEYS","arg4","matches","match","dateTime","startsWith","toISOString","e","getTime","clearDateTimeFormat","has","delete","number","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","CompileErrorCodes","EXPECTED_TOKEN","INVALID_TOKEN_IN_PLACEHOLDER","UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER","UNKNOWN_ESCAPE_SEQUENCE","INVALID_UNICODE_ESCAPE_SEQUENCE","UNBALANCED_CLOSING_BRACE","UNTERMINATED_CLOSING_BRACE","EMPTY_PLACEHOLDER","NOT_ALLOW_NEST_PLACEHOLDER","INVALID_LINKED_FORMAT","MUST_HAVE_MESSAGES_IN_PLURAL","UNEXPECTED_EMPTY_LINKED_MODIFIER","UNEXPECTED_EMPTY_LINKED_KEY","UNEXPECTED_LEXICAL_ANALYSIS","createCompileError","loc","domain","error","SyntaxError","location","defaultOnError","createPosition","line","column","offset","createLocation","end","CHAR_SP","CHAR_CR","CHAR_LF","CHAR_LS","fromCharCode","CHAR_PS","createScanner","_buf","_index","_line","_column","_peekOffset","isCRLF","isLF","isPS","isLS","isLineEnd","peekOffset","currentChar","currentPeek","next","peek","reset","resetPeek","skipToPeek","EOF","LITERAL_DELIMITER","ERROR_DOMAIN$1","createTokenizer","_scnr","currentOffset","currentPosition","_initLoc","_initOffset","_context","currentType","startLoc","endLoc","lastType","lastOffset","lastStartLoc","lastEndLoc","braceNest","inLinked","text","emitError","pos","getToken","token","getEndToken","eat","scnr","peekSpaces","buf","skipSpaces","isIdentifierStart","cc","isNumberStart","isNamedIdentifierStart","isListIdentifierStart","isLiteralStart","isLinkedDotStart","isLinkedModifierStart","isLinkedDelimiterStart","isLinkedReferStart","fn","isPluralStart","detectModuloStart","spaces","isModulo","hasSpace","isTextStart","prev","detectModulo","takeChar","takeIdentifierChar","closure","takeDigit","takeHexDigit","getDigits","num","readModulo","readText","readNamedIdentifier","readListIdentifier","readLiteral","literal","x","readEscapeSequence","current","readUnicodeEscapeSequence","unicode","digits","sequence","readInvalidIdentifier","identifiers","readLinkedModifier","readLinkedRefer","detect","readPlural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","nextToken","ERROR_DOMAIN","KNOWN_ESCAPES","fromEscapeSequence","codePoint4","codePoint6","codePoint","fromCodePoint","createParser","tokenzer","startNode","node","endNode","parseText","tokenizer","parseList","parseNamed","parseLiteral","parseLinkedModifier","nextConsumeToken","getTokenCaption","parseLinkedKey","parseLinked","linkedNode","parsed","nextContext","emptyLinkedKeyNode","parseMessage","startOffset","items","endOffset","parsePlural","msgNode","hasEmptyMessage","cases","parseResource","body","createTransformer","ast","helpers","helper","add","traverseNodes","nodes","transformer","traverseNode","transform","Array","createCodeGenerator","sourceMap","filename","breakLineCode","needIndent","_needIndent","indentLevel","_newline","withBreakLine","_breakLineCode","repeat","indent","withNewLine","level","deindent","newline","generateLinkedNode","generator","generateNode","generateMessageNode","generatePluralNode","generateResource","generate","s","toJSON","baseCompile","assignedOptions","parser","inBrowser","window","hasSymbol","Symbol","toStringTag","makeSymbol","generateFormatCacheKey","friendlyJSONstringify","l","k","json","isNumber","isFinite","isDate","toTypeString","isRegExp","isEmptyObject","isPlainObject","warn","console","stack","assign","_globalThis","getGlobalThis","globalThis","self","g","escapeHtml","rawText","hasOwnProperty","prototype","hasOwn","call","isArray","isFunction","isString","isBoolean","isObject","objectToString","toString","toDisplayString"],"sourceRoot":""}