react 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/browser-test/dist.html +0 -1
- package/browser-test/index.html +2 -3
- package/browser-test/min.html +0 -1
- package/dist/react.js +45 -243
- package/dist/react.min.js +1 -1
- package/lib/core.js +2 -2
- package/lib/event-manager.js +6 -3
- package/lib/sprintf.js +4 -4
- package/lib/task.js +30 -33
- package/lib/vcon.js +3 -3
- package/package.json +1 -2
package/README.md
CHANGED
|
@@ -186,6 +186,8 @@ See the [Advanced React](https://github.com/jeffbski/react/blob/master/doc/advan
|
|
|
186
186
|
|
|
187
187
|
## Status
|
|
188
188
|
|
|
189
|
+
- 2012-04-25 - Browser compatibility issue with process check, (v0.6.1)
|
|
190
|
+
- 2012-04-05 - Remove dependency on sprint, use util.format
|
|
189
191
|
- 2012-03-28 - Make react AMD-enabled and compatible with ES5 browsers and node.js, provide single file dist and min, add browser tests (v0.6.0)
|
|
190
192
|
- 2012-03-24 - Add Travis-CI, remove promised-io since failing to install in travis-ci for node 0.6/0.7, switch from tap to mocha/chai
|
|
191
193
|
- 2012-03-12 - Pass ast.define events to process (v0.5.2)
|
package/browser-test/dist.html
CHANGED
package/browser-test/index.html
CHANGED
|
@@ -19,10 +19,9 @@
|
|
|
19
19
|
}
|
|
20
20
|
],
|
|
21
21
|
paths: {
|
|
22
|
-
|
|
22
|
+
jquery: "vendor/jquery/jquery-1.7.1",
|
|
23
23
|
eventemitter2: "node_modules/eventemitter2/lib/eventemitter2",
|
|
24
24
|
util: "vendor/node/util",
|
|
25
|
-
sprint: "node_modules/sprint/lib/sprint",
|
|
26
25
|
"ensure-array": "node_modules/ensure-array/ensure-array",
|
|
27
26
|
test: "test"
|
|
28
27
|
}
|
|
@@ -30,7 +29,7 @@
|
|
|
30
29
|
|
|
31
30
|
require(["react", "react/sprintf", "util", "react/validate", "react/task",
|
|
32
31
|
"react/cb-task", "react/vcon", "react/event-manager", "react/input-parser",
|
|
33
|
-
"react/base-task", "react/ret-task", "react/validate", "
|
|
32
|
+
"react/base-task", "react/ret-task", "react/validate", "jquery"],
|
|
34
33
|
function (react, sprintf, util, validate, taskUtil,
|
|
35
34
|
CbTask, VContext, EventManager, inputParser,
|
|
36
35
|
BaseTask, RetTask, validate, jquery) {
|
package/browser-test/min.html
CHANGED
package/dist/react.js
CHANGED
|
@@ -1239,9 +1239,9 @@ define('react/vcon',[], function () {
|
|
|
1239
1239
|
};
|
|
1240
1240
|
|
|
1241
1241
|
VContext.prototype.setVar = function (name, value) { //name might be simple or obj.prop
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1242
|
+
if (!name) return; // if name is undefined or null, then discard
|
|
1243
|
+
var vConValues = this.values;
|
|
1244
|
+
var nameAndProps = name.split('.');
|
|
1245
1245
|
var lastProp = nameAndProps.pop();
|
|
1246
1246
|
var obj = nameAndProps.reduce(function (accObj, prop) {
|
|
1247
1247
|
var o = accObj[prop];
|
|
@@ -1284,14 +1284,15 @@ define('react/vcon',[], function () {
|
|
|
1284
1284
|
|
|
1285
1285
|
|
|
1286
1286
|
define('react/event-manager',['./eventemitter'], function (EventEmitter) {
|
|
1287
|
+
/*jshint regexp:false */
|
|
1287
1288
|
|
|
1288
1289
|
var EVENT_EMITTER2_CONFIG = {
|
|
1289
1290
|
wildcard: true, // should the event emitter use wildcards.
|
|
1290
1291
|
delimiter: '.', // the delimiter used to segment namespaces, defaults to `.`.
|
|
1291
1292
|
maxListeners: 30 // the max number of listeners that can be assigned to an event, defaults to 10.
|
|
1292
|
-
|
|
1293
|
+
};
|
|
1293
1294
|
|
|
1294
|
-
|
|
1295
|
+
var PASS_EVENTS_PROCESS_RE = /^ast.defined$/; // events to pass up to global process
|
|
1295
1296
|
|
|
1296
1297
|
var TYPES = {
|
|
1297
1298
|
// Flow monitoring events and their params
|
|
@@ -1346,7 +1347,9 @@ define('react/event-manager',['./eventemitter'], function (EventEmitter) {
|
|
|
1346
1347
|
if (event === undefined) throw new Error('event is undefined');
|
|
1347
1348
|
if (this.emitter) this.emitter.emit.apply(this.emitter, arguments);
|
|
1348
1349
|
if (this.parent && this.parent.isEnabled()) this.parent.emit.apply(this.parent, arguments);
|
|
1349
|
-
if (PASS_EVENTS_PROCESS_RE.test(event) && process && process.emit)
|
|
1350
|
+
if (PASS_EVENTS_PROCESS_RE.test(event) && typeof(process) !== 'undefined' && process.emit) {
|
|
1351
|
+
process.emit.apply(process, arguments); // pass some to process
|
|
1352
|
+
}
|
|
1350
1353
|
};
|
|
1351
1354
|
|
|
1352
1355
|
EventManager.prototype.removeListener = function (event, listener) {
|
|
@@ -1553,217 +1556,19 @@ define('react/id',[], function () {
|
|
|
1553
1556
|
};
|
|
1554
1557
|
|
|
1555
1558
|
});
|
|
1556
|
-
(function() {
|
|
1557
|
-
var errorMessage, format, intSizeTable, sprint, _ref,
|
|
1558
|
-
__slice = Array.prototype.slice,
|
|
1559
|
-
__indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
|
|
1560
|
-
|
|
1561
|
-
format = /%(\d+[$])?((?:[+\x20\-#0])*)((?:[*](?:\d+[$])?)?v)?(\d*|[*](?:\d+[$])?)(?:[.](\d+|[*](?:\d+[$])?))?(hh?|ll?|[Lzjtq]|I(?:32|64)?)?([diuDUfFeEgGxXoOscpnbB])|%%/g;
|
|
1562
|
-
|
|
1563
|
-
errorMessage = "64-bit numbers aren't supported by sprint()!";
|
|
1564
|
-
|
|
1565
|
-
intSizeTable = {
|
|
1566
|
-
h: 2,
|
|
1567
|
-
hh: 1,
|
|
1568
|
-
l: 4,
|
|
1569
|
-
ll: new RangeError(errorMessage),
|
|
1570
|
-
L: 4,
|
|
1571
|
-
z: 4,
|
|
1572
|
-
j: 4,
|
|
1573
|
-
t: 4,
|
|
1574
|
-
I: 4,
|
|
1575
|
-
I32: 4,
|
|
1576
|
-
I64: new RangeError(errorMessage),
|
|
1577
|
-
q: new RangeError(errorMessage)
|
|
1578
|
-
};
|
|
1579
|
-
|
|
1580
|
-
sprint = function() {
|
|
1581
|
-
var arrayObjects, i, padString, string, toString, values, _ref;
|
|
1582
|
-
string = arguments[0], values = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
|
|
1583
|
-
arrayObjects = ['[object Array]', '[object Arguments]'];
|
|
1584
|
-
toString = Object.prototype.toString;
|
|
1585
|
-
if ((_ref = toString.call(values[0]), __indexOf.call(arrayObjects, _ref) >= 0) && values.length === 1) {
|
|
1586
|
-
values = values[0];
|
|
1587
|
-
}
|
|
1588
|
-
i = -1;
|
|
1589
|
-
padString = function(string, length, joiner, leftPad) {
|
|
1590
|
-
string = "" + string;
|
|
1591
|
-
if (string.length > length) {
|
|
1592
|
-
return string;
|
|
1593
|
-
} else if (leftPad) {
|
|
1594
|
-
return "" + string + (new Array(length - string.length + 1).join(joiner));
|
|
1595
|
-
} else {
|
|
1596
|
-
return "" + (new Array(length - string.length + 1).join(joiner)) + string;
|
|
1597
|
-
}
|
|
1598
|
-
};
|
|
1599
|
-
return ("" + string).replace(format, function() {
|
|
1600
|
-
var abs, alignCharacter, argument, character, defaultPrecision, flags, intSize, leftPad, length, letter, matches, padInteger, precision, prefix, result, special, string, toExponential, type, vector;
|
|
1601
|
-
string = arguments[0], matches = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
|
|
1602
|
-
argument = matches[0], flags = matches[1], vector = matches[2], length = matches[3], precision = matches[4], intSize = matches[5], type = matches[6];
|
|
1603
|
-
if (intSize == null) intSize = 'L';
|
|
1604
|
-
if (string === '%%') return '%';
|
|
1605
|
-
leftPad = __indexOf.call(flags, '-') >= 0;
|
|
1606
|
-
alignCharacter = __indexOf.call(flags, '0') >= 0 && !leftPad ? '0' : ' ';
|
|
1607
|
-
abs = function(int, signed) {
|
|
1608
|
-
var bits, entry, highValue;
|
|
1609
|
-
if (signed == null) signed = false;
|
|
1610
|
-
if (intSize === 'L' && (int >= 0 || signed)) return parseInt(int, 10);
|
|
1611
|
-
entry = intSizeTable[intSize];
|
|
1612
|
-
if (entry instanceof Error) throw entry;
|
|
1613
|
-
bits = entry * 8;
|
|
1614
|
-
int = parseInt(int, 10) % Math.pow(2, bits);
|
|
1615
|
-
highValue = Math.pow(2, bits) - 1;
|
|
1616
|
-
if (signed && int >= Math.pow(2, bits - 1)) int = -Math.pow(2, bits) + int;
|
|
1617
|
-
if (signed) {
|
|
1618
|
-
return int;
|
|
1619
|
-
} else {
|
|
1620
|
-
return int >>> 0;
|
|
1621
|
-
}
|
|
1622
|
-
};
|
|
1623
|
-
toExponential = function() {
|
|
1624
|
-
argument = (+argument).toExponential(precision);
|
|
1625
|
-
if (special && __indexOf.call(argument, '.') < 0) {
|
|
1626
|
-
argument = argument.replace('e', '.e');
|
|
1627
|
-
}
|
|
1628
|
-
return argument.toLowerCase().replace(/\d+$/, function(string) {
|
|
1629
|
-
return padString(string, 3, 0);
|
|
1630
|
-
});
|
|
1631
|
-
};
|
|
1632
|
-
padInteger = function(string) {
|
|
1633
|
-
if (+string === 0 && +precision === 0) {
|
|
1634
|
-
return '';
|
|
1635
|
-
} else if (defaultPrecision) {
|
|
1636
|
-
return string;
|
|
1637
|
-
} else {
|
|
1638
|
-
alignCharacter = ' ';
|
|
1639
|
-
return padString(string, precision, '0');
|
|
1640
|
-
}
|
|
1641
|
-
};
|
|
1642
|
-
if (vector) {
|
|
1643
|
-
character = vector[0] === '*' ? vector.length > 2 ? values[parseInt(vector.slice(1), 10) - 1] : values[++i] : '.';
|
|
1644
|
-
}
|
|
1645
|
-
length = length[0] === '*' ? length.length === 1 ? values[++i] : values[parseInt(length.slice(1)) - 1] : !length ? 0 : length;
|
|
1646
|
-
precision = precision && precision[0] === '*' ? precision.length === 1 ? values[++i] : values[parseInt(precision.slice(1), 10) - 1] : !precision ? (defaultPrecision = true, 6) : precision;
|
|
1647
|
-
argument = values[(parseInt(argument, 10) || ++i + 1) - 1];
|
|
1648
|
-
if (argument === 0) if (1 / argument === -Infinity) argument = '-0';
|
|
1649
|
-
argument = argument != null ? "" + argument : '';
|
|
1650
|
-
special = __indexOf.call(flags, '#') >= 0;
|
|
1651
|
-
arguments = (function() {
|
|
1652
|
-
var _i, _len, _results;
|
|
1653
|
-
if (vector) {
|
|
1654
|
-
_results = [];
|
|
1655
|
-
for (_i = 0, _len = argument.length; _i < _len; _i++) {
|
|
1656
|
-
letter = argument[_i];
|
|
1657
|
-
_results.push(letter.charCodeAt(0));
|
|
1658
|
-
}
|
|
1659
|
-
return _results;
|
|
1660
|
-
} else {
|
|
1661
|
-
return [argument];
|
|
1662
|
-
}
|
|
1663
|
-
})();
|
|
1664
|
-
result = (function() {
|
|
1665
|
-
var _i, _len, _results;
|
|
1666
|
-
_results = [];
|
|
1667
|
-
for (_i = 0, _len = arguments.length; _i < _len; _i++) {
|
|
1668
|
-
argument = arguments[_i];
|
|
1669
|
-
argument = (function() {
|
|
1670
|
-
var _ref2;
|
|
1671
|
-
switch (type) {
|
|
1672
|
-
case 'd':
|
|
1673
|
-
case 'i':
|
|
1674
|
-
case 'D':
|
|
1675
|
-
return padInteger(abs(argument, true));
|
|
1676
|
-
case 'u':
|
|
1677
|
-
case 'U':
|
|
1678
|
-
return padInteger(abs(argument));
|
|
1679
|
-
case 'f':
|
|
1680
|
-
case 'F':
|
|
1681
|
-
argument = (+argument).toFixed(precision).toLowerCase();
|
|
1682
|
-
if (special && __indexOf.call(argument, '.') < 0 && !/^-?[a-z]+$/.test(argument)) {
|
|
1683
|
-
argument += '.';
|
|
1684
|
-
}
|
|
1685
|
-
return argument;
|
|
1686
|
-
case 'e':
|
|
1687
|
-
case 'E':
|
|
1688
|
-
return toExponential();
|
|
1689
|
-
case 'g':
|
|
1690
|
-
case 'G':
|
|
1691
|
-
if (+argument === 0 || (0.0001 <= (_ref2 = Math.abs(argument)) && _ref2 < Math.pow(10, precision))) {
|
|
1692
|
-
argument = ("" + argument).substr(0, +precision + 1);
|
|
1693
|
-
if (special) {
|
|
1694
|
-
return argument.replace(/[.]?$/, '.');
|
|
1695
|
-
} else {
|
|
1696
|
-
return argument.replace(/[.]$/, '');
|
|
1697
|
-
}
|
|
1698
|
-
} else {
|
|
1699
|
-
return toExponential().replace(/[.]?0+e/, 'e');
|
|
1700
|
-
}
|
|
1701
|
-
break;
|
|
1702
|
-
case 'x':
|
|
1703
|
-
case 'X':
|
|
1704
|
-
prefix = special && +argument !== 0 ? '0x' : '';
|
|
1705
|
-
return "" + prefix + (padInteger(abs(argument).toString(16)));
|
|
1706
|
-
case 'b':
|
|
1707
|
-
case 'B':
|
|
1708
|
-
prefix = special && +argument !== 0 ? '0b' : '';
|
|
1709
|
-
return "" + prefix + (padInteger(abs(argument).toString(2)));
|
|
1710
|
-
case 'o':
|
|
1711
|
-
case 'O':
|
|
1712
|
-
prefix = special ? '0' : '';
|
|
1713
|
-
return "" + prefix + (padInteger(abs(argument).toString(8)));
|
|
1714
|
-
case 's':
|
|
1715
|
-
if (defaultPrecision) {
|
|
1716
|
-
return argument;
|
|
1717
|
-
} else {
|
|
1718
|
-
return argument.substr(0, precision);
|
|
1719
|
-
}
|
|
1720
|
-
break;
|
|
1721
|
-
case 'c':
|
|
1722
|
-
return String.fromCharCode(argument);
|
|
1723
|
-
default:
|
|
1724
|
-
throw new Exception("Unrecognized %type (?). Shouldn't happen.");
|
|
1725
|
-
}
|
|
1726
|
-
})();
|
|
1727
|
-
argument = "" + argument;
|
|
1728
|
-
if (type === type.toUpperCase()) argument = argument.toUpperCase();
|
|
1729
|
-
if (argument[0] !== '-') {
|
|
1730
|
-
if (__indexOf.call(flags, '+') >= 0) {
|
|
1731
|
-
argument = "+" + argument;
|
|
1732
|
-
} else if (__indexOf.call(flags, ' ') >= 0) {
|
|
1733
|
-
argument = " " + argument;
|
|
1734
|
-
}
|
|
1735
|
-
}
|
|
1736
|
-
_results.push(padString(argument, length, alignCharacter, leftPad));
|
|
1737
|
-
}
|
|
1738
|
-
return _results;
|
|
1739
|
-
}).apply(this, arguments);
|
|
1740
|
-
return result.join(character);
|
|
1741
|
-
});
|
|
1742
|
-
};
|
|
1743
|
-
|
|
1744
|
-
if ((typeof module !== "undefined" && module !== null ? module.exports : void 0) != null) {
|
|
1745
|
-
module.exports = sprint;
|
|
1746
|
-
}
|
|
1747
|
-
|
|
1748
|
-
((_ref = typeof module !== "undefined" && module !== null ? module.exports : void 0) != null ? _ref : this).sprint = sprint;
|
|
1749
|
-
|
|
1750
|
-
}).call(this);
|
|
1751
|
-
|
|
1752
|
-
define("sprint", function(){});
|
|
1753
|
-
|
|
1754
1559
|
|
|
1755
1560
|
/*global define:true sprint:true */
|
|
1756
1561
|
|
|
1757
1562
|
|
|
1758
1563
|
|
|
1759
|
-
define('react/sprintf',['
|
|
1564
|
+
define('react/sprintf',['util'], function (util) {
|
|
1760
1565
|
|
|
1761
1566
|
/**
|
|
1762
|
-
Abstract the details of getting a sprintf function
|
|
1567
|
+
Abstract the details of getting a sprintf function.
|
|
1568
|
+
Currently using the simple format capabilities of node's util.format
|
|
1763
1569
|
*/
|
|
1764
1570
|
|
|
1765
|
-
|
|
1766
|
-
var sprintf = (sprintfMod) ? sprintfMod : sprint;
|
|
1571
|
+
var sprintf = util.format;
|
|
1767
1572
|
return sprintf;
|
|
1768
1573
|
|
|
1769
1574
|
});
|
|
@@ -2239,9 +2044,9 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
2239
2044
|
ret: RetTask,
|
|
2240
2045
|
promise: PromiseTask,
|
|
2241
2046
|
when: WhenTask
|
|
2242
|
-
|
|
2047
|
+
};
|
|
2243
2048
|
|
|
2244
|
-
|
|
2049
|
+
var DEFAULT_TASK_NAME = 'task_%s'; // for unnamed tasks use task_idx, like task_0
|
|
2245
2050
|
|
|
2246
2051
|
function taskTypeKeys() { return Object.keys(TASK_TYPES); }
|
|
2247
2052
|
|
|
@@ -2257,9 +2062,6 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
2257
2062
|
var TASK_TYPE_SHOULD_MATCH = 'task.type should match one of ' +
|
|
2258
2063
|
Object.keys(TASK_TYPES).join(', ');
|
|
2259
2064
|
|
|
2260
|
-
var validateTaskType, validateTask, create;
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
2065
|
function format_error(errmsg, obj) {
|
|
2264
2066
|
return sprintf('%s - %s', errmsg, util.inspect(obj));
|
|
2265
2067
|
}
|
|
@@ -2328,26 +2130,26 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
2328
2130
|
}
|
|
2329
2131
|
|
|
2330
2132
|
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
}
|
|
2133
|
+
function validateLocalFunctions(inParams, taskDefs, locals) {
|
|
2134
|
+
var errors = [];
|
|
2135
|
+
function foo() { } //used to mock args as fns for validation check
|
|
2136
|
+
var mock_args = inParams.map(function (p) { return foo; }); //mock args with fns
|
|
2137
|
+
var vCon = VContext.create(mock_args, inParams, locals);
|
|
2138
|
+
var tasks = taskDefs.map(create);
|
|
2139
|
+
var tasksWFunctions = tasks.filter(function (t) { return (t.type !== 'when'); }); // non-when tasks need f
|
|
2140
|
+
tasksWFunctions.forEach(function (t, idx) {
|
|
2141
|
+
if (!t.functionExists(vCon)) { // error if function doesnt exist AND
|
|
2142
|
+
if (!t.isMethodCall()) errors.push(sprintf(LOCAL_FN_MISSING, t.f, idx)); // not method OR
|
|
2143
|
+
else {
|
|
2144
|
+
var obj = t.getMethodObj(vCon);
|
|
2145
|
+
if (obj && obj !== foo) { // (has parent but not our mock)
|
|
2146
|
+
errors.push(sprintf(LOCAL_FN_MISSING, t.f, idx));
|
|
2346
2147
|
}
|
|
2347
2148
|
}
|
|
2348
|
-
}
|
|
2349
|
-
|
|
2350
|
-
|
|
2149
|
+
}
|
|
2150
|
+
});
|
|
2151
|
+
return errors;
|
|
2152
|
+
}
|
|
2351
2153
|
|
|
2352
2154
|
function fName(fn) {
|
|
2353
2155
|
if (typeof(fn) === 'function') {
|
|
@@ -2377,7 +2179,7 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
2377
2179
|
name = sprintf('%s_%s', name, idx); //if empty or already used, postfix with _idx
|
|
2378
2180
|
}
|
|
2379
2181
|
t.name = name;
|
|
2380
|
-
|
|
2182
|
+
namesMap[name] = t;
|
|
2381
2183
|
}
|
|
2382
2184
|
});
|
|
2383
2185
|
return namesMap;
|
|
@@ -2390,15 +2192,15 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
2390
2192
|
|
|
2391
2193
|
function createOutTask(taskDef, cbFunc, tasks, vCon, execOptions, env) {
|
|
2392
2194
|
setMissingOutTaskType(taskDef);
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2195
|
+
var outTaskOptions = {
|
|
2196
|
+
taskDef: taskDef,
|
|
2197
|
+
cbFunc: cbFunc,
|
|
2198
|
+
tasks: tasks,
|
|
2199
|
+
vCon: vCon,
|
|
2200
|
+
execOptions: execOptions,
|
|
2201
|
+
env: env,
|
|
2202
|
+
TaskConstructor: OUT_TASK_TYPES[taskDef.type]
|
|
2203
|
+
};
|
|
2402
2204
|
EventManager.global.emit(EventManager.TYPES.EXEC_OUTTASK_CREATE, outTaskOptions); // hook
|
|
2403
2205
|
var TaskConstructor = outTaskOptions.TaskConstructor; // hook could have changed
|
|
2404
2206
|
return new TaskConstructor(outTaskOptions);
|
|
@@ -2713,7 +2515,7 @@ define('react/core',['./eventemitter', './error', './validate', './task', './sta
|
|
|
2713
2515
|
}
|
|
2714
2516
|
flowEmitter.emit(EventManager.TYPES.AST_DEFINED, ast);
|
|
2715
2517
|
return errors;
|
|
2716
|
-
|
|
2518
|
+
}
|
|
2717
2519
|
|
|
2718
2520
|
function exec(arg1, arg2, argN, cb) { // called to execute the flow
|
|
2719
2521
|
/*jshint validthis: true */
|
|
@@ -2733,7 +2535,7 @@ define('react/core',['./eventemitter', './error', './validate', './task', './sta
|
|
|
2733
2535
|
env.options = mergeOptions(parsedInput.options);
|
|
2734
2536
|
env.vCon = vCon;
|
|
2735
2537
|
env.taskDefs = ast.tasks.slice(); // create copy
|
|
2736
|
-
|
|
2538
|
+
env.outTaskDef = Object.create(ast.outTask); // create copy
|
|
2737
2539
|
reactEmitter.emit(EventManager.TYPES.EXEC_TASKS_PRECREATE, env); // hook
|
|
2738
2540
|
|
|
2739
2541
|
var tasks = env.taskDefs.map(taskUtil.create);
|
package/dist/react.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!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)&&process&&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}}),function(){var a,b,c,d,e,f=Array.prototype.slice,g=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b<c;b++)if(b in this&&this[b]===a)return b;return-1};b=/%(\d+[$])?((?:[+\x20\-#0])*)((?:[*](?:\d+[$])?)?v)?(\d*|[*](?:\d+[$])?)(?:[.](\d+|[*](?:\d+[$])?))?(hh?|ll?|[Lzjtq]|I(?:32|64)?)?([diuDUfFeEgGxXoOscpnbB])|%%/g,a="64-bit numbers aren't supported by sprint()!",c={h:2,hh:1,l:4,ll:new RangeError(a),L:4,z:4,j:4,t:4,I:4,I32:4,I64:new RangeError(a),q:new RangeError(a)},d=function(){var a,d,e,h,i,j,k;return h=arguments[0],j=2<=arguments.length?f.call(arguments,1):[],a=["[object Array]","[object Arguments]"],i=Object.prototype.toString,(k=i.call(j[0]),g.call(a,k)>=0)&&j.length===1&&(j=j[0]),d=-1,e=function(a,b,c,d){return a=""+a,a.length>b?a:d?""+a+(new Array(b-a.length+1)).join(c):""+(new Array(b-a.length+1)).join(c)+a},(""+h).replace(b,function(){var a,b,h,i,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;return w=arguments[0],q=2<=arguments.length?f.call(arguments,1):[],h=q[0],l=q[1],z=q[2],o=q[3],s=q[4],m=q[5],y=q[6],m==null&&(m="L"),w==="%%"?"%":(n=g.call(l,"-")>=0,b=g.call(l,"0")>=0&&!n?"0":" ",a=function(a,b){var d,e,f;b==null&&(b=!1);if(m==="L"&&(a>=0||b))return parseInt(a,10);e=c[m];if(e instanceof Error)throw e;return d=e*8,a=parseInt(a,10)%Math.pow(2,d),f=Math.pow(2,d)-1,b&&a>=Math.pow(2,d-1)&&(a=-Math.pow(2,d)+a),b?a:a>>>0},x=function(){return h=(+h).toExponential(s),v&&g.call(h,".")<0&&(h=h.replace("e",".e")),h.toLowerCase().replace(/\d+$/,function(a){return e(a,3,0)})},r=function(a){return+a===0&&+s===0?"":k?a:(b=" ",e(a,s,"0"))},z&&(i=z[0]==="*"?z.length>2?j[parseInt(z.slice(1),10)-1]:j[++d]:"."),o=o[0]==="*"?o.length===1?j[++d]:j[parseInt(o.slice(1))-1]:o?o:0,s=s&&s[0]==="*"?s.length===1?j[++d]:j[parseInt(s.slice(1),10)-1]:s?s:(k=!0,6),h=j[(parseInt(h,10)||++d+1)-1],h===0&&1/h===-Infinity&&(h="-0"),h=h!=null?""+h:"",v=g.call(l,"#")>=0,arguments=function(){var a,b,c;if(z){c=[];for(a=0,b=h.length;a<b;a++)p=h[a],c.push(p.charCodeAt(0));return c}return[h]}(),u=function(){var c,d,f;f=[];for(c=0,d=arguments.length;c<d;c++)h=arguments[c],h=function(){var b;switch(y){case"d":case"i":case"D":return r(a(h,!0));case"u":case"U":return r(a(h));case"f":case"F":return h=(+h).toFixed(s).toLowerCase(),v&&g.call(h,".")<0&&!/^-?[a-z]+$/.test(h)&&(h+="."),h;case"e":case"E":return x();case"g":case"G":return+h===0||1e-4<=(b=Math.abs(h))&&b<Math.pow(10,s)?(h=(""+h).substr(0,+s+1),v?h.replace(/[.]?$/,"."):h.replace(/[.]$/,"")):x().replace(/[.]?0+e/,"e");case"x":case"X":return t=v&&+h!==0?"0x":"",""+t+r(a(h).toString(16));case"b":case"B":return t=v&&+h!==0?"0b":"",""+t+r(a(h).toString(2));case"o":case"O":return t=v?"0":"",""+t+r(a(h).toString(8));case"s":return k?h:h.substr(0,s);case"c":return String.fromCharCode(h);default:throw new Exception("Unrecognized %type (?). Shouldn't happen.")}}(),h=""+h,y===y.toUpperCase()&&(h=h.toUpperCase()),h[0]!=="-"&&(g.call(l,"+")>=0?h="+"+h:g.call(l," ")>=0&&(h=" "+h)),f.push(e(h,o,b,n));return f}.apply(this,arguments),u.join(i))})},(typeof module!=="undefined"&&module!==null?module.exports:void 0)!=null&&(module.exports=d),((e=typeof module!=="undefined"&&module!==null?module.exports:void 0)!=null?e:this).sprint=d}.call(this),define("sprint",function(){}),define("react/sprintf",["sprint"],function(a){var b=a?a:sprint;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 z(c,d){return b("%s - %s",c,a.inspect(d))}function A(a){return a.type?a:(a.type="cb",a)}function B(a){a.type||(a.type=Object.keys(q)[0])}function C(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 D(a){if(!a||typeof a!="object")return[z(t,a)];A(a),C(a);var b=[];return b=b.concat(w(a)),b=b.concat(x(a)),b}function w(a){var b=[];return Object.keys(n).some(function(b){return a.type===b})||b.push(z(v,a)),b}function x(a){var b=[],c=n[a.type];return c&&(b=b.concat(c.validate(a))),b}function E(a){var b=[];B(a);var c=q[a.type];return b=b.concat(c.validate(a)),b}function F(a,c,d){function f(){}var e=[],g=a.map(function(a){return f}),h=l.create(g,a,d),i=c.map(y),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 G(a){return typeof a=="function"?a.name:a?a:""}function H(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=G(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 y(a){var b=n[a.type];return new b(a)}function I(a,b,c,d,e,f){B(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 H(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(", "),w,x,y;return{serializeTasks:O,TASK_TYPES:n,taskTypeKeys:p,OUT_TASK_TYPES:q,outTaskTypeKeys:r,setMissingType:A,validate:D,validateOutTask:E,validateLocalFunctions:F,nameTasks:H,create:y,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})
|
|
1
|
+
!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})
|
package/lib/core.js
CHANGED
|
@@ -82,7 +82,7 @@ define(['./eventemitter', './error', './validate', './task', './status',
|
|
|
82
82
|
}
|
|
83
83
|
flowEmitter.emit(EventManager.TYPES.AST_DEFINED, ast);
|
|
84
84
|
return errors;
|
|
85
|
-
|
|
85
|
+
}
|
|
86
86
|
|
|
87
87
|
function exec(arg1, arg2, argN, cb) { // called to execute the flow
|
|
88
88
|
/*jshint validthis: true */
|
|
@@ -102,7 +102,7 @@ define(['./eventemitter', './error', './validate', './task', './status',
|
|
|
102
102
|
env.options = mergeOptions(parsedInput.options);
|
|
103
103
|
env.vCon = vCon;
|
|
104
104
|
env.taskDefs = ast.tasks.slice(); // create copy
|
|
105
|
-
|
|
105
|
+
env.outTaskDef = Object.create(ast.outTask); // create copy
|
|
106
106
|
reactEmitter.emit(EventManager.TYPES.EXEC_TASKS_PRECREATE, env); // hook
|
|
107
107
|
|
|
108
108
|
var tasks = env.taskDefs.map(taskUtil.create);
|
package/lib/event-manager.js
CHANGED
|
@@ -6,14 +6,15 @@ if (typeof define !== 'function') {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
define(['./eventemitter'], function (EventEmitter) {
|
|
9
|
+
/*jshint regexp:false */
|
|
9
10
|
|
|
10
11
|
var EVENT_EMITTER2_CONFIG = {
|
|
11
12
|
wildcard: true, // should the event emitter use wildcards.
|
|
12
13
|
delimiter: '.', // the delimiter used to segment namespaces, defaults to `.`.
|
|
13
14
|
maxListeners: 30 // the max number of listeners that can be assigned to an event, defaults to 10.
|
|
14
|
-
|
|
15
|
+
};
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
var PASS_EVENTS_PROCESS_RE = /^ast.defined$/; // events to pass up to global process
|
|
17
18
|
|
|
18
19
|
var TYPES = {
|
|
19
20
|
// Flow monitoring events and their params
|
|
@@ -68,7 +69,9 @@ define(['./eventemitter'], function (EventEmitter) {
|
|
|
68
69
|
if (event === undefined) throw new Error('event is undefined');
|
|
69
70
|
if (this.emitter) this.emitter.emit.apply(this.emitter, arguments);
|
|
70
71
|
if (this.parent && this.parent.isEnabled()) this.parent.emit.apply(this.parent, arguments);
|
|
71
|
-
if (PASS_EVENTS_PROCESS_RE.test(event) && process && process.emit)
|
|
72
|
+
if (PASS_EVENTS_PROCESS_RE.test(event) && typeof(process) !== 'undefined' && process.emit) {
|
|
73
|
+
process.emit.apply(process, arguments); // pass some to process
|
|
74
|
+
}
|
|
72
75
|
};
|
|
73
76
|
|
|
74
77
|
EventManager.prototype.removeListener = function (event, listener) {
|
package/lib/sprintf.js
CHANGED
|
@@ -5,14 +5,14 @@ if (typeof define !== 'function') {
|
|
|
5
5
|
var define = require('amdefine')(module);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
define(['
|
|
8
|
+
define(['util'], function (util) {
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
Abstract the details of getting a sprintf function
|
|
11
|
+
Abstract the details of getting a sprintf function.
|
|
12
|
+
Currently using the simple format capabilities of node's util.format
|
|
12
13
|
*/
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
var sprintf = (sprintfMod) ? sprintfMod : sprint;
|
|
15
|
+
var sprintf = util.format;
|
|
16
16
|
return sprintf;
|
|
17
17
|
|
|
18
18
|
});
|
package/lib/task.js
CHANGED
|
@@ -17,9 +17,9 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
17
17
|
ret: RetTask,
|
|
18
18
|
promise: PromiseTask,
|
|
19
19
|
when: WhenTask
|
|
20
|
-
|
|
20
|
+
};
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
var DEFAULT_TASK_NAME = 'task_%s'; // for unnamed tasks use task_idx, like task_0
|
|
23
23
|
|
|
24
24
|
function taskTypeKeys() { return Object.keys(TASK_TYPES); }
|
|
25
25
|
|
|
@@ -35,9 +35,6 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
35
35
|
var TASK_TYPE_SHOULD_MATCH = 'task.type should match one of ' +
|
|
36
36
|
Object.keys(TASK_TYPES).join(', ');
|
|
37
37
|
|
|
38
|
-
var validateTaskType, validateTask, create;
|
|
39
|
-
|
|
40
|
-
|
|
41
38
|
function format_error(errmsg, obj) {
|
|
42
39
|
return sprintf('%s - %s', errmsg, util.inspect(obj));
|
|
43
40
|
}
|
|
@@ -106,26 +103,26 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
106
103
|
}
|
|
107
104
|
|
|
108
105
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
106
|
+
function validateLocalFunctions(inParams, taskDefs, locals) {
|
|
107
|
+
var errors = [];
|
|
108
|
+
function foo() { } //used to mock args as fns for validation check
|
|
109
|
+
var mock_args = inParams.map(function (p) { return foo; }); //mock args with fns
|
|
110
|
+
var vCon = VContext.create(mock_args, inParams, locals);
|
|
111
|
+
var tasks = taskDefs.map(create);
|
|
112
|
+
var tasksWFunctions = tasks.filter(function (t) { return (t.type !== 'when'); }); // non-when tasks need f
|
|
113
|
+
tasksWFunctions.forEach(function (t, idx) {
|
|
114
|
+
if (!t.functionExists(vCon)) { // error if function doesnt exist AND
|
|
115
|
+
if (!t.isMethodCall()) errors.push(sprintf(LOCAL_FN_MISSING, t.f, idx)); // not method OR
|
|
116
|
+
else {
|
|
117
|
+
var obj = t.getMethodObj(vCon);
|
|
118
|
+
if (obj && obj !== foo) { // (has parent but not our mock)
|
|
119
|
+
errors.push(sprintf(LOCAL_FN_MISSING, t.f, idx));
|
|
124
120
|
}
|
|
125
121
|
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
return errors;
|
|
125
|
+
}
|
|
129
126
|
|
|
130
127
|
function fName(fn) {
|
|
131
128
|
if (typeof(fn) === 'function') {
|
|
@@ -155,7 +152,7 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
155
152
|
name = sprintf('%s_%s', name, idx); //if empty or already used, postfix with _idx
|
|
156
153
|
}
|
|
157
154
|
t.name = name;
|
|
158
|
-
|
|
155
|
+
namesMap[name] = t;
|
|
159
156
|
}
|
|
160
157
|
});
|
|
161
158
|
return namesMap;
|
|
@@ -168,15 +165,15 @@ function (util, sprintf, array, CbTask, PromiseTask,
|
|
|
168
165
|
|
|
169
166
|
function createOutTask(taskDef, cbFunc, tasks, vCon, execOptions, env) {
|
|
170
167
|
setMissingOutTaskType(taskDef);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
168
|
+
var outTaskOptions = {
|
|
169
|
+
taskDef: taskDef,
|
|
170
|
+
cbFunc: cbFunc,
|
|
171
|
+
tasks: tasks,
|
|
172
|
+
vCon: vCon,
|
|
173
|
+
execOptions: execOptions,
|
|
174
|
+
env: env,
|
|
175
|
+
TaskConstructor: OUT_TASK_TYPES[taskDef.type]
|
|
176
|
+
};
|
|
180
177
|
EventManager.global.emit(EventManager.TYPES.EXEC_OUTTASK_CREATE, outTaskOptions); // hook
|
|
181
178
|
var TaskConstructor = outTaskOptions.TaskConstructor; // hook could have changed
|
|
182
179
|
return new TaskConstructor(outTaskOptions);
|
package/lib/vcon.js
CHANGED
|
@@ -49,9 +49,9 @@ define([], function () {
|
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
VContext.prototype.setVar = function (name, value) { //name might be simple or obj.prop
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
if (!name) return; // if name is undefined or null, then discard
|
|
53
|
+
var vConValues = this.values;
|
|
54
|
+
var nameAndProps = name.split('.');
|
|
55
55
|
var lastProp = nameAndProps.pop();
|
|
56
56
|
var obj = nameAndProps.reduce(function (accObj, prop) {
|
|
57
57
|
var o = accObj[prop];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react",
|
|
3
3
|
"description": "React is a javascript module implementing a lightweight rules engine to make it easier to work with asynchronous code, by reducing boilerplate code and improving error and exception handling while allowing variable and task dependencies when defining flow.",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.1",
|
|
5
5
|
"author": "Jeff Barczewski <jeff.barczewski@gmail.com>",
|
|
6
6
|
"repository": { "type": "git", "url": "http://github.com/jeffbski/react.git" },
|
|
7
7
|
"bugs" : { "url": "http://github.com/jeffbski/react/issues" },
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"amdefine": "~0.0.2",
|
|
13
13
|
"eventemitter2": "~0.4.1",
|
|
14
|
-
"sprint": "~0.3.0",
|
|
15
14
|
"ensure-array": "~0.0.5"
|
|
16
15
|
},
|
|
17
16
|
"devDependencies": {
|