/*! kagodb 0.2.37 */ !function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g1||"undefined"!=typeof a)throw new Error("invalid set("+a+", "+c+")");return b},b}function e(){}function f(a,b){if("function"==typeof b)b=b.call(a),b&&f(a,b);else{if("object"!=typeof b)throw new Error("invalid mixin("+b+")");for(var c in b)a[c]=b[c]}}var g=a("./utils");e.prototype.get=function(a){var b=this.settings||(this.settings={});return b[a]},e.prototype.set=function(a,b){var c=this.settings||(this.settings={}),d=arguments.length;if(2==d&&a)c[a]=b;else if(1==d&&"object"==typeof a){var e=a;for(a in e)c[a]=e[a]}else if(d>1||"undefined"!=typeof a)throw new Error("invalid set("+a+", "+b+")");return this},e.prototype.mixin=function(a){return f(this,a),this},b.exports=d(e)},{"./utils":11}],6:[function(a,b,c){function d(){}function e(a,b,c){if(this.collection=a,this.source=new f(this),this._source=this.source,this.obop=a.obop(),b){try{b=this.obop.where(b)}catch(d){b=null,this._error=d}b&&(this.source=new g(this,b))}if(c){try{c=this.obop.view(c)}catch(d){c=null,this._error=d}c&&(this.source=new k(this,c))}}function f(a){this.collection=a.collection}function g(a,b){this.source=a.source,this.condition=b}function h(a,b){this.source=a.source;try{this.sorter=a.obop.order(b)}catch(c){this._error=c}}function i(a,b){this.source=a.source,this.offset=b}function j(a,b){this.source=a.source,this.limit=b,this.rest=b}function k(a,b){this.source=a.source,this.projection=b}function l(a,b){function c(e,f){return e?void b(e):f?(d.push(f),void a.nextObject(c)):void b(null,d)}var d=[];b=b||m,a.nextObject(c)}function m(){}var n=a("./utils");b.exports=e,d.prototype.nextObject=function(a){if(!this.source)throw new Error("no source");this.source.nextObject(a)},d.prototype.rewind=function(){if(!this.source)throw new Error("no source");return this.source.rewind&&this.source.rewind(),this},n.inherits(e,d),e.prototype.index=function(a){var b=this;if(a=a||m,this._error)return a(this._error),this;if(b._index){var c=[].concat(b._index);a(null,c)}else b.collection.index(function(c,d){c?a(c):(b._index=d,d=[].concat(b._index),a(null,d))});return this},e.prototype.toArray=function(a){var b=this;if(a=a||m,this._error)return a(this._error),this;if(b._toArray){var c=[].concat(b._toArray);a(null,c)}else l(this.source,function(c,d){c?a(c):(b._toArray=d,d=[].concat(b._toArray),a(null,d))});return this},e.prototype.each=function(a){function b(d,e){a(d,e),!d&&e&&c.nextObject(b)}var c=this;return a=a||m,this._error?(a(this._error),this):void this.nextObject(b)},e.prototype.count=function(a){if(a=a||m,this._error)return a(this._error),this;var b=this.source===this._source?this.index:this.toArray;return b.call(this,function(b,c){b?a(b):a(null,c.length)}),this},e.prototype.sort=function(a){return this.source=new h(this,a),this},e.prototype.offset=function(a){return this.source=new i(this,a),this},e.prototype.limit=function(a){return this.source=new j(this,a),this},n.inherits(f,d),f.prototype.nextObject=function(a){var b=this;if(a=a||m,this.list){if(this.list.length){var c=this.list.shift();return void this.collection.read(c,a)}return void a()}return this.collection.index(function(c,d){return c?a(c):(b.list=d||[],void b.nextObject(a))}),this},f.prototype.rewind=function(a){delete this.list},n.inherits(g,d),g.prototype.nextObject=function(a){function b(e,f){e?a(e):f?d(f)?a(null,f):c.nextObject(b):a()}var c=this.source,d=this.condition;if("function"!=typeof d){var e=new Error("invalid condition: "+d);return void a(e)}c.nextObject(b)},n.inherits(h,d),h.prototype.nextObject=function(a){var b=this;if(a=a||m,this._error)return void a(this._error);if(this.list){var c=this.list.shift();return void a(null,c)}l(this.source,function(c,d){return c?a(c):(d=d||[],b.list=d.sort(b.sorter),void b.nextObject(a))})},h.prototype.rewind=function(){delete this.list,this.source.rewind&&this.source.rewind()},n.inherits(i,d),i.prototype.nextObject=function(a){function b(f,g){f?a(f):g?--d>0?e.nextObject(b):(c.ready=!0,e.nextObject(a)):a()}var c=this,d=this.offset,e=this.source;a=a||m,this.ready||0>=d?e.nextObject(a):e.nextObject(b)},i.prototype.rewind=function(){delete this.ready,d.prototype.rewind.call(this)},n.inherits(j,d),j.prototype.nextObject=function(a){var b=this.source;a=a||m,this.rest-->0?b.nextObject(a):a()},j.prototype.rewind=function(){this.rest=this.limit,d.prototype.rewind.call(this)},n.inherits(k,d),k.prototype.nextObject=function(a){var b=this.projection;if("function"!=typeof b){var c=new Error("invalid projection: "+b);return void a(c)}this.source.nextObject(function(c,d){c?a(c):d?(d=b(d),a(null,d)):a()})}},{"./utils":11}],7:[function(a,b,c){function d(a,b,c,d){this.settings=d||{},this.collection=a,this._condition=b,this._projection=c}function e(){}a("../core/utils");b.exports=d,d.prototype.toArray=function(a){if(a=a||e,this.cache){var b=[].concat(this.cache);a(b)}else{var c=this._cursor();c.toArray(function(b,c){!b&&c&&(this.cache=c,c=[].concat(this.cache)),a(b,c)})}},d.prototype._cursor=function(){var a=this.collection,b=this._condition,c=this._projection,d=this.settings,e=a.find(b,c,d);return e},d.prototype.count=function(a){var b=this._cursor();return b.count?void b.count(a):void b.toArray(function(b,c){b?a(b):(c=c||[],a(null,c.length))})},d.prototype.sort=function(a){return this.settings.sort=a,this},d.prototype.offset=function(a){return this.settings.skip=a,this},d.prototype.limit=function(a){return this.settings.limit=a,this},d.prototype.each=function(a){function b(d,e){a(d,e),!d&&e&&c.nextObject(b)}var c=this;a=a||e,this.nextObject(b)},d.prototype.nextObject=function(a){var b=this;if(a=a||e,this.list){if(!this.list.length)return a();var c=this.list.shift();a(null,c)}else this.toArray(function(c,d){return c?a(c):(b.list=d||[],void b.nextObject(a))});return this},d.prototype.rewind=function(a){delete this.list}},{"../core/utils":11}],8:[function(a,b,c){function d(a){if(!(this instanceof d))return new d(a);var b;if(a instanceof d?b=a.$oid:"object"==typeof a&&a&&a.$oid?b=a.$oid:"string"==typeof a&&(b=a),b){if(24==b.length)this.$oid=b;else if(12==b.length)this.$oid=e(b);else if(b.length>0)throw new Error("Invalid source ObjectID: "+a)}else this.$oid=f(a)}function e(a){for(var b=[],c=a.length,d=0;c>d;d++){var e=a.charCodeAt(d),f=e.toString(16);1==f.length&&(f="0"+f),b.push(f)}return b.join("")}function f(a){var b=a instanceof Date?a:new Date,c=Math.floor(b.getTime()/1e3),e=d._machineId||(d._machineId=Math.floor(16777216*Math.random())),f=d._processId||(d._processId=Math.floor(65536*Math.random()));d._globalSeq||(d._globalSeq=0);var g=++d._globalSeq,h=("00000000"+c.toString(16)).substr(-8,8),i=("000000"+e.toString(16)).substr(-6,6),j=("0000"+f.toString(16)).substr(-4,4),k=("000000"+g.toString(16)).substr(-6,6),l=[h,i,j,k];return l.join("")}b.exports=d,d.prototype={getGenerationTime:function(){return parseInt(this.$oid.substr(0,8),16)},setGenerationTime:function(a){var b=("00000000"+a.toString(16)).substr(-8,8),c=this.$oid.substr(8),d=[b,c];this.$oid=d.join("")},toHexString:function(){return this.$oid},getTimestamp:function(){var a=parseInt(this.$oid.substr(0,8),16);return new Date(1e3*a)},equals:function(a){return this+""==a},toOctets:function(){for(var a=this.toHexString(),b=[],c=a.length,d=0;c>d;d+=2){var e=a.substr(d,2),f=parseInt(e,16);b.push(f)}return String.fromCharCode.apply(null,b)}},d.prototype.valueOf=d.prototype.toHexString,d.prototype.toString=d.prototype.toHexString,d.prototype.toJSON=d.prototype.toHexString,d.createFromTime=function(a){a=Math.floor(a)||0;var b=("00000000"+a.toString(16)).substr(-8,8),c="000000",e="0000",f="000000",g=[b,c,e,f],h=g.join("");return new d(h)},d.createFromHexString=function(a){return new d(a)}},{}],9:[function(a,b,c){b.exports={name:"kagodb",version:"0.2.37"}},{}],10:[function(a,b,c){var d=a("./system.json");c.version=function(){return d.version}},{"./system.json":9}],11:[function(a,b,c){function d(){}c.inherits=function(a,b){b=b||function(){},a=a||function(){b.apply(this,arguments)};var c=function(){};return c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a,a.super_=b,a},c.eachSeries=function(a,b,c){function e(a){if(a)c(a);else if(f.length){var d=f.shift();b(d,e)}else c()}b=b||d,c=c||d;var f=[].concat(a);e()},c.extend=function(a,b){b=b||{};for(var c in b)a[c]=b[c];return a},c.clone=function(a){var b={};for(var c in a)b[c]=a[c];return b},c.bless=function(a,b){if(b&&"object"==typeof a&&a){if(a.__proto__)a.__proto__=b.prototype;else{var c=new b;for(var d in a)a.hasOwnProperty(d)&&(c[d]=a[d]);a=c}return a}}},{}],12:[function(a,b,c){b.exports=function(a,b){function c(a,c){var d,e=b||new Error("method denied: "+a);return c=parseInt(c,10),d=c>=0?function(){var a=arguments[c];if("function"!=typeof a)throw e;a(e)}:0>c?function(){var a=arguments[arguments.length+c];if("function"!=typeof a)throw e;a(e)}:function(){throw e}}var d={};for(var e in a)d[e]=c(e,a[e]);return d}},{}],13:[function(a,b,c){function d(){if(this._ajax||(this.bundle.superagent&&this.get("superagent")?this._ajax=this.bundle.superagent.ajax:this.bundle.jquery&&(this.get("jquery")||f("jQuery"))?this._ajax=this.bundle.jquery.ajax:this.bundle.request&&(this._ajax=this.bundle.request.ajax)),!this._ajax)throw new Error('ajax driver is not specified at "ajax" option: '+this.get("ajax"));this._ajax.apply(this,arguments)}var e=a("../mixin/stub"),f=a("wrequire"),g=a("../mixin/dynamic_mixin"),h={ajax:d};b.exports=function(){function a(){return e(h).call(this),g("ajax")}return a}},{"../mixin/dynamic_mixin":14,"../mixin/stub":25,wrequire:44}],14:[function(a,b,c){function d(a){var b=this.get(a);if(!b)return null;this.emit("dynamic_mixin",a,b);var c=b+"";if("function"!=typeof b){var d=this.bundle||{};if(b=d[c],!b)throw new Error("invalid "+a+" class: "+c)}for(;"function"==typeof b;)b=b.call(this);for(var e in b)this[e]||(this[e]=b[e]);return b}var e=a("../mixin/intercept_mixin");b.exports=function(a){function b(){return e.call(this,c)}function c(b,c){return function(){var e=this[f];e||(e=d.call(this,a),e&&(this[f]=e));var g=e&&e[b]||c;return g.apply(this,arguments)}}var f="_"+a+"_dynamic_mixin";return b}},{"../mixin/intercept_mixin":20}],15:[function(a,b,c){var d=a("../mixin/stub"),e=a("../mixin/dynamic_mixin"),f={read:1,write:1,erase:1,exist:1,index:1,find:1,findOne:1,count:1,insert:1,save:1,update:1,findAndModify:1,remove:1,memory_store:1,file_folder:1,file_suffix:1,http_endpoint:1,http_param:1};b.exports=function(){return function(){return d(f).call(this),e("storage")}}},{"../mixin/dynamic_mixin":14,"../mixin/stub":25}],16:[function(a,b,c){function d(a,b){var c;try{c=JSON.parse(a)}catch(d){return void b(d)}this.unwrap&&(c=this.unwrap(c)),b(null,c)}function e(a,b){var c,d=this.get("json_replacer"),e=this.get("json_spaces");this.wrap&&(a=this.wrap(a));try{c=JSON.stringify(a,d,e)}catch(f){b(f)}b(null,c)}b.exports=function(){var a={};return a.decode=d,a.encode=e,a.escape=encodeURIComponent,a.unescape=decodeURIComponent,a}},{}],17:[function(a,b,c){function d(a,b){var c=this._events||(this._events={}),d=c[a]||(c[a]=[]);return d.push(b),this}function e(a,b){var c,d=this._events;return d?a?(c=d[a])?b?(d[a]=c.filter(function(a){return b!=a}),this):(delete d[a],this):this:(delete this._events,this):this}function f(a,b){var c=this,d=function(){d.done||(c.off(a,b),b.apply(this,arguments),d.done=!0)};return this.on(a,d),this}function g(a){var b,c,d=this,e=this._events;return e&&(b=e[a])?(c=Array.prototype.slice.call(arguments),c.shift(),b.forEach(function(a){a.apply(d,c)}),this):void 0}b.exports=function(){var a={};return a.on=d,a.off=e,a.once=f,a.emit=g,a}},{}],18:[function(a,b,c){function d(a,b,c){c=c||{};var d=function(){};d.prototype=this;var f=new d;return f.find=e,new o(f,a,b,c)}function e(a,b,c){var d=this,e=this.http_endpoint(),f=this.http_param();f.options=c,f.method="find",a&&(f.condition=a),b&&(f.projection=b);var g={method:"POST",url:e,json:f},h={};return h.toArray=function(a){function b(b,c){if(a=a||n,b)a(b);else if(c&&c.data){var e=c.data;if(e instanceof Array||!e.length||(e=Array.prototype.slice.call(e)),d.unwrap){var f=d.unwrap.bind(d);e=e.map(f)}a(b,e)}else b=new Error('ajax response has no "data" property'),a(b)}d.ajax(g,b)},h}function f(a,b,c){function d(a,b){c=c||n,!a&&e.unwrap&&(b=e.unwrap.call(e,b)),c(a,b)}"function"!=typeof b||c||(c=b,b=null),b=b||{};var e=this,f=this.http_endpoint(),g=this.http_param();g.method="findOne",a&&(g.condition=a),b&&(g.options=b);var h={method:"POST",url:f,json:g};this.ajax(h,d)}function g(a,b,c){"function"!=typeof b||c||(c=b,b=null),b=b||{};var d=this.http_endpoint(),e=this.http_param();e.method="count",a&&(e.condition=a),b&&(e.options=b);var f={method:"POST",url:d,json:e};this.ajax(f,m("count",c))}function h(a,b){var c=this.http_endpoint();this.wrap&&(a=this.wrap(a));var d=this.http_param();d.method="insert",d.content=a;var e={method:"POST",url:c,json:d};this.ajax(e,m("success",b))}function i(a,b){var c=this.http_endpoint();this.wrap&&(a=this.wrap(a));var d=this.http_param();d.method="save",d.content=a;var e={method:"POST",url:c,json:d};this.ajax(e,m("success",b))}function j(a,b,c){var d=this.http_endpoint(),e=this.http_param();e.method="remove",a&&(e.condition=a),b&&(e.options=b);var f={method:"POST",url:d,json:e};this.ajax(f,m("success",c))}function k(a,b,c,d){var e=this.http_endpoint(),f=this.http_param();f.method="update",a&&(f.condition=a),f.update=b,c&&(f.options=c);var g={method:"POST",url:e,json:f};this.ajax(g,m("success",d))}function l(a,b,c,d,e){var f=this.http_endpoint(),g=this.http_param();g.method="findAndModify",a&&(g.condition=a),b&&(g.sort=b),g.update=c,d&&(g.options=d);var h={method:"POST",url:f,json:g};this.ajax(h,m("success",e))}function m(a,b){return b?function(c,d){c?b(c):a?"object"!=typeof d?b():b(null,d[a]):b(null,d)}:void 0}function n(){}var o=(a("../core/base"),a("../core/utils"),a("../core/cursor_bulk"));b.exports=function(){var a={};return a.find=d,a.findOne=f,a.count=g,a.insert=h,a.save=i,a.remove=j,a.update=k,a.findAndModify=l,a}},{"../core/base":5,"../core/cursor_bulk":7,"../core/utils":11}],19:[function(a,b,c){b.exports=function(){return{init:function(){return this}}}},{}],20:[function(a,b,c){b.exports=function(a){function b(){var b,c,d={};for(b in this)"_"!=b.substr(0,1)&&"get"!=b&&"set"!=b&&(c=this[b],"function"==typeof c&&(d[b]=c));for(b in d)this[b]=a(b,d[b]);return null}return b}},{}],21:[function(a,b,c){var d=a("../core/utils");b.exports=function(a){function b(){var b=this.unwrap;this.model=function(b){return 1==arguments.length?(this._model=b,this.set("model",b),b):(b=this._model,b||null===b||(b=this._model=this.get("model")||a||null),b)},this.unwrap=function(a){var c=this._model||this.model();return b&&(a=b.call(this,a)),c&&(a=d.bless(a,c)),a}}return b}},{"../core/utils":11}],22:[function(a,b,c){b.exports=function(){return{noop:function(){return this}}}},{}],23:[function(a,b,c){var d=a("obop");b.exports=function(){function a(){return a._?a._:(a._=new d,a._)}return{obop:a}}},{obop:36}],24:[function(a,b,c){function d(a,b){throw new Error("method not implemented: read")}function e(a,b,c){throw new Error("method not implemented: write")}b.exports=function(a){function b(){var b=this.read||d,c=this.write||e;this.pkey=function(b){return 1==arguments.length?(this._pkey=b,this.set("primary_key",b),b):(b=this._pkey,b||null===b||(b=this._pkey=this.get("primary_key")||a||null),b)},this.read=function(a,c){function d(b,d){b||"object"!=typeof d||(d[e]=a),c(b,d)}var e=this.pkey(),f=e?d:c;b.call(this,a,f)},this.write=function(a,b,d){var e=this.pkey();e&&"object"==typeof b&&(b[e]=a),c.call(this,a,b,d)}}return b}},{}],25:[function(a,b,c){function d(a){return function(){throw new Error("method not implemented: "+a)}}b.exports=function(a){return a=a||{},function(){for(var b in a)if(!this[b]){var c=a[b];this[b]="function"==typeof c?c:d(b)}}}},{}],26:[function(a,b,c){function d(a,b,c){return"function"!=typeof b||c||(c=b,b=null),b=b||{},c=c||e,this.find(a,null,b).count(c),this}function e(){}b.exports=function(){var a={};return a.count=d,a}},{}],27:[function(a,b,c){function d(a,b,c){c=c||{},c.fields&&(b=c.fields);var d=new e(this,a,b);return c.sort&&d.sort(c.sort),c.skip&&d.offset(c.skip),c.limit&&d.limit(c.limit),d}var e=a("../core/cursor");b.exports=function(){var a={};return a.find=d,a}},{"../core/cursor":6}],28:[function(a,b,c){function d(a,b,c,d,f){function g(a,b){if(a)return f(a);if(!b)return f();var d=b[i];c&&(b=c(b)),h.write(d,b,f)}var h=this,i=this.pkey();if("function"!=typeof d||f||(f=d,d=null),c=this.obop().update(c),d=d||{},d.limit=1,d.sort=b,f=f||e,!i)throw new Error("primary key not defined");return this.findOne(a,d,g),this}function e(){}b.exports=function(){var a={};return a.findAndModify=d,a}},{}],29:[function(a,b,c){function d(a,b,c){"function"!=typeof b||c||(c=b,b=null),b=b||{},c=c||e;this.find(a,null,b).limit(1).toArray(function(a,b){if(a)c(a);else if(b&&b.length){var d=b[0];c(null,d)}else c()});return this}function e(){}b.exports=function(){var a={};return a.findOne=d,a}},{}],30:[function(a,b,c){function d(a,b){function c(a,b){var c=a[j];if("undefined"==typeof c||null===c)a[j]=k(),b();else if(l[c]){var d=new Error("duplicated item ID: "+c);b(d)}else l[c]=!0,h.exist(c,function(a,d){!a&&d&&(a=new Error("item already exist: "+c)),b(a)})}function d(a){a?b(a):f.eachSeries(i,e,b)}function e(a,b){var c=a[j];h.write(c,a,b)}var h=this,i=a instanceof Array?a:[a],j=h.pkey();if(!j)throw new Error("primary key not defined");var k=this.get("primary_key_builder")||g,l={};return f.eachSeries(i,c,d),this}function e(a,b){var c=this,d=c.pkey();if(!d)throw new Error("primary key not defined");var e=a[d];return e?c.write(e,a,b):c.insert(a,b),this}var f=a("../core/utils"),g=a("../core/objectid");b.exports=function(){var a={};return a.insert=d,a.save=e,a}},{"../core/objectid":8,"../core/utils":11}],31:[function(a,b,c){function d(a,b,c){var d;return b=b||{},b.single?(d=e(this,c,c),d&&this.findOne(a,d)):(d=e(this,null,c),d&&this.find(a).each(d)),this}function e(a,b,c){var d=a.pkey();if(!d)throw new Error("primary key not defined");return c=c||f,function(e,f){if(e)return c(e);if(!f)return c();var g=f[d];a.erase(g,b)}}function f(){}b.exports=function(){var a={};return a.remove=d,a}},{}],32:[function(a,b,c){function d(a,b,c,d){function f(a,c){if(a)return d(a);if(!c)return d();var e=c[i];b&&(c=b(c)),h.write(e,c,g)}var g,h=this,i=this.pkey();if("function"!=typeof c||d||(d=c,c=null),b=this.obop().update(b),c=c||{},d=d||e,!i)throw new Error("primary key not defined");return c.multi?this.find(a).each(f):(g=d,this.findOne(a,f)),this}function e(){}b.exports=function(){var a={};return a.update=d,a}},{}],33:[function(a,b,c){function d(a,b){function c(a,c){!a&&d.unwrap&&(c=d.unwrap(c)),b(a,c)}b=b||l;var d=this,e=this.http_endpoint()+a,f=this.http_param(),g={method:"GET",url:e};Object.keys(f)&&(g.form=f),this.ajax(g,c)}function e(a,b,c){var d=this.http_endpoint()+a;this.wrap&&(b=this.wrap(b));var e=this.http_param();e.method="write",e.content=b;var f={method:"POST",url:d,json:e};this.ajax(f,i("success",c))}function f(a,b){var c=this.http_endpoint()+a,d=this.http_param();d.method="erase";var e={method:"POST",url:c,form:d};this.ajax(e,i("success",b))}function g(a,b){b=b||l;var c=this.http_endpoint()+a,d=this.http_param();d.method="exist";var e={method:"POST",url:c,form:d};this.ajax(e,i("exist",b))}function h(a){a=a||l;var b=this.http_endpoint(),c=this.http_param();c.method="index";var d={method:"POST",url:b,form:c};this.ajax(d,i("index",a))}function i(a,b){return b?function(c,d){c?b(c):a?"object"!=typeof d?b():b(null,d[a]):b(null,d)}:void 0}function j(a,b){return function(c,d){var e=this.get(a)||{};if(1==arguments.length)return e[c];if(e=m.clone(e),arguments.length>1)return e[c]=d,this.set(a,e),this;if(b)for(c in e)"function"==typeof e[c]&&(e[c]=e[c]());return e}}function k(){var a=this.get("endpoint");if(!a)throw new Error("endpoint not defined");return a.replace(/\/*$/,"/")}function l(){}var m=a("../core/utils"),n=a("../mixin/http_more");b.exports=function(){var a={};return a.read=d,a.write=e,a.erase=f,a.exist=g,a.index=h,a.http_endpoint=k,a.http_param=j("http_param",!0),m.extend(a,n.call(this)),a}},{"../core/utils":11,"../mixin/http_more":18}],34:[function(a,b,c){function d(){var a=this.get("local_storage");return a=a||g("localStorage")||i}function e(a){var b=this.get("namespace");return a=encodeURIComponent(a),b&&(a=b+":"+a),a}function f(a){var b=this.get("namespace");if(b){b+=":";var c=b.length;if(a.substr(0,c)!=b)return new Error("Invalid ID: "+a);a=a.substr(c)}return a=decodeURIComponent(a)}var g=a("wrequire"),h=a("./memory"),i={};b.exports=function(){var a=h.call(this);return a.memory_store=d,a.escape=e,a.unescape=f,a}},{"./memory":35,wrequire:44}],35:[function(a,b,c){function d(a,b){b=b||j;var c=this._memory_store||(this._memory_store=this.memory_store());if(a=this.escape(a),c.hasOwnProperty(a)&&this.decode){var d=c[a];this.decode(d,b)}else{var e=new Error("Item not found");b(e,null)}}function e(a,b,c){c=c||j;var d=this._memory_store||(this._memory_store=this.memory_store());a=this.escape(a),this.encode(b,function(b,e){b||(d[a]=e),c(b)})}function f(a,b){b=b||j;var c=this._memory_store||(this._memory_store=this.memory_store());if(a=this.escape(a),c.hasOwnProperty(a))delete c[a],b();else{var d=new Error("Item not found");b(d)}}function g(a,b){b=b||j;var c=this._memory_store||(this._memory_store=this.memory_store());a=this.escape(a);var d=c.hasOwnProperty(a);b(null,d)}function h(a){a=a||j;var b=this._memory_store||(this._memory_store=this.memory_store()),c=Object.keys(b),d=this.unescape.bind(this);c=c.map(d),c=c.filter(function(a){return!(a instanceof Error)}),a(null,c)}function i(){var a,b=this.get("namespace");return a=b?k[b]||(k[b]={}):{}}function j(){}b.exports=function(){var a={};return a.read=d,a.write=e,a.erase=f,a.exist=g,a.index=h,a.memory_store=i,a};var k={}},{}],36:[function(a,b,c){function d(){return this instanceof d?void 0:new d}var e=a("./lib/dollar_where"),f=a("./lib/dollar_update");d.where=d.prototype.where=a("./lib/where.js").where,d.view=d.prototype.view=a("./lib/view.js").view,d.order=d.prototype.order=a("./lib/order.js").order,d.update=d.prototype.update=a("./lib/update.js").update,d.system=d.prototype.system=a("./lib/system.json"),d.$where=d.prototype.$where=new e,d.$update=d.prototype.$update=new f,b.exports=d},{"./lib/dollar_update":37,"./lib/dollar_where":38,"./lib/order.js":39,"./lib/system.json":40,"./lib/update.js":41,"./lib/view.js":42,"./lib/where.js":43}],37:[function(a,b,c){function d(){return this instanceof d?void 0:new d}b.exports=d,d.prototype={$set:function(a){return function(b){if("object"!=typeof b)return b;for(var c in a)b[c]=a[c];return b}},$unset:function(a){return function(b){if("object"!=typeof b)return b;for(var c in a)delete b[c];return b}},$rename:function(a){return function(b){if("object"!=typeof b)return b;for(var c in a){var d=b[c];if("undefined"!=typeof d){delete b[c];var e=a[c];b[e]=d}}return b}},$push:function(a){return function(b){if("object"!=typeof b)return b;for(var c in a){var d=a[c],e=b[c];e instanceof Array||("undefined"==typeof e?b[c]=[]:b[c]=[e]),b[c].push(d)}return b}},$pull:function(a){return function(b){if("object"!=typeof b)return b;for(var c in a){var d=a[c],e=b[c];if(e instanceof Array){for(var f=[],g=e.length,h=0;g>h;h++){var i=e[h];d!=i&&f.push(i)}b[c]=f}else d==e&&(b[c]=[])}return b}},$inc:function(a){return function(b){if("object"!=typeof b)return b;for(var c in a){var d=a[c],e=b[c];d=parseFloat(d)||0,e=parseFloat(e)||0,b[c]=e+d}return b}}}},{}],38:[function(a,b,c){function d(){return this instanceof d?void 0:new d}function e(a){for(var b=a.length,c=0;b>c;c++){var d=a[c];if(d instanceof Error)return d}}function f(a){var b=a.length;return e(a)||function(c){for(var d=0;b>d;d++){var e=a[d];if(!e(c))return!1}return!0}}function g(a){var b=a.length;return e(a)||function(c){for(var d=0;b>d;d++){var e=a[d];if(e(c))return!0}return!1}}b.exports=d,d.prototype={$gt:function(a){return function(b){return b>a}},$gte:function(a){return function(b){return b>=a}},$in:function(a){if(!(a instanceof Array))return new Error("invalid query");var b=a.length;return function(c){for(var d=0;b>d;d++)if(c==a[d])return!0;return!1}},$lt:function(a){return function(b){return a>b}},$lte:function(a){return function(b){return a>=b}},$ne:function(a){return function(b){return b!=a}},$nin:function(a){var b=a.length;return function(c){for(var d=0;b>d;d++)if(c==a[d])return!1;return!0}},$or:function(a,b){if(a){if(!(a instanceof Array)||0===a.length)return new Error("$or requires nonempty array");var c=[];return a.forEach(function(a){var d=b.where(a);c.push(d)}),g(c)}},$and:function(a,b){if(a){if(!(a instanceof Array)||0===a.length)return new Error("$and expression must be a nonempty array");var c=[];return a.forEach(function(a){var d=b.where(a);c.push(d)}),f(c)}},$not:function(a,b){var c=b.where(a);return function(a){return!c(a)}},$exists:function(a){return function(b){var c="undefined"!=typeof b;return c===a}},$size:function(a){return function(b){var c,d="undefined"!=typeof b;return d&&b instanceof Array?(c=b.length,c==a):!1}}}},{}],39:[function(a,b,c){function d(a){function b(a,b,d){function e(c,e){var f=c[a],g=e[a];return f>g?b:g>f?-b:f!==l&&g===l?b:f===l&&g!==l?-b:d?d(c,e):0}function f(a,b){var c=a[g],e=b[g],f=c&&"object"==typeof c,h=e&&"object"==typeof e;if(f||h){f||(c={}),h||(e={});var i=j(c,e);if(i)return i}return d?d(a,b):0}var g,h,i,j,k=a.indexOf(".");return k>-1?(g=a.substr(0,k),h=a.substr(k+1),i=[h,b],j=c.order([i]),f):e;var l}var c=this,d=null;if("function"==typeof a)return a;if(a=a||{},"object"!=typeof a)return new Error("Invalid order operator type: "+a);if(a instanceof Array){var e;if(a.forEach(function(a){e||a instanceof Array&&2===a.length&&"undefined"!=typeof a[0]&&a[1]-a[1]===0||(e=new Error("Invalid order pair: "+a))}),e)return e}else{var f=[];for(var g in a){var h=[g,a[g]];f.push(h)}a=f}var i=a.length;if(0===i)return d;for(var j,k=i-1;k>=0;k--)j=b(a[k][0],a[k][1],j);return j}c.order=function(a,b){var c,e=arguments.length;if(1==e){if(c=d.call(this,a),c instanceof Error)throw c;return c}if(2==e){if(a instanceof Array){if(c=d.call(this,b),c instanceof Error)throw c;return a.sort(c)}throw new Error("Invalid argument type: "+a)}throw new Error("Invalid arguments length: "+e); }},{}],40:[function(a,b,c){b.exports={name:"obop",version:"0.0.10"}},{}],41:[function(a,b,c){function d(a){var b,c=this,f=null;if("function"==typeof a)return a;if(a=a||{},!Object.keys(a))return f;if("object"!=typeof a)return new Error("Invalid update operator type: "+d);var g=[];return Object.keys(a).forEach(function(d){if(!b){var e=c.$update[d];if(!e)return void(b=new Error("Unknown update operator: "+d));var f=a[d],h={},i={};for(var j in f){var k=f[j],l=j.indexOf(".");if(l>-1){var m=j.substr(0,l),n=j.substr(l+1);i[m]=i[m]||{},i[m][n]=k}else h[j]=k}if(Object.keys(h).length){var o=e(h);g.push(o)}Object.keys(i).length&&Object.keys(i).forEach(function(a){var b={};b[d]=i[a];var e=c.update(b),f=function(b){var c=b[a];return"object"!=typeof c&&(c=b[a]={}),b[a]=e(c),b};g.push(f)})}}),b?b:g.length<2?g.shift()||f:e(g)}function e(a){var b=a.length;return function(c){for(var d=0;b>d;d++){var e=a[d];c=e(c)}return c}}c.update=function(a,b){var c,e=arguments.length;if(1==e){if(c=d.call(this,a),c instanceof Error)throw c;return c}if(2==e){if(a instanceof Array){if(c=d.call(this,b),c instanceof Error)throw c;return a.map(c)}throw new Error("Invalid argument type: "+a)}throw new Error("Invalid arguments length: "+e)}},{}],42:[function(a,b,c){function d(a){function b(a){var b={};return a.hasOwnProperty(l)&&(b[l]=a[l]),b}function c(a){var b={};return Object.keys(a).forEach(function(c){n[c]||(b[c]=a[c])}),b}function d(a){var b={};return Object.keys(a).forEach(function(c){m[c]&&(b[c]=a[c])}),b}function e(a){var b={};return Object.keys(a).forEach(function(c){var d=n[c],e=a[c];"function"==typeof d?"object"==typeof e?b[c]=d(e):b[c]=e:d||(b[c]=e)}),b}function f(a){var b={};return Object.keys(a).forEach(function(c){var d=m[c],e=a[c];"function"==typeof d?"object"==typeof e&&(b[c]=d(e)):d&&(b[c]=e)}),b}function g(a){return v&&(a=f(a)),w&&(a=e(a)),a}var h=this,i=null;if("function"==typeof a)return a;if(a=a||{},"object"!=typeof a)return new Error("Invalid view parameters type: "+a);var j=Object.keys(a);if(!j.length)return i;var k,l=j[0],m={},n={},o={},p={};for(var q in a){var r=a[q],s=q.indexOf(".");if(s>-1){var t=q.substr(0,s),u=q.substr(s+1);k=!0,r?(o[t]=o[t]||{},o[t][u]=r):(p[t]=p[t]||{},p[t][u]=r)}else r?m[q]=!0:n[q]=!0}k&&(Object.keys(o).forEach(function(a){var b=o[a];m[a]=h.view(b)}),Object.keys(p).forEach(function(a){var b=p[a];n[a]=h.view(b)}));var v=Object.keys(m).length,w=Object.keys(n).length;return 1!==v||w||k?v&&!w?k?f:d:!v&&w?k?e:c:g:b}c.view=function(a,b){var c,e=arguments.length;if(1==e){if(c=d.call(this,a),c instanceof Error)throw c;return c}if(2==e){if(a instanceof Array){if(c=d.call(this,b),c instanceof Error)throw c;return a.map(c)}throw new Error("Invalid argument type: "+a)}throw new Error("Invalid arguments length: "+e)}},{}],43:[function(a,b,c){function d(a){function b(a){Object.keys(a).forEach(function(b){if(!v){var d=a[b],f=c.where(d);if(f){if(f instanceof Error)return void(v=f);var g=function(a){return f(a[b])};g&&e.push(g)}}})}var c=this,d=null;if("function"==typeof a)return a;if(a=a||{},"object"!=typeof a)return new Error("Invalid where operator type: "+a);var e=[],g={},h={},i={};for(var j in a){var k=a[j],l=j.indexOf("."),m=c.$where[j];if(m){var n=m(k,c,j);n&&e.push(n)}else if(l>-1){var o=j.substr(0,l),p=j.substr(l+1);h[o]=h[o]||{},h[o][p]=k}else{if(k instanceof Array)return new Error("Unknown where operator: "+j);"object"==typeof k?i[j]=k:g[j]=k}}var q=Object.keys(g);if(1==q.length){var r=q[0],s=a[r],t=function(a){return"object"==typeof a&&a[r]==s};e.push(t)}else if(q.length>1){var u=function(a){if("object"!=typeof a)return!1;for(var b in g)if(a[b]!=g[b])return!1;return!0};e.push(u)}var v;return b(h),b(i),v?new Error(v):e.length<2?e.shift()||d:f(e)}function e(a){for(var b=a.length,c=0;b>c;c++){var d=a[c];if(d instanceof Error)return d}}function f(a){var b=a.length;return e(a)||function(c){for(var d=0;b>d;d++){var e=a[d];if(!e(c))return!1}return!0}}c.where=function(a,b){var c,e=arguments.length;if(1==e){if(c=d.call(this,a),c instanceof Error)throw c;return c}if(2==e){if(a instanceof Array){if(c=d.call(this,b),c instanceof Error)throw c;return a.filter(c)}throw new Error("Invalid argument type: "+a)}throw new Error("Invalid arguments length: "+e)}},{}],44:[function(a,b,c){function d(b,c){return"undefined"!=typeof window&&"undefined"!=typeof window[b]?window[b]:"undefined"!=typeof a&&"undefined"!=typeof c?a(c):void 0}b.exports=d},{}]},{},[1]);