UNPKG

async-try-catch

Version:
2 lines 104 kB
(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.createTeaTime=e()}})(function(){var e,t,r;return function n(e,t,r){function i(o,a){if(!t[o]){if(!e[o]){var l=typeof require=="function"&&require;if(!a&&l)return l(o,!0);if(s)return s(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=t[o]={exports:{}};e[o][0].call(c.exports,function(t){var r=e[o][1][t];return i(r?r:t)},c,c.exports,n,e,t,r)}return t[o].exports}var s=typeof require=="function"&&require;for(var o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,r){"use strict";function n(e,t){if(!t){t=Object.create(n.prototype,{teaTime:{value:e,enumerable:true}})}document.querySelector("body").insertAdjacentHTML("beforeend",'<div class="tea-time-classic-reporter" style="background-color:black;color:white"></div>');t.container=document.querySelector("div.tea-time-classic-reporter");t.teaTime.on("enterSuite",n.enterSuite.bind(t));t.teaTime.on("ok",n.ok.bind(t));t.teaTime.on("fail",n.fail.bind(t));t.teaTime.on("skip",n.skip.bind(t));t.teaTime.on("report",n.report.bind(t));t.teaTime.on("errorReport",n.errorReport.bind(t));return t}t.exports=n;function i(){(document.querySelector("div.tea-time-classic-reporter p:last-child")||document.querySelector("div.tea-time-classic-reporter h4:last-child")||document.querySelector("div.tea-time-classic-reporter pre:last-child")).scrollIntoView()}function s(e){return"margin-left:"+(1+2*e)+"%;"}var o="color:green;";var a="color:red;";var l="color:blue;";var u="color:grey;";var c="color:yellow;";var f="color:red;";var p="color:red;font-weight:bold;";var h="background-color:red;color:white;font-weight:bold;";var d="background-color:green;color:white;font-weight:bold;";var g="background-color:red;color:white;font-weight:bold;";n.enterSuite=function b(e,t){this.container.insertAdjacentHTML("beforeend",'<h4 class="tea-time-classic-reporter" style="'+s(t)+'">'+e+"</h4>");i()};n.ok=function y(e,t,r,n){var a="✔ "+e;if(!n){a+=' <span style="'+u+'">('+r+"ms)</span>"}else if(n===1){a+=' <span style="'+c+'">('+r+"ms)</span>"}else{a+=' <span style="'+f+'">('+r+"ms)</span>"}this.container.insertAdjacentHTML("beforeend",'<p class="tea-time-classic-reporter" style="'+o+s(t)+'">'+a+"</p>");i()};n.fail=function m(e,t,r,n,o){var l="✘ "+e;if(r!==undefined){if(!n){l+=' <span style="'+u+'">('+r+"ms)</span>"}else if(n===1){l+=' <span style="'+c+'">('+r+"ms)</span>"}else{l+=' <span style="'+f+'">('+r+"ms)</span>"}}this.container.insertAdjacentHTML("beforeend",'<p class="tea-time-classic-reporter" style="'+a+s(t)+'">'+l+"</p>");i()};n.skip=function v(e,t){var r="· "+e;this.container.insertAdjacentHTML("beforeend",'<p class="tea-time-classic-reporter" style="'+l+s(t)+'">'+r+"</p>");i()};n.report=function x(e,t,r){this.container.insertAdjacentHTML("beforeend","<hr />"+'<p class="tea-time-classic-reporter" style="font-weight:bold;'+o+s(1)+'">'+e+" passing</p>"+'<p class="tea-time-classic-reporter" style="font-weight:bold;'+a+s(1)+'">'+t+" failing</p>"+'<p class="tea-time-classic-reporter" style="font-weight:bold;'+l+s(1)+'">'+r+" pending</p>");i()};n.errorReport=function w(e){var t,r,n="";n+='<h4 class="tea-time-classic-reporter" style="'+p+s(0)+'">== Errors ==</h4>';for(t=0;t<e.length;t++){r=e[t];n+='<p class="tea-time-classic-reporter" style="'+p+s(1)+'">'+(t+1)+" ) ";switch(r.type){case"test":if(r.error.testTimeout){n+='<span style="'+h+'">TEST TIMEOUT</span> '}break;case"setup":n+='<span style="'+h+'">SETUP HOOK</span> ';break;case"teardown":n+='<span style="'+h+'">TEARDOWN HOOK</span> ';break;case"suiteSetup":n+='<span style="'+h+'">SUITE SETUP HOOK</span> ';break;case"suiteTeardown":n+='<span style="'+h+'">SUITE TEARDOWN HOOK</span> ';break}n+=r.name;n+="</p>";n+=this.reportOneError(r.error)}this.container.insertAdjacentHTML("beforeend","<hr />"+n);i()};n.prototype.reportOneError=function k(e){var t="";if(e.expected&&e.actual){t+='<p class="tea-time-classic-reporter" style="'+s(2)+'">'+'<span style="'+d+'">expected</span><span style="'+g+'">actual</span>'+"</p>";t+='<pre class="tea-time-classic-reporter"; style="'+s(2)+'">';t+=this.teaTime.htmlColorDiff(e.actual,e.expected);t+="</pre>"}t+='<pre class="tea-time-classic-reporter" style="'+s(2)+'">'+this.teaTime.inspect.inspectError({style:"html"},e)+"</pre>";return t}},{}],2:[function(e,t,r){"use strict";function n(e,t){if(!t){t=Object.create(n.prototype,{teaTime:{value:e,enumerable:true}})}t.teaTime.on("ok",n.ok.bind(t));t.teaTime.on("fail",n.fail.bind(t));t.teaTime.on("skip",n.skip.bind(t));t.teaTime.on("report",n.report.bind(t));return t}t.exports=n;n.ok=function i(e,t,r,n){console.log("OK:",e,"("+r+")")};n.fail=function s(e,t,r,n,i){console.log("Fail:",e,r!==undefined?"("+r+")":"")};n.skip=function o(e,t){console.log("Pending:",e)};n.report=function a(e,t,r){console.log("Report -- ok:",e," fail:",t," pending:",r)}},{}],3:[function(e,t,r){"use strict";function n(e,t){if(!t){t=Object.create(n.prototype,{teaTime:{value:e,enumerable:true}})}t.teaTime.on("ready",{fn:n.ready.bind(t),async:true});t.teaTime.on("run",n.forward.bind(t,"run"));t.teaTime.on("enterSuite",n.forward.bind(t,"enterSuite"));t.teaTime.on("exitSuite",n.forward.bind(t,"exitSuite"));t.teaTime.on("enterTest",n.forward.bind(t,"enterTest"));t.teaTime.on("exitTest",n.forward.bind(t,"exitTest"));t.teaTime.on("ok",n.forward.bind(t,"ok"));t.teaTime.on("fail",n.forward.bind(t,"fail"));t.teaTime.on("skip",n.forward.bind(t,"skip"));t.teaTime.on("report",n.forward.bind(t,"report"));t.teaTime.on("errorReport",n.forward.bind(t,"errorReport"));t.teaTime.on("exit",n.exit.bind(t,"exit"));return t}t.exports=n;n.ready=function i(e){var t=this;this.ws=new WebSocket("ws://127.0.0.1:7357/"+this.teaTime.token);this.ws.onopen=function r(){n.forward.call(t,"ready");console.log("Websocket opened!");e()};this.ws.onclose=function i(){console.log("Websocket closed!")}};n.forward=function s(e){var t=Array.prototype.slice.call(arguments,1);this.teaTime.prepareSerialize(t);this.ws.send(JSON.stringify({event:e,args:t}))};n.exit=function o(e){n.forward.call(this,"exit");this.ws.close()}},{}],4:[function(e,t,r){"use strict";var n=e("./tea-time.js");var i=e("./diff.js");var s=e("./htmlColorDiff.js");var o=e("string-kit/lib/inspect.js");var a=e("dom-kit");var l=e("url");function u(){var t={microTimeout:function(e){setTimeout(e,0)},onceUncaughtException:function(e){var t=false;window.onerror=function(r,n,i,s,o){if(t){return}e(o);return true}},offUncaughtException:function(){window.onerror=function(){}},allowConsole:true};n.populateOptionsWithArgs(t,l.parse(window.location.href,true).query);window.teaTime=n.create(t);window.teaTime.init();window.teaTime.diff=i;window.teaTime.htmlColorDiff=s;window.teaTime.inspect=o;window.teaTime.prepareSerialize=c;window.teaTime.reporters={console:e("./browser-reporters/console.js"),classic:e("./browser-reporters/classic.js"),websocket:e("./browser-reporters/websocket.js")};t.reporters.forEach(function(e){window.teaTime.reporters[e](window.teaTime)});if(t.ws){window.teaTime.ws=true}return window.teaTime}t.exports=u;function c(e){var t,r,n,i;if(!e||typeof e!=="object"){return}if(Array.isArray(e)){for(t=0,r=e.length;t<r;t++){c(e[t])}return}i=e.__proto__&&e.__proto__.constructor.name;if(i&&i!=="Object"){e.__prototype=i}if(e instanceof Error){Object.defineProperties(e,{__prototype:{value:e.constructor.name,enumerable:true,writable:true},name:{value:e.name,enumerable:true,writable:true},message:{value:e.message,enumerable:true,writable:true},type:{value:e.type||e.constructor.name,enumerable:true,writable:true},stack:{value:e.stack,enumerable:true,writable:true}})}n=Object.keys(e);for(t=0,r=n.length;t<r;t++){c(e[n[t]])}}u();a.ready(function(){window.teaTime.run()})},{"./browser-reporters/classic.js":1,"./browser-reporters/console.js":2,"./browser-reporters/websocket.js":3,"./diff.js":5,"./htmlColorDiff.js":6,"./tea-time.js":7,"dom-kit":36,"string-kit/lib/inspect.js":41,url:19}],5:[function(e,t,r){"use strict";var n=e("string-kit/lib/inspect.js");var i=e("diff");var s={minimal:true,depth:10,sort:true};function o(e,t){var r="",n=o.raw(e,t,true);n.forEach(function(e){r+=e.value.replace(/^(?!$)/gm,function(){if(e.added){return"++"}else if(e.removed){return"--"}else{return" "}})});return r}t.exports=o;o.raw=function a(e,t,r){var o,a=0;var l=n.inspect(s,e);var u=n.inspect(s,t);if(!r){o=i.diffChars(l,u);o.forEach(function(e){if(e.added||e.removed){a+=15+e.value.length}});if(a<80){return o}}o=i.diffLines(l,u);return o}},{diff:30,"string-kit/lib/inspect.js":41}],6:[function(e,t,r){"use strict";var n=e("./diff.js").raw;t.exports=function i(e,t){var r="",i=n(e,t);i.forEach(function(e){if(e.added){r+=e.value.replace(/^(\s*)(\S(?:[^\n]*\S)?)(\s*)$/gm,function(e,t,r,n){return t+'<span style="background-color:green;color:white">'+r+"</span>"+n})}else if(e.removed){r+=e.value.replace(/^(\s*)(\S(?:[^\n]*\S)?)(\s*)$/gm,function(e,t,r,n){return t+'<span style="background-color:red;color:white">'+r+"</span>"+n})}else{r+='<span style="color:grey">'+e.value+"</span>"}});return r}},{"./diff.js":5}],7:[function(e,t,r){(function(r){"use strict";var n=e("async-kit");var i=e("nextgen-events");function s(){throw new Error("Use TeaTime.create() instead")}s.prototype=Object.create(i.prototype);s.prototype.constructor=s;t.exports=s;s.create=function o(e){var t=Object.create(s.prototype,{timeout:{value:e.timeout||2e3,writable:true,enumerable:true},slowTime:{value:e.slowTime||75,writable:true,enumerable:true},suite:{value:s.createSuite(),enumerable:true},grep:{value:Array.isArray(e.grep)?e.grep:[],writable:true,enumerable:true},allowConsole:{value:!!e.allowConsole,writable:true,enumerable:true},bail:{value:!!e.bail,writable:true,enumerable:true},token:{value:e.token||null,writable:true,enumerable:true},acceptTokens:{value:e.acceptTokens||null,writable:true,enumerable:true},startTime:{value:0,writable:true,enumerable:true},testCount:{value:0,writable:true,enumerable:true},done:{value:0,writable:true,enumerable:true},ok:{value:0,writable:true,enumerable:true},fail:{value:0,writable:true,enumerable:true},skip:{value:0,writable:true,enumerable:true},errors:{value:[],enumerable:true},microTimeout:{value:e.microTimeout,enumerable:true},onceUncaughtException:{value:e.onceUncaughtException,enumerable:true},offUncaughtException:{value:e.offUncaughtException,enumerable:true}});Object.defineProperties(t,{registerStack:{value:[t.suite],writable:true,enumerable:true}});return t};s.populateOptionsWithArgs=function a(e,t){var r,n,i;if(!e.reporters){e.reporters=["classic"]}if(!e.clientReporters){e.clientReporters=["classic"]}if(t.console!==undefined){e.allowConsole=t.console}else if(t.c!==undefined){e.allowConsole=t.c}if(t.b||t.bail){e.bail=true}if(t.timeout&&(i=parseInt(t.timeout,10))){e.timeout=i}else if(t.t&&(i=parseInt(t.t,10))){e.timeout=i}if(t.slow&&(i=parseInt(t.slow,10))){e.slowTime=i}else if(t.s&&(i=parseInt(t.s,10))){e.slowTime=i}if(t.reporter){if(!Array.isArray(t.reporter)){t.reporter=[t.reporter]}e.reporters=t.reporter;if(t.R){if(!Array.isArray(t.R)){t.R=[t.R]}e.reporters=t.reporter.concat(t.R)}}else if(t.R){if(!Array.isArray(t.R)){t.R=[t.R]}e.reporters=t.R}if(t.clientReporter){if(!Array.isArray(t.clientReporter)){t.clientReporter=[t.clientReporter]}e.clientReporters=t.clientReporter}e.grep=[];e.sourceGrep=[];if(t.g){if(!Array.isArray(t.g)){t.g=[t.g]}for(r=0,n=t.g.length;r<n;r++){e.grep.push(new RegExp(t.g[r],"i"));e.sourceGrep.push(t.g[r])}}if(t.grep){if(!Array.isArray(t.grep)){t.grep=[t.grep]}for(r=0,n=t.grep.length;r<n;r++){e.grep.push(new RegExp(t.grep[r],"i"));e.sourceGrep.push(t.grep[r])}}if(t.token){e.token=t.token}};s.prototype.init=function l(e){r.suite=r.describe=r.context=s.registerSuite.bind(this);r.test=r.it=r.specify=s.registerTest.bind(this);r.test.skip=s.registerSkipTest.bind(this);r.setup=r.beforeEach=s.registerHook.bind(this,"setup");r.teardown=r.afterEach=s.registerHook.bind(this,"teardown");r.suiteSetup=r.before=s.registerHook.bind(this,"suiteSetup");r.suiteTeardown=r.after=s.registerHook.bind(this,"suiteTeardown");if(!this.allowConsole){s.disableConsole()}};s.disableConsole=function u(){console.log=console.error=console.assert=console.info=console.dir=console.warn=console.trace=console.time=console.timeEnd=function(){}};s.createSuite=function c(e){var t=[];Object.defineProperties(t,{name:{value:e},parent:{value:null,writable:true},suiteSetup:{value:[]},suiteTeardown:{value:[]},setup:{value:[]},teardown:{value:[]}});return t};s.sortSuite=function f(e){e.sort(function(e,t){var r=Array.isArray(e)?1:0;var n=Array.isArray(t)?1:0;if(r-n){return r-n}return e.order-t.order})};s.prototype.run=function p(e){var t=this,r=false;s.sortSuite(this.suite);this.emit("ready",function(){t.emit("run",t.testCount);var n=function(){if(r){return}if(typeof e==="function"){e()}};t.startTime=Date.now();t.runSuite(t.suite,0,function(){t.emit("report",t.ok,t.fail,t.skip,Date.now()-t.startTime);if(t.fail){t.emit("errorReport",t.errors)}t.emit("exit",n);setTimeout(n,1e4)})})};s.prototype.runSuite=function h(e,t,r){var n=this;if(t){n.emit("enterSuite",e.name,t-1)}var i=function(i){if(t){n.emit("exitSuite",e.name,t-1)}r(i)};this.runHooks(e.suiteSetup,t,function(r){if(r){n.patchError(r);n.errors.push({name:r.hookFn.hookName+"["+r.hookFn.hookType+"]",type:r.hookFn.hookType,fn:r.hookFn,error:r});n.failSuite(e,t,"suiteSetup",r.hookFn,r);n.runHooks(e.suiteTeardown,t,function(e){i(r)});return}n.runSuiteTests(e,t,function(r){n.runHooks(e.suiteTeardown,t,function(e){if(r){i(r)}else if(e){n.patchError(e);n.errors.push({name:e.hookFn.hookName+"["+e.hookFn.hookType+"]",type:e.hookFn.hookType,fn:e.hookFn,error:e});i(e)}else{i()}})})})};s.prototype.runSuiteTests=function d(e,t,r){var i=this;n.foreach(e,function(r,n){if(Array.isArray(r)){i.runSuite(r,t+1,n);return}i.runTest(e,t,r,n)}).fatal(i.bail).exec(r)};s.prototype.failSuite=function g(e,t,r,n,i){var s,o;for(s=0,o=e.length;s<o;s++){if(Array.isArray(e[s])){this.failSuite(e[s],t+1,r,n,i)}this.done++;this.fail++;this.emit("fail",e[s].testName,t,undefined,undefined,i)}};s.prototype.runTest=function b(e,t,r,n){var i=this;i.testInProgress=r;if(typeof r!=="function"){i.done++;i.skip++;i.emit("skip",r.testName,t);n();return}var o=e,a=e.setup,l=e.teardown;while(o.parent){o=o.parent;a=o.setup.concat(a);l=o.teardown.concat(l)}var u=r.length?s.asyncTest.bind(i):s.syncTest.bind(i);var c=function(e,s,o,a){if(e){i.done++;i.fail++;i.patchError(e);i.errors.push({name:(e.hookFn?e.hookFn.hookName+"["+e.hookFn.hookType+"] ":"")+r.testName,type:a,fn:r,error:e});i.emit("fail",r.testName,t,s,o,e);n(e)}else{i.done++;i.ok++;i.emit("ok",r.testName,t,s,o);n()}};i.runHooks(a,t,function(e){if(e){i.runHooks(l,t,function(t){c(e,undefined,undefined,"setup")});return}i.emit("enterTest",r.testName,t);u(r,function(e,n,s){i.emit("exitTest",r.testName,t);i.runHooks(l,t,function(t,i){if(e){c(e,n,s,"test",r)}else if(t){c(t,n,s,"teardown",i[i.length-1][2])}else{c(undefined,n,s)}})})})};s.syncTest=function y(e,t){var r,n,i=this.slowTime;t=this.freshCallback(t);var s={timeout:function(){},slow:function(e){i=e}};try{r=Date.now();e.call(s);n=Date.now()-r}catch(o){n=Date.now()-r;t(o,n,Math.floor(n/i));return}t(undefined,n,Math.floor(n/i))};s.asyncTest=function m(e,t){var r=this,n,i,s=false,o=null,a,l=r.slowTime;a=new Error("Test timeout");a.testTimeout=true;t=this.freshCallback(t);var u={timeout:function(e){if(s){return}if(o!==null){clearTimeout(o);o=null}var t=new Error("Test timeout (local)");t.testTimeout=true;o=setTimeout(c.bind(undefined,t),e)},slow:function(e){l=e}};var c=function p(e){if(s){return}i=Date.now()-n;s=true;if(o!==null){clearTimeout(o);o=null}r.offUncaughtException(p);t(e,i,Math.floor(i/l))};r.onceUncaughtException(c);o=setTimeout(c.bind(undefined,a),r.timeout);try{n=Date.now();e.call(u,c)}catch(f){c(f)}};s.prototype.runHooks=function v(e,t,r){var i=this;n.foreach(e,function(e,r){var n=e.length?s.asyncHook.bind(i):s.syncHook.bind(i);i.emit("enterHook",e.hookType,e.hookName,t);n(e,function(n){i.emit("exitHook",e.hookType,e.hookName,t);if(n){n.hookFn=e}r(n)})}).fatal(true).exec(r)};s.syncHook=function x(e,t){t=this.freshCallback(t);try{e()}catch(r){t(r);return}t()};s.asyncHook=function w(e,t){var r=this,n=false;t=this.freshCallback(t);var i=function o(e){if(n){return}n=true;r.offUncaughtException(o);t(e)};this.onceUncaughtException(i);try{e(i)}catch(s){i(s)}};s.registerSuite=function k(e,t){if(!e||typeof e!=="string"||typeof t!=="function"){throw new Error("Usage is suite( name , fn )")}var r=this.registerStack[this.registerStack.length-1];var n=s.createSuite(e);this.registerStack.push(n);t();this.registerStack.pop();if(!n.length){return}Object.defineProperties(n,{order:{value:r.length}});s.sortSuite(n);r.push(n);Object.defineProperty(n,"parent",{value:r})};s.registerTest=function _(e,t){var r,n,i,s,o,a;if(!e||typeof e!=="string"){throw new Error("Usage is test( name , [fn] )")}a=this.registerStack[this.registerStack.length-1];for(r=0,n=this.grep.length;r<n;r++){o=false;if(e.match(this.grep[r])){continue}for(i=1,s=this.registerStack.length;i<s;i++){if(this.registerStack[i].name.match(this.grep[r])){o=true;break}}if(!o){return}}this.testCount++;if(typeof t!=="function"){t={}}Object.defineProperties(t,{testName:{value:e},order:{value:a.length}});a.push(t)};s.registerSkipTest=function T(e){return s.registerTest.call(this,e)};s.registerHook=function j(e,t,r){var n;if(typeof t==="function"){r=t;t=undefined}else if(typeof r!=="function"){throw new Error("Usage is hook( [name] , fn )")}Object.defineProperties(r,{hookName:{value:t||r.name||"[no name]"},hookType:{value:e}});n=this.registerStack[this.registerStack.length-1];n[e].push(r)};s.prototype.freshCallback=function A(e){var t=this;return function(){var r=arguments;t.microTimeout(function(){e.apply(t,r)})}};s.prototype.patchError=function C(e){var t,r,n;if(!e.stack){return}n=e.stack;if(!Array.isArray(n)){n=e.stack.split("\n")}for(t=0,r=n.length;t<r;t++){if(n[t].match(/(^|\/)tea-time\.(min\.)?js/)){n=n.slice(0,t);break}}e.stack=n.join("\n")}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"async-kit":8,"nextgen-events":38}],8:[function(e,t,r){"use strict";var n=e("./core.js");t.exports=n;n.wrapper=e("./wrapper.js");n.exit=e("./exit.js")},{"./core.js":9,"./exit.js":10,"./wrapper.js":11}],9:[function(e,t,r){"use strict";var n=e("nextgen-events");var i=e("tree-kit/lib/extend.js");var s={};t.exports=s;s.AsyncError=function d(e){Error.call(this);Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);this.message=e};s.AsyncError.prototype=Object.create(Error.prototype);s.AsyncError.prototype.constructor=s.AsyncError;s.Plan=function g(){throw new Error("[async] Cannot create an async Plan object directly")};s.Plan.prototype.constructor=s.Plan;var o={parallelLimit:{value:1,writable:true,enumerable:true,configurable:true},raceMode:{value:false,writable:true,enumerable:true,configurable:true},waterfallMode:{value:false,writable:true,enumerable:true,configurable:true},waterfallTransmitError:{value:false,writable:true,enumerable:true,configurable:true},whileAction:{value:undefined,writable:true,enumerable:true,configurable:true},whileActionBefore:{value:false,writable:true,enumerable:true,configurable:true},errorsAreFatal:{value:true,writable:true,enumerable:true,configurable:true},returnMapping1to1:{value:false,writable:true,enumerable:true,configurable:true},jobsData:{value:{},writable:true,enumerable:true},jobsKeys:{value:[],writable:true,enumerable:true},jobsUsing:{value:undefined,writable:true,enumerable:true},jobsTimeout:{value:undefined,writable:true,enumerable:true},returnLastJobOnly:{value:false,writable:true,enumerable:true},defaultAggregate:{value:undefined,writable:true,enumerable:true},returnAggregate:{value:false,writable:true,enumerable:true},transmitAggregate:{value:false,writable:true,enumerable:true},usingIsIterator:{value:false,writable:true,enumerable:true},thenAction:{value:undefined,writable:true,enumerable:true},catchAction:{value:undefined,writable:true,enumerable:true},finallyAction:{value:undefined,writable:true,enumerable:true},asyncEventNice:{value:-20,writable:true,enumerable:true},maxRetry:{value:0,writable:true,enumerable:true},retryTimeout:{value:0,writable:true,enumerable:true},retryMultiply:{value:1,writable:true,enumerable:true},retryMaxTimeout:{value:Infinity,writable:true,enumerable:true},execMappingMinInputs:{value:0,writable:true,enumerable:true},execMappingMaxInputs:{value:100,writable:true,enumerable:true},execMappingCallbacks:{value:["finally"],writable:true,enumerable:true},execMappingAggregateArg:{value:false,writable:true,enumerable:true},execMappingMinArgs:{value:0,writable:true,enumerable:true},execMappingMaxArgs:{value:101,writable:true,enumerable:true},execMappingSignature:{value:"( [finallyCallback] )",writable:true,enumerable:true},locked:{value:false,writable:true,enumerable:true}};s.do=function b(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(t)}});t.do(e);return t};s.parallel=function y(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{parallelLimit:{value:Infinity,writable:true,enumerable:true},execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(t)}});t.do(e);return t};s.series=function m(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{parallelLimit:{value:1,enumerable:true},execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(t)}});t.do(e);return t};s.race=function v(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{raceMode:{value:true,enumerable:true},parallelLimit:{value:Infinity,writable:true,enumerable:true},errorsAreFatal:{value:false,writable:true,enumerable:true},execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(t)}});t.returnLastJobOnly=true;t.do(e);return t};s.waterfall=function x(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{waterfallMode:{value:true,enumerable:true},waterfallTransmitError:{value:false,writable:true,enumerable:true},parallelLimit:{value:1,enumerable:true},execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(t)}});t.returnLastJobOnly=true;t.do(e);return t};s.foreach=s.forEach=function w(e,t){var r=Object.create(s.Plan.prototype,o);Object.defineProperties(r,{usingIsIterator:{value:true,writable:true,enumerable:true},errorsAreFatal:{value:false,writable:true,enumerable:true},execInit:{value:a.bind(r)},execNext:{value:l.bind(r)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(r)}});r.do(e);r.iterator(t);return r};s.map=function k(e,t){var r=Object.create(s.Plan.prototype,o);Object.defineProperties(r,{parallelLimit:{value:Infinity,writable:true,enumerable:true},usingIsIterator:{value:true,writable:true,enumerable:true},errorsAreFatal:{value:false,writable:true,enumerable:true},returnMapping1to1:{value:true,writable:false,enumerable:true},execInit:{value:a.bind(r)},execNext:{value:l.bind(r)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(r)}});r.do(e);r.iterator(t);return r};s.reduce=function _(e,t,r){var n=Object.create(s.Plan.prototype,o);Object.defineProperties(n,{parallelLimit:{value:1,writable:false,enumerable:true},usingIsIterator:{value:true,writable:true,enumerable:true},execInit:{value:a.bind(n)},execNext:{value:l.bind(n)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(n)}});if(arguments.length<3){r=t;t=undefined;n.execMappingMinInputs=0;n.execMappingMaxInputs=100;n.execMappingCallbacks=["finally"];n.execMappingAggregateArg=true;n.execMappingMinArgs=1;n.execMappingMaxArgs=102;n.execMappingSignature="( aggregateArg, [finallyCallback] )"}n.transmitAggregate=true;n.returnAggregate=true;n.defaultAggregate=t;n.do(e);n.iterator(r);return n};s.while=function T(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{waterfallMode:{value:false,enumerable:true},whileAction:{value:undefined,writable:true,enumerable:true},whileActionBefore:{value:true,writable:false,enumerable:true},execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(t)}});t.while(e);return t};s.and=function j(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{elseAction:{value:undefined,writable:true,enumerable:true},castToBoolean:{value:false,writable:true,enumerable:true},useLogicAnd:{value:true},execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:p},execLoopCallback:{value:c},execFinal:{value:h.bind(t)}});t.do(e);return t};s.or=function A(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{elseAction:{value:undefined,writable:true,enumerable:true},castToBoolean:{value:false,writable:true,enumerable:true},useLogicAnd:{value:false},execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:p},execLoopCallback:{value:c},execFinal:{value:h.bind(t)}});t.do(e);return t};s.if=function C(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{elseAction:{value:true,writable:true,enumerable:true},castToBoolean:{value:true,writable:true,enumerable:true},useLogicAnd:{value:true},execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:p},execLoopCallback:{value:c},execFinal:{value:h.bind(t)}});if(e){t.do(e)}return t};s.if.and=s.if;s.if.or=function M(e){var t=Object.create(s.Plan.prototype,o);Object.defineProperties(t,{elseAction:{value:true,writable:true,enumerable:true},castToBoolean:{value:true,writable:true,enumerable:true},useLogicAnd:{value:false},execInit:{value:a.bind(t)},execNext:{value:l.bind(t)},execCallback:{value:p},execLoopCallback:{value:c},execFinal:{value:h.bind(t)}});if(e){t.do(e)}return t};s.callTimeout=function S(e,t,r,n){if(typeof r!=="function"){throw new Error("[async] async.callTimeout(): argument #0 should be a function")}var i=Object.create(s.Plan.prototype,o);Object.defineProperties(i,{returnLastJobOnly:{value:true,enumerable:true},jobsTimeout:{value:e,writable:true,enumerable:true},execInit:{value:a.bind(i)},execNext:{value:l.bind(i)},execCallback:{value:u},execLoopCallback:{value:c},execFinal:{value:f.bind(i)}});var p=[r.bind(n)].concat(Array.prototype.slice.call(arguments,4));i.do([p]);return i.exec(t)};s.Plan.prototype.do=function O(e){if(this.locked){return this}if(e&&typeof e==="object"){this.jobsData=e}else if(typeof e==="function"){this.jobsData=[e];this.returnLastJobOnly=true}else{this.jobsData={}}this.jobsKeys=Object.keys(this.jobsData);return this};s.Plan.prototype.parallel=function E(e){if(this.locked){return this}if(e===undefined||e===true){this.parallelLimit=Infinity}else if(e===false){this.parallelLimit=1}else if(typeof e==="number"){this.parallelLimit=e}return this};s.Plan.prototype.race=function L(e){if(!this.locked){this.raceMode=e||e===undefined?true:false}return this};s.Plan.prototype.waterfall=function P(e){if(!this.locked){this.waterfallMode=e||e===undefined?true:false}return this};s.Plan.prototype.while=function I(e,t){if(this.locked){return this}this.whileAction=e;if(t!==undefined){this.whileActionBefore=t?true:false}return this};s.Plan.prototype.repeat=function N(e){if(this.locked){return this}var t=0;if(typeof e!=="number"){e=parseInt(e)}this.whileActionBefore=true;this.whileAction=function(r,n,i){t++;i(t<=e)};return this};s.Plan.prototype.fatal=function D(e){if(!this.locked){this.errorsAreFatal=e||e===undefined?true:false}return this};s.Plan.prototype.boolean=function F(e){if(!this.locked){this.castToBoolean=e||e===undefined?true:false}return this};s.Plan.prototype.transmitError=function U(e){if(!this.locked){this.waterfallTransmitError=e||e===undefined?true:false}return this};s.Plan.prototype.timeout=function R(e){if(!this.locked){if(typeof e==="number"){this.jobsTimeout=e}else{this.jobsTimeout=undefined}}return this};s.Plan.prototype.retry=function q(e,t,r,n){if(this.locked){return this}if(typeof e==="number"){this.maxRetry=e}if(typeof t==="number"){this.retryTimeout=t}if(typeof r==="number"){this.retryMultiply=r}if(typeof n==="number"){this.retryMaxTimeout=n}return this};s.Plan.prototype.lastJobOnly=function H(e){if(!this.locked){this.returnLastJobOnly=e||e===undefined?true:false}return this};s.Plan.prototype.mapping1to1=function K(e){if(!this.locked){this.returnMapping1to1=e||e===undefined?true:false}return this};s.Plan.prototype.using=function J(e){if(!this.locked){this.jobsUsing=e}return this};s.Plan.prototype.iterator=function W(e){if(this.locked){return this}this.jobsUsing=e;this.usingIsIterator=true;return this};s.Plan.prototype.aggregator=function B(e,t,r){if(!this.locked){return this}this.transmitAggregate=e||e===undefined?true:false;this.returnAggregate=t||t===undefined?true:false;if(arguments.length>2){this.defaultAggregate=r}return this};s.Plan.prototype.usingIterator=function $(e){if(!this.locked){this.usingIsIterator=e||e===undefined?true:false}return this};s.Plan.prototype.nice=function z(e){if(this.locked){return this}if(e===undefined||e===null||e===true){this.asyncEventNice=-1}else if(e===false){this.asyncEventNice=-20}else{this.asyncEventNice=e}return this};s.Plan.prototype.then=function X(e){if(!this.locked){this.thenAction=e}return this};s.Plan.prototype.else=function G(e){if(!this.locked){this.elseAction=e||true}return this};s.Plan.prototype.catch=function Q(e){if(!this.locked){this.catchAction=e||true}return this};s.Plan.prototype.finally=function V(e){if(!this.locked){this.finallyAction=e||true}return this};s.Plan.prototype.clone=function Y(){var e=Object.create(s.Plan.prototype,o);i(null,e,this);e.locked=false;return e};s.Plan.prototype.export=function Z(e){switch(e){case"execFinally":return this.clone().execFinally.bind(this);case"execThenCatch":return this.clone().execThenCatch.bind(this);case"execThenElse":return this.clone().execThenElse.bind(this);case"execThenElseCatch":return this.clone().execThenElseCatch.bind(this);case"execArgs":return this.clone().execArgs.bind(this);case"execKV":return this.clone().execKV.bind(this);default:return this.clone().exec.bind(this)}};s.Plan.prototype.exec=function ee(){var e={inputs:[],callbacks:{}},t=0,r;if(arguments.length<this.execMappingMinArgs){throw new Error("[async] Too few arguments, in this instance, the function signature is: fn"+this.execMappingSignature)}else if(arguments.length>this.execMappingMaxArgs){throw new Error("[async] Too much arguments, in this instance, the function signature is: fn"+this.execMappingSignature)}if(this.execMappingAggregateArg){t++;e.aggregate=arguments[0]}if(this.execMappingMinInputs===this.execMappingMaxInputs){e.inputs=Array.prototype.slice.call(arguments,t,this.execMappingMaxInputs+t);for(r=0;r<this.execMappingCallbacks.length&&e.inputs.length+r<arguments.length;r++){e.callbacks[this.execMappingCallbacks[r]]=arguments[e.inputs.length+t+r]}}else{e.inputs=Array.prototype.slice.call(arguments,t,-this.execMappingCallbacks.length);for(r=0;r<this.execMappingCallbacks.length;r++){e.callbacks[this.execMappingCallbacks[r]]=arguments[e.inputs.length+t+r]}}return this.execInit(e)};s.Plan.prototype.execFinally=function te(e){return this.execInit({inputs:[],callbacks:{"finally":e}})};s.Plan.prototype.execThenCatch=function re(e,t,r){return this.execInit({inputs:[],callbacks:{then:e,"catch":t,"finally":r}})};s.Plan.prototype.execThenElse=function ne(e,t,r){return this.execInit({ inputs:[],callbacks:{then:e,"else":t,"finally":r}})};s.Plan.prototype.execThenElseCatch=function ie(e,t,r,n){return this.execInit({inputs:[],callbacks:{then:e,"else":t,"catch":r,"finally":n}})};s.Plan.prototype.execArgs=function se(){return this.execInit({inputs:arguments,callbacks:{}})};s.Plan.prototype.execMapping=function oe(e){if(this.locked){return this}e=i(null,{minInputs:0,maxInputs:0},e);var t,r,n=5;e.minInputs=parseInt(e.minInputs);e.maxInputs=parseInt(e.maxInputs);if(e.minInputs<e.maxInputs){this.execMappingMinInputs=e.minInputs;this.execMappingMaxInputs=e.maxInputs}else{this.execMappingMinInputs=e.maxInputs;this.execMappingMaxInputs=e.minInputs}this.execMappingCallbacks=Array.isArray(e.callbacks)?e.callbacks:[];this.execMappingInputsName=Array.isArray(e.inputsName)?e.inputsName:[];this.execMappingSignature="( ";if(this.execMappingMinInputs===this.execMappingMaxInputs){this.execMappingMinArgs=this.execMappingMinInputs;this.execMappingMaxArgs=this.execMappingMaxInputs+this.execMappingCallbacks.length;if(e.aggregateArg){this.execMappingAggregateArg=e.aggregateArg;this.execMappingMinArgs++;this.execMappingMaxArgs++;this.execMappingSignature+="aggregateValue"}for(t=0;t<this.execMappingMaxInputs;t++){if(t>0||e.aggregateArg){this.execMappingSignature+=", "}if(t>=n&&typeof this.execMappingInputsName[t]!=="string"){this.execMappingSignature+="... ";break}this.execMappingSignature+=typeof this.execMappingInputsName[t]==="string"?this.execMappingInputsName[t]:"arg#"+(t+1)}for(r=0;r<this.execMappingCallbacks.length;r++){if(t+r>0||e.aggregateArg){this.execMappingSignature+=", "}this.execMappingSignature+="["+this.execMappingCallbacks[r]+"Callback]"}}else{this.execMappingMinArgs=this.execMappingMinInputs+this.execMappingCallbacks.length;this.execMappingMaxArgs=this.execMappingMaxInputs+this.execMappingCallbacks.length;if(e.aggregateArg){this.execMappingAggregateArg=e.aggregateArg;this.execMappingMinArgs++;this.execMappingMaxArgs++;this.execMappingSignature+="aggregateValue"}for(t=0;t<this.execMappingMaxInputs;t++){if(t>0||e.aggregateArg){this.execMappingSignature+=", "}if(t<this.execMappingMinInputs){if(t>=n&&typeof this.execMappingInputsName[t]!=="string"){this.execMappingSignature+="... ";break}this.execMappingSignature+=typeof this.execMappingInputsName[t]==="string"?this.execMappingInputsName[t]:"arg#"+(t+1)}else{if(t>=n&&typeof this.execMappingInputsName[t]!=="string"){this.execMappingSignature+="[...] ";break}this.execMappingSignature+="["+(typeof this.execMappingInputsName[t]==="string"?this.execMappingInputsName[t]:"arg#"+(t+1))+"]"}}for(r=0;r<this.execMappingCallbacks.length;r++){if(t+r>0||e.aggregateArg){this.execMappingSignature+=", "}this.execMappingSignature+=this.execMappingCallbacks[r]+"Callback"}}this.execMappingSignature+=" )";return this};s.Plan.prototype.execKV=function ae(e){if(e.inputs===undefined){e.inputs=[]}else if(!Array.isArray(e.inputs)){e.inputs=[e.inputs]}if(e.callbacks===undefined||typeof e.callbacks!=="object"){e.callbacks={}}if(e.then){e.callbacks.then=e.then}if(e.else){e.callbacks.else=e.else}if(e.catch){e.callbacks.catch=e.catch}if(e.finally){e.callbacks.finally=e.finally}return this.execInit(e)};s.Plan.prototype.execLoop=function le(e){return this.execInit({},e)};s.Plan.prototype.execJob=function ue(e,t,r,n){var o=this,a,l=e.jobsKeys[r];var u=Object.create(s.JobContext.prototype,{execContext:{value:e,enumerable:true},indexOfKey:{value:r,enumerable:true},tryIndex:{value:n,enumerable:true},aborted:{value:false,writable:true,enumerable:true},abortedLoop:{value:false,writable:true,enumerable:true}});Object.defineProperty(u,"callback",{value:this.execCallback.bind(this,u),enumerable:true});Object.defineProperty(u.callback,"jobContext",{value:u,enumerable:true});e.jobsStatus[l].status="pending";e.jobsStatus[l].tried++;if(typeof this.jobsUsing==="function"){if(this.usingIsIterator){if(this.transmitAggregate){if(this.jobsUsing.length<=3){this.jobsUsing.call(u,e.aggregate,t,u.callback)}else if(this.jobsUsing.length<=4){this.jobsUsing.call(u,e.aggregate,t,Array.isArray(e.jobsData)?r:l,u.callback)}else{this.jobsUsing.call(u,e.aggregate,t,Array.isArray(e.jobsData)?r:l,e.jobsData,u.callback)}}else{if(this.jobsUsing.length<=2){this.jobsUsing.call(u,t,u.callback)}else if(this.jobsUsing.length<=3){this.jobsUsing.call(u,t,Array.isArray(e.jobsData)?r:l,u.callback)}else{this.jobsUsing.call(u,t,Array.isArray(e.jobsData)?r:l,e.jobsData,u.callback)}}}else if(Array.isArray(t)){a=t.slice();if(this.transmitAggregate){a.unshift(e.aggregate)}a.push(u.callback);this.jobsUsing.apply(u,a)}else{this.jobsUsing.call(u,t,u.callback)}}else if(typeof t==="function"){if(this.waterfallMode&&r>0){a=e.results[e.jobsKeys[r-1]].slice(this.waterfallTransmitError?0:1);a.push(u.callback);t.apply(u,a)}else if(Array.isArray(this.jobsUsing)||this.execMappingMaxInputs){if(Array.isArray(this.jobsUsing)){a=i(null,[],this.jobsUsing,e.execInputs)}else{a=i(null,[],e.execInputs)}a.push(u.callback);t.apply(u,a)}else{t.call(u,u.callback)}}else if(Array.isArray(t)&&typeof t[0]==="function"){a=t.slice(1);a.push(u.callback);t[0].apply(u,a)}else if(typeof t==="object"&&t instanceof s.Plan){t.exec(u.callback)}else{this.execCallback.call(this,u);return this}if(e.jobsTimeoutTimers[l]!==undefined){clearTimeout(e.jobsTimeoutTimers[l]);e.jobsTimeoutTimers[l]=undefined}if(e.retriesTimers[l]!==undefined){clearTimeout(e.retriesTimers[l]);e.retriesTimers[l]=undefined}if(typeof this.jobsTimeout==="number"&&this.jobsTimeout!==Infinity){e.jobsTimeoutTimers[l]=setTimeout(function(){e.jobsTimeoutTimers[l]=undefined;e.jobsStatus[l].status="timeout";u.emit("timeout");o.execCallback.call(o,u,new s.AsyncError("jobTimeout"))},this.jobsTimeout)}return this};s.Plan.prototype.execAction=function ce(e,t,r){if(typeof t==="function"){t.apply(e,r)}else if(typeof t==="object"&&t instanceof s.Plan){t.exec()}};s.JobContext=function fe(){throw new Error("[async] Cannot create an async JobContext object directly")};s.JobContext.prototype=Object.create(n.prototype);s.JobContext.prototype.constructor=s.JobContext;s.JobContext.prototype.abort=function pe(){this.aborted=true;this.callback.apply(undefined,arguments)};s.JobContext.prototype.abortLoop=function he(){this.aborted=true;this.abortedLoop=true;this.callback.apply(undefined,arguments)};s.ExecContext=function de(){throw new Error("[async] Cannot create an async ExecContext object directly")};s.ExecContext.prototype=Object.create(n.prototype);s.ExecContext.prototype.constructor=s.ExecContext;s.ExecContext.prototype.getJobsStatus=function ge(){var e,t,r=Array.isArray(this.jobsData)?[]:{};for(e=0;e<this.jobsKeys.length;e++){t=this.jobsKeys[e];r[t]=i(null,{job:this.jobsData[t],result:this.results[t]},this.jobsStatus[t])}return r};function a(e,t){var r,n=Array.isArray(this.jobsData);var o=Object.create(s.ExecContext.prototype,{plan:{value:this},aggregate:{value:"aggregate"in e?e.aggregate:this.defaultAggregate,writable:true,enumerable:true},results:{value:n?[]:{},writable:true,enumerable:true},result:{value:undefined,writable:true,enumerable:true},jobsTimeoutTimers:{value:n?[]:{},writable:true},jobsStatus:{value:n?[]:{},writable:true,enumerable:true},retriesTimers:{value:n?[]:{},writable:true},retriesCounter:{value:n?[]:{},writable:true,enumerable:true},tryUserResponseCounter:{value:n?[]:{},writable:true,enumerable:true},tryResponseCounter:{value:n?[]:{},writable:true,enumerable:true},iterator:{value:0,writable:true,enumerable:true},pending:{value:0,writable:true,enumerable:true},resolved:{value:0,writable:true,enumerable:true},ok:{value:0,writable:true,enumerable:true},failed:{value:0,writable:true,enumerable:true},status:{value:undefined,writable:true,enumerable:true},error:{value:undefined,writable:true,enumerable:true},statusTriggerJobsKey:{value:undefined,writable:true,enumerable:true},whileStatus:{value:undefined,writable:true},whileChecked:{value:false,writable:true}});if(!t){Object.defineProperties(o,{root:{value:o,enumerable:true},jobsData:{value:n?this.jobsData.slice(0):i(null,{},this.jobsData),enumerable:true},jobsKeys:{value:this.jobsKeys.slice(0),enumerable:true},execInputs:{value:e.inputs,enumerable:true},execCallbacks:{value:e.callbacks},whileIterator:{value:0,enumerable:true,writable:true}})}else{Object.defineProperties(o,{root:{value:t.root,enumerable:true},jobsData:{value:t.jobsData,enumerable:true},jobsKeys:{value:t.jobsKeys,enumerable:true},execInputs:{value:t.execInputs,enumerable:true},execCallbacks:{value:t.execCallbacks},whileIterator:{value:t.whileIterator+1,enumerable:true,writable:true}})}Object.defineProperties(o,{waiting:{value:o.jobsKeys.length,writable:true,enumerable:true}});for(r=0;r<o.jobsKeys.length;r++){o.jobsStatus[o.jobsKeys[r]]={status:"waiting",errors:[],tried:0}}o.setNice(this.asyncEventNice);if(t===undefined){o.root.on("resolved",this.execFinal.bind(this,o));if(typeof this.whileAction==="function"){o.root.on("while",this.whileAction.bind(this));o.root.on("nextLoop",this.execLoop.bind(this))}else{this.whileAction=undefined;o.whileStatus=false}o.root.on("next",this.execNext.bind(this));if(this.whileAction&&this.whileActionBefore){o.whileIterator=-1;o.root.emit("while",o.error,o.results,this.execLoopCallback.bind(this,o),null);return this}}if(o.jobsKeys.length<=0){o.root.emit("resolved",o.error,o.results);o.root.emit("progress",{resolved:o.resolved,ok:o.ok,failed:o.failed,pending:o.pending,waiting:o.waiting,loop:o.whileIterator},o.error,o.results);o.root.emit("finish",o.error,o.results);return o.root}o.root.emit("next",o);return o.root}function l(e){var t,r,n=e.jobsKeys.length,i,s;i=e.iterator;for(;e.iterator<n&&e.pending<this.parallelLimit;e.iterator++){e.pending++;e.waiting--;t=e.iterator;r=e.jobsKeys[t];e.retriesCounter[r]=0;e.tryResponseCounter[r]=[];e.tryResponseCounter[r][0]=0;e.tryUserResponseCounter[r]=[];e.tryUserResponseCounter[r][0]=0;e.results[r]=undefined;s=e.iterator}for(t=i;t<=s;t++){this.execJob(e,e.jobsData[e.jobsKeys[t]],t,0)}}function u(e,t){var r=e.execContext,n=e.aborted,i=e.abortedLoop,o=e.indexOfKey,a=e.tryIndex;var l=this,u,c,f=r.jobsKeys.length,p=r.jobsKeys[o];var h=false,d=false,g=false,b=false;r.tryResponseCounter[p][a]++;if(!(t instanceof s.AsyncError)){r.tryUserResponseCounter[p][a]++}if(r.jobsTimeoutTimers[p]!==undefined){clearTimeout(r.jobsTimeoutTimers[p]);r.jobsTimeoutTimers[p]=undefined}if(r.retriesTimers[p]!==undefined){clearTimeout(r.retriesTimers[p]);r.retriesTimers[p]=undefined}if(r.tryUserResponseCounter[p][a]>1){r.jobsStatus[p].errors.push(new Error("This job has called its completion callback "+r.tryUserResponseCounter[p][a]+" times"));return}if(!n&&r.results[p]!==undefined){return}if(!n&&t&&this.maxRetry>r.retriesCounter[p]&&r.tryResponseCounter[p][a]<=1){r.jobsStatus[p].errors.push(t);u=this.retryTimeout*Math.pow(this.retryMultiply,r.retriesCounter[p]);if(u>this.retryMaxTimeout){u=this.retryMaxTimeout}r.retriesCounter[p]++;c=r.retriesCounter[p];r.retriesTimers[p]=setTimeout(function(){r.retriesTimers[p]=undefined;r.tryResponseCounter[p][c]=0;r.tryUserResponseCounter[p][c]=0;l.execJob(r,r.jobsData[p],o,c)},u);return}if(!n&&t&&a<r.retriesCounter[p]){return}r.resolved++;r.pending--;r.aggregate=arguments[2];if(n){r.failed++;r.jobsStatus[p].status="aborted"}else if(t){r.failed++;r.jobsStatus[p].errors.push(t);if(t instanceof s.AsyncError&&t.message==="jobTimeout"){r.jobsStatus[p].status="timeout"}else{r.jobsStatus[p].status="failed"}}else{r.ok++;r.jobsStatus[p].status="ok"}if(this.returnMapping1to1){r.results[p]=arguments[2]}else{r.results[p]=Array.prototype.slice.call(arguments,1)}if(r.status===undefined){if(this.raceMode&&!t){r.status="ok";r.statusTriggerJobsKey=p;if(this.whileAction&&!i){b=true}else{d=true}}else if(!this.raceMode&&t&&this.errorsAreFatal){r.status="fail";r.error=t;r.statusTriggerJobsKey=p;if(this.whileAction&&!i){b=true}else{d=true}}else if(n){r.status="aborted";r.statusTriggerJobsKey=p;if(this.whileAction&&!i){b=true}else{d=true}}}if(r.resolved>=f){if(r.status===undefined){if(this.raceMode){r.status="fail"}else{r.status="ok"}r.statusTriggerJobsKey=p;if(this.whileAction){b=true}else{d=g=true}}else{if(!this.whileAction||r.whileChecked&&r.whileStatus!==true){g=true}}}else if(r.status===undefined){if(r.iterator<f){h=true}}else if(r.pending<=0){if(!this.whileAction||r.whileChecked&&r.whileStatus!==true){g=true}}if(d){r.root.emit("resolved",r.error,r.results)}if(h){r.root.emit("next",r)}if(b){r.root.emit("while",r.error,r.results,this.execLoopCallback.bind(this,r),null)}r.root.emit("progress",{resolved:r.resolved,ok:r.ok,failed:r.failed,pending:r.pending,waiting:r.waiting,loop:r.whileIterator},r.error,r.results);if(g){r.root.emit("finish",r.error,r.results)}}function c(e){var t,r;var n=false,i=false,s=false;if(arguments.length<=1){t=undefined;r=false}else if(arguments[1]instanceof Error){e.error=arguments[1];t=arguments[1];r=false}else if(arguments.length<=2){t=arguments[1];r=t?true:false}else{t=arguments[2];r=t?true:false}if(r){e.whileStatus=true;n=true}else{e.whileStatus=false;i=true;if(e.pending<=0){s=true}}if(i){e.root.emit("resolved",e.error,e.results)}if(n){e.root.emit("nextLoop",e)}if(s){e.root.emit("finish",e.error,e.results)}e.whileChecked=true}function f(e,t,r){var n;if(t){if(this.returnAggregate){n=[t,e.aggregate]}else if(this.returnLastJobOnly){n=r[e.statusTriggerJobsKey]}else{n=[t,r]}if(this.catchAction){this.execAction(e,this.catchAction,n)}if(t&&e.execCallbacks.catch){this.execAction(e,e.execCallbacks.catch,n)}}else{if(this.returnAggregate){n=[e.aggregate]}else if(this.returnLastJobOnly){n=r[e.statusTriggerJobsKey].slice(1)}else{n=[r]}if(this.thenAction){this.execAction(e,this.thenAction,n)}if(e.execCallbacks.then){this.execAction(e,e.execCallbacks.then,n)}}if(this.returnAggregate){n=[t,e.aggregate]}else if(this.returnLastJobOnly){n=r[e.statusTriggerJobsKey]}else{n=[t,r]}if(this.finallyAction){this.execAction(e,this.finallyAction,n)}if(e.execCallbacks.finally){this.execAction(e,e.execCallbacks.finally,n)}}function p(e){var t=e.execContext,r=e.indexOfKey,n=e.tryIndex;var i=this,o,a,l,u,c=t.jobsKeys.length,f=t.jobsKeys[r];var p=false,h=false,d=false;if(arguments.length<=1){t.result=undefined;o=false}else if(arguments[1]instanceof Error){t.error=u=arguments[1];t.result=arguments[1];o=false}else if(arguments.length<=2){t.result=arguments[1];o=t.result?true:false}else{t.result=arguments[2];o=t.result?true:false}t.tryResponseCounter[f][n]++;if(!(u instanceof s.AsyncError)){t.tryUserResponseCounter[f][n]++}if(t.jobsTimeoutTimers[f]!==undefined){clearTimeout(t.jobsTimeoutTimers[f]);t.jobsTimeoutTimers[f]=undefined}if(t.retriesTimers[f]!==undefined){clearTimeout(t.retriesTimers[f]);t.retriesTimers[f]=undefined}if(t.results[f]!==undefined){return}if(t.tryUserResponseCounter[f][n]>1){return}if(u&&this.maxRetry>t.retriesCounter[f]&&t.tryResponseCounter[f][n]<=1){a=this.retryTimeout*Math.pow(this.retryMultiply,t.retriesCounter[f]);if(a>this.retryMaxTimeout){a=this.retryMaxTimeout}t.retriesCounter[f]++;l=t.retriesCounter[f];t.retriesTimers[f]=setTimeout(function(){t.retriesTimers[f]=undefined;t.tryResponseCounter[f][l]=0;t.tryUserResponseCounter[f][l]=0;i.execJob(t,t.jobsData[f],r,l)},a);return}if(u&&n<t.retriesCounter[f]){return}t.resolved++;t.pending--;if(u){t.failed++;if(u instanceof s.AsyncError&&u.message==="jobTimeout"){t.jobsStatus[f].status="timeout"}else{t.jobsStatus[f].status="failed"}}else{t.ok++;t.jobsStatus[f].status="ok"}if(this.castToBoolean&&(!(t.result instanceof Error)||!this.catchAction)){t.result=o}t.results[f]=t.result;if(o!==this.useLogicAnd&&t.status===undefined){t.status=!this.useLogicAnd;h=true}if(t.resolved>=c){if(t.status===undefined){t.status=this.useLogicAnd;h=true}d=true}else if(t.status===undefined){if(t.iterator<c){p=true}}else if(t.pending<=0){d=true}if(h){t.root.emit("resolved",t.result)}if(p){t.root.emit("next",t)}t.root.emit("progress",{resolved:t.resolved,pending:t.pending,waiting:t.waiting,loop:t.whileIterator},t.result);if(d){t.root.emit("finish",t.result)}}function h(e,t){if(t instanceof Error){if(this.catchAction){this.execAction(e,this.catchAction,[t])}else if(this.elseAction){this.execAction(e,this.elseAction,[t])}}else if(!e.result&&this.elseAction){this.execAction(e,this.elseAction,[t])}else if(e.result&&this.thenAction){this.execAction(e,this.thenAction,[t])}if(this.finallyAction){this.execAction(e,this.finallyAction,[t])}if(t instanceof Error){if(e.execCallbacks.catch){this.execAction(e,e.execCallbacks.catch,[t])}else if(e.execCallbacks.else){this.execAction(e,e.execCallbacks.else,[t])}}else if(!e.result&&e.execCallbacks.else){this.execAction(e,e.execCallbacks.else,[t])}else if(e.result&&e.execCallbacks.then){this.execAction(e,e.execCallbacks.then,[t])}if(e.execCallbacks.finally){this.execAction(e,e.execCallbacks.finally,[t])}}},{"nextgen-events":38,"tree-kit/lib/extend.js":42}],10:[function(e,t,r){(function(r){"use strict";var n=e("./async.js");var i=false;function s(e,t){if(i){return}i=true;var s=r.listeners("asyncExit");if(!s.length){r.exit(e);return}if(t===undefined){t=1e3}n.parallel(s).using(function(r,n){if(r.length<3){r(e,t);n()}else{r(e,t,n)}}).fatal(false).timeout(t).exec(function(){r.exit(e)})}t.exports=s}).call(this,e("_process"))},{"./async.js":8,_process:14}],11:[function(e,t,r){"use strict";var n={};t.exports=n;n.timeout=function i(e,t,r){var n=function(){var n=r||this,i=false,s=Array.prototype.slice.call(arguments),o=s.pop();var a=function(){if(i){return}i=true;o.apply(n,arguments)};s.push(a);e.apply(n,s);setTimeout(a.bind(undefined,new Error("Timeout")),t)};return n}},{}],12:[function(e,t,r){},{}],13:[function(e,t,r){t.exports=function(e){return!!(e!=null&&(e._isBuffer||e.constructor&&typeof e.constructor.isBuffer==="function"&&e.constructor.isBuffer(e)))}},{}],14:[function(e,t,r){var n=t.exports={};var i=[];var s=false;var o;var a=-1;function l(){if(!s||!o){return}s=false;if(o.length){i=o.concat(i)}else{a=-1}if(i.length){u()}}function u(){if(s){return}var e=setTimeout(l);s=true;var t=i.leng