{"version":3,"sources":["jsdelivr-header.js","/npm/tiny-i18n-node@0.0.2-alpha.3/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,GAAK,QAAQ,MACb,KAAO,QAAQ,QAEf,SAAW,GACA,iBAAR,GAA4D,oBAAxC,OAAO,UAAU,SAAS,KAAK,GAGtD,cAAgB,GACoB,oBAAxC,OAAO,UAAU,SAAS,KAAK,GAG3B,WAAa,CAAC,EAAK,IACvB,OAAO,UAAU,eAAe,KAAK,EAAK,GAG5C,MAAM,MACJ,WAAA,GACE,KAAK,OAAS,KACd,KAAK,KAAO,SACZ,KAAK,aAAe,IACtB,CAEA,kBAAA,CAAmB,EAAS,GAAI,EAAe,CAAC,GAC9C,IAAK,SAAS,KAAY,cAAc,GACtC,OAAO,EAGT,IAAK,MAAM,KAAQ,EACb,WAAW,EAAc,KAC3B,EAAS,EAAO,QAAQ,IAAI,OAAO,IAAI,IAAQ,KAAM,EAAa,KAItE,OAAO,CACT,CAEA,aAAA,CAAc,EAAM,EAAY,KAG9B,OAFc,SAAS,GAAQ,EAAO,IAEzB,MAAM,EACrB,CAEA,UAAA,CAAW,EAAc,GAGvB,OAFiB,KAAK,cAAc,GAEpB,QAAO,CAAC,EAAQ,IAC1B,cAAc,IAAW,WAAW,EAAQ,GACvC,EAAO,GAGT,MACN,EACL,CAEA,UAAA,CAAW,EAAM,GACf,MAAM,EAAO,GAAG,KAAK,QAAQ,KAAK,SAAS,KAAK,cAEhD,IACE,MAAM,EAAO,GAAG,aAAa,GACvB,EAAU,KAAK,MAAM,EAAK,SAAS,SACnC,EAAa,KAAK,WAAW,EAAS,IAAS,KAAK,aAE1D,OAAI,cAAc,GACT,KAAK,mBAAmB,EAAY,GAGtC,CACT,CAAE,MAAO,GACP,MAAM,EAAiC,KAAtB,KAAK,cAA8B,KAAK,aAEzD,MAAmB,WAAf,EAAM,MACqB,SAAzB,QAAQ,IAAI,WACd,QAAQ,MAAM,QAAQ,gBACtB,QAAQ,MAAM,IAAG,EAAW,oBAAoB,oBAA6B,MAGxE,IAGT,QAAQ,MAAM,GACP,EACT,CACF,CAEA,UAAA,CAAW,GACT,KAAK,OAAS,CAChB,CAEA,gBAAA,CAAiB,GACf,MAAM,EAAe,SAAS,GAAO,EAAM,GAC3C,KAAK,aAAe,CACtB,EAGF,MAAM,SAAW,IAAI,MAErB,SAAS,UAAU,EAAM,EAAe,KAAM,EAAe,IAE3D,OADA,SAAS,iBAAiB,GACnB,SAAS,WAAW,EAAM,EACnC,CAGA,OAAO,QAAU,UACjB,OAAO,QAAQ,UAAY,GAAU,SAAS,WAAW,GACzD,OAAO,QAAQ,UAAY,IAAM,SAAS","file":"/npm/tiny-i18n-node@0.0.2-alpha.3/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/tiny-i18n-node@0.0.2-alpha.3/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const fs = require('fs')\nconst path = require('path')\n\nconst isString = val => (\n  typeof val === 'string' || Object.prototype.toString.call(val) === '[object String]'\n)\n\nconst isPlainObject = val => (\n  Object.prototype.toString.call(val) === '[object Object]'\n)\n\nconst hasOwnProp = (obj, key) => (\n  Object.prototype.hasOwnProperty.call(obj, key)\n)\n\nclass Trans {\n  constructor() {\n    this.locale = 'en'\n    this.file = './lang'\n    this.defaultValue = null\n  }\n\n  paramsReplacements(string = '', replacements = {}) {\n    if (!isString(string) || !isPlainObject(replacements)) {\n      return false\n    }\n\n    for (const item in replacements) {\n      if (hasOwnProp(replacements, item)) {\n        string = string.replace(new RegExp(`:${item}`, 'g'), replacements[item])\n      }\n    }\n\n    return string\n  }\n\n  normalizeKeys(keys, separator = '.') {\n    const valid = isString(keys) ? keys : ''\n\n    return valid.split(separator)\n  }\n\n  getEntries(translations, keys) {\n    const keysList = this.normalizeKeys(keys)\n\n    return keysList.reduce((result, key) => {\n      if (isPlainObject(result) && hasOwnProp(result, key)) {\n        return result[key]\n      }\n\n      return null\n    }, translations)\n  }\n\n  translator(term, replacements) {\n    const file = `${path.resolve(this.file)}/${this.locale}.json`\n\n    try {\n      const data = fs.readFileSync(file)\n      const content = JSON.parse(data.toString('utf8'))\n      const translated = this.getEntries(content, term) || this.defaultValue\n\n      if (isPlainObject(replacements)) {\n        return this.paramsReplacements(translated, replacements)\n      }\n\n      return translated\n    } catch (error) {\n      const fallback = this.defaultValue === '' ? false : this.defaultValue\n\n      if (error.code === 'ENOENT') {\n        if (process.env.NODE_ENV !== 'test') {\n          console.error(`File ${file} not found!`)\n          console.error(`${fallback ? ` - Default value ${fallback} will be applied` : ''}`)\n        }\n\n        return fallback\n      }\n\n      console.error(error)\n      return fallback\n    }\n  }\n\n  _setLocale(locale) {\n    this.locale = locale\n  }\n\n  _setDefaultValue(val) {\n    const validDefault = isString(val) ? val : ''\n    this.defaultValue = validDefault\n  }\n}\n\nconst instance = new Trans()\n\nfunction translate(term, replacements = null, defaultValue = '') {\n  instance._setDefaultValue(defaultValue)\n  return instance.translator(term, replacements)\n}\n\n// Public\nmodule.exports = translate\nmodule.exports.setLocale = locale => instance._setLocale(locale)\nmodule.exports.getLocale = () => instance.locale\n"]}