Files

1 line
38 KiB
JavaScript

!function(a,b){function e(){this._events=new Object}function f(a){a&&(a.delimiter&&(this.delimiter=a.delimiter),a.wildcard&&(this.wildcard=a.wildcard),this.wildcard&&(this.listenerTree=new Object))}function g(a){this._events=new Object,f.call(this,a)}function h(a,b,c,d){if(!c)return[];var e=[],f,g,i,j,k,l,m,n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if(typeof c._listeners=="function")return a&&a.push(c._listeners),[c];for(f=0,g=c._listeners.length;f<g;f++)a&&a.push(c._listeners[f]);return[c]}if(o==="*"||o==="**"||c[o]){if(o==="*"){for(i in c)i!=="_listeners"&&c.hasOwnProperty(i)&&(e=e.concat(h(a,b,c[i],d+1)));return e}if(o==="**"){m=d+1===n||d+2===n&&p==="*",m&&c._listeners&&(e=e.concat(h(a,b,c,n)));for(i in c)i!=="_listeners"&&c.hasOwnProperty(i)&&(i==="*"||i==="**"?(c[i]._listeners&&!m&&(e=e.concat(h(a,b,c[i],n))),e=e.concat(h(a,b,c[i],d))):i===p?e=e.concat(h(a,b,c[i],d+2)):e=e.concat(h(a,b,c[i],d)));return e}e=e.concat(h(a,b,c[o],d+1))}j=c["*"],j&&h(a,b,j,d+1),k=c["**"];if(k)if(d<n){k._listeners&&h(a,b,k,n);for(i in k)i!=="_listeners"&&k.hasOwnProperty(i)&&(i===p?h(a,b,k[i],d+2):i===o?h(a,b,k[i],d+1):(l={},l[i]=k[i],h(a,b,{"**":l},d+1)))}else k._listeners?h(a,b,k,n):k["*"]&&k["*"]._listeners&&h(a,b,k["*"],n);return e}function i(a,b){a=typeof a=="string"?a.split(this.delimiter):a.slice();for(var e=0,f=a.length;e+1<f;e++)if(a[e]==="**"&&a[e+1]==="**")return;var g=this.listenerTree,h=a.shift();while(h){g[h]||(g[h]=new Object),g=g[h];if(a.length===0){if(!g._listeners)g._listeners=b;else if(typeof g._listeners=="function")g._listeners=[g._listeners,b];else if(c(g._listeners)){g._listeners.push(b);if(!g._listeners.warned){var i=d;typeof this._events.maxListeners!="undefined"&&(i=this._events.maxListeners),i>0&&g._listeners.length>i&&(g._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",g._listeners.length),console.trace())}}return!0}h=a.shift()}return!0}var c=Array.isArray?Array.isArray:function(b){return Object.prototype.toString.call(b)==="[object Array]"},d=10;g.prototype.delimiter=".",g.prototype.setMaxListeners=function(a){this._events||e.call(this),this._events.maxListeners=a},g.prototype.event="",g.prototype.once=function(a,b){return this.many(a,1,b),this},g.prototype.many=function(a,b,c){function e(){--b===0&&d.off(a,e),c.apply(this,arguments)}var d=this;if(typeof c!="function")throw new Error("many only accepts instances of Function");return e._origin=c,this.on(a,e),d},g.prototype.emit=function(){this._events||e.call(this);var a=arguments[0];if(a==="newListener"&&!this._events.newListener)return!1;if(this._all){var b=arguments.length,c=new Array(b-1);for(var d=1;d<b;d++)c[d-1]=arguments[d];for(d=0,b=this._all.length;d<b;d++)this.event=a,this._all[d].apply(this,c)}if(a==="error"&&!this._all&&!this._events.error&&(!this.wildcard||!this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var f;if(this.wildcard){f=[];var g=typeof a=="string"?a.split(this.delimiter):a.slice();h.call(this,f,g,this.listenerTree,0)}else f=this._events[a];if(typeof f=="function"){this.event=a;if(arguments.length===1)f.call(this);else if(arguments.length>1)switch(arguments.length){case 2:f.call(this,arguments[1]);break;case 3:f.call(this,arguments[1],arguments[2]);break;default:var b=arguments.length,c=new Array(b-1);for(var d=1;d<b;d++)c[d-1]=arguments[d];f.apply(this,c)}return!0}if(f){var b=arguments.length,c=new Array(b-1);for(var d=1;d<b;d++)c[d-1]=arguments[d];var i=f.slice();for(var d=0,b=i.length;d<b;d++)this.event=a,i[d].apply(this,c);return i.length>0||this._all}return this._all},g.prototype.on=function(a,b){if(typeof a=="function")return this.onAny(a),this;if(typeof b!="function")throw new Error("on only accepts instances of Function");this._events||e.call(this),this.emit("newListener",a,b);if(this.wildcard)return i.call(this,a,b),this;if(!this._events[a])this._events[a]=b;else if(typeof this._events[a]=="function")this._events[a]=[this._events[a],b];else if(c(this._events[a])){this._events[a].push(b);if(!this._events[a].warned){var f=d;typeof this._events.maxListeners!="undefined"&&(f=this._events.maxListeners),f>0&&this._events[a].length>f&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}return this},g.prototype.onAny=function(a){this._all||(this._all=[]);if(typeof a!="function")throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},g.prototype.addListener=g.prototype.on,g.prototype.off=function(a,b){if(typeof b!="function")throw new Error("removeListener only takes instances of Function");var d,e=[];if(this.wildcard){var f=typeof a=="string"?a.split(this.delimiter):a.slice();e=h.call(this,null,f,this.listenerTree,0)}else{if(!this._events[a])return this;d=this._events[a],e.push({_listeners:d})}for(var g=0;g<e.length;g++){var i=e[g];d=i._listeners;if(c(d)){var j=-1;for(var k=0,l=d.length;k<l;k++)if(d[k]===b||d[k].listener&&d[k].listener===b||d[k]._origin&&d[k]._origin===b){j=k;break}if(j<0)return this;this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),d.length===0&&(this.wildcard?delete i._listeners:delete this._events[a])}else if(d===b||d.listener&&d.listener===b||d._origin&&d._origin===b)this.wildcard?delete i._listeners:delete this._events[a]}return this},g.prototype.offAny=function(a){var b=0,c=0,d;if(a&&this._all&&this._all.length>0){d=this._all;for(b=0,c=d.length;b<c;b++)if(a===d[b])return d.splice(b,1),this}else this._all=[];return this},g.prototype.removeListener=g.prototype.off,g.prototype.removeAllListeners=function(a){if(arguments.length===0)return!this._events||e.call(this),this;if(this.wildcard){var b=typeof a=="string"?a.split(this.delimiter):a.slice(),c=h.call(this,null,b,this.listenerTree,0);for(var d=0;d<c.length;d++){var f=c[d];f._listeners=null}}else{if(!this._events[a])return this;this._events[a]=null}return this},g.prototype.listeners=function(a){if(this.wildcard){var b=[],d=typeof a=="string"?a.split(this.delimiter):a.slice();return h.call(this,b,d,this.listenerTree,0),b}return this._events||e.call(this),this._events[a]||(this._events[a]=[]),c(this._events[a])||(this._events[a]=[this._events[a]]),this._events[a]},g.prototype.listenersAny=function(){return this._all?this._all:[]},typeof define=="function"&&define.amd?define("eventemitter2",[],function(){return g}):a.EventEmitter2=g}(typeof process!="undefined"&&typeof process.title!="undefined"&&typeof exports!="undefined"?exports:window),define("react/eventemitter",["eventemitter2"],function(a){var b=a?a.EventEmitter2?a.EventEmitter2:a:EventEmitter2;return b}),define("util",["require","exports","module"],function(a,b,c){function f(a,b,c,d){var e={showHidden:b,seen:[],stylize:d?i:j};return k(e,a,typeof c=="undefined"?2:c)}function i(a,b){var c=h[b];return c?"["+g[c][0]+"m"+a+"["+g[c][1]+"m":a}function j(a,b){return a}function k(a,c,d){if(c&&typeof c.inspect=="function"&&c.inspect!==b.inspect&&(!c.constructor||c.constructor.prototype!==c))return c.inspect(d);var e=l(a,c);if(e)return e;var f=Object.keys(c),g=a.showHidden?Object.getOwnPropertyNames(c):f;if(g.length===0){if(typeof c=="function"){var h=c.name?": "+c.name:"";return a.stylize("[Function"+h+"]","special")}if(r(c))return a.stylize(RegExp.prototype.toString.call(c),"regexp");if(s(c))return a.stylize(Date.prototype.toString.call(c),"date");if(t(c))return m(c)}var i="",j=!1,k=["{","}"];q(c)&&(j=!0,k=["[","]"]);if(typeof c=="function"){var u=c.name?": "+c.name:"";i=" [Function"+u+"]"}r(c)&&(i=" "+RegExp.prototype.toString.call(c)),s(c)&&(i=" "+Date.prototype.toUTCString.call(c)),t(c)&&(i=" "+m(c));if(g.length!==0||!!j&&c.length!==0){if(d<0)return r(c)?a.stylize(RegExp.prototype.toString.call(c),"regexp"):a.stylize("[Object]","special");a.seen.push(c);var v;return j?v=n(a,c,d,f,g):v=g.map(function(b){return o(a,c,d,f,b,j)}),a.seen.pop(),p(v,i,k)}return k[0]+i+k[1]}function l(a,b){switch(typeof b){case"undefined":return a.stylize("undefined","undefined");case"string":var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string");case"number":return a.stylize(""+b,"number");case"boolean":return a.stylize(""+b,"boolean")}if(b===null)return a.stylize("null","null")}function m(a){return"["+Error.prototype.toString.call(a)+"]"}function n(a,b,c,d,e){var f=[];for(var g=0,h=b.length;g<h;++g)Object.prototype.hasOwnProperty.call(b,String(g))?f.push(o(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(o(a,b,c,d,e,!0))}),f}function o(a,b,c,d,e,f){var g,h,i;i=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},i.get?i.set?h=a.stylize("[Getter/Setter]","special"):h=a.stylize("[Getter]","special"):i.set&&(h=a.stylize("[Setter]","special")),d.indexOf(e)<0&&(g="["+e+"]"),h||(a.seen.indexOf(i.value)<0?(c===null?h=k(a,i.value,null):h=k(a,i.value,c-1),h.indexOf("\n")>-1&&(f?h=h.split("\n").map(function(a){return" "+a}).join("\n").substr(2):h="\n"+h.split("\n").map(function(a){return" "+a}).join("\n"))):h=a.stylize("[Circular]","special"));if(typeof g=="undefined"){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function p(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.length+1},0);return e>60?c[0]+(b===""?"":b+"\n ")+" "+a.join(",\n ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function q(a){return Array.isArray(a)||typeof a=="object"&&u(a)==="[object Array]"}function r(a){return typeof a=="object"&&u(a)==="[object RegExp]"}function s(a){return typeof a=="object"&&u(a)==="[object Date]"}function t(a){return typeof a=="object"&&u(a)==="[object Error]"}function u(a){return Object.prototype.toString.call(a)}function v(a){return a<10?"0"+a.toString(10):a.toString(10)}function x(){var a=new Date,b=[v(a.getHours()),v(a.getMinutes()),v(a.getSeconds())].join(":");return[a.getDate(),w[a.getMonth()],b].join(" ")}var d=/%[sdj%]/g;b.format=function(a){if(typeof a!="string"){var b=[];for(var c=0;c<arguments.length;c++)b.push(f(arguments[c]));return b.join(" ")}var e=1,g=arguments,h=g.length,i=String(a).replace(d,function(a){if(a==="%%")return"%";if(e>=h)return a;switch(a){case"%s":return String(g[e++]);case"%d":return Number(g[e++]);case"%j":return JSON.stringify(g[e++]);default:return a}});for(var j=g[e];e<h;j=g[++e])j===null||typeof j!="object"?i+=" "+j:i+=" "+f(j);return i},b.print=function(){for(var a=0,b=arguments.length;a<b;++a)process.stdout.write(String(arguments[a]))},b.puts=function(){for(var a=0,b=arguments.length;a<b;++a)process.stdout.write(arguments[a]+"\n")},b.debug=function(a){process.stderr.write("DEBUG: "+a+"\n")};var e=b.error=function(a){for(var b=0,c=arguments.length;b<c;++b)process.stderr.write(arguments[b]+"\n")};b.inspect=f;var g={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},h={special:"cyan",number:"yellow","boolean":"yellow","undefined":"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};b.isArray=q,b.isRegExp=r,b.isDate=s,b.isError=t;var w=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];b.log=function(a){b.puts(x()+" - "+a.toString())},b.pump=function(a,b,c){function e(a,b,e){c&&!d&&(c(a,b,e),d=!0)}var d=!1;a.addListener("data",function(c){b.write(c)===!1&&a.pause()}),b.addListener("drain",function(){a.resume()}),a.addListener("end",function(){b.end()}),a.addListener("close",function(){e()}),a.addListener("error",function(a){b.end(),e(a)}),b.addListener("error",function(b){a.destroy(),e(b)})},b.inherits=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})},b._extend=function(a,b){if(!b)return a;var c=Object.keys(b),d=c.length;while(d--)a[c[d]]=b[c[d]];return a}}),define("react/error",["util"],function(a){function b(a){if(!Error.stackTraceLimit||Error.stackTraceLimit<a)Error.stackTraceLimit=a}function c(a){return a?a&&a.name?a.name:a:"undefined"}function d(b){if(!b.meta)return;var d=b.meta.vcon,e=b.meta.task,f="\n\n";return e&&e.f&&e.a&&(f+="Error occurs in Task function: "+c(e.f)+"("+e.a.join(",")+")\n\n"),d&&(f+="Variable Context: \n",f+=a.inspect(d),f+="\n\n"),e&&e.f&&(f+="Task Source:\n\n",f+=e.f.toString(),f+="\n\n"),f}function e(a,b){typeof a=="string"&&(a=new Error(a));var c=a.toString();return a.meta=b,a.toString=function(){return c+d(a)},a}return{ensureStackTraceLimitSet:b,augmentError:e}}),function(a,b){typeof exports=="object"?module.exports=b():typeof define=="function"&&define.amd?define("ensure-array",[],b):a.ensureArray=b()}(this,function(){function a(a,b,c){if(arguments.length===0)return[];if(arguments.length===1){if(a===undefined||a===null)return[];if(Array.isArray(a))return a}return Array.prototype.slice.call(arguments)}return a}),define("react/status",[],function(){var a={READY:"ready",RUNNING:"running",ERRORED:"errored",COMPLETE:"complete"};return a}),define("react/vcon",[],function(){function b(){}var a=":LAST_RESULTS";return b.prototype.getLastResults=function(){return this.getVar(a)},b.prototype.setLastResults=function(b){this.setVar(a,b)},b.prototype.getVar=function(a){var b=this.values;if(typeof a!="string")return a;a=a.trim();if(a==="true")return!0;if(a==="false")return!1;if(a==="null")return null;if(/^-?[0-9]+$/.test(a))return parseInt(a,10);if(/^-?[0-9.]+$/.test(a))return parseFloat(a);var c=/^("|')([^\1]*)\1$/.exec(a);if(c)return c[2];var d=a.split(".");return d.reduce(function(a,b){return a===undefined||a===null?undefined:a[b]},b)},b.prototype.saveResults=function(a,b){var c=this;a.forEach(function(a,d){c.setVar(a,b[d]!==undefined?b[d]:null)}),this.setLastResults(b)},b.prototype.setVar=function(a,b){if(!a)return;var c=this.values,d=a.split("."),e=d.pop(),f=d.reduce(function(a,b){var c=a[b];if(c===undefined||c===null)c=a[b]={};return c},c);f[e]=b},b.create=function(a,c,d,e){var f={};e&&(f["this"]=e),d&&Object.keys(d).forEach(function(a){f[a]=d[a]});var g=new b;return g.values=a.reduce(function(a,b,d){var e=c[d];return e&&(a[e]=b!==undefined?b:null),a},f),g},b}),define("react/event-manager",["./eventemitter"],function(a){function e(){}var b={wildcard:!0,delimiter:".",maxListeners:30},c=/^ast.defined$/,d={AST_DEFINED:"ast.defined",FLOW_BEGIN:"flow.begin",TASK_BEGIN:"task.begin",TASK_COMPLETE:"task.complete",TASK_ERRORED:"task.errored",FLOW_COMPLETE:"flow.complete",FLOW_ERRORED:"flow.errored",EXEC_FLOW_START:"exec.flow.start",EXEC_INPUT_PREPROCESS:"exec.input.preprocess",EXEC_TASKS_PRECREATE:"exec.tasks.precreate",EXEC_OUTTASK_CREATE:"exec.outTask.create",EXEC_TASK_START:"exec.task.start",EXEC_TASK_COMPLETE:"exec.task.complete",EXEC_TASK_ERRORED:"exec.task.errored",EXEC_FLOW_COMPLETE:"exec.flow.complete",EXEC_FLOW_ERRORED:"exec.flow.errored"};return e.create=function(){return new e},e.TYPES=d,e.prototype.TYPES=d,e.prototype.isEnabled=function(){return!!(this.emitter||this.parent&&this.parent.isEnabled())},e.prototype.on=function(c,d){this.emitter||(this.emitter=new a(b)),c==="*"?this.emitter.onAny(d):this.emitter.on(c,d)},e.prototype.emit=function(a,b,d,e){if(a===undefined)throw new Error("event is undefined");this.emitter&&this.emitter.emit.apply(this.emitter,arguments),this.parent&&this.parent.isEnabled()&&this.parent.emit.apply(this.parent,arguments),c.test(a)&&typeof process!="undefined"&&process.emit&&process.emit.apply(process,arguments)},e.prototype.removeListener=function(a,b){this.emitter&&this.emitter.removeListener.apply(this.emitter,arguments)},e.global=e.create(),e}),define("react/base-task",["ensure-array","./status","./event-manager"],function(a,b,c){function d(){}function e(a){return a.indexOf(".")!==-1}return d.prototype.getOutParams=function(){return a(this.out)},d.prototype.isComplete=function(){return this.status===b.COMPLETE},d.prototype.start=function(a){this.args=a,this.env.currentTask=this,this.env.flowEmitter.emit(c.TYPES.EXEC_TASK_START,this)},d.prototype.complete=function(a){this.status=b.COMPLETE,this.results=a,this.env.currentTask=this,this.env.flowEmitter.emit(c.TYPES.EXEC_TASK_COMPLETE,this)},d.prototype.functionExists=function(a){var b=this.f;if(!b)return!1;if(b instanceof Function)return!0;if(typeof b=="string"){var c=a.getVar(b);if(c&&c instanceof Function)return!0}return!1},d.prototype.areAllDepArgsDefined=function(a){return this.a.every(function(b){return a.getVar(b)!==undefined})},d.prototype.depTasksAreDone=function(a){return!this.after||!this.after.length||this.after.every(function(b){return a[b].isComplete()})},d.prototype.parentExists=function(a,b){if(!e(a))return!0;var c=a.split(".");c.pop();var d=c.reduce(function(a,b){return a===undefined||a===null?undefined:a[b]},b.values);return d!==undefined&&d!==null},d.prototype.outParentsExist=function(a){var b=this;return this.getOutParams().every(function(c){return c===null?!0:b.parentExists(c,a)})},d.prototype.isReady=function(a,b){return!this.status&&this.functionExists(a)&&this.areAllDepArgsDefined(a)&&this.depTasksAreDone(b)&&(!this.outParentsExist||this.outParentsExist(a))},d.prototype.isMethodCall=function(){return typeof this.f=="string"&&/^.*\..*$/.test(this.f)},d.prototype.getMethodObj=function(a){var b=this.f;if(!b)return undefined;var c=b.split(".");c.pop();if(!c.length)return undefined;var d=c.reduce(function(a,b){return a===undefined||a===null?undefined:a[b]},a.values);return d},d}),define("react/input-parser",["./event-manager"],function(a){function d(a){return a&&a.reactExecOptions}function e(a){return d(a)}function f(a){return!d(a)}function g(a,b){return Object.keys(b).forEach(function(c){a[c]=b[c]}),a}function h(a,b,d){var e={};return e.args=b.map(function(b){return a.shift()}),d===c.CALLBACK&&a.length&&(e.cb=a.shift()),e.extra=a,e}function i(c,d){var i={},j=c.filter(e);j.unshift(b),i.options=j.reduce(g,{});var k=c.filter(f),l=h(k,d.inParams,i.options.outputStyle);return i.args=l.args,i.cb=l.cb,l.outputStyle&&(i.options.outputStyle=l.outputStyle),l.extra&&(i.extraArgs=l.extra),a.global.emit(a.TYPES.EXEC_INPUT_PREPROCESS,i),i}var b={reactExecOptions:!0,outputStyle:"cb"},c={CALLBACK:"cb",NONE:"none"};return i.defaultExecOptions=b,i}),define("react/id",[],function(){function b(){return a+=1,a===Number.MAX_VALUE&&(a=0),a}var a=0;return{createUniqueId:b}}),define("react/sprintf",["util"],function(a){var b=a.format;return b}),define("react/cb-task",["util","./sprintf","./base-task"],function(a,b,c){function d(c,d){return b("%s - %s",c,a.inspect(d))}function i(a){var b=this;Object.keys(a).forEach(function(c){b[c]=a[c]})}var e="cbTask requires f, a, out",f="cbTask requires f to be a function or string",g="cbTask requires a to be an array of string param names",h="cbTask requires out to be an array of string param names";return i.prototype=new c,i.prototype.constructor=i,i.validate=function(a){var b=[];if(!a.f||!a.a||!a.out)b.push(d(e,a));else{var c=typeof a.f;a.f instanceof Function||c==="string"||b.push(d(f,a)),(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(d(g,a)),(!Array.isArray(a.out)||!a.out.every(function(a){return typeof a=="string"}))&&b.push(d(h,a))}return b},i.prototype.prepare=function(b,c,d){var e=this;this.cbFun=function(a,f,g,h){var i=Array.prototype.slice.call(arguments,1);if(a){b(e,a);return}c.saveResults(e.out,i),e.complete(i),d()}},i.prototype.exec=function(b,c,d){try{var e=this.a.map(function(a){return b.getVar(a)});this.start(e),e.push(this.cbFun);var f=this.f,g=b.getVar("this");this.isMethodCall()?(f=b.getVar(this.f),g=this.getMethodObj(b)):typeof f=="string"&&(f=b.getVar(f)),f.apply(g,e)}catch(h){c(this,h)}},i}),define("react/promise-task",["util","./sprintf","./base-task"],function(a,b,c){function d(c,d){return b("%s - %s",c,a.inspect(d))}function i(a){var b=this;Object.keys(a).forEach(function(c){b[c]=a[c]})}var e="promiseTask requires f, a, out",f="promiseTask requires f to be a function or string",g="promiseTask requires a to be an array of string param names",h="promiseTask requires out to be an array[1] of string param names";return i.prototype=new c,i.prototype.constructor=i,i.validate=function(a){var b=[];if(!a.f||!a.a||!a.out)b.push(d(e,a));else{var c=typeof a.f;a.f instanceof Function||c==="string"||b.push(d(f,a)),(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(d(g,a)),Array.isArray(a.out)&&a.out.length<=1&&a.out.every(function(a){return typeof a=="string"})||b.push(d(h,a))}return b},i.prototype.prepare=function(b,c,d){var e=this;this.nextFn=function(a){var b=Array.prototype.slice.call(arguments);c.saveResults(e.out,b),e.complete(b),d()},this.failFn=function(a){b(e,a)}},i.prototype.exec=function(b,c,d){try{var e=this.a.map(function(a){return b.getVar(a)});this.start(e);var f=this.f,g=b.getVar("this");this.isMethodCall()?(f=b.getVar(this.f),g=this.getMethodObj(b)):typeof f=="string"&&(f=b.getVar(f));var h=f.apply(g,e);h&&typeof h.then=="function"?h.then(this.nextFn,this.failFn):this.nextFn(h)}catch(i){c(this,i)}},i}),define("react/ret-task",["util","./sprintf","./base-task"],function(a,b,c){function d(c,d){return b("%s - %s",c,a.inspect(d))}function i(a){var b=this;Object.keys(a).forEach(function(c){b[c]=a[c]})}var e="retTask requires f, a, out",f="retTask requires f to be a function or string",g="retTask requires a to be an array of string param names",h="retTask requires out to be an array with single string param name or []";return i.prototype=new c,i.prototype.constructor=i,i.validate=function(a){var b=[];if(!a.f||!a.a||!a.out)b.push(d(e,a));else{var c=typeof a.f;a.f instanceof Function||c==="string"||b.push(d(f,a)),(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(d(g,a)),(!Array.isArray(a.out)||!(a.out.length===0||a.out.length===1&&typeof (a.out[0]==="string")))&&b.push(d(h,a))}return b},i.prototype.exec=function(b,c,d){try{var e=this.a.map(function(a){return b.getVar(a)});this.start(e);var f=this.f,g=b.getVar("this");this.isMethodCall()?(f=b.getVar(this.f),g=this.getMethodObj(b)):typeof f=="string"&&(f=b.getVar(f));var h=[f.apply(g,e)];b.saveResults(this.out,h),this.complete(h),d()}catch(i){c(this,i)}},i}),define("react/when-task",["util","./sprintf","./base-task"],function(a,b,c){function d(c,d){return b("%s - %s",c,a.inspect(d))}function h(a){var b=this;Object.keys(a).forEach(function(c){b[c]=a[c]})}var e="whenTask requires a, out",f="whenTask requires a to be an array[1] of string param names",g="whenTask requires out to be an array[1] of string param names";return h.prototype=new c,h.prototype.constructor=h,h.prototype.f=function(){},h.validate=function(a){var b=[];return!a.a||!a.out?b.push(d(e,a)):((!Array.isArray(a.a)||a.a.length!==1||!a.a.every(function(a){return typeof a=="string"}))&&b.push(d(f,a)),Array.isArray(a.out)&&a.out.length<=1&&a.out.every(function(a){return typeof a=="string"})||b.push(d(g,a))),b},h.prototype.prepare=function(b,c,d){var e=this;this.nextFn=function(a){var b=Array.prototype.slice.call(arguments);c.saveResults(e.out,b),e.complete(b),d()},this.failFn=function(a){b(e,a)}},h.prototype.exec=function(b,c,d){try{var e=this.a.map(function(a){return b.getVar(a)});this.start(e);var f=e[0];f&&typeof f.then=="function"?f.then(this.nextFn,this.failFn):this.nextFn(f)}catch(g){c(this,g)}},h}),define("react/finalcb-task",["./sprintf","util","./status","./event-manager"],function(a,b,c,d){function f(a){var b=a.taskDef;if(typeof a.cbFunc!="function")throw new Error("callback is not a function");var c=this;for(var d in b)c[d]=b[d];this.f=a.cbFunc,this.tasks=a.tasks,this.vCon=a.vCon,this.retValue=a.retValue,this.execOptions=a.execOptions,this.env=a.env}function g(c,d){return a("%s - %s",c,b.inspect(d))}var e="ast.outTask.a should be an array of string param names";return f.validate=function(a){var b=[];return(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(g(e,a)),b},f.prototype.isReady=function(){return this.tasks.every(function(a){return a.status===c.COMPLETE})},f.prototype.exec=function(a){if(!this.f)return;if(a)this.env.error=a,this.env.flowEmitter.emit(d.TYPES.EXEC_FLOW_ERRORED,this.env),this.f.call(null,a);else{var b=this.vCon,c=this.a.map(function(a){return b.getVar(a)});c.unshift(null),this.env.results=c,this.env.flowEmitter.emit(d.TYPES.EXEC_FLOW_COMPLETE,this.env),this.f.apply(null,c)}this.f=null},f}),define("react/finalcb-first-task",["./sprintf","util","./status","./vcon","./event-manager"],function(a,b,c,d,e){function g(a){var b=a.taskDef;if(typeof a.cbFunc!="function")throw new Error("callback is not a function");var c=this;for(var d in b)c[d]=b[d];this.f=a.cbFunc,this.tasks=a.tasks,this.vCon=a.vCon,this.retValue=a.retValue,this.env=a.env}function h(c,d){return a("%s - %s",c,b.inspect(d))}var f="ast.outTask.a should be an array of string param names";return g.validate=function(a){var b=[];return(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(h(f,a)),b},g.prototype.isReady=function(){var a=this.vCon.getLastResults();return a?a.some(function(a){return a!==undefined&&a!==null}):!1},g.prototype.exec=function(a){if(!this.f)return;if(a)this.env.error=a,this.env.flowEmitter.emit(e.TYPES.EXEC_FLOW_ERRORED,this.env),this.f.call(null,a);else{var b=this.vCon,c=this.a.map(function(a){return b.getVar(a)});c.unshift(null),this.env.results=c,this.env.flowEmitter.emit(e.TYPES.EXEC_FLOW_COMPLETE,this.env),this.f.apply(null,c)}this.f=null},g}),define("react/task",["util","./sprintf","ensure-array","./cb-task","./promise-task","./ret-task","./when-task","./finalcb-task","./finalcb-first-task","./status","./error","./vcon","./event-manager"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){function p(){return Object.keys(n)}function r(){return Object.keys(q)}function w(c,d){return b("%s - %s",c,a.inspect(d))}function x(a){return a.type?a:(a.type="cb",a)}function y(a){a.type||(a.type=Object.keys(q)[0])}function z(a){if(!a.after)return;var b=c(a.after);b=b.map(function(a){return typeof a=="function"?a.name:a}),a.after=b}function A(a){if(!a||typeof a!="object")return[w(t,a)];x(a),z(a);var b=[];return b=b.concat(B(a)),b=b.concat(C(a)),b}function B(a){var b=[];return Object.keys(n).some(function(b){return a.type===b})||b.push(w(v,a)),b}function C(a){var b=[],c=n[a.type];return c&&(b=b.concat(c.validate(a))),b}function D(a){var b=[];y(a);var c=q[a.type];return b=b.concat(c.validate(a)),b}function E(a,c,d){function f(){}var e=[],g=a.map(function(a){return f}),h=l.create(g,a,d),i=c.map(H),j=i.filter(function(a){return a.type!=="when"});return j.forEach(function(a,c){if(!a.functionExists(h))if(!a.isMethodCall())e.push(b(s,a.f,c));else{var d=a.getMethodObj(h);d&&d!==f&&e.push(b(s,a.f,c))}}),e}function F(a){return typeof a=="function"?a.name:a?a:""}function G(a){var c=a.reduce(function(a,b){return b.name&&(a[b.name]=b),a},{});return a.forEach(function(a,d){if(!a.name){var e=F(a.f);e||(e=b(o,d));if(!e||c[e])e=b("%s_%s",e,d);a.name=e,c[e]=a}}),c}function H(a){var b=n[a.type];return new b(a)}function I(a,b,c,d,e,f){y(a);var g={taskDef:a,cbFunc:b,tasks:c,vCon:d,execOptions:e,env:f,TaskConstructor:q[a.type]};m.global.emit(m.TYPES.EXEC_OUTTASK_CREATE,g);var h=g.TaskConstructor;return new h(g)}function J(a,b){return function(d,e){d.status=j.ERRORED,d.error=e,b.env.currentTask=d,b.env.flowEmitter.emit(m.TYPES.EXEC_TASK_ERRORED,d);var f=k.augmentError(e,{task:d,vcon:a});b.exec(f)}}function K(a,b,c){return b.filter(function(b){return b.isReady(a,c)})}function L(a,b,c,d){a.forEach(function(a){a.status=j.READY}),a.forEach(function(a){a.exec(b,c,d)})}function M(a,c,d,e){var f=c.filter(function(a){return a.status===j.RUNNING||a.status===j.READY});if(!f.length){var g=c.filter(function(a){return!a.status}),h=g.map(function(a){return a.name}),i=b(u,h.join(", ")),k={env:e};d(k,new Error(i))}}function N(a,b,c,d,e,f){var g=K(a,b,c);g.length||M(a,b,d,f),L(g,a,d,e)}function O(a){return G(a),a.forEach(function(a,b,c){b!==0&&(a.after=[c[b-1].name])}),a}var n={cb:d,ret:f,promise:e,when:g},o="task_%s",q={finalcb:h,finalcbFirst:i},s="function: %s not found in locals or input params - task[%s]",t="task must be an object",u="no tasks running, flow will not complete, remaining tasks: %s",v="task.type should match one of "+Object.keys(n).join(", ");return{serializeTasks:O,TASK_TYPES:n,taskTypeKeys:p,OUT_TASK_TYPES:q,outTaskTypeKeys:r,setMissingType:x,validate:A,validateOutTask:D,validateLocalFunctions:E,nameTasks:G,create:H,createOutTask:I,createErrorHandler:J,findReadyAndExec:N}}),define("react/validate",["util","./sprintf","ensure-array","./task"],function(a,b,c,d){function m(c,d){return b("%s - %s",c,a.inspect(d))}function n(a){return l.test(a)}function o(a){if(!a||!a.inParams||!a.tasks||!a.outTask)return[e];var b=[];return b=b.concat(p(a.inParams)),b=b.concat(q(a.tasks)),b=b.concat(r(a.tasks)),b=b.concat(d.validateOutTask(a.outTask)),b=b.concat(s(a.locals)),b.length===0&&(a.outTask.type!=="finalcbFirst"&&(b=b.concat(u(a.tasks))),b=b.concat(d.validateLocalFunctions(a.inParams,a.tasks,a.locals)),b=b.concat(v(a))),b}function p(a){return!Array.isArray(a)||!a.every(function(a){return typeof a=="string"})?[f]:[]}function q(a){if(!Array.isArray(a))return[g];var b=[];return a.forEach(function(a){b=b.concat(d.validate(a))}),b}function r(a){if(!Array.isArray(a))return[];var c=[],d=a.filter(function(a){return a.name}),e=d.map(function(a){return a.name});return e.reduce(function(a,d){return a[d]?c.push(b("%s %s",h,d)):a[d]=!0,a},{}),c}function s(a){var b=[];return a===null&&b.push(i),b}function t(a){return c(a.out)}function u(a){var c=[];return a.reduce(function(a,d){return t(d).forEach(function(d){a[d]!==undefined?c.push(b("%s: %s",j,d)):a[d]=!0}),a},{}),c}function v(a){var c=[],d={};return a.locals&&(d=Object.keys(a.locals).reduce(function(a,b){return a[b]=!0,a},d)),a.inParams.reduce(function(a,b){return a[b]=!0,a},d),a.tasks.reduce(function(a,b){return b.out.reduce(function(a,b){return a[b]=!0,a},a)},d),a.tasks.reduce(function(a,c){return c.a.reduce(function(a,c){return!n(c)&&!d[c]&&a.push(b(k,c)),a},a)},c),a.outTask.a.reduce(function(a,c){return!n(c)&&!d[c]&&a.push(b(k,c)),a},c),c}var e="ast must be an object with inParams, tasks, and outTask",f="ast.inParams must be an array of strings",g="ast.tasks must be an array of tasks",h="ast.tasks that specify name need to be unique, duplicate:",i="ast.locals should not be null",j="multiple tasks output the same param, must be unique. param",k="missing or mispelled variable referenced in flow definition: %s",l=/^(true|false|this|null|\-?[0-9\.]+)$|'|"|\./i;return o}),define("react/core",["./eventemitter","./error","./validate","./task","./status","./vcon","./event-manager","./input-parser","./id","./sprintf"],function(a,b,c,d,e,f,g,h,i,j){function m(a){return Object.keys(k).reduce(function(a,b){return a[b]||(a[b]=k[b]),a},a)}function n(){return j("flow_%s",i.createUniqueId())}function o(){function j(b){Object.keys(b).forEach(function(a){e[a]=b[a]});var f=c(e);return f.length||(e.name||(e.name=n()),d.nameTasks(e.tasks)),Object.freeze&&(Object.keys(b).forEach(function(a){typeof b[a]=="object"&&Object.freeze(b[a])}),Object.freeze(b)),a.emit(g.TYPES.AST_DEFINED,e),f}function o(b,c,j,k){function v(){if(!t.f)return;if(t.isReady())return t.exec();d.findReadyAndExec(q,r,s,u,v,o)}var n=Array.prototype.slice.call(arguments),o={execId:i.createUniqueId(),args:n,ast:e,flowEmitter:a};o.name=e.name||o.execId,a.emit(g.TYPES.EXEC_FLOW_START,o);var p=h(n,e),q=f.create(p.args,e.inParams,e.locals,this);o.parsedInput=p,o.options=m(p.options),o.vCon=q,o.taskDefs=e.tasks.slice(),o.outTaskDef=Object.create(e.outTask),l.emit(g.TYPES.EXEC_TASKS_PRECREATE,o);var r=o.taskDefs.map(d.create),s=d.nameTasks(r),t=d.createOutTask(o.outTaskDef,p.cb,r,q,o.options,o),u=d.createErrorHandler(q,t);return r.forEach(function(b){b.id=i.createUniqueId(),b.env=o,b.prepare&&b.prepare(u,q,v,a)}),v(),t.retValue}if(arguments.length)throw new Error("react() takes no args, check API");b.ensureStackTraceLimitSet(k.stackTraceLimitMin);var a=g.create();a.parent=l;var e={name:undefined,inParams:[],tasks:[],outTask:{},locals:{}},p=o;return p.ast=e,p.setAndValidateAST=j,p.events=a,p}var k={stackTraceLimitMin:30},l=g.global;return o.options=k,o.events=l,o}),define("react/parse",["./sprintf"],function(a){function b(a){return a?a.split(",").map(function(a){return a.trim()}).filter(function(a){return a}):[]}function c(a,b){if(typeof a!="string")return a;var c=b.regex?b.regex.exec(a):a.split(b.splitStr);return c?b.fn(c,a):a}function d(b,d,e){var f=d.reduce(c,b);if(typeof f!="string")return f;throw new Error(a(e,b))}return{splitTrimFilterArgs:b,parseStr:d}}),define("react/dsl",["./sprintf","./core","./parse","./task"],function(a,b,c,d){function m(a){return a.length&&a[a.length-1].match(k)&&a.pop(),a}function n(a){return a.length&&a[0].match(l)&&a.shift(),a}function p(a){var b=c.parseStr(a,[o],f);return b.inDef=m(b.inDef),b}function q(b){var c=[],d,e,f;while(b.length>=2){e={},d=b.shift(),f=p(b.shift()),typeof b[0]=="object"&&(e=b.shift()),e.f=d,e.a=f.inDef;var g=f.type;e.out=f.outDef,e.type=g,c.push(e)}if(b.length)throw new Error(a(i,b[0]));return c}function r(a){var b=a.shift()||"",c=a.length&&typeof a[0]=="object"?a.shift():{},d=a,e={inOutParamStr:b,taskDefArr:d,options:c};return e}function s(c,d,f,g){var h=b();if(c&&j.test(c))throw new Error(a(e,c));var i=r(Array.prototype.slice.call(arguments,1)),k=p(i.inOutParamStr),l={name:c,inParams:k.inDef,tasks:q(i.taskDefArr),outTask:{a:k.outDef}};i.options&&Object.keys(i.options).forEach(function(a){l[a]=i.options[a]});var m=h.setAndValidateAST(l);if(m.length){var n=m.join("\n");throw new Error(n)}return h}function t(a,c,e,f){var g=b(),h=r(Array.prototype.slice.call(arguments,1)),i=p(h.inOutParamStr),j=d.serializeTasks(q(h.taskDefArr)),k={name:a,inParams:i.inDef,tasks:j,outTask:{type:"finalcbFirst",a:i.outDef}};h.options&&Object.keys(h.options).forEach(function(a){k[a]=h.options[a]});var l=g.setAndValidateAST(k);if(l.length){var m=l.join("\n");throw new Error(m)}return g}var e="first flow parameter should be the flow name, but found in/out def: %s",f='params in wrong format, wanted "foo, bar, cb -> err, baz" - found: %s',g='callback specified, but first out param was not "err", use for clarity. Found in/out def: %s',h="found err param, but cb/callback is not specified, is this cb-style async or sync function? Found in/out def: %s",i="extra unmatched task arg: %s",j=/\->/,k=/^cb|callback$/i,l=/^err$/i,o={splitStr:"->",fn:function(b,d){var e=c.splitTrimFilterArgs(b[0]),f=e[e.length-1],i=f&&k.test(f)?"cb":"ret",j=c.splitTrimFilterArgs(b[1]),o=j[0];if(i==="cb"&&(!o||!l.test(o)))throw new Error(a(g,d));if(i==="ret"&&o&&l.test(o))throw new Error(a(h,d));return{type:i,inDef:m(e),outDef:n(j)}}};return s.selectFirst=t,s}),define("react/track-tasks",[],function(){function b(b){if(a)return;a=!0,b.events.on(b.events.TYPES.EXEC_FLOW_START,function(a){a.startTime=Date.now(),a.flowEmitter.emit(b.events.TYPES.FLOW_BEGIN,a)}),b.events.on(b.events.TYPES.EXEC_TASK_START,function(a){a.startTime=Date.now(),a.env.flowEmitter.emit(b.events.TYPES.TASK_BEGIN,a)}),b.events.on(b.events.TYPES.EXEC_TASK_COMPLETE,function(a){a.endTime=Date.now(),a.elapsedTime=a.endTime-a.startTime,a.env.flowEmitter.emit(b.events.TYPES.TASK_COMPLETE,a)}),b.events.on(b.events.TYPES.EXEC_TASK_ERRORED,function(a){a.endTime=Date.now(),a.elapsedTime=a.endTime-a.startTime,a.env.flowEmitter.emit(b.events.TYPES.TASK_ERRORED,a)}),b.events.on(b.events.TYPES.EXEC_FLOW_COMPLETE,function(a){a.endTime=Date.now(),a.elapsedTime=a.endTime-a.startTime,a.flowEmitter.emit(b.events.TYPES.FLOW_COMPLETE,a)}),b.events.on(b.events.TYPES.EXEC_FLOW_ERRORED,function(a){a.endTime=Date.now(),a.elapsedTime=a.endTime-a.startTime,a.flowEmitter.emit(b.events.TYPES.FLOW_ERRORED,a)})}var a=!1;return b}),define("react/log-events",["util"],function(a){function f(b){var c=new Date;c.setTime(b.time);var d=b.args.filter(function(a){return typeof a!="function"}),e=c.toISOString();if(this.event==="flow.complete"){var f=b;console.error("%s: %s \tmsecs: %s \n\targs: %s \n\tresults: %s\n",this.event,f.name,f.elapsedTime,a.inspect(d),a.inspect(f.results))}else{var g=b.name,h=b.args;console.error("%s: %s \n\targs: %s\n",this.event,g,a.inspect(d))}}function g(b){var c=new Date;c.setTime(b.time);var d=b.args.filter(function(a){return typeof a!="function"}),e=c.toISOString();if(this.event==="task.complete"){var f=b;console.error("%s: %s:%s \tmsecs: %s \n\targs: %s \n\tresults: %s\n",this.event,f.env.name,f.name,f.elapsedTime,a.inspect(d),a.inspect(f.results))}else{var g=b.name,h=b.args;console.error("%s: %s:%s \n\targs: %s\n",this.event,b.env.name,b.name,a.inspect(d))}}function h(a,b){if(!a)throw new Error("flowFn is required");if(b&&b!=="*"){var h=e.test(b)?f:g;a.events.removeListener(b,h),a.events.on(b,h)}else a.events.removeListener(c,f),a.events.on(c,f),a.events.removeListener(d,g),a.events.on(d,g)}var b={},c="flow.*",d="task.*",e=/^flow\./;return b.logEvents=h,b}),define("react/promise-resolve",[],function(){function c(c){if(b)return;b=!0,c.events.on(c.events.TYPES.EXEC_TASKS_PRECREATE,function(b){var c=b.vCon.values,d=b.ast.inParams.filter(function(a){var b=c[a];return b&&typeof b.then=="function"});d.forEach(function(d){var e=d+a;c[e]=c[d],c[d]=undefined,b.taskDefs.push({type:"when",a:[e],out:[d]})})})}var a="__promise",b=!1;return c}),define("react/event-collector",[],function(){function a(a){function e(){this.events=[]}a.trackTasks();var b=/^ast\./,c=/^task\./,d=/^flow\./;return e.prototype.capture=function(e,f){function i(a){var e={event:this.event,time:Date.now()};d.test(this.event)?e.env=a:c.test(this.event)?e.task=a:b.test(this.event)&&(e.ast=a),h.events.push(e)}!f&&typeof e=="string"?(f=e,e=a):e||(e=a),f||(f="*");var g=e.events,h=this;g.on(f,i)},e.prototype.list=function(){return this.events},e.prototype.clear=function(){this.events=[]},new e}return a}),define("react",["./core","./dsl","./track-tasks","./log-events","./promise-resolve","./event-collector"],function(a,b,c,d,e,f){function h(){e(g)}function i(){c(g)}function j(a,b){return!b&&typeof a=="string"&&(b=a,a=undefined),a||(a=g),i(),d.logEvents(a,b)}function k(){return f(g)}var g=b;return g.options=a.options,g.events=a.events,g.logEvents=j,g.resolvePromises=h,g.trackTasks=i,g.createEventCollector=k,g})