{"version":3,"sources":["jsdelivr-header.js","/npm/babel-plugin-react-intl-message-hash@1.0.6/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,MAAM,EAAI,QAAQ,eACZ,OAAS,QAAQ,UAEjB,kBAAoB,CAAC,EAAM,GAAgB,WAC/C,MAAM,EAA4B,GAAa,EAAU,qBAAuB,EAAa,SAAS,EAAU,KAAK,SAAS,OAAS,EAAU,KAAK,MAAM,OAAS,EACrK,IAAI,GAAa,EAYjB,OAXA,EAAK,KAAK,SAAS,CACjB,kBAAmB,CACjB,IAAA,CAAK,GACH,EAAwC,eAA3B,EAAK,KAAK,OAAO,OAA0B,EAAK,IAAI,cAAc,KAAK,GAEhF,GACF,EAAK,MAET,KAGG,CAAU,EAGb,SAAW,IACf,MAAM,EAAO,EAAK,IAAI,OACtB,MAAuE,QAA/D,EAAK,kBAAoB,EAAK,KAAK,MAAQ,EAAK,KAAK,KAAc,EAGvE,oBAAsB,IAC1B,MAAM,EAAO,EAAK,IAAI,OACtB,MAAuE,oBAA/D,EAAK,kBAAoB,EAAK,KAAK,MAAQ,EAAK,KAAK,KAA0B,EAGnF,WAAa,IACjB,IAAK,EAAe,qBAClB,OAEF,MAAM,EAAW,EAAe,IAAI,cACpC,IAAK,IAAI,EAAI,EAAG,EAAM,EAAS,OAAQ,EAAI,EAAK,IAE9C,GADA,EAAiB,EAAS,GACtB,oBAAoB,GAAiB,CACvC,MAAM,EAAY,EAAe,IAAI,SACrC,GAAI,EAAU,kBACZ,OAAO,EAAU,KAAK,MAExB,KACF,CACF,EAGI,kBAAoB,CAAC,EAAM,KAC/B,MAAM,EAAS,EAAK,IAAI,UACxB,IAAK,EAAO,eACV,OAAO,EAET,IAAK,kBAAkB,EAAO,KAAK,KAAM,CAAC,kBAAmB,GAC3D,OAAO,EAET,MAAM,EAAc,EAAK,IAAI,aAAa,GAC1C,QAAK,MAGC,EAAY,uBAAwB,EAAY,eAG3C,EAGP,kBAAoB,IACxB,IAAK,MAAM,KAAQ,EAAY,CAC7B,MAAM,EAAU,EAAK,IAAI,SACzB,GAAI,EAAQ,qBAAsB,CAChC,MAAM,EAAU,WAAW,GAC3B,QAAuB,IAAZ,EACT,SAEF,MAAM,EAAO,OAAO,WAAW,OAAO,OAAO,GAAS,OAAO,OAAO,OAAO,EAAG,GAC9E,EAAQ,YAAY,EAAE,iBAAiB,CAAC,EAAE,eAAe,EAAE,cAAc,MAAO,EAAE,cAAc,OAAW,EAAQ,IAAI,cAAc,QAAO,IAAM,SAAS,KAAI,KAAI,GAAK,EAAE,SAC5K,CACF,GAGF,OAAO,QAAU,WACf,MAAO,CACL,KAAM,0BACN,QAAS,CACP,cAAA,CAAe,EAAM,GACnB,IAAK,kBAAkB,EAAM,GAC3B,OAEF,MAAM,EAAc,EAAK,IAAI,aAAa,GAC1C,IAAI,EACJ,GAAI,EAAY,qBACd,EAAa,EAAY,IAAI,mBACxB,GAAI,EAAY,eAAgB,CACrC,MAAM,EAAO,EAAY,KAAK,KACxB,EAAM,EAAY,MAAM,WAAW,GACzC,IAAK,EACH,OAEF,EAAa,EAAI,KAAK,IAAI,QAAQ,IAAI,aACxC,CACI,GACF,kBAAkB,EAEtB,GAGN","file":"/npm/babel-plugin-react-intl-message-hash@1.0.6/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/babel-plugin-react-intl-message-hash@1.0.6/lib/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","'use strict';\n\nconst t = require('babel-types');\nconst crypto = require('crypto');\n\nconst isImportLocalName = (name, allowedNames, { file }) => {\n  const isSearchedImportSpecifier = specifier => specifier.isImportSpecifier() && allowedNames.includes(specifier.node.imported.name) && specifier.node.local.name === name;\n  let isImported = false;\n  file.path.traverse({\n    ImportDeclaration: {\n      exit(path) {\n        isImported = path.node.source.value === 'react-intl' && path.get('specifiers').some(isSearchedImportSpecifier);\n\n        if (isImported) {\n          path.stop();\n        }\n      }\n    }\n  });\n  return isImported;\n};\n\nconst isIdProp = prop => {\n  const path = prop.get('key');\n  return (path.isStringLiteral() ? path.node.value : path.node.name) === 'id';\n};\n\nconst isDefaultMessgeProp = prop => {\n  const path = prop.get('key');\n  return (path.isStringLiteral() ? path.node.value : path.node.name) === 'defaultMessage';\n};\n\nconst getMessage = objectProperty => {\n  if (!objectProperty.isObjectExpression()) {\n    return;\n  }\n  const objProps = objectProperty.get('properties');\n  for (let i = 0, len = objProps.length; i < len; i++) {\n    objectProperty = objProps[i];\n    if (isDefaultMessgeProp(objectProperty)) {\n      const propValue = objectProperty.get('value');\n      if (propValue.isStringLiteral()) {\n        return propValue.node.value;\n      }\n      break;\n    }\n  }\n};\n\nconst isReactIntlImport = (path, state) => {\n  const callee = path.get('callee');\n  if (!callee.isIdentifier()) {\n    return false;\n  }\n  if (!isImportLocalName(callee.node.name, ['defineMessages'], state)) {\n    return false;\n  }\n  const messagesObj = path.get('arguments')[0];\n  if (!messagesObj) {\n    return false;\n  }\n  if (!(messagesObj.isObjectExpression() || messagesObj.isIdentifier())) {\n    return false;\n  }\n  return true;\n};\n\nconst replaceProperties = properties => {\n  for (const prop of properties) {\n    const objProp = prop.get('value');\n    if (objProp.isObjectExpression()) {\n      const message = getMessage(objProp);\n      if (typeof message === 'undefined') {\n        continue;\n      }\n      const hash = crypto.createHash('md5').update(message).digest('hex').substr(0, 8);\n      objProp.replaceWith(t.objectExpression([t.objectProperty(t.stringLiteral('id'), t.stringLiteral(hash)), ...objProp.get('properties').filter(v => !isIdProp(v)).map(v => v.node)]));\n    }\n  }\n};\n\nmodule.exports = function () {\n  return {\n    name: 'react-intl-message-hash',\n    visitor: {\n      CallExpression(path, state) {\n        if (!isReactIntlImport(path, state)) {\n          return;\n        }\n        const messagesObj = path.get('arguments')[0];\n        let properties;\n        if (messagesObj.isObjectExpression()) {\n          properties = messagesObj.get('properties');\n        } else if (messagesObj.isIdentifier()) {\n          const name = messagesObj.node.name;\n          const obj = messagesObj.scope.getBinding(name);\n          if (!obj) {\n            return;\n          }\n          properties = obj.path.get('init').get('properties');\n        }\n        if (properties) {\n          replaceProperties(properties, state);\n        }\n      }\n    }\n  };\n};"]}