{"version":3,"sources":["jsdelivr-header.js","/npm/qunit_notifier@0.1.5/lib/main.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACLA,IAAI,OAAS,QAAQ,UACpB,MAAQ,QAAQ,iBAAiB,MACjC,OAAS,QAAQ,YACjB,UAAY,QAAQ,eACpB,KAAO,QAAQ,QACf,GAAK,QAAQ,MACb,KAAO,QAAQ,QAGhB,IAAI,SAAW,CACd,YAAa,CAAC,WAAY,SAAU,WAAY,kBAAkB,QAAS,UAC3E,SAAU,KAAK,KAAK,QAAQ,MAAO,SACnC,OAAQ,KAAK,KAAK,QAAQ,MAAO,cACjC,gBAAiB,iBACjB,SAAU,QACV,MAAO,UACP,QAAQ,EACR,OAAO,GAIR,SAAS,QAET,CAMA,OAAO,QAAU,CAMhB,UAAW,SAAS,GACnB,IAAI,IAAI,KAAO,EACd,IAAI,IAAI,KAAQ,SAAS,YACrB,SAAS,YAAY,IAAS,IAChC,SAAS,GAAO,EAAS,GAI7B,EAOA,MAAO,WACN,IAAI,EAAO,KAEX,QACA,EAAK,IAAI,yBAAyB,QAClC,EAAK,OAAO,OAAO,YAAY,CAC9B,MAAO,cACP,KAAM,yBACN,MAAO,SAAS,SAGjB,OAAO,MAAM,CACZ,KAAM,SAAS,SACf,UAAW,CACV,IAAK,SAAS,GAEd,EACA,MAAO,SAAS,GACf,EAAK,IAAI,6CACV,EACA,OAAQ,SAAS,EAAY,EAAU,EAAiB,GACrC,WAAf,IACF,QACA,EAAK,IAAI,4BACT,EAAK,IAAI,yBAET,EAAK,OAAO,OAAO,YAAY,CAC9B,MAAO,2BACP,KAAM,wBACN,MAAO,SAAS,SAGjB,EAAK,SAEP,GAED,KAAM,SAAS,EAAK,GAInB,YAAW,WACV,EAAK,IAAI,2BACT,IAAI,IAAI,EAAI,EAAG,EAAI,EAAS,OAAQ,IACnC,EAAS,GAAG,OAEd,GAAG,IACJ,GAGF,EAOA,IAAK,WACJ,IAAI,EAAO,KAEX,EAAK,IAAI,wBAAwB,QACjC,EAAK,OAAO,OAAO,YAAY,CAC9B,MAAO,cACP,KAAM,wBACN,MAAO,SAAS,SAGjB,EAAK,QACN,EAOA,OAAQ,WACP,IAAI,EAAO,KACP,EAAS,SAAS,OACtB,EAAS,WAAa,SAAS,OAAO,QAAQ,MAAO,KAErD,IAAI,EAAS,KAAK,KAAK,UAAU,qBAE7B,EAAU,MAAM,YAAa,CAAC,EAAQ,IAE1C,EAAQ,OAAO,GAAG,QAAQ,SAAS,IAC3B,EAAO,KAAK,MAAM,IACjB,MAAQ,SAAS,MACtB,EAAK,OAAO,OAAO,YAAY,GACnC,IAEA,EAAQ,OAAO,GAAG,QAAQ,SAAU,GACnC,QAAQ,IAAI,oEACb,GAED,EAOA,OAAQ,SAAS,GAEZ,SAAS,SACZ,UAAU,UAAU,CACnB,OAAQ,SAAS,SACjB,gBAAiB,SAAS,kBAG3B,UAAU,KAAK,GAEjB,EAOA,IAAK,SAAS,EAAS,GACtB,QAAQ,IAAI,EACb","file":"/npm/qunit_notifier@0.1.5/lib/main.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/qunit_notifier@0.1.5/lib/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","// dependencies\r\nvar watchr = require('watchr'),\r\n\tspawn = require('child_process').spawn,\r\n\tparser = require('./parser'),\r\n\tnotifiers = require('./notifiers'),\r\n\tpath = require('path')\r\n\tfs = require('fs'),\r\n\tutil = require('util');\r\n\r\n// Default configuration\r\nvar defaults = {\r\n\tallowedArgs: ['testPath', 'runner', 'notifier', 'applicationName','theme', 'silent'],\r\n\ttestPath: path.join(process.cwd(), 'cases'),\r\n\trunner: path.join(process.cwd(), 'index.html'),\r\n\tapplicationName: 'Qunit Notifier',\r\n\tnotifier: 'snarl',\r\n\ttheme: 'default',\r\n\tsilent: false,\r\n\twatch: true\r\n};\r\n\r\n// clear console\r\nfunction clear(){\r\n\t//util.print(\"\\u001b[2J\\u001b[0;0H\");\r\n}\r\n\r\n\r\n/**\r\n * Module Structure\r\n */\r\nmodule.exports = {\r\n\t/**\r\n\t * Module Settings\r\n\t *\r\n\t * Expects an object an extends module settings by allowed arguments\r\n\t */\r\n\tconfigure: function(settings){\r\n\t\tfor(var key in settings){\r\n\t\t\tfor(var prop in defaults.allowedArgs){\r\n\t\t\t\tif(defaults.allowedArgs[prop] == key){\r\n\t\t\t\t\tdefaults[key] = settings[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Watcher\r\n\t *\r\n\t * Watch tests directory, waiting for file updates\r\n\t */\r\n\twatch: function(){\r\n\t\tvar self = this;\r\n\r\n\t\tclear();\r\n\t\tself.log('Watching test files...','info');\r\n\t\tself.notify(parser.consolidate({\r\n\t\t\ttitle: 'Qunit Tests',\r\n\t\t\ttext: 'Watching test files...',\r\n\t\t\ttheme: defaults.theme\r\n\t\t}));\r\n\r\n\t\twatchr.watch({\r\n\t\t\tpath: defaults.testPath,\r\n\t\t\tlisteners: {\r\n\t\t\t\tlog: function(logLevel){\r\n\t\t\t\t\t//self.log('a log message ocurred:', logLevel);\r\n\t\t\t\t},\r\n\t\t\t\terror: function(err){\r\n\t\t\t\t\tself.log('a new watcher instance finished setting up');\r\n\t\t\t\t},\r\n\t\t\t\tchange: function(changeType, filePath, fileCurrentStat, filePreviousStat){\r\n\t\t\t\t\tif(changeType === 'update'){\r\n\t\t\t\t\t\tclear();\r\n\t\t\t\t\t\tself.log('A test file was updated!');\r\n\t\t\t\t\t\tself.log('Running unit tests...');\r\n\r\n\t\t\t\t\t\tself.notify(parser.consolidate({\r\n\t\t\t\t\t\t\ttitle: 'A test file was updated!',\r\n\t\t\t\t\t\t\ttext: 'Running unit tests...',\r\n\t\t\t\t\t\t\ttheme: defaults.theme\r\n\t\t\t\t\t\t}));\r\n\r\n\t\t\t\t\t\tself.launch();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tnext: function(err, watchers){\r\n\t\t\t\t// Watvhing all setup\r\n\t\t\t\t//self.log('Now watching files');\r\n\t\t\t\t// Close after 10 seconds\r\n\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\tself.log('Stop watching our paths');\r\n\t\t\t\t\tfor(var i = 0; i < watchers.length; i++){\r\n\t\t\t\t\t\twatchers[i].close();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 10*1000);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t},\r\n\r\n\t/**\r\n\t * Run function\r\n\t * \r\n\t * Run a standalone test\r\n\t */\r\n\trun: function(){\r\n\t\tvar self = this;\r\n\r\n\t\tself.log('Running unit tests...','info');\r\n\t\tself.notify(parser.consolidate({\r\n\t\t\ttitle: 'Qunit Tests',\r\n\t\t\ttext: 'Running unit tests...',\r\n\t\t\ttheme: defaults.theme\r\n\t\t}));\r\n\r\n\t\tself.launch();\r\n\t},\r\n\r\n\t/**\r\n\t * Launcher\r\n\t *\r\n\t * Launches tests in a PhantomJS instance\r\n\t */\r\n\tlaunch: function(){\r\n\t\tvar self = this;\r\n\t\tvar runner = defaults.runner;\r\n\t\trunner = 'file:///' + defaults.runner.replace(/\\\\/g, '/'); // TO DO: Multiplo protocols http:// file:/// etc\r\n\r\n\t\tvar server = path.join(__dirname,'phantom_server.js');\r\n\r\n\t\tvar phantom = spawn('phantomjs', [server, runner]);\r\n\r\n\t\tphantom.stdout.on('data', function(data) {\r\n    \t\tvar data = JSON.parse(data);\r\n    \t\tdata.theme = defaults.theme;\r\n    \t\tself.notify(parser.consolidate(data));\r\n\t\t});\r\n\r\n\t\tphantom.stderr.on('data', function (data) {\r\n\t\t\tconsole.log('Sorry, a problem occurred. Maybe PhantomJS is not in your path =(');\r\n\t\t});\r\n\r\n\t},\r\n\r\n\t/**\r\n\t * Notification System\r\n\t *\r\n\t * Sends notification for one of targeted systems: Snarl, Growl, Libnotify, html5 | mac os notification == html5\r\n\t */\r\n\tnotify: function(data){\r\n\r\n\t\tif(!defaults.silent){\r\n\t\t\tnotifiers.configure({\r\n\t\t\t\tsystem: defaults.notifier,\r\n\t\t\t\tapplicationName: defaults.applicationName\r\n\t\t\t});\r\n\r\n\t\t\tnotifiers.send(data);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Log System\r\n\t *\r\n\t * Log messages by type and priority\r\n\t */\r\n\tlog: function(message, type){\r\n\t\tconsole.log(message);\r\n\t}\r\n}"]}