abstract
Version:
Abstraction of JavaScript Objects.
1,077 lines • 70.4 kB
JavaScript
/* automatically generated by JSCoverage - do not edit */
if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
if (! _$jscoverage['normalize.js']) {
_$jscoverage['normalize.js'] = [];
_$jscoverage['normalize.js'][42] = 0;
_$jscoverage['normalize.js'][44] = 0;
_$jscoverage['normalize.js'][53] = 0;
_$jscoverage['normalize.js'][54] = 0;
_$jscoverage['normalize.js'][55] = 0;
_$jscoverage['normalize.js'][59] = 0;
_$jscoverage['normalize.js'][60] = 0;
_$jscoverage['normalize.js'][61] = 0;
_$jscoverage['normalize.js'][65] = 0;
_$jscoverage['normalize.js'][76] = 0;
_$jscoverage['normalize.js'][89] = 0;
_$jscoverage['normalize.js'][90] = 0;
_$jscoverage['normalize.js'][92] = 0;
_$jscoverage['normalize.js'][93] = 0;
_$jscoverage['normalize.js'][94] = 0;
_$jscoverage['normalize.js'][97] = 0;
_$jscoverage['normalize.js'][112] = 0;
_$jscoverage['normalize.js'][116] = 0;
_$jscoverage['normalize.js'][118] = 0;
_$jscoverage['normalize.js'][119] = 0;
_$jscoverage['normalize.js'][120] = 0;
_$jscoverage['normalize.js'][122] = 0;
_$jscoverage['normalize.js'][126] = 0;
_$jscoverage['normalize.js'][139] = 0;
_$jscoverage['normalize.js'][141] = 0;
_$jscoverage['normalize.js'][142] = 0;
_$jscoverage['normalize.js'][146] = 0;
_$jscoverage['normalize.js'][158] = 0;
_$jscoverage['normalize.js'][159] = 0;
_$jscoverage['normalize.js'][161] = 0;
_$jscoverage['normalize.js'][162] = 0;
_$jscoverage['normalize.js'][163] = 0;
_$jscoverage['normalize.js'][168] = 0;
_$jscoverage['normalize.js'][172] = 0;
_$jscoverage['normalize.js'][173] = 0;
_$jscoverage['normalize.js'][174] = 0;
_$jscoverage['normalize.js'][176] = 0;
_$jscoverage['normalize.js'][189] = 0;
_$jscoverage['normalize.js'][190] = 0;
_$jscoverage['normalize.js'][193] = 0;
_$jscoverage['normalize.js'][194] = 0;
_$jscoverage['normalize.js'][207] = 0;
_$jscoverage['normalize.js'][209] = 0;
_$jscoverage['normalize.js'][210] = 0;
_$jscoverage['normalize.js'][213] = 0;
_$jscoverage['normalize.js'][223] = 0;
_$jscoverage['normalize.js'][224] = 0;
_$jscoverage['normalize.js'][234] = 0;
_$jscoverage['normalize.js'][245] = 0;
_$jscoverage['normalize.js'][246] = 0;
_$jscoverage['normalize.js'][249] = 0;
_$jscoverage['normalize.js'][263] = 0;
_$jscoverage['normalize.js'][265] = 0;
_$jscoverage['normalize.js'][266] = 0;
_$jscoverage['normalize.js'][269] = 0;
_$jscoverage['normalize.js'][270] = 0;
_$jscoverage['normalize.js'][272] = 0;
_$jscoverage['normalize.js'][289] = 0;
_$jscoverage['normalize.js'][293] = 0;
_$jscoverage['normalize.js'][294] = 0;
_$jscoverage['normalize.js'][295] = 0;
_$jscoverage['normalize.js'][296] = 0;
_$jscoverage['normalize.js'][297] = 0;
_$jscoverage['normalize.js'][301] = 0;
_$jscoverage['normalize.js'][313] = 0;
_$jscoverage['normalize.js'][316] = 0;
_$jscoverage['normalize.js'][317] = 0;
_$jscoverage['normalize.js'][318] = 0;
_$jscoverage['normalize.js'][319] = 0;
_$jscoverage['normalize.js'][320] = 0;
_$jscoverage['normalize.js'][322] = 0;
_$jscoverage['normalize.js'][323] = 0;
_$jscoverage['normalize.js'][324] = 0;
_$jscoverage['normalize.js'][327] = 0;
_$jscoverage['normalize.js'][343] = 0;
_$jscoverage['normalize.js'][347] = 0;
_$jscoverage['normalize.js'][349] = 0;
_$jscoverage['normalize.js'][351] = 0;
_$jscoverage['normalize.js'][352] = 0;
_$jscoverage['normalize.js'][357] = 0;
_$jscoverage['normalize.js'][358] = 0;
_$jscoverage['normalize.js'][362] = 0;
_$jscoverage['normalize.js'][373] = 0;
_$jscoverage['normalize.js'][374] = 0;
_$jscoverage['normalize.js'][377] = 0;
_$jscoverage['normalize.js'][378] = 0;
_$jscoverage['normalize.js'][381] = 0;
_$jscoverage['normalize.js'][392] = 0;
_$jscoverage['normalize.js'][393] = 0;
_$jscoverage['normalize.js'][396] = 0;
_$jscoverage['normalize.js'][397] = 0;
_$jscoverage['normalize.js'][398] = 0;
_$jscoverage['normalize.js'][399] = 0;
_$jscoverage['normalize.js'][403] = 0;
_$jscoverage['normalize.js'][416] = 0;
_$jscoverage['normalize.js'][420] = 0;
_$jscoverage['normalize.js'][421] = 0;
_$jscoverage['normalize.js'][425] = 0;
_$jscoverage['normalize.js'][428] = 0;
_$jscoverage['normalize.js'][429] = 0;
_$jscoverage['normalize.js'][430] = 0;
_$jscoverage['normalize.js'][431] = 0;
_$jscoverage['normalize.js'][434] = 0;
_$jscoverage['normalize.js'][435] = 0;
_$jscoverage['normalize.js'][438] = 0;
_$jscoverage['normalize.js'][439] = 0;
_$jscoverage['normalize.js'][440] = 0;
_$jscoverage['normalize.js'][441] = 0;
_$jscoverage['normalize.js'][442] = 0;
_$jscoverage['normalize.js'][443] = 0;
_$jscoverage['normalize.js'][444] = 0;
_$jscoverage['normalize.js'][445] = 0;
_$jscoverage['normalize.js'][446] = 0;
_$jscoverage['normalize.js'][447] = 0;
_$jscoverage['normalize.js'][449] = 0;
_$jscoverage['normalize.js'][450] = 0;
_$jscoverage['normalize.js'][451] = 0;
_$jscoverage['normalize.js'][453] = 0;
_$jscoverage['normalize.js'][454] = 0;
_$jscoverage['normalize.js'][455] = 0;
_$jscoverage['normalize.js'][456] = 0;
_$jscoverage['normalize.js'][457] = 0;
_$jscoverage['normalize.js'][458] = 0;
_$jscoverage['normalize.js'][461] = 0;
_$jscoverage['normalize.js'][464] = 0;
_$jscoverage['normalize.js'][465] = 0;
_$jscoverage['normalize.js'][466] = 0;
_$jscoverage['normalize.js'][467] = 0;
_$jscoverage['normalize.js'][469] = 0;
_$jscoverage['normalize.js'][470] = 0;
_$jscoverage['normalize.js'][471] = 0;
_$jscoverage['normalize.js'][472] = 0;
_$jscoverage['normalize.js'][476] = 0;
_$jscoverage['normalize.js'][477] = 0;
_$jscoverage['normalize.js'][478] = 0;
_$jscoverage['normalize.js'][479] = 0;
_$jscoverage['normalize.js'][480] = 0;
_$jscoverage['normalize.js'][481] = 0;
_$jscoverage['normalize.js'][482] = 0;
_$jscoverage['normalize.js'][486] = 0;
_$jscoverage['normalize.js'][487] = 0;
_$jscoverage['normalize.js'][491] = 0;
_$jscoverage['normalize.js'][493] = 0;
_$jscoverage['normalize.js'][494] = 0;
_$jscoverage['normalize.js'][495] = 0;
_$jscoverage['normalize.js'][509] = 0;
_$jscoverage['normalize.js'][510] = 0;
_$jscoverage['normalize.js'][512] = 0;
_$jscoverage['normalize.js'][513] = 0;
_$jscoverage['normalize.js'][514] = 0;
_$jscoverage['normalize.js'][517] = 0;
_$jscoverage['normalize.js'][527] = 0;
_$jscoverage['normalize.js'][529] = 0;
_$jscoverage['normalize.js'][531] = 0;
_$jscoverage['normalize.js'][532] = 0;
_$jscoverage['normalize.js'][534] = 0;
_$jscoverage['normalize.js'][535] = 0;
_$jscoverage['normalize.js'][537] = 0;
_$jscoverage['normalize.js'][543] = 0;
_$jscoverage['normalize.js'][553] = 0;
_$jscoverage['normalize.js'][561] = 0;
_$jscoverage['normalize.js'][562] = 0;
_$jscoverage['normalize.js'][573] = 0;
_$jscoverage['normalize.js'][584] = 0;
_$jscoverage['normalize.js'][585] = 0;
_$jscoverage['normalize.js'][588] = 0;
_$jscoverage['normalize.js'][590] = 0;
_$jscoverage['normalize.js'][592] = 0;
_$jscoverage['normalize.js'][594] = 0;
_$jscoverage['normalize.js'][596] = 0;
_$jscoverage['normalize.js'][605] = 0;
_$jscoverage['normalize.js'][615] = 0;
_$jscoverage['normalize.js'][617] = 0;
_$jscoverage['normalize.js'][619] = 0;
_$jscoverage['normalize.js'][628] = 0;
_$jscoverage['normalize.js'][630] = 0;
_$jscoverage['normalize.js'][632] = 0;
_$jscoverage['normalize.js'][633] = 0;
_$jscoverage['normalize.js'][636] = 0;
_$jscoverage['normalize.js'][637] = 0;
_$jscoverage['normalize.js'][640] = 0;
_$jscoverage['normalize.js'][642] = 0;
_$jscoverage['normalize.js'][643] = 0;
_$jscoverage['normalize.js'][645] = 0;
_$jscoverage['normalize.js'][652] = 0;
_$jscoverage['normalize.js'][661] = 0;
_$jscoverage['normalize.js'][663] = 0;
_$jscoverage['normalize.js'][664] = 0;
_$jscoverage['normalize.js'][673] = 0;
_$jscoverage['normalize.js'][675] = 0;
_$jscoverage['normalize.js'][676] = 0;
_$jscoverage['normalize.js'][685] = 0;
_$jscoverage['normalize.js'][688] = 0;
_$jscoverage['normalize.js'][697] = 0;
_$jscoverage['normalize.js'][700] = 0;
_$jscoverage['normalize.js'][711] = 0;
_$jscoverage['normalize.js'][713] = 0;
_$jscoverage['normalize.js'][714] = 0;
_$jscoverage['normalize.js'][717] = 0;
_$jscoverage['normalize.js'][719] = 0;
_$jscoverage['normalize.js'][721] = 0;
_$jscoverage['normalize.js'][722] = 0;
_$jscoverage['normalize.js'][724] = 0;
_$jscoverage['normalize.js'][729] = 0;
_$jscoverage['normalize.js'][740] = 0;
_$jscoverage['normalize.js'][745] = 0;
_$jscoverage['normalize.js'][747] = 0;
_$jscoverage['normalize.js'][748] = 0;
_$jscoverage['normalize.js'][750] = 0;
_$jscoverage['normalize.js'][752] = 0;
_$jscoverage['normalize.js'][754] = 0;
_$jscoverage['normalize.js'][755] = 0;
_$jscoverage['normalize.js'][757] = 0;
_$jscoverage['normalize.js'][759] = 0;
_$jscoverage['normalize.js'][760] = 0;
_$jscoverage['normalize.js'][762] = 0;
_$jscoverage['normalize.js'][768] = 0;
_$jscoverage['normalize.js'][770] = 0;
_$jscoverage['normalize.js'][781] = 0;
_$jscoverage['normalize.js'][789] = 0;
_$jscoverage['normalize.js'][791] = 0;
_$jscoverage['normalize.js'][793] = 0;
_$jscoverage['normalize.js'][795] = 0;
_$jscoverage['normalize.js'][806] = 0;
_$jscoverage['normalize.js'][816] = 0;
_$jscoverage['normalize.js'][826] = 0;
_$jscoverage['normalize.js'][827] = 0;
_$jscoverage['normalize.js'][828] = 0;
_$jscoverage['normalize.js'][829] = 0;
_$jscoverage['normalize.js'][830] = 0;
_$jscoverage['normalize.js'][831] = 0;
_$jscoverage['normalize.js'][833] = 0;
_$jscoverage['normalize.js'][834] = 0;
_$jscoverage['normalize.js'][836] = 0;
_$jscoverage['normalize.js'][837] = 0;
_$jscoverage['normalize.js'][839] = 0;
_$jscoverage['normalize.js'][840] = 0;
_$jscoverage['normalize.js'][842] = 0;
_$jscoverage['normalize.js'][844] = 0;
_$jscoverage['normalize.js'][855] = 0;
_$jscoverage['normalize.js'][857] = 0;
_$jscoverage['normalize.js'][858] = 0;
_$jscoverage['normalize.js'][859] = 0;
_$jscoverage['normalize.js'][861] = 0;
_$jscoverage['normalize.js'][884] = 0;
_$jscoverage['normalize.js'][885] = 0;
_$jscoverage['normalize.js'][886] = 0;
_$jscoverage['normalize.js'][887] = 0;
_$jscoverage['normalize.js'][888] = 0;
_$jscoverage['normalize.js'][891] = 0;
_$jscoverage['normalize.js'][902] = 0;
_$jscoverage['normalize.js'][904] = 0;
_$jscoverage['normalize.js'][905] = 0;
_$jscoverage['normalize.js'][906] = 0;
_$jscoverage['normalize.js'][908] = 0;
_$jscoverage['normalize.js'][937] = 0;
_$jscoverage['normalize.js'][938] = 0;
_$jscoverage['normalize.js'][939] = 0;
_$jscoverage['normalize.js'][940] = 0;
_$jscoverage['normalize.js'][941] = 0;
_$jscoverage['normalize.js'][944] = 0;
_$jscoverage['normalize.js'][954] = 0;
_$jscoverage['normalize.js'][964] = 0;
_$jscoverage['normalize.js'][975] = 0;
_$jscoverage['normalize.js'][989] = 0;
_$jscoverage['normalize.js'][990] = 0;
_$jscoverage['normalize.js'][993] = 0;
_$jscoverage['normalize.js'][1003] = 0;
_$jscoverage['normalize.js'][1005] = 0;
_$jscoverage['normalize.js'][1008] = 0;
_$jscoverage['normalize.js'][1009] = 0;
_$jscoverage['normalize.js'][1012] = 0;
_$jscoverage['normalize.js'][1013] = 0;
_$jscoverage['normalize.js'][1017] = 0;
_$jscoverage['normalize.js'][1025] = 0;
_$jscoverage['normalize.js'][1026] = 0;
_$jscoverage['normalize.js'][1036] = 0;
_$jscoverage['normalize.js'][1038] = 0;
_$jscoverage['normalize.js'][1044] = 0;
_$jscoverage['normalize.js'][1045] = 0;
_$jscoverage['normalize.js'][1046] = 0;
_$jscoverage['normalize.js'][1048] = 0;
_$jscoverage['normalize.js'][1050] = 0;
_$jscoverage['normalize.js'][1051] = 0;
_$jscoverage['normalize.js'][1053] = 0;
_$jscoverage['normalize.js'][1056] = 0;
_$jscoverage['normalize.js'][1060] = 0;
_$jscoverage['normalize.js'][1064] = 0;
}
_$jscoverage['normalize.js'][42]++;
module.exports = (function (target) {
_$jscoverage['normalize.js'][44]++;
var app = {"create_callback": (function (func, thisArg) {
_$jscoverage['normalize.js'][53]++;
if (typeof func != "function") {
_$jscoverage['normalize.js'][54]++;
return (function (object) {
_$jscoverage['normalize.js'][55]++;
return object[func];
});
}
_$jscoverage['normalize.js'][59]++;
if (thisArg !== undefined) {
_$jscoverage['normalize.js'][60]++;
return (function (value, index, object) {
_$jscoverage['normalize.js'][61]++;
return func.call(thisArg, value, index, object);
});
}
_$jscoverage['normalize.js'][65]++;
return func;
})};
_$jscoverage['normalize.js'][76]++;
var _ = {"group_by": (function (collection, callback, thisArg) {
_$jscoverage['normalize.js'][89]++;
var result = {};
_$jscoverage['normalize.js'][90]++;
callback = app.create_callback(callback, thisArg);
_$jscoverage['normalize.js'][92]++;
_.for_each(collection, (function (value, key, collection) {
_$jscoverage['normalize.js'][93]++;
key = callback(value, key, collection);
_$jscoverage['normalize.js'][94]++;
(hasOwnProperty.call(result, key)? result[key]: result[key] = []).push(value);
}));
_$jscoverage['normalize.js'][97]++;
return result;
}), "object": (function (keys, values) {
_$jscoverage['normalize.js'][112]++;
var index = -1, length = keys? keys.length: 0, result = {};
_$jscoverage['normalize.js'][116]++;
while (++index < length) {
_$jscoverage['normalize.js'][118]++;
var key = keys[index];
_$jscoverage['normalize.js'][119]++;
if (values) {
_$jscoverage['normalize.js'][120]++;
result[key] = values[index];
}
else {
_$jscoverage['normalize.js'][122]++;
result[key[0]] = key[1];
}
}
_$jscoverage['normalize.js'][126]++;
return result;
}), "to_array": (function (collection) {
_$jscoverage['normalize.js'][139]++;
var noArraySliceOnStrings = slice.call("x")[0] != "x";
_$jscoverage['normalize.js'][141]++;
if (collection && typeof collection.length == "number") {
_$jscoverage['normalize.js'][142]++;
return (noArraySliceOnStrings? isString(collection): typeof collection == "string")? collection.split(""): slice.call(collection);
}
_$jscoverage['normalize.js'][146]++;
return values(collection);
}), "range": (function (start, end, step) {
_$jscoverage['normalize.js'][158]++;
start = + start || 0;
_$jscoverage['normalize.js'][159]++;
step = + step || 1;
_$jscoverage['normalize.js'][161]++;
if (end == null) {
_$jscoverage['normalize.js'][162]++;
end = start;
_$jscoverage['normalize.js'][163]++;
start = 0;
}
_$jscoverage['normalize.js'][168]++;
var index = -1, length = Math.max(0, ceil((end - start) / step)), result = Array(length);
_$jscoverage['normalize.js'][172]++;
while (++index < length) {
_$jscoverage['normalize.js'][173]++;
result[index] = start;
_$jscoverage['normalize.js'][174]++;
start += step;
}
_$jscoverage['normalize.js'][176]++;
return result;
}), "for_each": (function (arr, iterator) {
_$jscoverage['normalize.js'][189]++;
if (arr.for_each) {
_$jscoverage['normalize.js'][190]++;
return arr.for_each(iterator);
}
_$jscoverage['normalize.js'][193]++;
for (var i = 0; i < arr.length; i += 1) {
_$jscoverage['normalize.js'][194]++;
iterator(arr[i], i, arr);
}
}), "pluck": (function (collection, property) {
_$jscoverage['normalize.js'][207]++;
var result = [];
_$jscoverage['normalize.js'][209]++;
_.for_each(collection, (function (value) {
_$jscoverage['normalize.js'][210]++;
result.push(value[property]);
}));
_$jscoverage['normalize.js'][213]++;
return result;
}), "size": (function (collection) {
_$jscoverage['normalize.js'][223]++;
var length = collection? collection.length: 0;
_$jscoverage['normalize.js'][224]++;
return typeof length == "number"? length: _.keys(collection).length;
}), "is_string": (function (value) {
_$jscoverage['normalize.js'][234]++;
return toString.call(value) == stringClass;
}), "is_array": (function (item) {
_$jscoverage['normalize.js'][245]++;
if (Object.prototype.toString.call(item) === "[object Array]") {
_$jscoverage['normalize.js'][246]++;
return true;
}
_$jscoverage['normalize.js'][249]++;
return false;
}), "compose": (function () {
_$jscoverage['normalize.js'][263]++;
var funcs = arguments;
_$jscoverage['normalize.js'][265]++;
return (function () {
_$jscoverage['normalize.js'][266]++;
var args = arguments, length = funcs.length;
_$jscoverage['normalize.js'][269]++;
while (length--) {
_$jscoverage['normalize.js'][270]++;
args = [funcs[length].apply(this, args)];
}
_$jscoverage['normalize.js'][272]++;
return args[0];
});
}), "sorted_index": (function (array, value, callback, thisArg) {
_$jscoverage['normalize.js'][289]++;
var low = 0, high = array? array.length: low;
_$jscoverage['normalize.js'][293]++;
callback = callback? app.create_callback(callback, thisArg): identity;
_$jscoverage['normalize.js'][294]++;
value = callback(value);
_$jscoverage['normalize.js'][295]++;
while (low < high) {
_$jscoverage['normalize.js'][296]++;
var mid = (low + high) >>> 1;
_$jscoverage['normalize.js'][297]++;
callback(array[mid]) < value? low = mid + 1: high = mid;
}
_$jscoverage['normalize.js'][301]++;
return low;
}), "indexOf": (function (array, value, fromIndex) {
_$jscoverage['normalize.js'][313]++;
var index = -1, length = array? array.length: 0;
_$jscoverage['normalize.js'][316]++;
if (typeof fromIndex == "number") {
_$jscoverage['normalize.js'][317]++;
index = (fromIndex < 0? Math.max(0, length + fromIndex): fromIndex || 0) - 1;
}
else {
_$jscoverage['normalize.js'][318]++;
if (fromIndex) {
_$jscoverage['normalize.js'][319]++;
index = _.sorted_index(array, value);
_$jscoverage['normalize.js'][320]++;
return array[index] === value? index: -1;
}
}
_$jscoverage['normalize.js'][322]++;
while (++index < length) {
_$jscoverage['normalize.js'][323]++;
if (array[index] === value) {
_$jscoverage['normalize.js'][324]++;
return index;
}
}
_$jscoverage['normalize.js'][327]++;
return -1;
}), "map": (function (collection, callback, thisArg) {
_$jscoverage['normalize.js'][343]++;
var index = -1, length = collection? collection.length: 0, result = Array(typeof length == "number"? length: 0);
_$jscoverage['normalize.js'][347]++;
callback = app.create_callback(callback, thisArg);
_$jscoverage['normalize.js'][349]++;
if (_.is_array(collection)) {
_$jscoverage['normalize.js'][351]++;
while (++index < length) {
_$jscoverage['normalize.js'][352]++;
result[index] = callback(collection[index], index, collection);
}
}
else {
_$jscoverage['normalize.js'][357]++;
_.for_each(collection, (function (value, key, collection) {
_$jscoverage['normalize.js'][358]++;
result[++index] = callback(value, key, collection);
}));
}
_$jscoverage['normalize.js'][362]++;
return result;
}), "reduce": (function (arr, iterator, memo) {
_$jscoverage['normalize.js'][373]++;
if (arr.reduce) {
_$jscoverage['normalize.js'][374]++;
return arr.reduce(iterator, memo);
}
_$jscoverage['normalize.js'][377]++;
_.for_each(arr, (function (x, i, a) {
_$jscoverage['normalize.js'][378]++;
memo = iterator(memo, x, i, a);
}));
_$jscoverage['normalize.js'][381]++;
return memo;
}), "keys": (function (obj) {
_$jscoverage['normalize.js'][392]++;
if (Object.keys) {
_$jscoverage['normalize.js'][393]++;
return Object.keys(obj);
}
_$jscoverage['normalize.js'][396]++;
var keys = [];
_$jscoverage['normalize.js'][397]++;
for (var k in obj) {
_$jscoverage['normalize.js'][398]++;
if (obj.hasOwnProperty(k)) {
_$jscoverage['normalize.js'][399]++;
keys.push(k);
}
}
_$jscoverage['normalize.js'][403]++;
return keys;
}), "json_path": (function (obj, expr, arg) {
_$jscoverage['normalize.js'][416]++;
var P = {resultType: arg && arg.resultType || "VALUE", result: [], normalize: (function (expr) {
_$jscoverage['normalize.js'][420]++;
var subx = [];
_$jscoverage['normalize.js'][421]++;
return expr.replace(/[\['](\??\(.*?\))[\]']/g, (function ($0, $1) {
_$jscoverage['normalize.js'][421]++;
return "[#" + (subx.push($1) - 1) + "]";
})).replace(/'?\.'?|\['?/g, ";").replace(/;;;|;;/g, ";..;").replace(/;$|'?\]|'$/g, "").replace(/#([0-9]+)/g, (function ($0, $1) {
_$jscoverage['normalize.js'][425]++;
return subx[$1];
}));
}), asPath: (function (path) {
_$jscoverage['normalize.js'][428]++;
var x = path.split(";"), p = "$";
_$jscoverage['normalize.js'][429]++;
for (var i = 1, n = x.length; i < n; i++) {
_$jscoverage['normalize.js'][430]++;
p += /^[0-9*]+$/.test(x[i])? ("[" + x[i] + "]"): ("['" + x[i] + "']");
}
_$jscoverage['normalize.js'][431]++;
return p;
}), store: (function (p, v) {
_$jscoverage['normalize.js'][434]++;
if (p) {
_$jscoverage['normalize.js'][434]++;
P.result[P.result.length] = P.resultType == "PATH"? P.asPath(p): v;
}
_$jscoverage['normalize.js'][435]++;
return ! ! p;
}), trace: (function (expr, val, path) {
_$jscoverage['normalize.js'][438]++;
if (expr) {
_$jscoverage['normalize.js'][439]++;
var x = expr.split(";"), loc = x.shift();
_$jscoverage['normalize.js'][440]++;
x = x.join(";");
_$jscoverage['normalize.js'][441]++;
if (val && val.hasOwnProperty(loc)) {
_$jscoverage['normalize.js'][442]++;
P.trace(x, val[loc], path + ";" + loc);
}
else {
_$jscoverage['normalize.js'][443]++;
if (loc === "*") {
_$jscoverage['normalize.js'][444]++;
P.walk(loc, x, val, path, (function (m, l, x, v, p) {
_$jscoverage['normalize.js'][444]++;
P.trace(m + ";" + x, v, p);
}));
}
else {
_$jscoverage['normalize.js'][445]++;
if (loc === "..") {
_$jscoverage['normalize.js'][446]++;
P.trace(x, val, path);
_$jscoverage['normalize.js'][447]++;
P.walk(loc, x, val, path, (function (m, l, x, v, p) {
_$jscoverage['normalize.js'][447]++;
typeof v[m] === "object" && P.trace("..;" + x, v[m], p + ";" + m);
}));
}
else {
_$jscoverage['normalize.js'][449]++;
if (/,/.test(loc)) {
_$jscoverage['normalize.js'][450]++;
for (var s = loc.split(/'?,'?/), i = 0, n = s.length; i < n; i++) {
_$jscoverage['normalize.js'][451]++;
P.trace(s[i] + ";" + x, val, path);
}
}
else {
_$jscoverage['normalize.js'][453]++;
if (/^\(.*?\)$/.test(loc)) {
_$jscoverage['normalize.js'][454]++;
P.trace(P.eval(loc, val, path.substr(path.lastIndexOf(";") + 1)) + ";" + x, val, path);
}
else {
_$jscoverage['normalize.js'][455]++;
if (/^\?\(.*?\)$/.test(loc)) {
_$jscoverage['normalize.js'][456]++;
P.walk(loc, x, val, path, (function (m, l, x, v, p) {
_$jscoverage['normalize.js'][456]++;
if (P.eval(l.replace(/^\?\((.*?)\)$/, "$1"), v[m], m)) {
_$jscoverage['normalize.js'][456]++;
P.trace(m + ";" + x, v, p);
}
}));
}
else {
_$jscoverage['normalize.js'][457]++;
if (/^(-?[0-9]*):(-?[0-9]*):?([0-9]*)$/.test(loc)) {
_$jscoverage['normalize.js'][458]++;
P.slice(loc, x, val, path);
}
}
}
}
}
}
}
}
else {
_$jscoverage['normalize.js'][461]++;
P.store(path, val);
}
}), walk: (function (loc, expr, val, path, f) {
_$jscoverage['normalize.js'][464]++;
if (val instanceof Array) {
_$jscoverage['normalize.js'][465]++;
for (var i = 0, n = val.length; i < n; i++) {
_$jscoverage['normalize.js'][466]++;
if (i in val) {
_$jscoverage['normalize.js'][467]++;
f(i, loc, expr, val, path);
}
}
}
else {
_$jscoverage['normalize.js'][469]++;
if (typeof val === "object") {
_$jscoverage['normalize.js'][470]++;
for (var m in val) {
_$jscoverage['normalize.js'][471]++;
if (val.hasOwnProperty(m)) {
_$jscoverage['normalize.js'][472]++;
f(m, loc, expr, val, path);
}
}
}
}
}), slice: (function (loc, expr, val, path) {
_$jscoverage['normalize.js'][476]++;
if (val instanceof Array) {
_$jscoverage['normalize.js'][477]++;
var len = val.length, start = 0, end = len, step = 1;
_$jscoverage['normalize.js'][478]++;
loc.replace(/^(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$/g, (function ($0, $1, $2, $3) {
_$jscoverage['normalize.js'][478]++;
start = parseInt($1 || start);
_$jscoverage['normalize.js'][478]++;
end = parseInt($2 || end);
_$jscoverage['normalize.js'][478]++;
step = parseInt($3 || step);
}));
_$jscoverage['normalize.js'][479]++;
start = (start < 0)? Math.max(0, start + len): Math.min(len, start);
_$jscoverage['normalize.js'][480]++;
end = (end < 0)? Math.max(0, end + len): Math.min(len, end);
_$jscoverage['normalize.js'][481]++;
for (var i = start; i < end; i += step) {
_$jscoverage['normalize.js'][482]++;
P.trace(i + ";" + expr, val, path);
}
}
}), eval: (function (x, _v, _vname) {
_$jscoverage['normalize.js'][486]++;
try {
_$jscoverage['normalize.js'][486]++;
return $ && _v && eval(x.replace(/@/g, "_v"));
}
catch (e) {
_$jscoverage['normalize.js'][487]++;
throw new SyntaxError("json_path: " + e.message + ": " + x.replace(/@/g, "_v").replace(/\^/g, "_a"));
}
})};
_$jscoverage['normalize.js'][491]++;
var $ = obj;
_$jscoverage['normalize.js'][493]++;
if (expr && obj && (P.resultType == "VALUE" || P.resultType == "PATH")) {
_$jscoverage['normalize.js'][494]++;
P.trace(P.normalize(expr).replace(/^\$;/, ""), obj, "$");
_$jscoverage['normalize.js'][495]++;
return P.result.length? P.result: false;
}
}), "array_to_hash_tables": (function (array) {
_$jscoverage['normalize.js'][509]++;
var keys = [];
_$jscoverage['normalize.js'][510]++;
var values = [];
_$jscoverage['normalize.js'][512]++;
_.forOwn(array, (function (num, key) {
_$jscoverage['normalize.js'][513]++;
keys.push(_.keys(num));
_$jscoverage['normalize.js'][514]++;
values.push(_.first(_.values(num)));
}));
_$jscoverage['normalize.js'][517]++;
return _.object(keys, values);
}), "extend": (function (target) {
_$jscoverage['normalize.js'][527]++;
target = target? target: {};
_$jscoverage['normalize.js'][529]++;
for (var i = 1; i < arguments.length; i++) {
_$jscoverage['normalize.js'][531]++;
var source = arguments[i];
_$jscoverage['normalize.js'][532]++;
var keys = Object.keys(source);
_$jscoverage['normalize.js'][534]++;
for (var j = 0; j < keys.length; j++) {
_$jscoverage['normalize.js'][535]++;
var name = keys[j];
_$jscoverage['normalize.js'][537]++;
target[name] = source[name];
}
}
_$jscoverage['normalize.js'][543]++;
return target;
})};
_$jscoverage['normalize.js'][553]++;
var _process = {"debug": (function (object, args) {
_$jscoverage['normalize.js'][561]++;
app.debug = true;
_$jscoverage['normalize.js'][562]++;
return object;
}), "dot_notation": (function (object, args) {
_$jscoverage['normalize.js'][573]++;
return object;
}), "get_by_path": (function (object, path) {
_$jscoverage['normalize.js'][584]++;
function index(obj, i) {
_$jscoverage['normalize.js'][585]++;
return obj[i];
}
_$jscoverage['normalize.js'][588]++;
try {
_$jscoverage['normalize.js'][590]++;
object = path.split(".").reduce(index, object);
_$jscoverage['normalize.js'][592]++;
return object;
}
catch (error) {
_$jscoverage['normalize.js'][594]++;
debug(error);
}
_$jscoverage['normalize.js'][596]++;
return object;
}), "batch_items": (function (json, args, parsed) {
_$jscoverage['normalize.js'][605]++;
debug("parse()");
}), "parse": (function (json, args, parsed) {
_$jscoverage['normalize.js'][615]++;
debug("parse()");
_$jscoverage['normalize.js'][617]++;
try {
_$jscoverage['normalize.js'][617]++;
parsed = JSON.parse(json);
}
catch (error) {
_$jscoverage['normalize.js'][617]++;
parsed = false;
}
_$jscoverage['normalize.js'][619]++;
return (typeof parsed === "object"? parsed: json);
}), "clean_object": (function (object, args) {
_$jscoverage['normalize.js'][628]++;
debug("clean()");
_$jscoverage['normalize.js'][630]++;
for (i in object) {
_$jscoverage['normalize.js'][632]++;
if (! object[i] && typeof object[i] != "boolean") {
_$jscoverage['normalize.js'][633]++;
delete object[i];
}
_$jscoverage['normalize.js'][636]++;
if (object[i] === null) {
_$jscoverage['normalize.js'][637]++;
delete object[i];
}
_$jscoverage['normalize.js'][640]++;
if (typeof object[i] === "object") {
_$jscoverage['normalize.js'][642]++;
if (Object.keys(object[i]).length) {
_$jscoverage['normalize.js'][643]++;
object[i] = _process.clean_object(object[i], args);
}
else {
_$jscoverage['normalize.js'][645]++;
delete object[i];
}
}
}
_$jscoverage['normalize.js'][652]++;
return object;
}), "normalize": (function (object, args) {
_$jscoverage['normalize.js'][661]++;
debug("normalize()");
_$jscoverage['normalize.js'][663]++;
object.__normalized = true;
_$jscoverage['normalize.js'][664]++;
return object;
}), "nestify": (function (object, args) {
_$jscoverage['normalize.js'][673]++;
debug("make_array()");
_$jscoverage['normalize.js'][675]++;
object.__nestify = true;
_$jscoverage['normalize.js'][676]++;
return object;
}), "objectify": (function (object, args) {
_$jscoverage['normalize.js'][685]++;
debug("make_object()");
_$jscoverage['normalize.js'][688]++;
return object;
}), "data_types": (function (object, args) {
_$jscoverage['normalize.js'][697]++;
debug("data_types()");
_$jscoverage['normalize.js'][700]++;
return object;
}), "key_map": (function (object, map) {
_$jscoverage['normalize.js'][711]++;
map = map? map: {};
_$jscoverage['normalize.js'][713]++;
if (! _.isEmpty(map)) {
_$jscoverage['normalize.js'][714]++;
return object;
}
_$jscoverage['normalize.js'][717]++;
var _new = {};
_$jscoverage['normalize.js'][719]++;
_.each(object, (function (value, key) {
_$jscoverage['normalize.js'][721]++;
if (map[key]) {
_$jscoverage['normalize.js'][722]++;
_new[key] = value;
}
else {
_$jscoverage['normalize.js'][724]++;
_new[key] = value;
}
}));
_$jscoverage['normalize.js'][729]++;
return _new;
}), "group_by_key": (function (object, args) {
_$jscoverage['normalize.js'][740]++;
args = _.extend(args, {"min": 5});
_$jscoverage['normalize.js'][745]++;
var _temp = ["list_agent_", "list_office_", "alt_agent_", "alt_office_"];
_$jscoverage['normalize.js'][747]++;
var _keys = _.keys(object);
_$jscoverage['normalize.js'][748]++;
var _grouped = {};
_$jscoverage['normalize.js'][750]++;
for (key in object) {
_$jscoverage['normalize.js'][752]++;
for (i in _temp) {
_$jscoverage['normalize.js'][754]++;
var _group_key = _temp[i];
_$jscoverage['normalize.js'][755]++;
var _clean_group_key = _group_key.substring(0, _group_key.length - 1);
_$jscoverage['normalize.js'][757]++;
if (key.toLowerCase().indexOf(_temp[i]) >= 0) {
_$jscoverage['normalize.js'][759]++;
_grouped[_clean_group_key] = _grouped[_clean_group_key]? _grouped[_clean_group_key]: {};
_$jscoverage['normalize.js'][760]++;
_grouped[_clean_group_key][key.replace(_group_key, "")] = object[key];
_$jscoverage['normalize.js'][762]++;
delete object[key];
}
}
}
_$jscoverage['normalize.js'][768]++;
;
_$jscoverage['normalize.js'][770]++;
return _.extend(object, _grouped);
})};
_$jscoverage['normalize.js'][781]++;
var _string = {"wordize": (function (text) {
_$jscoverage['normalize.js'][789]++;
text = _string.dasherize(text);
_$jscoverage['normalize.js'][791]++;
text = text.replace("-", " ");
_$jscoverage['normalize.js'][793]++;
text = _string.capitalize(text);
_$jscoverage['normalize.js'][795]++;
return text;
}), "capitalize": (function (str) {
_$jscoverage['normalize.js'][806]++;
return str.charAt(0).toUpperCase() + str.substring(1).toLowerCase();
}), "dasherize": (function (str) {
_$jscoverage['normalize.js'][816]++;
return str.replace(/\s|_/g, "-");
}), "ordinalize": (function (str) {
_$jscoverage['normalize.js'][826]++;
var isTeen, r, n;
_$jscoverage['normalize.js'][827]++;
n = parseInt(str, 10) % 100;
_$jscoverage['normalize.js'][828]++;
isTeen = {11: true, 12: true, 13: true}[n];
_$jscoverage['normalize.js'][829]++;
if (isTeen) {
_$jscoverage['normalize.js'][829]++;
return str + "th";
}
_$jscoverage['normalize.js'][829]++;
;
_$jscoverage['normalize.js'][830]++;
n = parseInt(str, 10) % 10;
_$jscoverage['normalize.js'][831]++;
switch (n) {
case 1:
_$jscoverage['normalize.js'][833]++;
r = str + "st";
_$jscoverage['normalize.js'][834]++;
break;
case 2:
_$jscoverage['normalize.js'][836]++;
r = str + "nd";
_$jscoverage['normalize.js'][837]++;
break;
case 3:
_$jscoverage['normalize.js'][839]++;
r = str + "rd";
_$jscoverage['normalize.js'][840]++;
break;
default:
_$jscoverage['normalize.js'][842]++;
r = str + "th";
}
_$jscoverage['normalize.js'][844]++;
return r;
}), "pluralize": (function (str) {
_$jscoverage['normalize.js'][855]++;
var uncountable = _string.uncountableWords[str.toLowerCase()];
_$jscoverage['normalize.js'][857]++;
if (uncountable) {
_$jscoverage['normalize.js'][858]++;
return str;
}
_$jscoverage['normalize.js'][859]++;
;
_$jscoverage['normalize.js'][861]++;
var rules = [[new RegExp("(m)an$", "gi"), "$1en"], [new RegExp("(pe)rson$", "gi"), "$1ople"], [new RegExp("(child)$", "gi"), "$1ren"], [new RegExp("^(ox)$", "gi"), "$1en"], [new RegExp("(ax|test)is$", "gi"), "$1es"], [new RegExp("(octop|vir)us$", "gi"), "$1i"], [new RegExp("(alias|status)$", "gi"), "$1es"], [new RegExp("(bu)s$", "gi"), "$1ses"], [new RegExp("(buffal|tomat|potat)o$", "gi"), "$1oes"], [new RegExp("([ti])um$", "gi"), "$1a"], [new RegExp("sis$", "gi"), "ses"], [new RegExp("(?:([^f])fe|([lr])f)$", "gi"), "$1$2ves"], [new RegExp("(hive)$", "gi"), "$1s"], [new RegExp("([^aeiouy]|qu)y$", "gi"), "$1ies"], [new RegExp("(matr|vert|ind)ix|ex$", "gi"), "$1ices"], [new RegExp("(x|ch|ss|sh)$", "gi"), "$1es"], [new RegExp("([m|l])ouse$", "gi"), "$1ice"], [new RegExp("(quiz)$", "gi"), "$1zes"], [new RegExp("s$", "gi"), "s"], [new RegExp("$", "gi"), "s"]];
_$jscoverage['normalize.js'][884]++;
for (var i = 0, l = rules.length; i < l; i++) {
_$jscoverage['normalize.js'][885]++;
if (str.match(rules[i][0])) {
_$jscoverage['normalize.js'][886]++;
str = str.replace(rules[i][0], rules[i][1]);
_$jscoverage['normalize.js'][887]++;
break;
}
_$jscoverage['normalize.js'][888]++;
;
}
_$jscoverage['normalize.js'][891]++;
return str;
}), "singularize": (function (str) {
_$jscoverage['normalize.js'][902]++;
var uncountable = _string.uncountableWords[str.toLowerCase()];
_$jscoverage['normalize.js'][904]++;
if (uncountable) {
_$jscoverage['normalize.js'][905]++;
return str;
}
_$jscoverage['normalize.js'][906]++;
;
_$jscoverage['normalize.js'][908]++;
var rules = [[new RegExp("(m)en$", "gi"), "$1an"], [new RegExp("(pe)ople$", "gi"), "$1rson"], [new RegExp("(child)ren$", "gi"), "$1"], [new RegExp("([ti])a$", "gi"), "$1um"], [new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$", "gi"), "$1$2sis"], [new RegExp("(hive)s$", "gi"), "$1"], [new RegExp("(tive)s$", "gi"), "$1"], [new RegExp("(curve)s$", "gi"), "$1"], [new RegExp("([lr])ves$", "gi"), "$1f"], [new RegExp("([^fo])ves$", "gi"), "$1fe"], [new RegExp("([^aeiouy]|qu)ies$", "gi"), "$1y"], [new RegExp("(s)eries$", "gi"), "$1eries"], [new RegExp("(m)ovies$", "gi"), "$1ovie"], [new RegExp("(x|ch|ss|sh)es$", "gi"), "$1"], [new RegExp("([m|l])ice$", "gi"), "$1ouse"], [new RegExp("(bus)es$", "gi"), "$1"], [new RegExp("(o)es$", "gi"), "$1"], [new RegExp("(shoe)s$", "gi"), "$1"], [new RegExp("(cris|ax|test)es$", "gi"), "$1is"], [new RegExp("(octop|vir)i$", "gi"), "$1us"], [new RegExp("(alias|status)es$", "gi"), "$1"], [new RegExp("^(ox)en", "gi"), "$1"], [new RegExp("(vert|ind)ices$", "gi"), "$1ex"], [new RegExp("(matr)ices$", "gi"), "$1ix"], [new RegExp("(quiz)zes$", "gi"), "$1"], [new RegExp("s$", "gi"), ""]];
_$jscoverage['normalize.js'][937]++;
for (var i = 0, l = rules.length; i < l; i++) {
_$jscoverage['normalize.js'][938]++;
if (str.match(rules[i][0])) {
_$jscoverage['normalize.js'][939]++;
str = str.replace(rules[i][0], rules[i][1]);
_$jscoverage['normalize.js'][940]++;
break;
}
_$jscoverage['normalize.js'][941]++;
;
}
_$jscoverage['normalize.js'][944]++;
return str;
}), "strip": (function (str) {
_$jscoverage['normalize.js'][954]++;
return str.replace(/^\s+/, "").replace(/\s+$/, "");
}), "underscore": (function (str) {
_$jscoverage['normalize.js'][964]++;
return str.replace(/::/g, "/").replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z\d])([A-Z])/g, "$1_$2").replace(/-/g, "_").toLowerCase();
}), "uncountable": (function () {
_$jscoverage['normalize.js'][975]++;
var uncountable = {"equipment": true, "information": true, "rice": true, "money": true, "species": true, "series": true, "fish": true, "sheep": true, "moose": true, "deer": true, "news": true};
_$jscoverage['normalize.js'][989]++;
for (var i = 0, l = arguments.length; i < l; i++) {
_$jscoverage['normalize.js'][990]++;
_string.uncountable[arguments[i]] = true;
}
_$jscoverage['normalize.js'][993]++;
return _string;
})};
_$jscoverage['normalize.js'][1003]++;
var log = (function () {
_$jscoverage['normalize.js'][1005]++;
switch (true) {
case (arguments[0] instanceof Error):
_$jscoverage['normalize.js'][1008]++;
console.error(arguments[0]);
_$jscoverage['normalize.js'][1009]++;
break;
default:
_$jscoverage['normalize.js'][1012]++;
console.log.apply(console, [" \u001b[36m", "Normalize"].concat(arguments).concat(["\u001b[0m"]));
_$jscoverage['normalize.js'][1013]++;
break;
}
_$jscoverage['normalize.js'][1017]++;
return arguments[0]? arguments[0]: null;
});
_$jscoverage['normalize.js'][1025]++;
var debug = (function () {
_$jscoverage['normalize.js'][1026]++;
return (app.debug || arguments[0] instanceof Error? log.apply(this, arguments): arguments);
});
_$jscoverage['normalize.js'][1036]++;
var init = (function (target, arguments) {
_$jscoverage['normalize.js'][1038]++;
_.extend(app, {"debug": false, "log": [], "stack": ["parse"]}, app);
_$jscoverage['normalize.js'][1044]++;
for (var i = 1, l = arguments.length; i < l; i++) {
_$jscoverage['normalize.js'][1045]++;
app.stack.push(arguments[i]);
}
_$jscoverage['normalize.js'][1046]++;
;
_$jscoverage['normalize.js'][1048]++;
for (i in app.stack) {
_$jscoverage['normalize.js'][1050]++;
if (typeof app.stack[i] === "string") {
_$jscoverage['normalize.js'][1051]++;
var caller = {"function": app.stack[i], "args": {}};
}
else {
_$jscoverage['normalize.js'][1053]++;
var caller = {"function": app.stack[i][0], "args": app.stack[i][1]};
}
_$jscoverage['normalize.js'][1056]++;
this.target = target = (typeof _process[caller["function"]] === "function"? _process[caller["function"]].apply(this, [target, caller.args]): target);
}
_$jscoverage['normalize.js'][1060]++;
return target;
});
_$jscoverage['normalize.js'][1064]++;
return init(target, arguments);
});
_$jscoverage['normalize.js'].source = ["/**"," * Object Normalization / JSON Object"," * ============================+==============="," *"," * Transformation and normalization of a JSON Document, Nested Array, XML Document, or Two Dimensional Table."," *"," * = Conversions = Can be chained."," * - Primarily for working with Associative Arrays, e.g. JSON Hash , being able to transform objects between hashtables and arrays"," * - Strandard transofmration between XML and JSON, using the @ prefix for attributes, etc."," * - Associative Array / Object conversion to Nested Array Format, and reverals (e.g. Knockout.js Models)"," *"," * = Structure Remapping ="," * - Handle Object Transformations based on a Schema with advanced mapping ruels similar to XPath capabilities"," *"," * = Structure Normalization ="," * - Key Pattern Grouping - Convert 2D objects into nested objects based on patterns, such as common prefix."," * - Numbered Key Decoupling - Created nested elements from numbered keys. e.g. bedroom1, bedroom2, => { 'bedrooms': [ 'first value', 'second', etc. ] }"," * - Key Normalization - Convert to standard underscore format: de-camel, lowercase, etc."," *"," * = Value Conversions ="," * - True Data Type - Ensure values have their intended data formats, e.g. converting \"5\" to 5, \"true\" to true, etc."," * - Nullification - Apply rules to convert values between \"undefined\", \"null\", \"false\", etc."," * - Filtering & Stripping - Removing empty fields and/or empty objects and arrays. Whitespace removal."," * - Tokenize - Value tokenization. e.g. \"my dog hasn't any flees\" => [ 'my', 'dog', 'has', 'n\\'t', 'any', 'flees', '.' ]"," *"," * = Semantic Conversions = Can be chained."," * - Singularize / Pluralize -"," * - Change Tense - Future, Present"," * - Ordinalize -"," * - Deordinalize -"," * - Wordize - Convert to printable format. e.g. \"my_homes\" => \"My Home\""," * - Stem - Get stem of a word. e.g. \"words\" => \"word\""," *"," * = Other / Specialized ="," * - Geolocation - Conversion of an address into coordinates."," * - Categorical Classification"," * - Phoenetics"," *"," * @version 0.1.0"," * @author potanin@UD"," */","module.exports = function( target ) {",""," var app = {",""," /**"," * Produces an iteration callback bound to an optional `thisArg`. If `func` is"," * a property name, the callback will return the property value for a given element."," *"," */"," 'create_callback': function(func, thisArg) {",""," if (typeof func != 'function') {"," return function(object) {"," return object[func];"," };"," }",""," if (thisArg !== undefined) {"," return function(value, index, object) {"," return func.call(thisArg, value, index, object);"," };"," }",""," return func;",""," }",""," }",""," /**"," * Non-chainable Utility Functions"," *"," * @since 0.2.0"," */"," var _ = {","",""," /**"," * Creates an object composed of keys returned from running each element of"," * `collection` through a `callback`. The corresponding value of each key is an"," * array of elements passed to `callback` that returned the key. The `callback`"," * is bound to `thisArg` and invoked with three arguments; (value, index|key, collection)."," * The `callback` argument may also be the name of a property to group by (e.g. 'length')."," *"," * @source Lo-Dash v0.9.2"," */"," 'group_by': function(collection, callback, thisArg) {"," var result = {};"," callback = app.create_callback(callback, thisArg);",""," _.for_each(collection, function(value, key, collection) {"," key = callback(value, key, collection);"," (hasOwnProperty.call(result, key) ? result[key] : result[key] = []).push(value);"," });",""," return result;"," },","",""," /**"," * Creates an object composed from arrays of `keys` and `values`. Pass either"," * a single two dimensional array, i.e. `[[key1, value1], [key2, value2]]`, or"," * two arrays, one of `keys` and one of corresponding `values`."," *"," * _.object(['moe', 'larry', 'curly'], [30, 40, 50]); // => { 'moe': 30, 'larry': 40, 'curly': 50 }"," *"," * @source Lo-Dash v0.9.2"," */"," 'object': function(keys, values) {",""," var index = -1,"," length = keys ? keys.length : 0,"," result = {};",""," while (++index < length) {",""," var key = keys[index];"," if (values) {"," result[key] = values[index];"," } else {"," result[key[0]] = key[1];"," }"," }",""," return result;"," },","",""," /**"," * Converts the `collection`, to an array."," *"," * (function() { return _.to_array(arguments).slice(1); })(1, 2, 3, 4); // => [2, 3, 4]"," *"," * @source Lo-Dash v0.9.2"," */"," 'to_array': function(collection) {",""," var noArraySliceOnStrings = slice.call('x')[0] != 'x';",""," if (collection && typeof collection.length == 'number') {"," return (noArraySliceOnStrings ? isString(collection) : typeof collection == 'string')"," ? collection.split('')"," : slice.call(collection);"," }"," return values(collection);"," },","",""," /**"," * Creates an array of numbers (positive and/or negative) progressing from"," * `start` up to but not including `stop`. This method is a port of Python's"," * `range()` function. See http://docs.python.org/library/functions.html#range."," *"," * @source Lo-Dash v0.9.2"," */"," 'range': function(start, end, step) {"," start = +start || 0;"," step = +step || 1;",""," if (end == null) {"," end = start;"," start = 0;"," }",""," // use `Array(length)` so V8 will avoid the slower \"dictionary\" mode"," // http://www.youtube.com/watch?v=XAqIpGU8ZZk#t=16m27s"," var index = -1,"," length = Math.max(0, ceil((end - start) / step)),"," result = Array(length);",""," while (++index < length) {"," result[index] = start;"," start += step;"," }"," return result;"," },","",""," /**"," * Array Iterator"," *"," * @lodash forEach requires createIterator() which is too robust to port."," * @source async"," * @since 0.2.0"," */"," 'for_each': function( arr, iterator ) {",""," if( arr.for_each ) {"," return arr.for_each(iterator);"," }",""," for (var i = 0; i < arr.length; i += 1) {"," iterator(arr[i], i, arr);"," }",""," },","",""," /**"," * Retrieves the value of a specified property from all elements in"," * the `collection`."," *"," * @source Lo-Dash v0.9.2"," */"," 'pluck': function(collection, property) {"," var result = [];",""," _.for_each(collection, function(value) {"," result.push(value[property]);"," });",""," return result;"," },",""," /**"," * Gets the size of the `collection` by returning `collection.length` for arrays"," * and array-like objects or the number of own enumerable properties for objects."," *"," * @source Lo-Dash v0.9.2"," */"," 'size': function(collection) {"," var length = collection ? collection.length : 0;"," return typeof length == 'number' ? length : _.keys(collection).length;"," },",""," /**"," * Checks if `value` is a string."," *"," *"," * @source Lo-Dash v0.9.2"," */"," 'is_string': function(value) {"," return toString.call(value) == stringClass;"," },","",""," /**"," *"," *"," * @source http://stackoverflow.com/questions/4775722/javascript-check-if-object-is-array"," */"," 'is_array': function( item ) {",""," if( Object.prototype.toString.call( item ) === '[object Array]' ) {"," return true;"," }",""," return false;",""," },","",""," /**"," * Creates a function that is the composition of the passed functions,"," * where each function consumes the return value of the function that follows."," * In math terms, composing the functions `f()`, `g()`, and `h()` produces `f(g(h()))`."," * Each function is executed with the `this` binding of the composed function."," *"," * @source Lo-Dash v0.9.2"," */"," 'compose': function() {"," var funcs = arguments;",""," return function() {"," var args = arguments,"," length = funcs.length;",""," while (length--) {"," args = [funcs[length].apply(this, args)];"," }"," return args[0];"," };",""," },","",""," /**"," * Uses a binary search to determine the smallest index at which the `value`"," * should be inserted into `array` in order to maintain the sort order of the"," * sorted `array`. If `callback` is passed, it will be executed for `value` and"," * each element in `array` to compute their sort ranking. The `callback` is"," * bound to `thisArg` and invoked with one argument; (value). The `callback`"," * argument may also be the name of a property to order by."," *"," * @source Lo-Dash v0.9.2"," */"," 'sorted_index': function(array, value, callback, thisArg) {"," var low = 0,"," high = array ? array.length : low;",""," // explicitly reference `identity` for better engine inlining"," callback = callback ? app.create_callback(callback, thisArg) : identity;"," value = callback(value);"," while (low < high) {"," var mid = (low + high) >>> 1;"," callback(array[mid]) < value"," ? low = mid + 1"," : high = mid;"," }"," return low;"," },","",""," /**"," * Gets the index at which the first occurrence of `value` is found using"," * strict equality for comparisons, i.e. `===`. If the `array` is already"," * sorted, passing `true` for `fromIndex` will run a faster binary search."," *"," * @source Lo-Dash v0.9.2"," */"," 'indexOf': function(array, value, fromIndex) {"," var index = -1,"," length = array ? array.length : 0;",""," if (typeof fromIndex == 'number') {"," index = (fromIndex < 0 ? Math.max(0, length + fromIndex) : fromIndex || 0) - 1;"," } else if (fromIndex) {"," index = _.sorted_index(array, value);"," return array[index] === value ? index : -1;"," }"," while (++index < length) {"," if (array[index] === value) {"," return index;"," }"," }"," return -1;"," },","",""," /**"," * Creates an array of values by running each element in the `collection`"," * through a `callback`. The `callback` is bound to `thisArg` and invoked with"," * three arguments; (value, index|key, collection)."," *"," * _.map([1, 2, 3], function(num) { return num * 3; }); // => [3, 6, 9]"," *"," * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); // => [3, 6, 9] (order is not guaranteed)"," *"," * @source Lo-Dash v0.9.2"," */"," 'map': function(collection, callback, thisArg) {"," var index = -1,"," length = collection ? collection.length : 0,"," result = Array(typeof length == 'number' ? length : 0);",""," callback = app.create_callback(callback, thisArg);",""," if(_.is_array(collection)) {",""," while (++index < length) {"," result[index] = callback(collection[index], index, collection);"," }",""," } else {",""," _.for_each(collection, function(value, key, collection) {"," result[++index] = callback(value, key, collection);"," });",""," }"," return result;"," },","",""," /**"," *"," * @source Async"," * @since 0.2.0"," */"," 'reduce': function( arr, iterator, memo) {",""," if (arr.reduce) {"," return arr.reduce(iterator, memo);"," }",""," _.for_each(arr, function( x, i, a) {"," memo = iterator(memo, x, i, a);"," });",""," return memo;"," },","",""," /**"," *"," *"," * @since 0.2.0"," */"," 'keys': function( obj) {",""," if (Object.keys) {"," return Object.keys(obj);"," }",""," var keys = [];"," for (var k in obj) {"," if (obj.hasOwnProperty(k)) {"," keys.push(k);"," }"," }",""," return keys;",""," },","",""," /**"," * Not Yet Tested at All"," *"," * @source json_path 0.8.0 - XPath for JSON"," * @since 0.2.0"," */"," 'json_path': function(obj, expr, arg) {",""," var P = {"," resultType: arg && arg.resultType || \"VALUE\","," result: [],"," normalize: function(expr) {"," var subx = [];"," return expr.replace(/[\\['](\\??\\(.*?\\))[\\]']/g, function($0,$1){return \"[#\"+(subx.push($1)-1)+\"]\";})"," .replace(/'?\\.'?|\\['?/g, \";\")"," .replace(/;;;|;;/g, \";..;\")"," .replace(/;$|'?\\]|'$/g, \"\")"," .replace(/#([0-9]+)/g, function($0,$1){return subx[$1];});"," },"," asPath: function(path) {"," var x = path.split(\";\"), p = \"$\";"," for (var i=1,n=x.length; i<n; i++)"," p += /^[0-9*]+$/.test(x[i]) ? (\"[\"+x[i]+\"]\") : (\"['\"+x[i]+\"']\");"," return p;"," },"," store: function(p, v) {"," if (p) P.result[P.result.length] = P.resultType == \"PATH\" ? P.asPath(p) : v;"," return !!p;"," },"," trace: function(expr, val, path) {"," if (expr) {"," var x = expr.split(\";\"), loc = x.shift();"," x = x.join(\";\");"," if (val && val.hasOwnProperty(loc))"," P.trace(x, val[loc], path + \";\" + loc);"," else if (loc === \"*\")"," P.walk(loc, x, val, path, function(m,l,x,v,p) { P.trace(m+\";\"+x,v,p); });"," else if (loc === \"..\") {"," P.trace(x, val, path);"," P.walk(loc, x, val, path, function(m,l,x,v,p) { typeof v[m] === \"object\" && P.trace(\"..;\"+x,v[m],p+\";\"+m); });"," }"," else if (/,/.test(loc)) { // [name1,name2,...]"," for (var s=loc.split(/'?,'?/),i=0,n=s.length; i<n; i++)"," P.trace(s[i]+\";\"+x, val, path);"," }"," else if (/^\\(.*?\\)$/.test(loc)) // [(expr)]"," P.trace(P.eval(loc, val, path.substr(path.lastIndexOf(\";\")+1))+\";\"+x, val, path);"," else if (/^\\?\\(.*?\\)$/.test(loc)) // [?(expr)]"," P.walk(loc, x, val, path, function(m,l,x,v,p) { if (P.eval(l.replace(/^\\?\\((.*?)\\)$/,\"$1\"),v[m],m)) P.trace(m+\";\"+x,v,p); });"," else if (/^(-?[0-9]*):(-?[0-9]*):?([0-9]*)$/.test(loc)) // [start:end:step] phyton slice syntax"," P.slice(loc, x, val, path);"," }"," else"," P.store(path, val);"," },"," walk: function(loc, expr, val, path, f) {"," if (val instanceof Array) {"," for (var i=0,n=val.length; i<n; i++)"," if (i in val)"," f(i,loc,expr,val,path);"," }"," else if (typeof val === \"object\") {"," for (var m in val)"," if (val.hasOwnProperty(m))"," f(m,loc,expr,val,path);"," }"," },"," slice: function(loc, expr, val, path) {"," if (val instanceof Array) {"," var len=val.length, start=0, end=len, step=1;"," loc.replace(/^(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$/g, function($0,$1,$2,$3){start=parseInt($1||start);end=parseInt($2||end);step=parseInt($3||step);});"," start = (start < 0) ? Math.max(0,start+len) : Math.min(len,start);"," end = (end < 0) ? Math.max(0,end+len) : Math.min(len,end);"," for (var i=start; i<end; i+=step)"," P.trace(i+\";\"+expr, val, path);"," }"," },"," eval: function(x, _v, _vname) {"," try { return $ && _v && eval(x.replace(/@/g, \"_v\")); }"," catch(e) { throw new SyntaxError(\"json_path: \" + e.message + \": \" + x.replace(/@/g, \"_v\").replace(/\\^/g, \"_a\")); }"," }"," };",""," var $ = obj;",""," if (expr && obj && (P.resultType == \"VALUE\" || P.resultType == \"PATH\")) {"," P.trace(P.normalize(expr).replace(/^\\$;/,\"\"), obj, \"$\");"," return P.result.length ? P.result : false;"," }",""," },","",""," /**"," *"," *"," * @since 2.0"," * @author potanin@UD"," */"," 'array_to_hash_tables': function( array ) {",""," var keys = [];"," var values = [];",""," _.forOwn( array, function( num, key ) {"," keys.push( _.keys( num ) );"," values.push( _.first( _.values( num ) ) );"," } );",""," return _.object( keys, values );"," },",""," /**"," *"," *"," * @since 0.2.0"," */"," 'extend': function( target ) {",""," target = target ? target : {};",""," for( var i = 1; i < arguments.length; i++ ) {",""," var source = arguments[i];"," var keys = Object.keys( source );",""," for( var j = 0; j < keys.length; j++ ) {"," var name = keys[j];",""," target[name] = source[name];",""," }",""," }",""," return target"," },",""," }",""," /**"," * Object and Array Transformations"," *"," * @since 0.2.0"," */"," var _process = {",""," /**"," * Enable Debug for rest of chain"," *"," * @since 0.2.0"," */"," 'debug': function( object, args ) {"," app.debug = true;"," return object;"," },",""," /**"," * Enable Debug For Chain"," *"," * @since 0.2.0"," */"," 'dot_notation': function( object, args ) {",""," "," return object;"," },",""," /**"," * Enable Debug For Chain"," *"," * @source http://stackoverflow.com/questions/6393943/convert-javascript-string-in-dot-notation-into-an-object-reference"," * @since 0.2.0"," */"," 'get_by_path': function( object, path ) { "," "," function index( obj,i ) {"," return obj[i];"," }"," "," try {"," "," object = path.split( '.' ).reduce( index, object );"," "," return object;"," "," } catch( error ) { debug( error ); }"," "," return object;"," "," },",""," /**"," * Batch Items Passed. Second-level items will have the rest of the rules applied."," *"," * @since 0.2.0"," */"," 'batch_items': function( json, args, parsed ) { debug( 'parse()' );","",""," },",""," /**"," * Safelty Parse JSON"," *"," * @since 0.2.0"," */"," 'parse': function( json, args, parsed ) { debug( 'parse()' );",""," try { parsed = JSON.parse( json ); } catch (error) { parsed = false; }",""," return ( typeof parsed === 'object' ? parsed : json );",""," },",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'clean_object': function( object, args ) { debug( 'clean()' );",""," for( i in object ) {",""," if( !object[i] && typeof object[i] != 'boolean' ) {"," delete object[i];"," }",""," if( object[i] === null ) {"," delete object[i];"," }",""," if( typeof object[i] === 'object' ) {",""," if( Object.keys( object[i] ).length ) {"," object[i] = _process.clean_object( object[i], args );"," } else {"," delete object[i];"," }",""," }",""," }",""," return object;",""," },",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'normalize': function( object, args ) { debug( 'normalize()' );",""," object.__normalized = true;"," return object;",""," },",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'nestify': function( object, args ) { debug( 'make_array()' );",""," object.__nestify = true;"," return object;",""," },",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'objectify': function( object, args ) { debug( 'make_object()' );","",""," return object;",""," },",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'data_types': function( object, args ) { debug( 'data_types()' );","",""," return object;",""," },",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'key_map': function( object, map ) { // console.info( 'common.apply_key_map()' );",""," map = map ? map : {};",""," if( !_.isEmpty( map ) ) {"," return object;"," }",""," var _new = {};",""," _.each( object, function( value, key ) {",""," if( map[ key ] ) {"," _new[ key ] = value;"," } else {"," _new[ key ] = value;"," }",""," });",""," return _new;",""," },",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'group_by_key': function( object, args ) { // console.info( 'common.group_by_key()' );",""," args = _.extend( args, {"," 'min': 5"," });",""," //var _temp = [ 'lfd_', 'lo1_', 'la1_', 'lm_', 'l_address', 'l_keyword', 'l_', 'sa3_', 'list_agent_', 'list_office_', 'alt_agent_', 'alt_office_' ];"," var _temp = [ 'list_agent_', 'list_office_', 'alt_agent_', 'alt_office_' ];",""," var _keys = _.keys( object );"," var _grouped = {};",""," for( key in object ) {",""," for( i in _temp ) {",""," var _group_key = _temp[i];"," var _clean_group_key = _group_key.substring( 0, _group_key.length - 1 );",""," if( key.toLowerCase().indexOf( _temp[i] ) >= 0 ) {",""," _grouped[ _clean_group_key ] = _grouped[ _clean_group_key ] ? _grouped[ _clean_group_key ] : {};"," _grouped[ _clean_group_key ][ key.replace( _group_key, '' ) ] = object[ key ];",""," delete object[ key ];",""," }",""," }",""," };",""," return _.extend( object, _grouped );",""," }",""," };",""," /**"," * String / Number Transormations"," *"," * @since 0.2.0"," */"," var _string = {",""," /**"," * Convert String to Printable Words"," *"," */"," 'wordize': function( text ) {",""," text = _string.dasherize( text );",""," text = text.replace( '-', ' ' );",""," text = _string.capitalize( text );",""," return text;",""," },","",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'capitalize': function(str) {"," return str.charAt(0).toUpperCase() + str.substring(1).toLowerCase();"," },","",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'dasherize': function(str){"," return str.replace(/\\s|_/g, '-');"," },","",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'ordinalize': function(str){"," var isTeen, r, n;"," n = parseInt(str, 10) % 100;"," isTeen = { 11: true, 12: true, 13: true}[n];"," if(isTeen) {return str + 'th'};"," n = parseInt(str, 10) % 10"," switch(n) {"," case 1:"," r = str + 'st';"," break;"," case 2:"," r = str + 'nd';"," break;"," case 3:"," r = str + 'rd';"," break;"," default:"," r = str + 'th';"," }"," return r;"," },","",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'pluralize': function(str){",""," var uncountable = _string.uncountableWords[str.toLowerCase()];",""," if (uncountable) {"," return str;"," };",""," var rules = ["," [new RegExp('(m)an$', 'gi'), '$1en'],"," [new RegExp('(pe)rson$', 'gi'), '$1ople'],"," [new RegExp('(child)$', 'gi'), '$1ren'],"," [new RegExp('^(ox)$', 'gi'), '$1en'],"," [new RegExp('(ax|test)is$', 'gi'), '$1es'],"," [new RegExp('(octop|vir)us$', 'gi'), '$1i'],"," [new RegExp('(alias|status)$', 'gi'), '$1es'],"," [new RegExp('(bu)s$', 'gi'), '$1ses'],"," [new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],"," [new RegExp('([ti])um$', 'gi'), '$1a'],"," [new RegExp('sis$', 'gi'), 'ses'],"," [new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],"," [new RegExp('(hive)$', 'gi'), '$1s'],"," [new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],"," [new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],"," [new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],"," [new RegExp('([m|l])ouse$', 'gi'), '$1ice'],"," [new RegExp('(quiz)$', 'gi'), '$1zes'],"," [new RegExp('s$', 'gi'), 's'],"," [new RegExp('$', 'gi'), 's']"," ];",""," for(var i = 0, l = rules.length; i < l; i++){"," if (str.match(rules[i][0])) {"," str = str.replace(rules[i][0], rules[i][1]);"," break;"," };"," }",""," return str;"," },","",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'singularize': function(str){",""," var uncountable = _string.uncountableWords[str.toLowerCase()];",""," if (uncountable) {"," return str;"," };",""," var rules = ["," [new RegExp('(m)en$', 'gi'), '$1an'],"," [new RegExp('(pe)ople$', 'gi'), '$1rson'],"," [new RegExp('(child)ren$', 'gi'), '$1'],"," [new RegExp('([ti])a$', 'gi'), '$1um'],"," [new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$','gi'), '$1$2sis'],"," [new RegExp('(hive)s$', 'gi'), '$1'],"," [new RegExp('(tive)s$', 'gi'), '$1'],"," [new RegExp('(curve)s$', 'gi'), '$1'],"," [new RegExp('([lr])ves$', 'gi'), '$1f'],"," [new RegExp('([^fo])ves$', 'gi'), '$1fe'],"," [new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],"," [new RegExp('(s)eries$', 'gi'), '$1eries'],"," [new RegExp('(m)ovies$', 'gi'), '$1ovie'],"," [new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],"," [new RegExp('([m|l])ice$', 'gi'), '$1ouse'],"," [new RegExp('(bus)es$', 'gi'), '$1'],"," [new RegExp('(o)es$', 'gi'), '$1'],"," [new RegExp('(shoe)s$', 'gi'), '$1'],"," [new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],"," [new RegExp('(octop|vir)i$', 'gi'), '$1us'],"," [new RegExp('(alias|status)es$', 'gi'), '$1'],"," [new RegExp('^(ox)en', 'gi'), '$1'],"," [new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],"," [new RegExp('(matr)ices$', 'gi'), '$1ix'],"," [new RegExp('(quiz)zes$', 'gi'), '$1'],"," [new RegExp('s$', 'gi'), '']"," ];",""," for(var i = 0, l = rules.length; i < l; i++){"," if (str.match(rules[i][0])) {"," str = str.replace(rules[i][0], rules[i][1]);"," break;"," };"," }",""," return str;"," },","",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'strip': function(str){"," return str.replace(/^\\s+/, '').replace(/\\s+$/, '');"," },","",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'underscore': function(str){"," return str.replace(/::/g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\\d])([A-Z])/g, '$1_$2').replace(/-/g, '_').toLowerCase();"," },","",""," /**"," * {}"," *"," * @since 0.2.0"," */"," 'uncountable': function() {",""," var uncountable = {"," 'equipment': true,"," 'information': true,"," 'rice': true,"," 'money': true,"," 'species': true,"," 'series':true,"," 'fish':true,"," 'sheep':true,"," 'moose':true,"," 'deer':true,"," 'news':true"," };",""," for(var i=0,l=arguments.length; i<l; i++){"," _string.uncountable[arguments[i]] = true;"," }",""," return _string;"," }",""," };",""," /**"," * Internal logging function"," *"," * @since 0.1"," */"," var log = function() {",""," switch ( true ) {",""," case ( arguments[0] instanceof Error ):"," console.error( arguments[0] );"," break;",""," default:"," console.log.apply( console, [ ' \\u001b[36m', 'Normalize' ].concat( arguments ).concat( [ '\\u001b[0m' ] ) );"," break;",""," }",""," return arguments[0] ? arguments[0] : null;",""," };",""," /**"," *"," * @author potanin@UD"," */"," var debug = function() {"," return ( app.debug || arguments[0] instanceof Error ? log.apply( this, arguments ) : arguments );"," }",""," /**"," * Initialize"," *"," * @todo Use _.compose(); to trigger chained functions."," * @since 2.0"," * @since 0.2.0"," */"," var init = function( target, arguments ) { // debug( arguments );",""," _.extend( app, {"," 'debug': false,"," 'log': [],"," 'stack': [ 'parse' ]"," }, app );",""," for( var i = 1, l = arguments.length; i < l; i++ ) {"," app.stack.push( arguments[i] );"," };",""," for( i in app.stack ) {"," "," if( typeof app.stack[i] === 'string' ) { "," var caller = { 'function': app.stack[i], 'args': {} } "," } else { "," var caller = { 'function': app.stack[i][0], 'args': app.stack[i][1] } "," }"," "," this.target = target = ( typeof _process[ caller[ 'function' ] ] === 'function' ? _process[ caller[ 'function' ] ].apply( this, [ target, caller[ 'args' ] ] ) : target );"," "," }",""," return target;",""," };",""," return init( target, arguments );","","};",""];