neft
Version:
JavaScript. Everywhere.
1,509 lines (1,404 loc) • 736 kB
JavaScript
var Neft = (function(){
// list of modules with empty objects
var modules = {"src/utils/namespace.litcoffee":{},"src/utils/stringifying.litcoffee":{},"src/utils/async.litcoffee":{},"src/utils/index.litcoffee":{},"src/assert/index.litcoffee":{},"src/log/index.litcoffee":{},"src/signal/emitter.coffee":{},"src/signal/index.litcoffee":{},"src/list/index.litcoffee":{},"src/dict/index.litcoffee":{},"src/db/implementations/memory.coffee":{},"src/db/implementation.coffee":{},"src/db/index.litcoffee":{},"src/schema/validators/array.litcoffee":{},"src/schema/validators/object.litcoffee":{},"src/schema/validators/optional.litcoffee":{},"src/schema/validators/max.litcoffee":{},"src/schema/validators/min.litcoffee":{},"src/schema/validators/options.litcoffee":{},"src/schema/validators/regexp.litcoffee":{},"src/schema/validators/type.litcoffee":{},"src/schema/index.litcoffee":{},"src/networking/impl/ios/index.coffee":{},"src/networking/impl.coffee":{},"src/networking/impl/ios/request.coffee":{},"src/networking/impl/ios/response.coffee":{},"src/networking/uri.litcoffee":{},"src/networking/handler.litcoffee":{},"src/networking/request.litcoffee":{},"src/networking/response.litcoffee":{},"src/networking/response/error.litcoffee":{},"src/networking/index.litcoffee":{},"src/document/element/element/text.litcoffee":{},"src/document/element/element/tag/stringify.coffee":{},"src/typed-array/index.litcoffee":{},"src/document/element/element/tag.litcoffee":{},"src/document/element/element/tag/query.coffee":{},"src/document/element/element.litcoffee":{},"src/document/element/index.coffee":{},"src/document/attrChange.coffee":{},"src/document/use.coffee":{},"src/document/scripts.coffee":{},"src/binding/index.coffee":{},"src/document/input.coffee":{},"src/document/input/text.coffee":{},"src/document/input/attr.coffee":{},"src/document/condition.coffee":{},"src/document/iterator.coffee":{},"src/document/log.coffee":{},"src/document/attrsToSet.coffee":{},"src/document/file/render/parse/target.coffee":{},"src/document/file/render/revert/target.coffee":{},"src/document/index.litcoffee":{},"src/renderer/impl.coffee":{},"src/renderer/impl/base/level0/item.coffee":{},"src/renderer/impl/base/level0/image.coffee":{},"src/renderer/impl/base/level0/text.coffee":{},"src/renderer/impl/base/level0/textInput.coffee":{},"src/renderer/impl/base/level0/native.coffee":{},"src/renderer/impl/base/level0/loader/font.coffee":{},"src/renderer/impl/base/level0/loader/resources.coffee":{},"src/renderer/impl/base/level0/device.coffee":{},"src/renderer/impl/base/level0/screen.coffee":{},"src/renderer/impl/base/level0/navigator.coffee":{},"src/renderer/impl/base/level0/sensor/rotation.coffee":{},"src/renderer/impl/base/level0/sound/ambient.coffee":{},"src/renderer/impl/base/level1/rectangle.coffee":{},"src/renderer/impl/base/level1/grid.coffee":{},"src/renderer/impl/base/level1/column.coffee":{},"src/renderer/impl/base/level1/row.coffee":{},"src/renderer/impl/base/level1/flow.coffee":{},"src/renderer/impl/base/level1/animation.coffee":{},"src/renderer/impl/base/level1/animation/property.coffee":{},"src/renderer/impl/base/level1/animation/number.coffee":{},"src/renderer/impl/base/level2/scrollable.coffee":{},"src/renderer/impl/base/level1/binding.coffee":{},"src/renderer/impl/base/level1/anchors.coffee":{},"src/renderer/impl/base/utils.coffee":{},"src/renderer/impl/base/utils/grid.coffee":{},"src/renderer/impl/base/index.coffee":{},"src/renderer/impl/native/index.coffee":{},"src/native/actions.coffee":{},"src/native/impl/ios/bridge.coffee":{},"src/native/bridge.coffee":{},"src/renderer/impl/native/ios.coffee":{},"src/renderer/impl/native/level2/scrollable.coffee":{},"src/renderer/impl/native/level0/item.coffee":{},"src/renderer/impl/native/level0/image.coffee":{},"src/renderer/impl/native/level0/text.coffee":{},"src/renderer/impl/native/level0/textInput.coffee":{},"src/renderer/impl/native/level0/native.coffee":{},"src/renderer/impl/native/level0/loader/font.coffee":{},"src/renderer/impl/native/level0/loader/resources.coffee":{},"src/renderer/impl/native/level0/device.coffee":{},"src/renderer/impl/native/level0/screen.coffee":{},"src/renderer/impl/native/level0/navigator.coffee":{},"src/renderer/impl/native/level0/sensor/rotation.coffee":{},"src/renderer/impl/native/level0/sound/ambient.coffee":{},"src/renderer/impl/native/level1/rectangle.coffee":{},"src/renderer/impl/base/level0/item/pointer.coffee":{},"src/renderer/utils/color.coffee":{},"src/renderer/utils/item.coffee":{},"src/renderer/types/namespace/screen.litcoffee":{},"src/renderer/types/namespace/device.litcoffee":{},"src/renderer/types/namespace/navigator.litcoffee":{},"src/renderer/types/namespace/sensor/rotation.litcoffee":{},"src/renderer/types/extension.litcoffee":{},"src/renderer/types/extensions/class.litcoffee":{},"src/renderer/types/extensions/animation.litcoffee":{},"src/renderer/types/extensions/animation/types/property.litcoffee":{},"src/renderer/types/extensions/animation/types/property/types/number.litcoffee":{},"src/renderer/types/extensions/transition.litcoffee":{},"src/renderer/types/basics/component.coffee":{},"src/renderer/types/basics/item.litcoffee":{},"src/renderer/types/basics/item/spacing.litcoffee":{},"src/renderer/types/basics/item/alignment.litcoffee":{},"src/renderer/types/basics/item/anchors.litcoffee":{},"src/renderer/types/basics/item/layout.litcoffee":{},"src/renderer/types/basics/item/margin.litcoffee":{},"src/renderer/types/basics/item/pointer.litcoffee":{},"src/renderer/types/basics/item/keys.litcoffee":{},"src/renderer/types/basics/item/document.litcoffee":{},"src/renderer/types/basics/item/types/image.litcoffee":{},"src/renderer/types/basics/item/types/text.litcoffee":{},"src/renderer/types/basics/item/types/text/font.litcoffee":{},"src/renderer/types/basics/item/types/textInput.litcoffee":{},"src/native/index.litcoffee":{},"src/renderer/types/basics/item/types/native.litcoffee":{},"src/renderer/types/shapes/rectangle.litcoffee":{},"src/renderer/types/layout/grid.litcoffee":{},"src/renderer/types/layout/column.litcoffee":{},"src/renderer/types/layout/row.litcoffee":{},"src/renderer/types/layout/flow.litcoffee":{},"src/renderer/types/layout/scrollable.litcoffee":{},"src/renderer/types/sound/ambient.litcoffee":{},"src/resources/resource.litcoffee":{},"src/resources/index.litcoffee":{},"src/renderer/types/loader/resources.litcoffee":{},"src/renderer/types/loader/font.litcoffee":{},"src/renderer/index.litcoffee":{},"src/app/route.litcoffee":{},"package.json":{},"src/app/index.litcoffee":{},"src/styles/file/styles.coffee":{},"src/styles/file/element.coffee":{},"src/styles/style.coffee":{},"src/styles/index.coffee":{},"index.coffee":{}};
// used as `require`
function getModule(paths, name){
var path = paths[name];
return (path in modules ? modules[path] :
(typeof Neft !== "undefined" && Neft[name]) ||
(typeof require === 'function' && require(name)) ||
(function(){throw new Error("Cannot find module '"+name+"'");}()));
};
// fill modules by their bodies
modules['src/utils/namespace.litcoffee'] = (function(){
var module = {exports: modules["src/utils/namespace.litcoffee"]};
var require = getModule.bind(null, {});
var exports = module.exports;
(function() {
'use strict';
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
module.exports = function(utils) {
var OptionsArray, get, isStringArray;
get = utils.get = function(obj, path, target) {
var elem, i, j, k, key, len, len1;
if (path == null) {
path = '';
}
switch (typeof path) {
case 'object':
path = exports.clone(path);
break;
case 'string':
path = path.split('.');
break;
default:
throw new TypeError;
}
for (i = j = 0, len = path.length; j < len; i = ++j) {
key = path[i];
if (!key.length && i) {
throw new ReferenceError("utils.get(): empty properties are not supported");
}
if (isStringArray(key)) {
key = key.substring(0, key.indexOf('[]'));
path = path.splice(i);
path[0] = path[0].substring(key.length + 2);
if (!path[0].length) {
path.shift();
}
if (target == null) {
target = new OptionsArray();
}
if (key.length) {
obj = obj[key];
}
if (typeof obj === 'undefined') {
return void 0;
}
for (k = 0, len1 = obj.length; k < len1; k++) {
elem = obj[k];
get(elem, path.join('.'), target);
}
if (!target.length) {
return void 0;
}
return target;
}
if (key.length) {
obj = obj[key];
}
if (typeof obj !== 'object' && typeof obj !== 'function') {
if (i !== path.length - 1) {
obj = void 0;
}
break;
}
}
if (target && typeof obj !== 'undefined') {
target.push(obj);
}
return obj;
};
get.OptionsArray = OptionsArray = (function(superClass) {
extend(OptionsArray, superClass);
function OptionsArray() {
OptionsArray.__super__.constructor.apply(this, arguments);
}
return OptionsArray;
})(Array);
return isStringArray = utils.isStringArray = function(arg) {
null;
//<development>;
if (typeof arg !== 'string') {
throw new Error("utils.isStringArray value must be a string");
}
//</development>;
return /\[\]$/.test(arg);
};
};
}).call(this);
return module.exports;
})();modules['src/utils/stringifying.litcoffee'] = (function(){
var module = {exports: modules["src/utils/stringifying.litcoffee"]};
var require = getModule.bind(null, {});
var exports = module.exports;
(function() {
'use strict';
var isArray;
isArray = Array.isArray;
module.exports = function(utils) {
utils.simplify = (function() {
var nativeCtors, nativeProtos;
nativeProtos = [Array.prototype, Object.prototype];
nativeCtors = [Array, Object];
return function(obj, opts) {
var ctors, cyclic, i, ids, j, len1, objs, optsCtors, optsInsts, optsProps, optsProtos, parse, protos, references, value;
if (opts == null) {
opts = {};
}
null;
//<development>;
if (!utils.isObject(obj)) {
throw new Error("utils.simplify object must be an object");
}
if (!utils.isPlainObject(opts)) {
throw new Error("utils.simplify options must be a plain object");
}
//</development>;
optsProps = opts.properties != null ? opts.properties : opts.properties = false;
optsProtos = opts.protos != null ? opts.protos : opts.protos = false;
optsCtors = opts.constructors != null ? opts.constructors : opts.constructors = false;
optsInsts = opts.instances = !optsProtos && optsCtors;
objs = [];
ids = [];
references = {};
if (optsCtors) {
ctors = {};
}
if (optsProtos) {
protos = {};
}
cyclic = function(obj) {
var i, key, len, objIds, proto, value;
len = objs.push(obj);
ids.push(objIds = []);
for (key in obj) {
value = obj[key];
if (!(obj.hasOwnProperty(key))) {
continue;
}
if (!(value && typeof value === 'object')) {
continue;
}
if (optsProps && exports.lookupGetter(obj, key)) {
objIds.push(null);
continue;
}
if (!~(i = objs.indexOf(value))) {
i = cyclic(value);
}
objIds.push(i);
}
if (optsProtos && (proto = getPrototypeOf(obj))) {
if (~(nativeProtos.indexOf(proto))) {
i = null;
} else if (!~(i = objs.indexOf(proto))) {
i = cyclic(proto);
}
objIds.push(i);
}
return len - 1;
};
parse = function(obj, index) {
var ctor, desc, isReference, key, objId, objIds, objReferences, obji, protoObjId, r, value;
r = isArray(obj) ? [] : {};
objIds = ids[index];
obji = 0;
objReferences = null;
for (key in obj) {
value = obj[key];
if (!(obj.hasOwnProperty(key))) {
continue;
}
r[key] = value;
isReference = false;
if (value && typeof value === 'object') {
if (objReferences == null) {
objReferences = [];
}
objId = value = objIds[obji++];
if (value !== null) {
isReference = true;
objReferences.push(key);
}
}
if (optsProps) {
desc = getObjOwnPropDesc(obj, key);
if (isReference) {
desc.value = value;
}
value = desc;
}
r[key] = value;
}
if (optsProtos && getPrototypeOf(obj)) {
protoObjId = objIds[obji++];
if (protoObjId !== null) {
protos[index] = protoObjId;
}
}
if (optsCtors && (ctor = obj.constructor)) {
if (optsInsts || obj.hasOwnProperty('constructor')) {
if (!~(nativeCtors.indexOf(ctor))) {
ctors[index] = ctor;
}
}
}
if (objReferences) {
references[index] = objReferences;
}
return r;
};
cyclic(obj);
for (i = j = 0, len1 = objs.length; j < len1; i = ++j) {
value = objs[i];
objs[i] = parse(value, i);
}
return {
opts: opts,
objects: objs,
references: references,
protos: protos,
constructors: ctors
};
};
})();
return utils.assemble = (function() {
var ctorPropConfig;
ctorPropConfig = {
value: null
};
return function(obj) {
var constructors, func, j, k, key, l, len1, len2, len3, len4, m, objI, object, objects, opts, optsCtors, optsInsts, optsProps, optsProtos, protos, ref, refI, refId, references, refs, refsIds, value;
null;
//<development>;
if (!utils.isPlainObject(obj)) {
throw new Error("utils.assemble object must be a plain object");
}
//</development>;
opts = obj.opts, objects = obj.objects, references = obj.references, protos = obj.protos, constructors = obj.constructors;
optsProps = opts.properties;
optsProtos = opts.protos;
optsCtors = opts.constructors;
optsInsts = opts.instances;
refsIds = [];
if (optsProps) {
for (objI in references) {
refs = references[objI];
obj = objects[objI];
for (j = 0, len1 = refs.length; j < len1; j++) {
ref = refs[j];
refsIds.push(obj[ref].value);
obj[ref].value = objects[obj[ref].value];
}
}
} else {
for (objI in references) {
refs = references[objI];
obj = objects[objI];
for (k = 0, len2 = refs.length; k < len2; k++) {
ref = refs[k];
refsIds.push(obj[ref]);
obj[ref] = objects[obj[ref]];
}
}
}
if (optsProps) {
for (l = 0, len3 = objects.length; l < len3; l++) {
obj = objects[l];
for (key in obj) {
value = obj[key];
if (obj.hasOwnProperty(key)) {
defObjProp(obj, key, value);
}
}
}
}
for (objI in protos) {
refI = protos[objI];
objects[objI] = utils.setPrototypeOf(objects[objI], objects[refI]);
}
if (optsInsts) {
for (objI in constructors) {
func = constructors[objI];
object = objects[objI] = utils.setPrototypeOf(objects[objI], func.prototype);
if (typeof func.fromAssembled === "function") {
func.fromAssembled(object);
}
}
} else if (optsCtors) {
for (objI in constructors) {
func = constructors[objI];
ctorPropConfig.value = func;
defObjProp(objects[objI], 'constructor', ctorPropConfig);
}
}
refId = 0;
for (objI in references) {
refs = references[objI];
obj = objects[objI];
for (m = 0, len4 = refs.length; m < len4; m++) {
ref = refs[m];
obj[ref] = objects[refsIds[refId++]];
}
}
return objects[0];
};
})();
};
}).call(this);
return module.exports;
})();modules['src/utils/async.litcoffee'] = (function(){
var module = {exports: modules["src/utils/async.litcoffee"]};
var require = getModule.bind(null, {});
var exports = module.exports;
(function() {
'use strict';
var NOP, Stack, assert, exports, forEach, isArray, shift, utils,
slice = [].slice;
utils = null;
assert = console.assert.bind(console);
exports = module.exports;
shift = Array.prototype.shift;
isArray = Array.isArray;
NOP = function() {};
forEach = (function() {
var forArray, forObject;
forArray = function(arr, callback, onEnd, thisArg) {
var i, n, next;
i = 0;
n = arr.length;
next = function() {
if (i === n) {
return onEnd.call(thisArg);
}
i++;
return callback.call(thisArg, arr[i - 1], i - 1, arr, next);
};
return next();
};
forObject = function(obj, callback, onEnd, thisArg) {
var i, keys, n, next;
keys = Object.keys(obj);
i = 0;
n = keys.length;
next = function() {
var key;
if (i === n) {
return onEnd.call(thisArg);
}
key = keys[i];
callback.call(thisArg, key, obj[key], obj, next);
return i++;
};
return next();
};
return function(list, callback, onEnd, thisArg) {
var method;
assert(!utils.isPrimitive(list));
assert(typeof callback === 'function');
if (onEnd != null) {
assert(typeof onEnd === 'function');
}
method = isArray(list) ? forArray : forObject;
method(list, callback, onEnd, thisArg);
return null;
};
})();
Stack = (function() {
function Stack() {
this._arr = [];
this.length = 0;
Object.preventExtensions(this);
}
Stack.prototype.add = function(func, context, args) {
if (args != null) {
assert(utils.isObject(args));
}
this._arr.push(func, context, args);
this.length++;
return this;
};
Stack.prototype.callNext = function(args, callback) {
var arg, callbackWrapper, called, context, func, funcArgs, funcLength, i, j, len, syncError;
if (typeof args === 'function' && (callback == null)) {
callback = args;
args = null;
}
assert(typeof callback === 'function');
if (!this._arr.length) {
return callback();
}
this.length--;
func = this._arr.shift();
context = this._arr.shift();
funcArgs = this._arr.shift();
if (typeof func === 'string') {
func = utils.get(context, func);
}
if (typeof func !== 'function') {
throw new TypeError("ASync Stack::callNext(): function to call is not a function");
}
funcLength = func.length || Math.max((args != null ? args.length : void 0) || 0, (funcArgs != null ? funcArgs.length : void 0) || 0) + 1;
syncError = null;
called = false;
callbackWrapper = function() {
assert(!called || !syncError, "Callback can't be called if function throws an error;\n" + ("Function: `" + func + "`\nSynchronous error: `" + syncError + "`"));
assert(!called, "Callback can't be called twice;\nFunction: `" + func + "`");
called = true;
return callback.apply(this, arguments);
};
funcArgs = Object.create(funcArgs || null);
funcArgs[funcLength - 1] = callbackWrapper;
if (funcArgs.length === void 0 || funcArgs.length < funcLength) {
funcArgs.length = funcLength;
}
if (args) {
for (i = j = 0, len = args.length; j < len; i = ++j) {
arg = args[i];
if (i !== funcLength - 1 && funcArgs[i] === void 0) {
funcArgs[i] = arg;
}
}
}
syncError = utils.catchError(func, context, funcArgs);
if (syncError) {
callbackWrapper(syncError);
}
return null;
};
Stack.prototype.runAll = function(callback, ctx) {
var callNext, onNextCalled;
if (callback == null) {
callback = NOP;
}
if (ctx == null) {
ctx = null;
}
if (typeof callback !== 'function') {
throw new TypeError("ASync runAll(): passed callback is not a function");
}
if (!this._arr.length) {
return callback.call(ctx, null);
}
onNextCalled = (function(_this) {
return function() {
var args, err;
err = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];
if (err != null) {
return callback.call(ctx, err);
}
if (_this._arr.length) {
return callNext(args);
}
return callback.apply(ctx, arguments);
};
})(this);
callNext = (function(_this) {
return function(args) {
return _this.callNext(args, onNextCalled);
};
})(this);
callNext();
return null;
};
Stack.prototype.runAllSimultaneously = function(callback, ctx) {
var done, length, n, onDone;
if (callback == null) {
callback = NOP;
}
if (ctx == null) {
ctx = null;
}
assert(typeof callback === 'function');
length = n = this._arr.length / 3;
done = 0;
if (!length) {
return callback.call(ctx);
}
onDone = function(err) {
++done;
if (done > length) {
return;
}
if (err) {
done = length;
return callback.call(ctx, err);
}
if (done === length) {
return callback.call(ctx);
}
};
while (n--) {
this.callNext(onDone);
}
return null;
};
return Stack;
})();
/*
Exports
*/
module.exports = function() {
utils = arguments[0];
return utils.async = {
forEach: forEach,
Stack: Stack
};
};
}).call(this);
return module.exports;
})();modules['src/utils/index.litcoffee'] = (function(){
var module = {exports: modules["src/utils/index.litcoffee"]};
var require = getModule.bind(null, {"./namespace":"src/utils/namespace.litcoffee","./stringifying":"src/utils/stringifying.litcoffee","./async":"src/utils/async.litcoffee"});
var exports = module.exports;
(function() {
'use strict';
var clone, cloneDeep, createObject, defObjProp, funcToString, getObjOwnPropDesc, getOwnPropertyNames, getPrototypeOf, has, hasOwnProp, isArray, isEqual, isObject, isPrimitive, merge, mergeDeep, objKeys, pop, random, ref, setPrototypeOf, shift, toString;
toString = Object.prototype.toString;
funcToString = Function.prototype.toString;
isArray = Array.isArray;
ref = Array.prototype, shift = ref.shift, pop = ref.pop;
createObject = Object.create;
getPrototypeOf = Object.getPrototypeOf, getOwnPropertyNames = Object.getOwnPropertyNames;
objKeys = Object.keys;
hasOwnProp = Object.hasOwnProperty;
getObjOwnPropDesc = Object.getOwnPropertyDescriptor;
defObjProp = Object.defineProperty;
random = Math.random;
/*
Link subfiles
*/
require('./namespace')(exports);
require('./stringifying')(exports);
require('./async')(exports);
exports.isNode = exports.isServer = exports.isClient = exports.isBrowser = exports.isQt = exports.isAndroid = exports.isIOS = false;
switch (true) {
case (typeof Qt !== "undefined" && Qt !== null ? Qt.include : void 0) != null:
exports.isClient = exports.isQt = true;
break;
case typeof android !== "undefined" && android !== null:
exports.isClient = exports.isAndroid = true;
break;
case typeof ios !== "undefined" && ios !== null:
exports.isClient = exports.isIOS = true;
break;
case (typeof window !== "undefined" && window !== null ? window.document : void 0) != null:
exports.isClient = exports.isBrowser = true;
break;
case (typeof process !== "undefined" && process !== null) && Object.prototype.toString.call(process) === '[object process]':
exports.isNode = exports.isServer = true;
}
exports.NOP = function() {};
exports.is = Object.is || function(val1, val2) {
if (val1 === 0 && val2 === 0) {
return 1 / val1 === 1 / val2;
} else if (val1 !== val1) {
return val2 !== val2;
} else {
return val1 === val2;
}
};
exports.isFloat = function(val) {
return typeof val === 'number' && isFinite(val);
};
exports.isInteger = function(val) {
return typeof val === 'number' && isFinite(val) && val > -9007199254740992 && val < 9007199254740992 && Math.floor(val) === val;
};
isPrimitive = exports.isPrimitive = function(val) {
return val === null || typeof val === 'string' || typeof val === 'number' || typeof val === 'boolean' || typeof val === 'undefined';
};
isObject = exports.isObject = function(param) {
return param !== null && typeof param === 'object';
};
exports.isPlainObject = function(param) {
var proto;
if (!isObject(param)) {
return false;
}
proto = getPrototypeOf(param);
if (!proto) {
return true;
}
if ((proto === Object.prototype) && !getPrototypeOf(proto)) {
return true;
}
return false;
};
exports.isArguments = function(param) {
return toString.call(param) === '[object Arguments]';
};
merge = exports.merge = function(source, obj) {
var key, value;
null;
//<development>;
if (isPrimitive(source)) {
throw new Error("utils.merge source cannot be primitive");
}
if (isPrimitive(obj)) {
throw new Error("utils.merge object cannot be primitive");
}
if (source === obj) {
throw new Error("utils.merge source and object are the same");
}
if (arguments.length > 2) {
throw new Error("utils.merge expects only two arguments; use utils.mergeAll instead");
}
//</development>;
for (key in obj) {
value = obj[key];
if (obj.hasOwnProperty(key)) {
source[key] = value;
}
}
return source;
};
exports.mergeAll = function(source) {
var i, j, key, obj, ref1, value;
null;
//<development>;
if (isPrimitive(source)) {
throw new Error("utils.merge source cannot be primitive");
}
//</development>;
for (i = j = 1, ref1 = arguments.length; j < ref1; i = j += 1) {
if ((obj = arguments[i]) != null) {
//<development>;
if (isPrimitive(obj)) {
throw new Error("utils.mergeAll object cannot be primitive");
}
if (source === obj) {
throw new Error("utils.mergeAll source and object are the same");
}
//</development>;
for (key in obj) {
value = obj[key];
if (obj.hasOwnProperty(key)) {
source[key] = value;
}
}
}
}
return source;
};
mergeDeep = exports.mergeDeep = function(source, obj) {
var key, sourceValue, value;
null;
//<development>;
if (isPrimitive(source)) {
throw new Error("utils.mergeDeep source cannot be primitive");
}
if (isPrimitive(obj)) {
throw new Error("utils.mergeDeep object cannot be primitive");
}
if (source === obj) {
throw new Error("utils.mergeDeep source and object are the same");
}
//</development>;
for (key in obj) {
value = obj[key];
if (!(hasOwnProp.call(obj, key))) {
continue;
}
sourceValue = source[key];
if (value && typeof value === 'object' && !isArray(value) && sourceValue && typeof sourceValue === 'object' && !isArray(sourceValue)) {
mergeDeep(sourceValue, value);
continue;
}
source[key] = value;
}
return source;
};
exports.fill = function(source, obj) {
var key, value;
null;
//<development>;
if (isPrimitive(source)) {
throw new Error("utils.fill source cannot be primitive");
}
if (isPrimitive(obj)) {
throw new Error("utils.fill object cannot be primitive");
}
if (source === obj) {
throw new Error("utils.fill source and object are the same");
}
//</development>;
for (key in obj) {
value = obj[key];
if (hasOwnProp.call(obj, key)) {
if (key in source && !hasOwnProp.call(source, key)) {
source[key] = value;
}
}
}
return source;
};
exports.remove = function(obj, elem) {
var index;
null;
//<development>;
if (isPrimitive(obj)) {
throw new Error("utils.remove object cannot be primitive");
}
//</development>;
if (isArray(obj)) {
index = obj.indexOf(elem);
if (index !== -1) {
if (index === 0) {
obj.shift();
} else if (index === obj.length - 1) {
obj.pop();
} else {
obj.splice(index, 1);
}
}
} else {
delete obj[elem];
}
};
exports.removeFromUnorderedArray = function(arr, elem) {
var index;
null;
//<development>;
if (!Array.isArray(arr)) {
throw new Error("utils.removeFromUnorderedArray array must be an Array");
}
//</development>;
index = arr.indexOf(elem);
if (index !== -1) {
arr[index] = arr[arr.length - 1];
arr.pop();
}
};
exports.getPropertyDescriptor = function(obj, prop) {
var desc;
null;
//<development>;
if (isPrimitive(obj)) {
throw new Error("utils.getPropertyDescriptor object cannot be primitive");
}
if (typeof prop !== 'string') {
throw new Error("utils.getPropertyDescriptor property must be a string");
}
//</development>;
while (obj && !desc) {
desc = getObjOwnPropDesc(obj, prop);
obj = getPrototypeOf(obj);
}
return desc;
};
exports.lookupGetter = (function() {
var lookupGetter;
if (Object.prototype.__lookupGetter__) {
lookupGetter = Object.prototype.lookupGetter;
(function(obj, prop) {
var getter;
getter = lookupGetter.call(obj, prop);
return (getter != null ? getter.trueGetter : void 0) || getter;
});
}
return function(obj, prop) {
var desc, ref1;
if (desc = exports.getPropertyDescriptor(obj, prop)) {
return ((ref1 = desc.get) != null ? ref1.trueGetter : void 0) || desc.get;
}
};
})();
exports.lookupSetter = (function() {
if (Object.prototype.__lookupSetter__) {
return Function.call.bind(Object.prototype.__lookupSetter__);
}
return function(obj, prop) {
var desc;
desc = exports.getPropertyDescriptor(obj, prop);
return desc != null ? desc.set : void 0;
};
})();
defObjProp(exports, 'WRITABLE', {
value: 1 << 0
});
defObjProp(exports, 'ENUMERABLE', {
value: 1 << 1
});
defObjProp(exports, 'CONFIGURABLE', {
value: 1 << 2
});
exports.defineProperty = (function() {
var CONFIGURABLE, ENUMERABLE, WRITABLE, accessorsCfg, descCfg, isSafari, valueCfg;
WRITABLE = exports.WRITABLE, ENUMERABLE = exports.ENUMERABLE, CONFIGURABLE = exports.CONFIGURABLE;
descCfg = {
enumerable: true,
configurable: true
};
valueCfg = exports.merge({
writable: true,
value: null
}, descCfg);
accessorsCfg = exports.merge({
get: void 0,
set: void 0
}, descCfg);
isSafari = typeof navigator !== "undefined" && navigator !== null ? /^((?!chrome).)*safari/i.test(navigator.userAgent) : false;
return function(obj, prop, desc, getter, setter) {
var _getter, cfg;
null;
//<development>;
if (isPrimitive(obj)) {
throw new Error("utils.defineProperty object cannot be primitive");
}
if (typeof prop !== 'string') {
throw new Error("utils.defineProperty property must be a string");
}
if ((desc != null) && (!exports.isInteger(desc) || desc < 0)) {
throw new Error("utils.defineProperty descriptors bitmask must be a positive integer");
}
//</development>;
if (setter === void 0) {
cfg = valueCfg;
valueCfg.value = getter;
valueCfg.writable = desc & WRITABLE;
} else {
if (isSafari && getter) {
_getter = getter;
getter = function() {
if (this !== obj && this.hasOwnProperty(prop)) {
return this[prop];
} else {
return _getter.call(this);
}
};
}
cfg = accessorsCfg;
accessorsCfg.get = typeof getter === 'function' ? getter : void 0;
accessorsCfg.set = typeof setter === 'function' ? setter : void 0;
}
cfg.enumerable = desc & ENUMERABLE;
cfg.configurable = desc & CONFIGURABLE;
defObjProp(obj, prop, cfg);
return obj;
};
})();
exports.overrideProperty = function(obj, prop, getter, setter) {
var desc, opts, ref1;
if (!(desc = exports.getPropertyDescriptor(obj, prop))) {
throw new Error("utils.overrideProperty object must has the given property");
}
if (!desc.configurable) {
throw new Error("utils.overrideProperty the given property is not configurable");
}
opts = exports.CONFIGURABLE;
if (desc.writable) {
opts |= exports.WRITABLE;
}
if (desc.enumerable) {
opts |= exports.ENUMERABLE;
}
if (getter !== void 0 && setter !== void 0) {
if (desc.get != null) {
if (typeof getter === 'function') {
getter = getter(desc.get);
} else {
getter = desc.get;
}
}
if (desc.set != null) {
if (typeof setter === 'function') {
setter = setter(desc.set);
} else {
setter = desc.set;
}
}
} else if ((typeof getter === (ref1 = typeof desc.value) && ref1 === 'function')) {
getter = getter(desc.value);
}
return exports.defineProperty(obj, prop, opts, getter, setter);
};
clone = exports.clone = function(param) {
var j, key, len, proto, ref1, result;
if (isArray(param)) {
return param.slice();
}
if (isObject(param)) {
proto = getPrototypeOf(param);
if (proto === Object.prototype) {
result = {};
} else {
result = createObject(proto);
}
ref1 = objKeys(param);
for (j = 0, len = ref1.length; j < len; j++) {
key = ref1[j];
result[key] = param[key];
}
return result;
}
return param;
};
cloneDeep = exports.cloneDeep = function(param) {
var j, key, len, ref1, result;
result = clone(param);
if (isObject(result)) {
ref1 = objKeys(result);
for (j = 0, len = ref1.length; j < len; j++) {
key = ref1[j];
result[key] = cloneDeep(result[key]);
}
}
return result;
};
exports.isEmpty = function(object) {
var key;
if (typeof object === 'string') {
return object === '';
}
//<development>;
if (isPrimitive(object)) {
throw new Error("utils.isEmpty object must be a string or not primitive");
}
//</development>;
if (isArray(object)) {
return !object.length;
} else {
for (key in object) {
return false;
}
return true;
}
};
exports.last = function(arg) {
null;
//<development>;
if (isPrimitive(arg)) {
throw new Error("utils.last array cannot be primitive");
}
//</development>;
return arg[arg.length - 1];
};
exports.clear = function(obj) {
var _, j, k, key, len, ref1, ref2;
null;
//<development>;
if (isPrimitive(obj)) {
throw new Error("utils.clear object cannot be primitive");
}
//</development>;
if (isArray(obj)) {
for (_ = j = 0, ref1 = obj.length; j < ref1; _ = j += 1) {
obj.pop();
}
} else {
ref2 = objKeys(obj);
for (k = 0, len = ref2.length; k < len; k++) {
key = ref2[k];
delete obj[key];
}
}
return obj;
};
setPrototypeOf = exports.setPrototypeOf = (function() {
var tmp;
if (typeof Object.setPrototypeOf === 'function') {
return Object.setPrototypeOf;
}
tmp = {};
tmp.__proto__ = {
a: 1
};
if (tmp.a === 1) {
return function(obj, proto) {
null;
//<development>;
if (isPrimitive(obj)) {
throw new Error("utils.setPrototypeOf object cannot be primitive");
}
if ((proto != null) && isPrimitive(proto)) {
throw new Error("utils.setPrototypeOf prototype cannot be primitive");
}
//</development>;
obj.__proto__ = proto;
return obj;
};
}
return function(obj, proto) {
var newObj;
null;
//<development>;
if (isPrimitive(obj)) {
throw new Error("utils.setPrototypeOf object cannot be primitive");
}
if ((proto != null) && isPrimitive(proto)) {
throw new Error("utils.setPrototypeOf prototype cannot be primitive");
}
//</development>;
if (typeof obj === 'object') {
newObj = createObject(proto);
merge(newObj, obj);
} else {
merge(obj, proto);
}
return newObj;
};
})();
has = exports.has = function(obj, val) {
var key, value;
if (typeof obj === 'string') {
return !!~obj.indexOf(val);
} else {
//<development>;
if (isPrimitive(obj)) {
throw new Error("utils.has object must be a string or not primitive");
}
//</development>;
if (isArray(obj)) {
return !!~Array.prototype.indexOf.call(obj, val);
} else {
for (key in obj) {
value = obj[key];
if (hasOwnProp.call(obj, key)) {
if (value === val) {
return true;
}
}
}
return false;
}
}
};
exports.objectToArray = function(obj, valueGen, target) {
var i, j, key, keys, len, value;
keys = objKeys(obj);
if (target == null) {
target = keys;
}
//<development>;
if (!isObject(obj)) {
throw new Error("utils.objectToArray object must be an object");
}
if ((valueGen != null) && typeof valueGen !== 'function') {
throw new Error("utils.objectToArray valueGen must be a function");
}
if (!isArray(target)) {
throw new Error("utils.objectToArray target must be an array");
}
//</development>;
for (i = j = 0, len = keys.length; j < len; i = ++j) {
key = keys[i];
value = valueGen ? valueGen(key, obj[key], obj) : obj[key];
target[i] = value;
}
return target;
};
exports.arrayToObject = function(arr, keyGen, valueGen, target) {
var elem, i, j, key, len, value;
if (target == null) {
target = {};
}
null;
//<development>;
if (!isArray(arr)) {
throw new Error("utils.arrayToObject array must be an array");
}
if ((keyGen != null) && typeof keyGen !== 'function') {
throw new Error("utils.arrayToObject keyGen must be a function");
}
if ((valueGen != null) && typeof valueGen !== 'function') {
throw new Error("utils.arrayToObject valueGen must be a function");
}
if (!isObject(target)) {
throw new Error("utils.arrayToObject target must be an object");
}
//</development>;
for (i = j = 0, len = arr.length; j < len; i = ++j) {
elem = arr[i];
key = keyGen ? keyGen(i, elem, arr) : i;
value = valueGen ? valueGen(i, elem, arr) : elem;
if (key != null) {
target[key] = value;
}
}
return target;
};
exports.capitalize = function(str) {
null;
//<development>;
if (typeof str !== 'string') {
throw new Error("utils.capitalize string must be a string");
}
//</development>;
if (!str.length) {
return '';
}
return str[0].toUpperCase() + str.slice(1);
};
exports.addSlashes = (function() {
var NEW_SUB_STR, SLASHES_RE;
SLASHES_RE = /'|"/g;
NEW_SUB_STR = '\\$\&';
return function(str) {
null;
//<development>;
if (typeof str !== 'string') {
throw new Error("utils.addSlashes string must be a string");
}
//</development>;
if (!str.length) {
return str;
}
return str.replace(SLASHES_RE, NEW_SUB_STR);
};
})();
exports.uid = function(n) {
var str;
if (n == null) {
n = 8;
}
null;
//<development>;
if (typeof n !== 'number' || n <= 0 || !isFinite(n)) {
throw new Error("utils.uid length must be a positive finite number");
}
//</development>;
str = '';
while (true) {
str += random().toString(16).slice(2);
if (str.length >= n) {
break;
}
}
if (str.length !== n) {
str = str.slice(0, n);
}
return str;
};
exports.tryFunction = function(func, context, args, onFail) {
var err, error1;
null;
//<development>;
if (typeof func !== 'function') {
throw new Error("utils.tryFunction function must be a function");
}
if ((args != null) && !isObject(args)) {
throw new Error("utils.tryFunction arguments must be an object");
}
//</development>;
try {
return func.apply(context, args);
} catch (error1) {
err = error1;
if (typeof onFail === 'function') {
return onFail(err);
} else if (onFail === void 0) {
return err;
} else {
return onFail;
}
}
};
exports.catchError = function(func, context, args) {
var err, error1;
null;
//<development>;
if (typeof func !== 'function') {
throw new Error("utils.catchError function must be a function");
}
if ((args != null) && !isObject(args)) {
throw new Error("utils.catchError arguments must be an object");
}
//</development>;
try {
func.apply(context, args);
} catch (error1) {
err = error1;
return err;
}
};
exports.bindFunctionContext = function(func, ctx) {
null;
//<development>;
if (typeof func !== 'function') {
throw new Error("utils.bindFunctionContext function must be a function");
}
//</development>;
switch (func.length) {
case 0:
return function() {
return func.call(ctx);
};
case 1:
return function(a1) {
return func.call(ctx, a1);
};
case 2:
return function(a1, a2) {
return func.call(ctx, a1, a2);
};
case 3:
return function(a1, a2, a3) {
return func.call(ctx, a1, a2, a3);
};
case 4:
return function(a1, a2, a3, a4) {
return func.call(ctx, a1, a2, a3, a4);
};
case 5:
return function(a1, a2, a3, a4, a5) {
return func.call(ctx, a1, a2, a3, a4, a5);
};
case 6:
return function(a1, a2, a3, a4, a5, a6) {
return func.call(ctx, a1, a2, a3, a4, a5, a6);
};
case 7:
return function(a1, a2, a3, a4, a5, a6, a7) {
return func.call(ctx, a1, a2, a3, a4, a5, a6, a7);
};
default:
return function() {
return func.apply(ctx, arguments);
};
}
};
exports.errorToObject = function(error) {
var result;
null;
//<development>;
if (!(error instanceof Error)) {
throw new Error("utils.errorToObject error must be an Error instance");
}
//</development>;
result = {
name: error.name,
message: error.message
};
exports.merge(result, error);
return result;
};
exports.getOwnProperties = function(obj) {
var result;
null;
//<development>;
if (!isObject(obj)) {
throw new Error("utils.getOwnProperties object must be an object");
}
//</development>;
result = isArray(obj) ? [] : {};
merge(result, obj);
return result;
};
isEqual = exports.isEqual = (function() {
var defaultComparison, forArrays, forObjects;
defaultComparison = function(a, b) {
return a === b;
};
forArrays = function(a, b, compareFunc, maxDeep) {
var aValue, bValue, index, j, len;
if (getPrototypeOf(a) !== getPrototypeOf(b)) {
return false;
}
if (a.length !== b.length) {
return false;
}
if (maxDeep <= 0) {
return true;
}
for (index = j = 0, len = a.length; j < len; index = ++j) {
aValue = a[index];
bValue = b[index];
if (bValue && typeof bValue === 'object') {
if (!isEqual(aValue, bValue, compareFunc, maxDeep - 1)) {
return false;
}
continue;
}
if (!compareFunc(aValue, bValue)) {
return false;
}
}
return true;
};
forObjects = function(a, b, compareFunc, maxDeep) {
var key, value;
if (getPrototypeOf(a) !== getPrototypeOf(b)) {
return false;
}
for (key in a) {
value = a[key];
if (a.hasOwnProperty(key)) {
if (!b.hasOwnProperty(key)) {
return false;
}
}
}
for (key in b) {
value = b[key];
if (b.hasOwnProperty(key)) {
if (!a.hasOwnProperty(key)) {
return false;
}
}
}
if (maxDeep <= 0) {
return true;
}
for (key in a) {
value = a[key];
if (!(a.hasOwnProperty(key))) {
continue;
}
if (value && typeof value === 'object') {
if (!isEqual(value, b[key], compareFunc, maxDeep - 1)) {
return false;
}
continue;
}
if (!compareFunc(value, b[key])) {
return false;
}
}
return true;
};
return function(a, b, compareFunc, maxDeep) {
if (compareFunc == null) {
compareFunc = defaultComparison;
}
if (maxDeep == null) {
maxDeep = Infinity;
}
if (typeof compareFunc === 'number') {
maxDeep = compareFunc;
compareFunc = defaultComparison;
}
//<development>;
if (typeof compareFunc !== 'function') {
throw new Error("utils.isEqual compareFunction must be a function");
}
if (typeof maxDeep !== 'number') {
throw new Error("utils.isEqual maxDeep must be a number");
}
//</development>;
if (maxDeep < 0) {
return compareFunc(a, b);
}
if (isArray(a) && isArray(b)) {
return forArrays(a, b, compareFunc, maxDeep);
} else if (isObject(a) && isObject(b)) {
return forObjects(a, b, compareFunc, maxDeep);
} else {
return compareFunc(a, b);
}
};
})();
}).call(this);
return module.exports;
})();modules['src/assert/index.litcoffee'] = (function(){
var module = {exports: modules["src/assert/index.litcoffee"]};
var require = getModule.bind(null, {"src/utils":"src/utils/index.litcoffee"});
var exports = module.exports;
(function() {
'use strict';
var AssertionError, assert, createFailFunction, utils,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
utils = require('src/utils');
assert = module.exports = function(expr, msg) {
if (!expr) {
return assert.fail(expr, true, msg, '==', assert);
}
};
assert.AssertionError = AssertionError = (function(superClass) {
extend(AssertionError, superClass);
AssertionError.generateMessage = function(error, msg) {
var msgDef, standardMsg, where;
standardMsg = error.actual + " " + error.operator + " " + error.expected;
if (/\.\.\.$/.test(msg)) {
msgDef = msg.slice(0, -3).split(' ');
if (msgDef[2] == null) {
msgDef[2] = '';
}
msgDef[2] += '';
where = "" + error.scope + msgDef[0];
return (standardMsg + "\n") + (" " + where + " " + msgDef[1] + msgDef[2] + " (got `" + error.actual + "`, type " + (typeof error.actual) + ")") + (", but `" + error.operator + " " + error.expected + "` asserted;\n") + (" Documentation: http://neft.io/docs/" + where + "\n");
} else if (msg) {
return msg;
} else {
return standardMsg;
}
};
function AssertionError(opts) {
this.name = 'AssertionError';
this.actual = opts.actual;
this.expected = opts.expected;
this.operator = opts.operator;
this.scope = opts.scope;
this.message = AssertionError.gen