UNPKG

neft

Version:

JavaScript. Everywhere.

1,509 lines (1,404 loc) 736 kB
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