{"version":3,"sources":["jsdelivr-header.js","/npm/mocha-bamboo-spec-reporter@1.3.0/lib/bamboo.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,KAAO,QAAQ,SAAS,UAAU,KAClC,KAAO,QAAQ,SAAS,UAAU,KAClC,KAAO,QAAQ,QACf,GAAK,QAAQ,MACb,OAAS,QAAQ,UACjB,SAAW,QAAQ,QAAQ,SAC3B,SAAW,QAAQ,IAAI,YAAc,aAazC,SAAS,mBAAmB,EAAQ,GAClC,IAAI,EAAO,KACP,GAAW,EAAQ,iBAAmB,EAAQ,gBAAgB,KAChE,KAAK,KAAK,KAAM,GAGhB,KAAK,KAAK,KAAM,GAGlB,IAAI,EAAQ,GACR,EAAW,GACX,EAAS,GACT,EAAU,GAEV,GAAW,EAAQ,iBAAmB,EAAQ,gBAAgB,SAChE,SAAW,EAAQ,gBAAgB,QAGrC,EAAO,GAAG,YAAY,SAAS,GAC7B,EAAM,KAAK,EACb,IAEA,EAAO,GAAG,WAAW,SAAS,GAC5B,EAAQ,KAAK,EACf,IAEA,EAAO,GAAG,QAAQ,SAAS,GACzB,EAAO,KAAK,EACd,IAEA,EAAO,GAAG,QAAQ,SAAS,GACzB,EAAS,KAAK,EAChB,IAEA,EAAO,GAAG,OAAO,WACf,IAAI,EAAM,CACN,MAAO,EAAK,MACZ,SAAU,EAAS,IAAI,OACvB,OAAQ,EAAO,IAAI,OACnB,QAAS,EAAQ,IAAI,QAGzB,OAAO,KAAK,KAAK,QAAQ,KAAK,QAAQ,QAAQ,MAAO,YACrD,GAAG,cAAc,SAAU,KAAK,UAAU,EAAK,KAAM,GAAI,QAC3D,IACA,EAAO,GAAG,SAAS,WACb,GAAG,WAAW,WAChB,GAAG,WAAW,SAElB,GACF,CAWA,SAAS,MAAM,GACb,IAAI,EAAI,CACJ,MAAO,EAAK,MACZ,UAAW,EAAK,YAChB,SAAU,EAAK,UAUnB,OARI,EAAK,eAAe,SAClB,EAAK,IAAI,MACX,EAAE,MAAQ,EAAK,IAAI,MAAM,WAElB,EAAK,IAAI,UAChB,EAAE,MAAQ,EAAK,IAAI,UAGhB,CACT,CAvFA,SAAS,mBAAoB,MAC7B,QAAU,OAAO,QAAU","file":"/npm/mocha-bamboo-spec-reporter@1.3.0/lib/bamboo.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/mocha-bamboo-spec-reporter@1.3.0/lib/bamboo.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 Base = require('mocha').reporters.Base\n  , Spec = require('mocha').reporters.Spec\n  , path = require('path')\n  , fs = require('fs')\n  , mkdirp = require('mkdirp')\n  , inherits = require('util').inherits\n  , filename = process.env.MOCHA_FILE || 'mocha.json';\n\ninherits(BambooJSONReporter, Base);\nexports = module.exports = BambooJSONReporter;\n\n/**\n * Initialize a new `JSON` reporter.\n *\n * @param {Runner} runner\n * @param {Object} options\n * @api public\n */\n\nfunction BambooJSONReporter(runner, options) {\n  var self = this;\n  if (options && options.reporterOptions && options.reporterOptions.spec) {\n    Spec.call(this, runner);\n  }\n  else {\n    Base.call(this, runner);\n  }\n\n  var tests = []\n    , failures = []\n    , passes = []\n    , skipped = [];\n\n  if (options && options.reporterOptions && options.reporterOptions.output) {\n    filename = options.reporterOptions.output;\n  }\n\n  runner.on('test end', function(test){\n    tests.push(test);\n  });\n\n  runner.on('pending', function(test) {\n    skipped.push(test);\n  });\n  \n  runner.on('pass', function(test){\n    passes.push(test);\n  });\n\n  runner.on('fail', function(test){\n    failures.push(test);\n  });\n\n  runner.on('end', function(){\n    var obj = {\n        stats: self.stats\n      , failures: failures.map(clean)\n      , passes: passes.map(clean)\n      , skipped: skipped.map(clean)\n    };\n\n    mkdirp.sync(path.dirname(path.resolve(process.cwd(), filename)));\n    fs.writeFileSync(filename, JSON.stringify(obj, null, 2), 'utf-8');\n  });\n  runner.on('start', function() {\n    if (fs.existsSync(filename)) {\n      fs.unlinkSync(filename); // if we die at some point, we don't want bamboo to have a stale results file lying around...      \n    }\n  });\n}\n\n/**\n * Return a plain-object representation of `test`\n * free of cyclic properties etc.\n *\n * @param {Object} test\n * @return {Object}\n * @api private\n */\n\nfunction clean(test) {\n  var o = {\n      title: test.title\n    , fullTitle: test.fullTitle()\n    , duration: test.duration\n  };\n  if (test.hasOwnProperty(\"err\")) {\n    if (test.err.stack) {\n      o.error = test.err.stack.toString();\n    }\n    else if (test.err.message) {\n      o.error = test.err.message;\n    }\n  }\n  return o;\n}\n"]}