{"version":3,"sources":["jsdelivr-header.js","/npm/insomnia-plugin-response-parse-json@1.0.2/main.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,GAAK,QAAQ,YACjB,OAAO,QAAQ,cAAgB,CAC5B,IACC,MAAM,EAAW,EAAQ,QAAQ,UAAU,gCAC3C,IAAI,EAAS,EACb,GAAI,EAAU,CACZ,IAAI,EAAW,CAAC,EAChB,IACE,EAAW,KAAK,MAAM,EAAQ,SAAS,UAAU,WACnD,CAAE,MAAO,GAEP,YADA,QAAQ,MAAM,8BAA+B,EAE/C,CAAE,QACA,IACE,IAAI,EAAS,GACV,MAAM,EAAU,GAChB,KAAK,GAAU,KAAK,MAAM,KACzB,EAAQ,GACT,MAAM,EAAU,GAChB,KAAK,GAAS,EAAK,MAAM,GAAG,KAAK,OAChC,EAAU,CAAC,EACf,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAM,OAAQ,IACxC,EAAQ,EAAM,IAAU,EAAO,GAEjC,OAAO,QAAQ,GAAS,SAAQ,EAAE,EAAK,MACrC,qBAAqB,EAAK,EAAU,EAAM,GAE9C,CAAE,MAAO,GACP,IACA,QAAQ,MAAM,EAChB,CACF,CACc,GAAV,EACF,EAAQ,SAAS,QAAQ,OAAO,KAAK,KAAK,UAAU,KAEpD,QAAQ,MACN,8DAGN,IAIJ,MAAM,qBAAuB,CAAC,EAAM,EAAQ,KAC1C,MAAM,EAAY,EAAK,MAAM,KAC7B,IAAI,EAAM,EAEV,EAAU,SAAQ,CAAC,EAAM,KACnB,EAAI,KACF,EAAQ,EAAU,OAAS,EAC7B,EAAM,EAAI,GAEV,EAAI,GAAQ,EAEhB,GACA","file":"/npm/insomnia-plugin-response-parse-json@1.0.2/main.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/insomnia-plugin-response-parse-json@1.0.2/main.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var jp = require(\"jsonpath\");\nmodule.exports.responseHooks = [\n  (context) => {\n    const jsonPath = context.request.getHeader(\"INSOMNIA-RESPONSE-JSON-PARSE\");\n    let errors = 0;\n    if (jsonPath) {\n      let response = {};\n      try {\n        response = JSON.parse(context.response.getBody().toString());\n      } catch (error) {\n        console.error(\"Error parsing response body\", error);\n        return;\n      } finally {\n        try {\n          var values = jp\n            .query(response, jsonPath)\n            .map((value) => JSON.parse(value));\n          var paths = jp\n            .paths(response, jsonPath)\n            .map((path) => path.slice(1).join(\".\"));\n          var modVals = {};\n          for (let index = 0; index < paths.length; index++) {\n            modVals[paths[index]] = values[index];\n          }\n          Object.entries(modVals).forEach(([key, value]) => {\n            setAttributeFromPath(key, response, value);\n          });\n        } catch (error) {\n          errors++;\n          console.error(error);\n        }\n      }\n      if (errors == 0) {\n        context.response.setBody(Buffer.from(JSON.stringify(response)));\n      } else {\n        console.error(\n          \"Error in plugin response-json-parse, not modifying response\"\n        );\n      }\n    }\n  },\n];\n\nconst setAttributeFromPath = (path, entity, value) => {\n  const pathParts = path.split(\".\");\n  let obj = entity;\n\n  pathParts.forEach((part, index) => {\n    if (obj[part]) {\n      if (index < pathParts.length - 1) {\n        obj = obj[part];\n      } else {\n        obj[part] = value;\n      }\n    }\n  });\n};\n"]}