{
"/Users/z_bodya/work/remap-istanbul/src/index.js":{"path":"/Users/z_bodya/work/remap-istanbul/src/index.js","statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":0}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"3":{"start":{"line":22,"column":0},"end":{"line":22,"column":0}},"4":{"start":{"line":22,"column":64},"end":{"line":22,"column":64}},"5":{"start":{"line":23,"column":2},"end":{"line":23,"column":2}},"6":{"start":{"line":24,"column":2},"end":{"line":24,"column":2}},"7":{"start":{"line":25,"column":16},"end":{"line":25,"column":16}},"8":{"start":{"line":32,"column":2},"end":{"line":32,"column":2}},"9":{"start":{"line":35,"column":8},"end":{"line":35,"column":8}},"10":{"start":{"line":39,"column":8},"end":{"line":39,"column":8}},"11":{"start":{"line":40,"column":8},"end":{"line":40,"column":8}},"12":{"start":{"line":45,"column":0},"end":{"line":45,"column":0}}},"fnMap":{"1":{"name":"(anonymous_2)","line":22,"loc":{"start":{"line":22,"column":17},"end":{"line":22,"column":64}}},"2":{"name":"(anonymous_3)","line":25,"loc":{"start":{"line":25,"column":16},"end":{"line":25,"column":16}}},"3":{"name":"(anonymous_4)","line":34,"loc":{"start":{"line":34,"column":6},"end":{"line":34,"column":20}}}},"branchMap":{"1":{"line":22,"type":"cond-expr","locations":[{"start":{"line":22,"column":60},"end":{"line":22,"column":64}},{"start":{"line":22,"column":64},"end":{"line":22,"column":64}}]},"2":{"line":22,"type":"binary-expr","locations":[{"start":{"line":22,"column":64},"end":{"line":22,"column":64}},{"start":{"line":22,"column":64},"end":{"line":22,"column":64}}]},"3":{"line":36,"type":"cond-expr","locations":[{"start":{"line":36,"column":48},"end":{"line":36,"column":10}},{"start":{"line":36,"column":66},"end":{"line":35,"column":24}}]}},"s":{"1":1,"2":1,"3":1,"4":2,"5":2,"6":2,"7":2,"8":2,"9":3,"10":3,"11":3,"12":1},"b":{"1":[2,0],"2":[2,0],"3":[1,2]},"f":{"1":2,"2":2,"3":3},"code":"const fs = require('fs');\nconst remap = require('./remap');\nconst { Report, Store } = require('istanbul');\n/**\n * The basic API for utilising remap-istanbul\n * @param  {Array} sources The sources that could be consumed and remapped.\n *                                For muliple sources to be combined together, provide\n *                                an array of strings.\n * @param  {Object} reports An object where each key is the report type required and the value\n *                          is report options\n * @param  {Object} remapOptions An object with options for remapping\n *               exclude?  - a string or Regular Expression that filters out\n *                           any coverage where the file path matches\n *               readFile? - a function that can read a file\n *                           syncronously\n *               readJSON? - a function that can read and parse a\n *                           JSON file syncronously\n *               sources?  - a Istanbul store where inline sources will be\n *                           added\n *               warn?     - a function that logs warnings\n */\nmodule.exports = function (sources, reports, remapOptions = {}) {\n  const sourceStore = Store.create('memory');\n  const collector = remap(\n    sources.map(filePath => JSON.parse(fs.readFileSync(filePath))),\n    Object.assign(\n      {}, remapOptions, {\n        sources: sourceStore,\n      }\n    ));\n\n  Object.keys(reports)\n    .forEach(\n      reportType => {\n        const options = Object.assign(\n          Object.keys(sourceStore.map).length ? { sourceStore } : {},\n          reports[reportType]\n        );\n        const reporter = Report.create(reportType, options);\n        reporter.writeReport(collector, true);\n      }\n    );\n};\n\nmodule.exports.remap = remap;\n\n","l":{"1":1,"2":1,"22":2,"23":2,"24":2,"25":2,"32":2,"35":3,"39":3,"40":3,"45":1}},
"/Users/z_bodya/work/remap-istanbul/src/remap.js":{"path":"/Users/z_bodya/work/remap-istanbul/src/remap.js","statementMap":{"1":{"start":{"line":22,"column":0},"end":{"line":30,"column":1}},"2":{"start":{"line":22,"column":39},"end":{"line":22,"column":39}},"3":{"start":{"line":23,"column":2},"end":{"line":23,"column":2}},"4":{"start":{"line":25,"column":2},"end":{"line":25,"column":2}},"5":{"start":{"line":26,"column":4},"end":{"line":26,"column":4}},"6":{"start":{"line":29,"column":2},"end":{"line":29,"column":2}},"7":{"start":{"line":32,"column":0},"end":{"line":32,"column":0}}},"fnMap":{"1":{"name":"remap","line":22,"loc":{"start":{"line":22,"column":0},"end":{"line":22,"column":39}}},"2":{"name":"(anonymous_2)","line":25,"loc":{"start":{"line":25,"column":19},"end":{"line":25,"column":27}}}},"branchMap":{"1":{"line":22,"type":"cond-expr","locations":[{"start":{"line":22,"column":35},"end":{"line":22,"column":39}},{"start":{"line":22,"column":39},"end":{"line":22,"column":39}}]},"2":{"line":22,"type":"binary-expr","locations":[{"start":{"line":22,"column":39},"end":{"line":22,"column":39}},{"start":{"line":22,"column":39},"end":{"line":22,"column":39}}]}},"s":{"1":1,"2":15,"3":15,"4":15,"5":13,"6":13,"7":1},"b":{"1":[9,6],"2":[15,6]},"f":{"1":15,"2":13},"code":"const { CoverageTransformer } = require('./CoverageTransformer');\n\n/**\n * Remaps coverage data based on the source maps it discovers in the\n * covered files and returns a coverage Collector that contains the remappped\n * data.\n * @param  {Array|Object} coverage The coverage (or array of coverages) that need to be\n *                                                 remapped\n * @param  {Object} options A configuration object:\n *       exclude?  - a string or Regular Expression that filters out\n *                   any coverage where the file path matches\n *       readFile? - a function that can read a file\n *                   syncronously\n *       readJSON? - a function that can read and parse a\n *                   JSON file syncronously\n *       sources?  - a Istanbul store where inline sources will be\n *                   added\n *       warn?     - a function that logs warnings\n * @return {Object}         The remapped collector\n */\n\nfunction remap(coverage, options = {}) {\n  const smc = new CoverageTransformer(options);\n\n  coverage.forEach(item => {\n    smc.addCoverage(item);\n  });\n\n  return smc.getFinalCoverage();\n}\n\nmodule.exports = remap;\n","l":{"22":15,"23":15,"25":15,"26":13,"29":13,"32":1}},
"/Users/z_bodya/work/remap-istanbul/src/CoverageTransformer.js":{"path":"/Users/z_bodya/work/remap-istanbul/src/CoverageTransformer.js","statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":0}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"3":{"start":{"line":8,"column":0},"end":{"line":8,"column":0}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":0}},"5":{"start":{"line":14,"column":2},"end":{"line":23,"column":3}},"6":{"start":{"line":14,"column":23},"end":{"line":14,"column":23}},"7":{"start":{"line":15,"column":4},"end":{"line":15,"column":4}},"8":{"start":{"line":16,"column":4},"end":{"line":16,"column":4}},"9":{"start":{"line":16,"column":19},"end":{"line":16,"column":19}},"10":{"start":{"line":17,"column":4},"end":{"line":19,"column":5}},"11":{"start":{"line":18,"column":6},"end":{"line":18,"column":6}},"12":{"start":{"line":18,"column":21},"end":{"line":18,"column":21}},"13":{"start":{"line":21,"column":4},"end":{"line":21,"column":4}},"14":{"start":{"line":22,"column":4},"end":{"line":22,"column":4}},"15":{"start":{"line":25,"column":42},"end":{"line":25,"column":42}},"16":{"start":{"line":26,"column":4},"end":{"line":26,"column":4}},"17":{"start":{"line":28,"column":4},"end":{"line":36,"column":5}},"18":{"start":{"line":30,"column":6},"end":{"line":30,"column":6}},"19":{"start":{"line":31,"column":6},"end":{"line":31,"column":6}},"20":{"start":{"line":35,"column":6},"end":{"line":35,"column":6}},"21":{"start":{"line":38,"column":4},"end":{"line":38,"column":4}},"22":{"start":{"line":39,"column":6},"end":{"line":39,"column":6}},"23":{"start":{"line":40,"column":6},"end":{"line":40,"column":6}},"24":{"start":{"line":42,"column":6},"end":{"line":42,"column":6}},"25":{"start":{"line":44,"column":6},"end":{"line":46,"column":7}},"26":{"start":{"line":45,"column":8},"end":{"line":45,"column":8}},"27":{"start":{"line":49,"column":4},"end":{"line":49,"column":4}},"28":{"start":{"line":50,"column":6},"end":{"line":50,"column":6}},"29":{"start":{"line":51,"column":6},"end":{"line":51,"column":6}},"30":{"start":{"line":53,"column":6},"end":{"line":53,"column":6}},"31":{"start":{"line":55,"column":6},"end":{"line":57,"column":7}},"32":{"start":{"line":56,"column":8},"end":{"line":56,"column":8}},"33":{"start":{"line":60,"column":4},"end":{"line":60,"column":4}},"34":{"start":{"line":61,"column":6},"end":{"line":61,"column":6}},"35":{"start":{"line":62,"column":6},"end":{"line":62,"column":6}},"36":{"start":{"line":64,"column":6},"end":{"line":64,"column":6}},"37":{"start":{"line":66,"column":6},"end":{"line":68,"column":7}},"38":{"start":{"line":67,"column":8},"end":{"line":67,"column":8}},"39":{"start":{"line":72,"column":20},"end":{"line":72,"column":20}},"40":{"start":{"line":73,"column":4},"end":{"line":73,"column":4}},"41":{"start":{"line":75,"column":8},"end":{"line":78,"column":9}},"42":{"start":{"line":76,"column":10},"end":{"line":76,"column":10}},"43":{"start":{"line":77,"column":10},"end":{"line":77,"column":10}},"44":{"start":{"line":80,"column":8},"end":{"line":80,"column":8}},"45":{"start":{"line":81,"column":8},"end":{"line":81,"column":8}},"46":{"start":{"line":85,"column":21},"end":{"line":85,"column":21}},"47":{"start":{"line":86,"column":4},"end":{"line":86,"column":4}},"48":{"start":{"line":88,"column":4},"end":{"line":88,"column":4}},"49":{"start":{"line":90,"column":4},"end":{"line":90,"column":4}},"50":{"start":{"line":91,"column":14},"end":{"line":91,"column":14}},"51":{"start":{"line":93,"column":8},"end":{"line":93,"column":8}},"52":{"start":{"line":94,"column":8},"end":{"line":94,"column":8}},"53":{"start":{"line":98,"column":4},"end":{"line":98,"column":4}},"54":{"start":{"line":100,"column":4},"end":{"line":100,"column":4}},"55":{"start":{"line":104,"column":0},"end":{"line":104,"column":0}}},"fnMap":{"1":{"name":"CoverageTransformer","line":14,"loc":{"start":{"line":14,"column":2},"end":{"line":14,"column":23}}},"2":{"name":"(anonymous_4)","line":16,"loc":{"start":{"line":16,"column":19},"end":{"line":16,"column":19}}},"3":{"name":"(anonymous_5)","line":18,"loc":{"start":{"line":18,"column":21},"end":{"line":18,"column":21}}},"4":{"name":"(anonymous_7)","line":38,"loc":{"start":{"line":38,"column":48},"end":{"line":38,"column":59}}},"5":{"name":"(anonymous_8)","line":49,"loc":{"start":{"line":49,"column":44},"end":{"line":49,"column":55}}},"6":{"name":"(anonymous_9)","line":60,"loc":{"start":{"line":60,"column":51},"end":{"line":60,"column":62}}},"7":{"name":"(anonymous_11)","line":74,"loc":{"start":{"line":74,"column":15},"end":{"line":74,"column":29}}},"8":{"name":"(anonymous_13)","line":91,"loc":{"start":{"line":91,"column":14},"end":{"line":91,"column":14}}},"9":{"name":"(anonymous_14)","line":92,"loc":{"start":{"line":92,"column":14},"end":{"line":92,"column":29}}}},"branchMap":{"1":{"line":15,"type":"binary-expr","locations":[{"start":{"line":15,"column":16},"end":{"line":15,"column":16}},{"start":{"line":15,"column":32},"end":{"line":15,"column":4}}]},"2":{"line":17,"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":17,"column":4}},{"start":{"line":17,"column":4},"end":{"line":17,"column":4}}]},"3":{"line":28,"type":"if","locations":[{"start":{"line":28,"column":4},"end":{"line":28,"column":4}},{"start":{"line":28,"column":4},"end":{"line":28,"column":4}}]},"4":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":6},"end":{"line":44,"column":6}},{"start":{"line":44,"column":6},"end":{"line":44,"column":6}}]},"5":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":6},"end":{"line":55,"column":6}},{"start":{"line":55,"column":6},"end":{"line":55,"column":6}}]},"6":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":6},"end":{"line":66,"column":6}},{"start":{"line":66,"column":6},"end":{"line":66,"column":6}}]},"7":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":8},"end":{"line":75,"column":8}},{"start":{"line":75,"column":8},"end":{"line":75,"column":8}}]}},"s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":15,"7":15,"8":15,"9":26,"10":15,"11":1,"12":3,"13":15,"14":15,"15":14,"16":14,"17":14,"18":2,"19":2,"20":2,"21":12,"22":107,"23":107,"24":107,"25":107,"26":50,"27":12,"28":79,"29":79,"30":79,"31":79,"32":56,"33":12,"34":370,"35":370,"36":370,"37":370,"38":276,"39":13,"40":13,"41":15,"42":1,"43":1,"44":14,"45":14,"46":13,"47":13,"48":13,"49":13,"50":14,"51":14,"52":14,"53":13,"54":13,"55":1},"b":{"1":[15,12],"2":[1,14],"3":[2,12],"4":[50,57],"5":[56,23],"6":[276,94],"7":[1,14]},"f":{"1":15,"2":26,"3":3,"4":107,"5":79,"6":370,"7":15,"8":14,"9":14},"code":"const path = require('path');\nconst minimatch = require('minimatch');\n\nconst { Collector } = require('istanbul');\n\nconst { SparceCoverageCollector } = require('./SparceCoverageCollector');\n\nconst remapFunction = require('./remapFunction');\nconst remapBranch = require('./remapBranch');\n\nconst { MappingProvider } = require('./MappingProvider');\n\nclass CoverageTransformer {\n  constructor(options) {\n    this.warn = options.warn || console.warn;\n    this.exclude = () => false;\n    if (options.exclude) {\n      this.exclude = (fileName) => minimatch(fileName, options.exclude);\n    }\n\n    this.sparceCoverageCollector = new SparceCoverageCollector();\n    this.mappingProvider = new MappingProvider(options, this.sparceCoverageCollector);\n  }\n\n  addFileCoverage(filePath, fileCoverage) {\n    const getMappingResolved = this.mappingProvider.getMappingResolver(filePath, fileCoverage.code);\n\n    if (!getMappingResolved) {\n      /* We couldn't find a source map, so will copy coverage after warning. */\n      this.warn(new Error(`Could not find source map for: \"${filePath}\"`));\n      this.sparceCoverageCollector.setCoverage(\n        path.resolve(process.cwd(), filePath),\n        fileCoverage\n      );\n      return;\n    }\n\n    Object.keys(fileCoverage.branchMap).forEach((index) => {\n      const genItem = fileCoverage.branchMap[index];\n      const hits = fileCoverage.b[index];\n\n      const info = remapBranch(genItem, getMappingResolved);\n\n      if (info) {\n        this.sparceCoverageCollector.updateBranch(info.source, info.srcItem, hits);\n      }\n    });\n\n    Object.keys(fileCoverage.fnMap).forEach((index) => {\n      const genItem = fileCoverage.fnMap[index];\n      const hits = fileCoverage.f[index];\n\n      const info = remapFunction(genItem, getMappingResolved);\n\n      if (info) {\n        this.sparceCoverageCollector.updateFunction(info.source, info.srcItem, hits);\n      }\n    });\n\n    Object.keys(fileCoverage.statementMap).forEach((index) => {\n      const genItem = fileCoverage.statementMap[index];\n      const hits = fileCoverage.s[index];\n\n      const mapping = getMappingResolved(genItem);\n\n      if (mapping) {\n        this.sparceCoverageCollector.updateStatement(mapping.source, mapping.loc, hits);\n      }\n    });\n  }\n\n  addCoverage(item) {\n    Object.keys(item)\n      .forEach((filePath) => {\n        if (this.exclude(filePath)) {\n          this.warn(`Excluding: \"${filePath}\"`);\n          return;\n        }\n\n        const fileCoverage = item[filePath];\n        this.addFileCoverage(filePath, fileCoverage);\n      });\n  }\n\n  getFinalCoverage() {\n    const collector = new Collector();\n\n    const srcCoverage = this.sparceCoverageCollector.getFinalCoverage();\n\n    collector.add(Object.keys(srcCoverage)\n      .filter((filePath) => !this.exclude(filePath))\n      .reduce((obj, name) => {\n        obj[name] = srcCoverage[name];\n        return obj;\n      }, {}));\n\n    /* refreshes the line counts for reports */\n    collector.getFinalCoverage();\n\n    return collector;\n  }\n}\n\nmodule.exports.CoverageTransformer = CoverageTransformer;\n","l":{"1":1,"2":1,"8":1,"9":1,"14":15,"15":15,"16":26,"17":15,"18":3,"21":15,"22":15,"25":14,"26":14,"28":14,"30":2,"31":2,"35":2,"38":12,"39":107,"40":107,"42":107,"44":107,"45":50,"49":12,"50":79,"51":79,"53":79,"55":79,"56":56,"60":12,"61":370,"62":370,"64":370,"66":370,"67":276,"72":13,"73":13,"75":15,"76":1,"77":1,"80":14,"81":14,"85":13,"86":13,"88":13,"90":13,"91":14,"93":14,"94":14,"98":13,"100":13,"104":1}},
"/Users/z_bodya/work/remap-istanbul/src/SparceCoverageCollector.js":{"path":"/Users/z_bodya/work/remap-istanbul/src/SparceCoverageCollector.js","statementMap":{"1":{"start":{"line":2,"column":2},"end":{"line":5,"column":3}},"2":{"start":{"line":2,"column":16},"end":{"line":2,"column":16}},"3":{"start":{"line":3,"column":4},"end":{"line":3,"column":4}},"4":{"start":{"line":4,"column":4},"end":{"line":4,"column":4}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":4}},"6":{"start":{"line":9,"column":4},"end":{"line":27,"column":5}},"7":{"start":{"line":10,"column":6},"end":{"line":10,"column":6}},"8":{"start":{"line":19,"column":6},"end":{"line":19,"column":6}},"9":{"start":{"line":29,"column":4},"end":{"line":29,"column":4}},"10":{"start":{"line":36,"column":4},"end":{"line":36,"column":4}},"11":{"start":{"line":40,"column":4},"end":{"line":40,"column":4}},"12":{"start":{"line":45,"column":4},"end":{"line":45,"column":4}},"13":{"start":{"line":48,"column":38},"end":{"line":48,"column":38}},"14":{"start":{"line":51,"column":4},"end":{"line":51,"column":4}},"15":{"start":{"line":52,"column":4},"end":{"line":52,"column":4}},"16":{"start":{"line":52,"column":26},"end":{"line":52,"column":26}},"17":{"start":{"line":57,"column":4},"end":{"line":57,"column":4}},"18":{"start":{"line":59,"column":4},"end":{"line":59,"column":4}},"19":{"start":{"line":60,"column":4},"end":{"line":64,"column":5}},"20":{"start":{"line":61,"column":6},"end":{"line":61,"column":6}},"21":{"start":{"line":62,"column":6},"end":{"line":62,"column":6}},"22":{"start":{"line":63,"column":6},"end":{"line":63,"column":6}},"23":{"start":{"line":66,"column":4},"end":{"line":72,"column":5}},"24":{"start":{"line":67,"column":6},"end":{"line":67,"column":6}},"25":{"start":{"line":67,"column":31},"end":{"line":67,"column":31}},"26":{"start":{"line":69,"column":6},"end":{"line":71,"column":7}},"27":{"start":{"line":70,"column":8},"end":{"line":70,"column":8}},"28":{"start":{"line":75,"column":40},"end":{"line":75,"column":40}},"29":{"start":{"line":78,"column":4},"end":{"line":78,"column":4}},"30":{"start":{"line":84,"column":4},"end":{"line":84,"column":4}},"31":{"start":{"line":85,"column":4},"end":{"line":89,"column":5}},"32":{"start":{"line":86,"column":6},"end":{"line":86,"column":6}},"33":{"start":{"line":87,"column":6},"end":{"line":87,"column":6}},"34":{"start":{"line":88,"column":6},"end":{"line":88,"column":6}},"35":{"start":{"line":91,"column":4},"end":{"line":91,"column":4}},"36":{"start":{"line":92,"column":4},"end":{"line":92,"column":4}},"37":{"start":{"line":95,"column":41},"end":{"line":95,"column":41}},"38":{"start":{"line":98,"column":4},"end":{"line":98,"column":4}},"39":{"start":{"line":104,"column":4},"end":{"line":104,"column":4}},"40":{"start":{"line":105,"column":4},"end":{"line":109,"column":5}},"41":{"start":{"line":106,"column":6},"end":{"line":106,"column":6}},"42":{"start":{"line":107,"column":6},"end":{"line":107,"column":6}},"43":{"start":{"line":108,"column":6},"end":{"line":108,"column":6}},"44":{"start":{"line":111,"column":4},"end":{"line":111,"column":4}},"45":{"start":{"line":112,"column":4},"end":{"line":112,"column":4}},"46":{"start":{"line":116,"column":0},"end":{"line":116,"column":0}}},"fnMap":{"1":{"name":"SparceCoverageCollector","line":2,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":16}}},"2":{"name":"(anonymous_9)","line":52,"loc":{"start":{"line":52,"column":26},"end":{"line":52,"column":26}}},"3":{"name":"(anonymous_10)","line":67,"loc":{"start":{"line":67,"column":31},"end":{"line":67,"column":31}}}},"branchMap":{"1":{"line":9,"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":9,"column":4}},{"start":{"line":9,"column":4},"end":{"line":9,"column":4}}]},"2":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":4},"end":{"line":60,"column":4}},{"start":{"line":60,"column":4},"end":{"line":60,"column":4}}]},"3":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":4},"end":{"line":66,"column":4}},{"start":{"line":66,"column":4},"end":{"line":66,"column":4}}]},"4":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":4},"end":{"line":85,"column":4}},{"start":{"line":85,"column":4},"end":{"line":85,"column":4}}]},"5":{"line":91,"type":"binary-expr","locations":[{"start":{"line":91,"column":20},"end":{"line":91,"column":20}},{"start":{"line":91,"column":37},"end":{"line":91,"column":4}}]},"6":{"line":105,"type":"if","locations":[{"start":{"line":105,"column":4},"end":{"line":105,"column":4}},{"start":{"line":105,"column":4},"end":{"line":105,"column":4}}]},"7":{"line":111,"type":"binary-expr","locations":[{"start":{"line":111,"column":20},"end":{"line":111,"column":20}},{"start":{"line":111,"column":37},"end":{"line":111,"column":4}}]}},"s":{"1":1,"2":15,"3":15,"4":15,"5":387,"6":387,"7":12,"8":12,"9":387,"10":2,"11":5,"12":13,"13":150,"14":50,"15":50,"16":100,"17":50,"18":50,"19":50,"20":50,"21":50,"22":50,"23":50,"24":50,"25":100,"26":0,"27":0,"28":168,"29":56,"30":56,"31":56,"32":55,"33":55,"34":55,"35":56,"36":56,"37":828,"38":276,"39":276,"40":276,"41":251,"42":251,"43":251,"44":276,"45":276,"46":1},"b":{"1":[12,375],"2":[50,0],"3":[50,0],"4":[55,1],"5":[56,55],"6":[251,25],"7":[276,253]},"f":{"1":15,"2":100,"3":100},"code":"class SparceCoverageCollector {\n  constructor() {\n    this.srcCoverage = {};\n    this.metaInfo = {};\n  }\n\n  getSourceCoverage(filename) {\n    let data = this.srcCoverage[filename];\n    if (!data) {\n      data = this.srcCoverage[filename] = {\n        path: filename,\n        statementMap: {},\n        fnMap: {},\n        branchMap: {},\n        s: {},\n        b: {},\n        f: {},\n      };\n      this.metaInfo[filename] = {\n        indexes: {},\n        lastIndex: {\n          s: 0,\n          b: 0,\n          f: 0,\n        },\n      };\n    }\n\n    return {\n      data,\n      meta: this.metaInfo[filename],\n    };\n  }\n\n  setCoverage(filePath, fileCoverage) {\n    this.srcCoverage[filePath] = fileCoverage;\n  }\n\n  setSourceCode(filePath, source) {\n    this.getSourceCoverage(filePath).data.code = source;\n  }\n\n\n  getFinalCoverage() {\n    return this.srcCoverage;\n  }\n\n  updateBranch(source, srcItem, hits) {\n    const { data, meta } = this.getSourceCoverage(source);\n\n    let key = ['b'];\n    srcItem.locations.map(loc => key.push(\n      loc.start.line, loc.start.column,\n      loc.end.line, loc.end.line\n    ));\n\n    key = key.join(':');\n\n    let index = meta.indexes[key];\n    if (!index) {\n      index = ++meta.lastIndex.b;\n      meta.indexes[key] = index;\n      data.branchMap[index] = srcItem;\n    }\n\n    if (!data.b[index]) {\n      data.b[index] = hits.map(v => v);\n    } else {\n      for (let i = 0; i < hits.length; ++i) {\n        data.b[index][i] += hits[i];\n      }\n    }\n  }\n\n  updateFunction(source, srcItem, hits) {\n    const { data, meta } = this.getSourceCoverage(source);\n\n    const key = [\n      'f',\n      srcItem.loc.start.line, srcItem.loc.start.column,\n      srcItem.loc.end.line, srcItem.loc.end.column,\n    ].join(':');\n\n    let index = meta.indexes[key];\n    if (!index) {\n      index = ++meta.lastIndex.f;\n      meta.indexes[key] = index;\n      data.fnMap[index] = srcItem;\n    }\n\n    data.f[index] = data.f[index] || 0;\n    data.f[index] += hits;\n  }\n\n  updateStatement(source, srcItem, hits) {\n    const { data, meta } = this.getSourceCoverage(source);\n\n    const key = [\n      's',\n      srcItem.start.line, srcItem.start.column,\n      srcItem.end.line, srcItem.end.column,\n    ].join(':');\n\n    let index = meta.indexes[key];\n    if (!index) {\n      index = ++meta.lastIndex.s;\n      meta.indexes[key] = index;\n      data.statementMap[index] = srcItem;\n    }\n\n    data.s[index] = data.s[index] || 0;\n    data.s[index] += hits;\n  }\n}\n\nmodule.exports.SparceCoverageCollector = SparceCoverageCollector;\n","l":{"2":15,"3":15,"4":15,"8":387,"9":387,"10":12,"19":12,"29":387,"36":2,"40":5,"45":13,"48":150,"51":50,"52":100,"57":50,"59":50,"60":50,"61":50,"62":50,"63":50,"66":50,"67":100,"69":0,"70":0,"75":168,"78":56,"84":56,"85":56,"86":55,"87":55,"88":55,"91":56,"92":56,"95":828,"98":276,"104":276,"105":276,"106":251,"107":251,"108":251,"111":276,"112":276,"116":1}},
"/Users/z_bodya/work/remap-istanbul/src/remapFunction.js":{"path":"/Users/z_bodya/work/remap-istanbul/src/remapFunction.js","statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":19,"column":1}},"2":{"start":{"line":2,"column":2},"end":{"line":2,"column":2}},"3":{"start":{"line":4,"column":2},"end":{"line":6,"column":3}},"4":{"start":{"line":5,"column":4},"end":{"line":5,"column":4}},"5":{"start":{"line":8,"column":2},"end":{"line":8,"column":2}},"6":{"start":{"line":14,"column":2},"end":{"line":16,"column":3}},"7":{"start":{"line":15,"column":4},"end":{"line":15,"column":4}},"8":{"start":{"line":18,"column":2},"end":{"line":18,"column":2}},"9":{"start":{"line":21,"column":0},"end":{"line":21,"column":0}}},"fnMap":{"1":{"name":"remapFunction","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":44}}}},"branchMap":{"1":{"line":4,"type":"if","locations":[{"start":{"line":4,"column":2},"end":{"line":4,"column":2}},{"start":{"line":4,"column":2},"end":{"line":4,"column":2}}]},"2":{"line":14,"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":14,"column":2}},{"start":{"line":14,"column":2},"end":{"line":14,"column":2}}]}},"s":{"1":1,"2":79,"3":79,"4":23,"5":56,"6":56,"7":1,"8":56,"9":1},"b":{"1":[23,56],"2":[1,55]},"f":{"1":79},"code":"function remapFunction(genItem, getMapping) {\n  const mapping = getMapping(genItem.loc);\n\n  if (!mapping) {\n    return null;\n  }\n\n  const srcItem = {\n    name: genItem.name,\n    line: mapping.loc.start.line,\n    loc: mapping.loc,\n  };\n\n  if (genItem.skip) {\n    srcItem.skip = genItem.skip;\n  }\n\n  return { srcItem, source: mapping.source };\n}\n\nmodule.exports = remapFunction;\n","l":{"1":1,"2":79,"4":79,"5":23,"8":56,"14":56,"15":1,"18":56,"21":1}},
"/Users/z_bodya/work/remap-istanbul/src/remapBranch.js":{"path":"/Users/z_bodya/work/remap-istanbul/src/remapBranch.js","statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":28,"column":1}},"2":{"start":{"line":2,"column":2},"end":{"line":2,"column":2}},"3":{"start":{"line":3,"column":2},"end":{"line":3,"column":2}},"4":{"start":{"line":5,"column":2},"end":{"line":19,"column":3}},"5":{"start":{"line":6,"column":4},"end":{"line":6,"column":4}},"6":{"start":{"line":7,"column":4},"end":{"line":9,"column":5}},"7":{"start":{"line":8,"column":6},"end":{"line":8,"column":6}},"8":{"start":{"line":11,"column":4},"end":{"line":17,"column":5}},"9":{"start":{"line":12,"column":6},"end":{"line":12,"column":6}},"10":{"start":{"line":14,"column":6},"end":{"line":16,"column":7}},"11":{"start":{"line":15,"column":8},"end":{"line":15,"column":8}},"12":{"start":{"line":18,"column":4},"end":{"line":18,"column":4}},"13":{"start":{"line":21,"column":2},"end":{"line":21,"column":2}},"14":{"start":{"line":27,"column":2},"end":{"line":27,"column":2}},"15":{"start":{"line":30,"column":0},"end":{"line":30,"column":0}}},"fnMap":{"1":{"name":"remapBranch","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":42}}}},"branchMap":{"1":{"line":7,"type":"if","locations":[{"start":{"line":7,"column":4},"end":{"line":7,"column":4}},{"start":{"line":7,"column":4},"end":{"line":7,"column":4}}]},"2":{"line":11,"type":"if","locations":[{"start":{"line":11,"column":4},"end":{"line":11,"column":4}},{"start":{"line":11,"column":4},"end":{"line":11,"column":4}}]},"3":{"line":14,"type":"if","locations":[{"start":{"line":14,"column":6},"end":{"line":14,"column":6}},{"start":{"line":14,"column":6},"end":{"line":14,"column":6}}]}},"s":{"1":1,"2":107,"3":107,"4":107,"5":157,"6":157,"7":57,"8":100,"9":50,"10":50,"11":0,"12":100,"13":50,"14":50,"15":1},"b":{"1":[57,100],"2":[50,50],"3":[0,50]},"f":{"1":107},"code":"function remapBranch(genItem, getMapping) {\n  const locations = [];\n  let source;\n\n  for (let i = 0; i < genItem.locations.length; ++i) {\n    const mapping = getMapping(genItem.locations[i]);\n    if (!mapping) {\n      return null;\n    }\n\n    if (!source) {\n      source = mapping.source;\n    } else {\n      if (source !== mapping.source) {\n        return null;\n      }\n    }\n    locations.push(mapping.loc);\n  }\n\n  const srcItem = {\n    line: locations[0].start.line,\n    type: genItem.type,\n    locations,\n  };\n\n  return { source, srcItem };\n}\n\nmodule.exports = remapBranch;\n","l":{"1":1,"2":107,"3":107,"5":107,"6":157,"7":157,"8":57,"11":100,"12":50,"14":50,"15":0,"18":100,"21":50,"27":50,"30":1}},
"/Users/z_bodya/work/remap-istanbul/src/MappingProvider.js":{"path":"/Users/z_bodya/work/remap-istanbul/src/MappingProvider.js","statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":0}},"2":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":0}},"5":{"start":{"line":10,"column":2},"end":{"line":32,"column":3}},"6":{"start":{"line":10,"column":48},"end":{"line":10,"column":48}},"7":{"start":{"line":11,"column":4},"end":{"line":11,"column":4}},"8":{"start":{"line":12,"column":4},"end":{"line":12,"column":4}},"9":{"start":{"line":14,"column":4},"end":{"line":14,"column":4}},"10":{"start":{"line":16,"column":8},"end":{"line":18,"column":9}},"11":{"start":{"line":17,"column":10},"end":{"line":17,"column":10}},"12":{"start":{"line":19,"column":8},"end":{"line":19,"column":8}},"13":{"start":{"line":22,"column":4},"end":{"line":22,"column":4}},"14":{"start":{"line":24,"column":8},"end":{"line":27,"column":9}},"15":{"start":{"line":25,"column":10},"end":{"line":25,"column":10}},"16":{"start":{"line":26,"column":10},"end":{"line":26,"column":10}},"17":{"start":{"line":28,"column":8},"end":{"line":28,"column":8}},"18":{"start":{"line":31,"column":4},"end":{"line":31,"column":4}},"19":{"start":{"line":34,"column":45},"end":{"line":34,"column":45}},"20":{"start":{"line":36,"column":4},"end":{"line":36,"column":4}},"21":{"start":{"line":37,"column":4},"end":{"line":37,"column":4}},"22":{"start":{"line":38,"column":4},"end":{"line":42,"column":5}},"23":{"start":{"line":39,"column":6},"end":{"line":39,"column":6}},"24":{"start":{"line":41,"column":6},"end":{"line":41,"column":6}},"25":{"start":{"line":44,"column":4},"end":{"line":44,"column":4}},"26":{"start":{"line":45,"column":4},"end":{"line":45,"column":4}},"27":{"start":{"line":46,"column":4},"end":{"line":46,"column":4}},"28":{"start":{"line":48,"column":4},"end":{"line":50,"column":5}},"29":{"start":{"line":49,"column":6},"end":{"line":49,"column":6}},"30":{"start":{"line":52,"column":4},"end":{"line":58,"column":5}},"31":{"start":{"line":53,"column":6},"end":{"line":53,"column":6}},"32":{"start":{"line":55,"column":6},"end":{"line":55,"column":6}},"33":{"start":{"line":56,"column":6},"end":{"line":56,"column":6}},"34":{"start":{"line":57,"column":6},"end":{"line":57,"column":6}},"35":{"start":{"line":62,"column":4},"end":{"line":62,"column":4}},"36":{"start":{"line":63,"column":6},"end":{"line":63,"column":6}},"37":{"start":{"line":66,"column":4},"end":{"line":66,"column":4}},"38":{"start":{"line":69,"column":4},"end":{"line":79,"column":5}},"39":{"start":{"line":70,"column":6},"end":{"line":70,"column":6}},"40":{"start":{"line":71,"column":8},"end":{"line":71,"column":8}},"41":{"start":{"line":75,"column":8},"end":{"line":77,"column":9}},"42":{"start":{"line":76,"column":10},"end":{"line":76,"column":10}},"43":{"start":{"line":81,"column":4},"end":{"line":81,"column":4}},"44":{"start":{"line":81,"column":11},"end":{"line":81,"column":11}},"45":{"start":{"line":85,"column":0},"end":{"line":85,"column":0}}},"fnMap":{"1":{"name":"MappingProvider","line":10,"loc":{"start":{"line":10,"column":2},"end":{"line":10,"column":48}}},"2":{"name":"readJSON","line":15,"loc":{"start":{"line":15,"column":9},"end":{"line":15,"column":37}}},"3":{"name":"readFile","line":23,"loc":{"start":{"line":23,"column":9},"end":{"line":23,"column":37}}},"4":{"name":"(anonymous_7)","line":63,"loc":{"start":{"line":63,"column":6},"end":{"line":63,"column":6}}},"5":{"name":"(anonymous_8)","line":70,"loc":{"start":{"line":70,"column":39},"end":{"line":70,"column":56}}},"6":{"name":"(anonymous_9)","line":81,"loc":{"start":{"line":81,"column":11},"end":{"line":81,"column":11}}}},"branchMap":{"1":{"line":12,"type":"binary-expr","locations":[{"start":{"line":12,"column":16},"end":{"line":12,"column":16}},{"start":{"line":12,"column":32},"end":{"line":12,"column":4}}]},"2":{"line":14,"type":"binary-expr","locations":[{"start":{"line":14,"column":20},"end":{"line":14,"column":20}},{"start":{"line":15,"column":9},"end":{"line":14,"column":4}}]},"3":{"line":16,"type":"if","locations":[{"start":{"line":16,"column":8},"end":{"line":16,"column":8}},{"start":{"line":16,"column":8},"end":{"line":16,"column":8}}]},"4":{"line":22,"type":"binary-expr","locations":[{"start":{"line":22,"column":20},"end":{"line":22,"column":20}},{"start":{"line":23,"column":9},"end":{"line":22,"column":4}}]},"5":{"line":24,"type":"if","locations":[{"start":{"line":24,"column":8},"end":{"line":24,"column":8}},{"start":{"line":24,"column":8},"end":{"line":24,"column":8}}]},"6":{"line":34,"type":"cond-expr","locations":[{"start":{"line":34,"column":38},"end":{"line":34,"column":45}},{"start":{"line":34,"column":45},"end":{"line":34,"column":45}}]},"7":{"line":34,"type":"binary-expr","locations":[{"start":{"line":34,"column":45},"end":{"line":34,"column":45}},{"start":{"line":34,"column":45},"end":{"line":34,"column":45}}]},"8":{"line":37,"type":"binary-expr","locations":[{"start":{"line":37,"column":17},"end":{"line":37,"column":17}},{"start":{"line":37,"column":25},"end":{"line":37,"column":4}}]},"9":{"line":38,"type":"if","locations":[{"start":{"line":38,"column":4},"end":{"line":38,"column":4}},{"start":{"line":38,"column":4},"end":{"line":38,"column":4}}]},"10":{"line":48,"type":"if","locations":[{"start":{"line":48,"column":4},"end":{"line":48,"column":4}},{"start":{"line":48,"column":4},"end":{"line":48,"column":4}}]},"11":{"line":52,"type":"if","locations":[{"start":{"line":52,"column":4},"end":{"line":52,"column":4}},{"start":{"line":52,"column":4},"end":{"line":52,"column":4}}]},"12":{"line":69,"type":"if","locations":[{"start":{"line":69,"column":4},"end":{"line":69,"column":4}},{"start":{"line":69,"column":4},"end":{"line":69,"column":4}}]},"13":{"line":73,"type":"cond-expr","locations":[{"start":{"line":73,"column":24},"end":{"line":73,"column":10}},{"start":{"line":73,"column":45},"end":{"line":71,"column":8}}]},"14":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":8},"end":{"line":75,"column":8}},{"start":{"line":75,"column":8},"end":{"line":75,"column":8}}]}},"s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":15,"7":15,"8":15,"9":15,"10":6,"11":0,"12":6,"13":15,"14":12,"15":1,"16":1,"17":11,"18":15,"19":28,"20":14,"21":14,"22":14,"23":1,"24":13,"25":14,"26":14,"27":14,"28":14,"29":2,"30":12,"31":6,"32":6,"33":6,"34":6,"35":12,"36":12,"37":12,"38":12,"39":5,"40":5,"41":5,"42":2,"43":12,"44":606,"45":1},"b":{"1":[15,12],"2":[15,15],"3":[0,6],"4":[15,15],"5":[1,11],"6":[12,2],"7":[14,14],"8":[14,12],"9":[1,13],"10":[2,12],"11":[6,6],"12":[5,7],"13":[1,4],"14":[2,3]},"f":{"1":15,"2":6,"3":12,"4":12,"5":5,"6":606},"code":"const path = require('path');\nconst fs = require('fs');\nconst { SourceMapConsumer } = require('source-map');\n\nconst sourceMapRegEx = /(?:\\/{2}[#@]{1,2}|\\/\\*)\\s+sourceMappingURL\\s*=\\s*(data:(?:[^;]+;)+base64,)?(\\S+)/;\n\nconst getMapping = require('./getMapping');\n\nclass MappingProvider {\n  constructor(options, sparceCoverageCollector) {\n    this.sparceCoverageCollector = sparceCoverageCollector;\n    this.warn = options.warn || console.warn;\n\n    this.readJSON = options.readJSON\n      || function readJSON(filePath) {\n        if (!fs.existsSync(filePath)) {\n          throw new Error(`Could not find file: \"${filePath}\"`);\n        }\n        return JSON.parse(fs.readFileSync(filePath));\n      };\n\n    this.readFile = options.readFile\n      || function readFile(filePath) {\n        if (!fs.existsSync(filePath)) {\n          this.warn(new Error(`Could not find file: \"${filePath}\"`));\n          return '';\n        }\n        return fs.readFileSync(filePath);\n      };\n\n    this.sourceStore = options.sources;\n  }\n\n  getMappingResolver(filePath, code = false) {\n    /* coverage.json can sometimes include the code inline */\n    let codeIsArray = true;\n    let jsText = code || this.readFile(filePath);\n    if (Array.isArray(jsText)) { /* sometimes the source is an array */\n      jsText = jsText.join('\\n');\n    } else {\n      codeIsArray = false;\n    }\n\n    const match = sourceMapRegEx.exec(jsText);\n    let sourceMapDir = path.dirname(filePath);\n    let rawSourceMap;\n\n    if (!match) {\n      return false;\n    }\n\n    if (match[1]) {\n      rawSourceMap = JSON.parse((new Buffer(match[2], 'base64').toString('utf8')));\n    } else {\n      const sourceMapPath = path.join(sourceMapDir, match[2]);\n      rawSourceMap = this.readJSON(sourceMapPath);\n      sourceMapDir = path.dirname(sourceMapPath);\n    }\n\n\n    // replace relative paths in source maps with absolute\n    rawSourceMap.sources = rawSourceMap.sources.map(\n      (srcPath) => path.resolve(sourceMapDir, srcPath)\n    );\n\n    const sourceMap = new SourceMapConsumer(rawSourceMap);\n\n    /* if there are inline sources and a store to put them into, we will populate it */\n    if (sourceMap.sourcesContent) {\n      sourceMap.sourcesContent.forEach((source, idx) => {\n        this.sparceCoverageCollector.setSourceCode(\n          sourceMap.sources[idx],\n          codeIsArray ? source.split('\\n') : source\n        );\n        if (this.sourceStore) {\n          this.sourceStore.set(sourceMap.sources[idx], source);\n        }\n      });\n    }\n\n    return (location) => getMapping(sourceMap, location);\n  }\n}\n\nmodule.exports.MappingProvider = MappingProvider;\n","l":{"1":1,"2":1,"5":1,"7":1,"10":15,"11":15,"12":15,"14":15,"16":6,"17":0,"19":6,"22":15,"24":12,"25":1,"26":1,"28":11,"31":15,"34":28,"36":14,"37":14,"38":14,"39":1,"41":13,"44":14,"45":14,"46":14,"48":14,"49":2,"52":12,"53":6,"55":6,"56":6,"57":6,"62":12,"63":12,"66":12,"69":12,"70":5,"71":5,"75":5,"76":2,"81":606,"85":1}},
"/Users/z_bodya/work/remap-istanbul/src/getMapping.js":{"path":"/Users/z_bodya/work/remap-istanbul/src/getMapping.js","statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}},"2":{"start":{"line":2,"column":2},"end":{"line":2,"column":2}},"3":{"start":{"line":8,"column":0},"end":{"line":63,"column":1}},"4":{"start":{"line":9,"column":2},"end":{"line":9,"column":2}},"5":{"start":{"line":13,"column":2},"end":{"line":13,"column":2}},"6":{"start":{"line":17,"column":2},"end":{"line":19,"column":3}},"7":{"start":{"line":18,"column":4},"end":{"line":18,"column":4}},"8":{"start":{"line":21,"column":2},"end":{"line":23,"column":3}},"9":{"start":{"line":22,"column":4},"end":{"line":22,"column":4}},"10":{"start":{"line":25,"column":2},"end":{"line":27,"column":3}},"11":{"start":{"line":26,"column":4},"end":{"line":26,"column":4}},"12":{"start":{"line":49,"column":2},"end":{"line":49,"column":2}},"13":{"start":{"line":65,"column":0},"end":{"line":65,"column":0}}},"fnMap":{"1":{"name":"normLocation","line":1,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":27}}},"2":{"name":"getMapping","line":8,"loc":{"start":{"line":8,"column":0},"end":{"line":8,"column":41}}}},"branchMap":{"1":{"line":17,"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":17,"column":2}},{"start":{"line":17,"column":2},"end":{"line":17,"column":2}}]},"2":{"line":17,"type":"binary-expr","locations":[{"start":{"line":17,"column":6},"end":{"line":17,"column":6}},{"start":{"line":17,"column":23},"end":{"line":17,"column":6}},{"start":{"line":17,"column":38},"end":{"line":17,"column":2}}]},"3":{"line":21,"type":"if","locations":[{"start":{"line":21,"column":2},"end":{"line":21,"column":2}},{"start":{"line":21,"column":2},"end":{"line":21,"column":2}}]},"4":{"line":21,"type":"binary-expr","locations":[{"start":{"line":21,"column":6},"end":{"line":21,"column":6}},{"start":{"line":21,"column":29},"end":{"line":21,"column":2}}]},"5":{"line":25,"type":"if","locations":[{"start":{"line":25,"column":2},"end":{"line":25,"column":2}},{"start":{"line":25,"column":2},"end":{"line":25,"column":2}}]},"6":{"line":25,"type":"binary-expr","locations":[{"start":{"line":25,"column":6},"end":{"line":25,"column":6}},{"start":{"line":25,"column":27},"end":{"line":25,"column":2}}]}},"s":{"1":1,"2":1212,"3":1,"4":606,"5":606,"6":606,"7":174,"8":432,"9":0,"10":432,"11":0,"12":432,"13":1},"b":{"1":[174,432],"2":[606,432,432],"3":[0,432],"4":[432,432],"5":[0,432],"6":[432,432]},"f":{"1":1212,"2":606},"code":"function normLocation(loc) {\n  return {\n    line: Math.max(loc.line, 1),\n    column: Math.max(loc.column, 0),\n  };\n}\n\nfunction getMapping(sourceMap, location) {\n  const start = sourceMap.originalPositionFor(\n    normLocation(location.start)\n  );\n\n  const end = sourceMap.originalPositionFor(\n    normLocation(location.end)\n  );\n\n  if (!start.source || !end.source || start.source !== end.source) {\n    return null;\n  }\n\n  if (start.line === null || start.column === null) {\n    return null;\n  }\n\n  if (end.line === null || end.column === null) {\n    return null;\n  }\n\n  // incorrect for case when using default parameters in function, transpiled via babel:\n  //\n  //     (url, state = null, title = null) => {\n  //           window.history.pushState(state, title, url);\n  //           next('push');\n  //     }\n  //\n  // if (start.line === end.line && start.column === end.column) {\n  //   const newEnd = sourceMap.originalPositionFor({\n  //     line: location.end.line,\n  //     column: location.end.column,\n  //     bias: SourceMapConsumer.LEAST_UPPER_BOUND,\n  //   });\n  //\n  //   if (newEnd.source && newEnd.line !== null && newEnd.column !== null) {\n  //     end = newEnd;\n  //     end.column = end.column - 1;\n  //   }\n  // }\n\n  return {\n    source: start.source,\n    loc: {\n      start: {\n        line: start.line,\n        column: start.column,\n      },\n      end: {\n        line: end.line,\n        column: end.column,\n      },\n      skip: location.skip,\n    },\n  };\n}\n\nmodule.exports = getMapping;\n","l":{"1":1,"2":1212,"8":1,"9":606,"13":606,"17":606,"18":174,"21":432,"22":0,"25":432,"26":0,"49":432,"65":1}}}
