HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/open-webui/node_modules/i18next-parser/dist/helpers.js.map
{"version":3,"file":"helpers.js","names":["pathToFileURL","build","rmSync","yaml","builtinModules","dotPathToHash","entry","target","arguments","length","undefined","options","conflict","duplicate","path","keyWithNamespace","suffix","separator","key","substring","indexOf","namespace","defaultValue","concat","newValue","value","locale","endsWith","slice","segments","split","inner","i","segment","lastSegment","oldValue","_typeof","customValueTemplate","entries","Object","forEach","valueEntry","filePaths","replace","mergeHashes","source","resetValues","old","reset","mergeCount","pullCount","oldCount","resetCount","keepRemoved","keepRemovedPatterns","fullKeyPrefix","keySeparator","pluralSeparator","_loop","hasNestedEntries","Array","isArray","nested","_objectSpread","keys","resetAndFlag","isPlural","singularKey","getSingularForm","pluralMatch","contextRegex","contextMatch","test","rawKey","hasRelatedPluralKey","keepKey","some","pattern","transferValues","sourceValue","targetValue","pluralSuffixes","pluralRegex","RegExp","getPluralSuffixPosition","len","makeDefaultSort","defaultSort","key1","key2","singularKey1","singularKey2","localeCompare","esConfigLoader","_x","_esConfigLoader","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","filepath","wrap","_callee$","_context","prev","next","abrupt","sent","stop","tsConfigLoader","_x2","_tsConfigLoader","_callee2","outfile","config","_callee2$","_context2","absWorkingDir","process","cwd","entryPoints","write","platform","bundle","format","sourcemap","external","_toConsumableArray","map","mod","yamlConfigLoader","content","load","unescape","text","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","m"],"sources":["../src/helpers.js"],"sourcesContent":["import { pathToFileURL } from 'url'\nimport { build } from 'esbuild'\nimport { rmSync } from 'fs'\nimport yaml from 'js-yaml'\nimport { builtinModules } from 'module'\n\n/**\n * Take an entry for the Parser and turn it into a hash,\n * turning the key path 'foo.bar' into an hash {foo: {bar: \"\"}}\n * The generated hash can be merged with an optional `target`.\n * @returns An `{ target, duplicate, conflict }` object. `target` is the hash\n * that was passed as an argument or a new hash if none was passed. `duplicate`\n * indicates whether the entry already existed in the `target` hash. `conflict`\n * is `\"key\"` if a parent of the key was already mapped to a string (e.g. when\n * merging entry {one: {two: \"bla\"}} with target {one: \"bla\"}) or the key was\n * already mapped to a map (e.g. when merging entry {one: \"bla\"} with target\n * {one: {two: \"bla\"}}), `\"value\"` if the same key already exists with a\n * different value, or `false`.\n */\nfunction dotPathToHash(entry, target = {}, options = {}) {\n  let conflict = false\n  let duplicate = false\n  let path = entry.keyWithNamespace\n  if (options.suffix) {\n    path += options.suffix\n  }\n\n  const separator = options.separator || '.'\n\n  const key = entry.keyWithNamespace.substring(\n    entry.keyWithNamespace.indexOf(separator) + separator.length,\n    entry.keyWithNamespace.length\n  )\n\n  // There is no key to process so we return an empty object\n  if (!key) {\n    if (!target[entry.namespace]) {\n      target[entry.namespace] = {}\n    }\n    return { target, duplicate, conflict }\n  }\n\n  const defaultValue =\n    entry[`defaultValue${options.suffix}`] || entry.defaultValue || ''\n\n  let newValue =\n    typeof options.value === 'function'\n      ? options.value(options.locale, entry.namespace, key, defaultValue)\n      : options.value || defaultValue\n\n  if (path.endsWith(separator)) {\n    path = path.slice(0, -separator.length)\n  }\n\n  const segments = path.split(separator)\n  let inner = target\n  for (let i = 0; i < segments.length - 1; i += 1) {\n    const segment = segments[i]\n    if (segment) {\n      if (typeof inner[segment] === 'string') {\n        conflict = 'key'\n      }\n      if (inner[segment] === undefined || conflict) {\n        inner[segment] = {}\n      }\n      inner = inner[segment]\n    }\n  }\n\n  const lastSegment = segments[segments.length - 1]\n  const oldValue = inner[lastSegment]\n  if (oldValue !== undefined && oldValue !== newValue) {\n    if (typeof oldValue !== typeof newValue) {\n      conflict = 'key'\n    } else if (oldValue !== '') {\n      if (newValue === '') {\n        newValue = oldValue\n      } else {\n        conflict = 'value'\n      }\n    }\n  }\n  duplicate = oldValue !== undefined || conflict !== false\n\n  if (options.customValueTemplate) {\n    inner[lastSegment] = {}\n\n    const entries = Object.entries(options.customValueTemplate)\n    entries.forEach((valueEntry) => {\n      if (valueEntry[1] === '${defaultValue}') {\n        inner[lastSegment][valueEntry[0]] = newValue\n      } else if (valueEntry[1] === '${filePaths}') {\n        inner[lastSegment][valueEntry[0]] = entry.filePaths\n      } else {\n        inner[lastSegment][valueEntry[0]] =\n          entry[valueEntry[1].replace(/\\${(\\w+)}/, '$1')] || ''\n      }\n    })\n  } else {\n    inner[lastSegment] = newValue\n  }\n\n  return { target, duplicate, conflict }\n}\n\n/**\n * Takes a `source` hash and makes sure its value\n * is pasted in the `target` hash, if the target\n * hash has the corresponding key (or if `options.keepRemoved` is true).\n * @returns An `{ old, new, mergeCount, pullCount, oldCount, reset, resetCount }` object.\n * `old` is a hash of values that have not been merged into `target`.\n * `new` is `target`. `mergeCount` is the number of keys merged into\n * `new`, `pullCount` is the number of context and plural keys added to\n * `new` and `oldCount` is the number of keys that were either added to `old` or\n * `new` (if `options.keepRemoved` is true and `target` didn't have the corresponding\n * key) and `reset` is the keys that were reset due to not matching default values,\n *  and `resetCount` which is the number of keys reset.\n */\nfunction mergeHashes(source, target, options = {}, resetValues = {}) {\n  let old = {}\n  let reset = {}\n  let mergeCount = 0\n  let pullCount = 0\n  let oldCount = 0\n  let resetCount = 0\n\n  const keepRemoved =\n    (typeof options.keepRemoved === 'boolean' && options.keepRemoved) || false\n  const keepRemovedPatterns =\n    (typeof options.keepRemoved !== 'boolean' && options.keepRemoved) || []\n  const fullKeyPrefix = options.fullKeyPrefix || ''\n  const keySeparator = options.keySeparator || '.'\n  const pluralSeparator = options.pluralSeparator || '_'\n\n  for (const key in source) {\n    const hasNestedEntries =\n      typeof target[key] === 'object' && !Array.isArray(target[key])\n\n    if (hasNestedEntries) {\n      const nested = mergeHashes(\n        source[key],\n        target[key],\n        { ...options, fullKeyPrefix: fullKeyPrefix + key + keySeparator },\n        resetValues[key]\n      )\n      mergeCount += nested.mergeCount\n      pullCount += nested.pullCount\n      oldCount += nested.oldCount\n      resetCount += nested.resetCount\n      if (Object.keys(nested.old).length) {\n        old[key] = nested.old\n      }\n      if (Object.keys(nested.reset).length) {\n        reset[key] = nested.reset\n      }\n    } else if (target[key] !== undefined) {\n      if (typeof source[key] !== 'string' && !Array.isArray(source[key])) {\n        old[key] = source[key]\n        oldCount += 1\n      } else {\n        if (\n          (options.resetAndFlag &&\n            !isPlural(key) &&\n            typeof source[key] === 'string' &&\n            source[key] !== target[key]) ||\n          resetValues[key]\n        ) {\n          old[key] = source[key]\n          oldCount += 1\n          reset[key] = true\n          resetCount += 1\n        } else {\n          target[key] = source[key]\n          mergeCount += 1\n        }\n      }\n    } else {\n      // support for plural in keys\n      const singularKey = getSingularForm(key, pluralSeparator)\n      const pluralMatch = key !== singularKey\n\n      // support for context in keys\n      const contextRegex = /_([^_]+)?$/\n      const contextMatch = contextRegex.test(singularKey)\n      const rawKey = singularKey.replace(contextRegex, '')\n\n      if (\n        (contextMatch && target[rawKey] !== undefined) ||\n        (pluralMatch &&\n          hasRelatedPluralKey(`${singularKey}${pluralSeparator}`, target))\n      ) {\n        target[key] = source[key]\n        pullCount += 1\n      } else {\n        const keepKey =\n          keepRemoved ||\n          keepRemovedPatterns.some((pattern) =>\n            pattern.test(fullKeyPrefix + key)\n          )\n        if (keepKey) {\n          target[key] = source[key]\n        } else {\n          old[key] = source[key]\n        }\n        oldCount += 1\n      }\n    }\n  }\n\n  return {\n    old,\n    new: target,\n    mergeCount,\n    pullCount,\n    oldCount,\n    reset,\n    resetCount,\n  }\n}\n\n/**\n * Merge `source` into `target` by merging nested dictionaries.\n */\nfunction transferValues(source, target) {\n  for (const key in source) {\n    const sourceValue = source[key]\n    const targetValue = target[key]\n    if (\n      typeof sourceValue === 'object' &&\n      typeof targetValue === 'object' &&\n      !Array.isArray(sourceValue)\n    ) {\n      transferValues(sourceValue, targetValue)\n    } else {\n      target[key] = sourceValue\n    }\n  }\n}\n\nconst pluralSuffixes = ['zero', 'one', 'two', 'few', 'many', 'other']\n\nfunction isPlural(key) {\n  return pluralSuffixes.some((suffix) => key.endsWith(suffix))\n}\n\nfunction hasRelatedPluralKey(rawKey, source) {\n  return pluralSuffixes.some(\n    (suffix) => source[`${rawKey}${suffix}`] !== undefined\n  )\n}\n\nfunction getSingularForm(key, pluralSeparator) {\n  const pluralRegex = new RegExp(\n    `(\\\\${pluralSeparator}(?:zero|one|two|few|many|other))$`\n  )\n\n  return key.replace(pluralRegex, '')\n}\n\nfunction getPluralSuffixPosition(key) {\n  for (let i = 0, len = pluralSuffixes.length; i < len; i++) {\n    if (key.endsWith(pluralSuffixes[i])) return i\n  }\n\n  return -1\n}\n\nfunction makeDefaultSort(pluralSeparator) {\n  return function defaultSort(key1, key2) {\n    const singularKey1 = getSingularForm(key1, pluralSeparator)\n    const singularKey2 = getSingularForm(key2, pluralSeparator)\n\n    if (singularKey1 === singularKey2) {\n      return getPluralSuffixPosition(key1) - getPluralSuffixPosition(key2)\n    }\n\n    return singularKey1.localeCompare(singularKey2, 'en')\n  }\n}\n\nasync function esConfigLoader(filepath) {\n  return (await import(pathToFileURL(filepath))).default\n}\n\nasync function tsConfigLoader(filepath) {\n  const outfile = filepath + '.bundle.mjs'\n  await build({\n    absWorkingDir: process.cwd(),\n    entryPoints: [filepath],\n    outfile,\n    write: true,\n    target: ['node14.18', 'node16'],\n    platform: 'node',\n    bundle: true,\n    format: 'esm',\n    sourcemap: 'inline',\n    external: [\n      ...builtinModules,\n      ...builtinModules.map((mod) => 'node:' + mod),\n    ],\n  })\n  const config = await esConfigLoader(outfile)\n  rmSync(outfile)\n  return config\n}\n\nfunction yamlConfigLoader(filepath, content) {\n  return yaml.load(content)\n}\n\n// unescape common html entities\n// code from react-18next taken from\n// https://github.com/i18next/react-i18next/blob/d3247b5c232f5d8c1a154fe5dd0090ca88c82dcf/src/unescape.js\nfunction unescape(text) {\n  const matchHtmlEntity =\n    /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g\n  const htmlEntities = {\n    '&amp;': '&',\n    '&#38;': '&',\n    '&lt;': '<',\n    '&#60;': '<',\n    '&gt;': '>',\n    '&#62;': '>',\n    '&apos;': \"'\",\n    '&#39;': \"'\",\n    '&quot;': '\"',\n    '&#34;': '\"',\n    '&nbsp;': ' ',\n    '&#160;': ' ',\n    '&copy;': '©',\n    '&#169;': '©',\n    '&reg;': '®',\n    '&#174;': '®',\n    '&hellip;': '…',\n    '&#8230;': '…',\n    '&#x2F;': '/',\n    '&#47;': '/',\n  }\n\n  const unescapeHtmlEntity = (m) => htmlEntities[m]\n\n  return text.replace(matchHtmlEntity, unescapeHtmlEntity)\n}\n\nexport {\n  dotPathToHash,\n  mergeHashes,\n  transferValues,\n  hasRelatedPluralKey,\n  getSingularForm,\n  getPluralSuffixPosition,\n  makeDefaultSort,\n  esConfigLoader,\n  tsConfigLoader,\n  yamlConfigLoader,\n  unescape,\n}\n"],"mappings":"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"}