gun/gun.min.js
2018-05-22 14:12:57 -07:00

1 line
30 KiB
JavaScript

!function(){var t;"undefined"!=typeof window&&(t=window),"undefined"!=typeof global&&(t=global);var _=(t=t||{}).console||{log:function(){}};function x(o){return o.slice?x[e(o)]:function(t,n){o(t={exports:{}}),x[e(n)]=t.exports};function e(t){return t.split("/").slice(-1).toString().replace(".js","")}}if("undefined"!=typeof module)var f=module;x(function(t){var p={};p.fns=p.fn={is:function(t){return!!t&&"function"==typeof t}},p.bi={is:function(t){return t instanceof Boolean||"boolean"==typeof t}},p.num={is:function(t){return!h(t)&&(0<=t-parseFloat(t)+1||1/0===t||-1/0===t)}},p.text={is:function(t){return"string"==typeof t}},p.text.ify=function(t){return p.text.is(t)?t:"undefined"!=typeof JSON?JSON.stringify(t):t&&t.toString?t.toString():t},p.text.random=function(t,n){var o="";for(t=t||24,n=n||"0123456789ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxyz";0<t;)o+=n.charAt(Math.floor(Math.random()*n.length)),t--;return o},p.text.match=function(n,t){var o=!1;if(n=n||"",t=p.text.is(t)?{"=":t}:t||{},p.obj.has(t,"~")&&(n=n.toLowerCase(),t["="]=(t["="]||t["~"]).toLowerCase()),p.obj.has(t,"="))return n===t["="];if(p.obj.has(t,"*")){if(n.slice(0,t["*"].length)!==t["*"])return!1;o=!0,n=n.slice(t["*"].length)}if(p.obj.has(t,"!")){if(n.slice(-t["!"].length)!==t["!"])return!1;o=!0}if(p.obj.has(t,"+")&&p.list.map(p.list.is(t["+"])?t["+"]:[t["+"]],function(t){if(!(0<=n.indexOf(t)))return!0;o=!0}))return!1;if(p.obj.has(t,"-")&&p.list.map(p.list.is(t["-"])?t["-"]:[t["-"]],function(t){if(!(n.indexOf(t)<0))return!0;o=!0}))return!1;if(p.obj.has(t,">")){if(!(n>t[">"]))return!1;o=!0}if(p.obj.has(t,"<")){if(!(n<t["<"]))return!1;o=!0}if(p.obj.has(t,"?")){if(!function(t,n){for(var o,e=-1,i=0;o=n[i++];)if(!~(e=t.indexOf(o,e+1)))return!1;return!0}(n,t["?"]))return!1;o=!0}return o},p.list={is:function(t){return t instanceof Array}},p.list.slit=Array.prototype.slice,p.list.sort=function(o){return function(t,n){return t&&n?(t=t[o])<(n=n[o])?-1:n<t?1:0:0}},p.list.map=function(t,n,o){return e(t,n,o)},p.list.index=1,p.obj={is:function(t){return!!t&&(t instanceof Object&&t.constructor===Object||"Object"===Object.prototype.toString.call(t).match(/^\[object (\w+)\]$/)[1])}},p.obj.put=function(t,n,o){return(t||{})[n]=o,t},p.obj.has=function(t,n){return t&&Object.prototype.hasOwnProperty.call(t,n)},p.obj.del=function(t,n){if(t)return t[n]=null,delete t[n],t},p.obj.as=function(t,n,o,e){return t[n]=t[n]||(e===o?{}:o)},p.obj.ify=function(n){if(d(n))return n;try{n=JSON.parse(n)}catch(t){n={}}return n},function(){function o(t,n){v(this,n)&&void 0!==this[n]||(this[n]=t)}p.obj.to=function(t,n){return e(t,o,n=n||{}),n}}(),p.obj.copy=function(t){return t?JSON.parse(JSON.stringify(t)):t},function(){function o(t,n){var o=this.n;if(!o||!(n===o||d(o)&&v(o,n)))return!!n||void 0}p.obj.empty=function(t,n){return!t||!e(t,o,{n:n})}}(),function(){function c(t,n){2!==arguments.length?(c.r=c.r||[]).push(t):(c.r=c.r||{})[t]=n}var l=Object.keys;p.obj.map=function(t,n,o){var e,i,r,u,a=0,s=g(n);if(c.r=null,l&&d(t)&&(r=l(t),u=!0),h(t)||r)for(e=(r||t).length;a<e;a++){var f=a+p.list.index;if(s){if(void 0!==(i=u?n.call(o||this,t[r[a]],r[a],c):n.call(o||this,t[a],f,c)))return i}else if(n===t[u?r[a]:a])return r?r[a]:f}else for(a in t)if(s){if(v(t,a)&&void 0!==(i=o?n.call(o,t[a],a,c):n(t[a],a,c)))return i}else if(n===t[a])return a;return s?c.r:p.list.index?0:-1}}(),p.time={},p.time.is=function(t){return t?t instanceof Date:+(new Date).getTime()};var g=p.fn.is,h=p.list.is,n=p.obj,d=n.is,v=n.has,e=n.map;t.exports=p})(x,"./type"),x(function(t){t.exports=function t(n,o,e){if(!n)return{to:t};n=(this.tag||(this.tag={}))[n]||(this.tag[n]={tag:n,to:t._={next:function(t){var n;(n=this.to)&&n.next(t)}}});if(o instanceof Function){var i={off:t.off||(t.off=function(){if(this.next===t._.next)return!0;this===this.the.last&&(this.the.last=this.back),this.to.back=this.back,this.next=t._.next,this.back.to=this.to,this.the.last===this.the&&delete this.on.tag[this.the.tag]}),to:t._,next:o,the:n,on:this,as:e};return(i.back=n.last||n).to=i,n.last=i}return(n=n.to).next(o),n}})(x,"./onto"),x(function(t){if("undefined"==typeof JSON)throw new Error("JSON is not included in this browser. Please load it first: ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js");var r=JSON.stringify;t.exports=function(t,n,o,e,i){if(t<n)return{defer:!0};if(n<o)return{historical:!0};if(o<n)return{converge:!0,incoming:!0};if(n===o){if((e=r(e)||"")===(i=r(i)||""))return{state:!0};if(e<i)return{converge:!0,current:!0};if(i<e)return{converge:!0,incoming:!0}}return{err:"Invalid CRDT Data: "+e+" to "+i+" at "+n+" to "+o+"!"}}})(x,"./HAM"),x(function(t){var n=x("./type"),e={is:function(t){return void 0!==t&&(null===t||t!==1/0&&(!!(u(t)||o(t)||r(t))||(e.rel.is(t)||!1)))},rel:{_:"#"}};(function(){function o(t,n){return this.id?this.id=!1:n==i&&u(t)?void(this.id=t):this.id=!1}e.rel.is=function(t){if(t&&t[i]&&!t._&&s(t)){var n={};if(c(t,o,n),n.id)return n.id}return!1}})(),e.rel.ify=function(t){return f({},i,t)},n.obj.has._=".";var i=e.rel._,o=n.bi.is,r=n.num.is,u=n.text.is,a=n.obj,s=a.is,f=a.put,c=a.map;t.exports=e})(x,"./val"),x(function(t){var n=x("./type"),r=x("./val"),u={_:"_",soul:function(t,n){return t&&t._&&t._[n||f]}};u.soul.ify=function(t,n){return n="string"==typeof n?{soul:n}:n||{},(t=t||{})._=t._||{},t._[f]=n.soul||t._[f]||e(),t},u.soul._=r.rel._,function(){function i(t,n){if(n!==u._)return!r.is(t)||void(this.cb&&this.cb.call(this.as,t,n,this.n,this.s))}u.is=function(t,n,o){var e;return!!a(t)&&(!!(e=u.soul(t))&&!s(t,i,{as:o,cb:n,s:e,n:t}))}}(),function(){function e(t,n){var o,e=this.o;e.map?void 0===(o=e.map.call(this.as,t,""+n,e.node))?i(e.node,n):e.node&&(e.node[n]=o):r.is(t)&&(e.node[n]=t)}u.ify=function(t,n,o){return n?"string"==typeof n?n={soul:n}:n instanceof Function&&(n={map:n}):n={},n.map&&(n.node=n.map.call(o,t,void 0,n.node||{})),(n.node=u.soul.ify(n.node||{},n))&&s(t,e,{o:n,as:o}),n.node}}();var o=n.obj,a=o.is,i=o.del,s=o.map,e=n.text.random,f=u.soul._;t.exports=u})(x,"./node"),x(function(t){var n=x("./type"),u=x("./node");function s(){var t;return t=o(),e<t?(i=0,e=t+s.drift):e=t+(i+=1)/r+s.drift}var o=n.time.is,e=-1/0,i=0,r=1e3,a="undefined"!=typeof performance&&(performance.timing&&performance);a&&a.timing&&a.timing.navigationStart||(a=!1);s._=">",s.drift=0,s.is=function(t,n,o){var e=n&&t&&t[b]&&t[b][s._]||o;if(e)return d(e=e[n])?e:-1/0},s.lex=function(){return s().toString(36).replace(".","")},s.ify=function(t,n,o,e,i){if(!t||!t[b]){if(!i)return;t=u.soul.ify(t,i)}var r=c(t[b],s._);return void 0!==n&&n!==b&&(d(o)&&(r[n]=o),void 0!==e&&(t[n]=e)),t},s.to=function(t,n,o){var e=t[n];return p(e)&&(e=h(e)),s.ify(o,n,s.is(t,n),e,u.soul(t))},function(){function a(t,n){b!==n&&s.ify(this.o,n,this.s)}s.map=function(i,r,u){var t=p(t=i||r)?t:null;return i=v(i=i||r)?i:null,t&&!i?(r=d(r)?r:s(),t[b]=t[b]||{},g(t,a,{o:t,s:r}),t):(u=u||p(r)?r:void 0,r=d(r)?r:s(),function(t,n,o,e){if(!i)return a.call({o:o,s:r},t,n),t;i.call(u||this||{},t,n,o,e),l(o,n)&&void 0===o[n]||a.call({o:o,s:r},t,n)})}}();var f=n.obj,c=f.as,l=f.has,p=f.is,g=f.map,h=f.copy,d=n.num.is,v=n.fn.is,b=u._;t.exports=s})(x,"./state"),x(function(t){var u=x("./type"),f=x("./val"),c=x("./node"),r={};!function(){function i(t,n){if(!t||n!==c.soul(t)||!c.is(t,this.fn,this.as))return!0;this.cb&&(o.n=t,o.as=this.as,this.cb.call(o.as,t,n,o))}function o(t){t&&c.is(o.n,t,o.as)}r.is=function(t,n,o,e){return!(!t||!l(t)||a(t))&&!s(t,i,{cb:n,fn:o,as:e})}}(),function(){function a(t,n){var o;return(o=function(t,n){var o,e=t.seen,i=e.length;for(;i--;)if(o=e[i],n.obj===o.obj)return o;e.push(n)}(t,n))?o:(n.env=t,n.soul=i,c.ify(n.obj,e,n)&&(t.graph[f.rel.is(n.rel)]=n.node),n)}function e(t,n,o){var e,i,r=this,u=r.env;if(c._===n&&g(t,f.rel._))return o._;if(e=s(t,n,o,r,u)){if(n||(r.node=r.node||o||{},g(t,c._)&&(r.node._=h(t._)),r.node=c.soul.ify(r.node,f.rel.is(r.rel)),r.rel=r.rel||f.rel.ify(c.soul(r.node))),(i=u.map)&&(i.call(u.as||{},t,n,o,r),g(o,n))){if(void 0===(t=o[n]))return void p(o,n);if(!(e=s(t,n,o,r,u)))return}if(!n)return r.node;if(!0===e)return t;if((i=a(u,{obj:t,path:r.path.concat(n)})).node)return i.rel}}function i(t){var n=this,o=f.rel.is(n.rel),e=n.env.graph;n.rel=n.rel||f.rel.ify(t),n.rel[f.rel._]=t,n.node&&n.node[c._]&&(n.node[c._][f.rel._]=t),g(e,o)&&(e[t]=e[o],p(e,o))}function s(t,n,o,e,i){var r;return!!f.is(t)||(l(t)?1:(r=i.invalid)?s(t=r.call(i.as||{},t,n,o),n,o,e,i):(i.err="Invalid value at '"+e.path.concat(n).join(".")+"'!",void(u.list.is(t)&&(i.err+=" Use `.set(item)` instead of an Array."))))}r.ify=function(t,n,o){var e={path:[],obj:t};return n?"string"==typeof n?n={soul:n}:n instanceof Function&&(n.map=n):n={},n.soul&&(e.rel=f.rel.ify(n.soul)),n.graph=n.graph||{},n.seen=n.seen||[],n.as=n.as||o,a(n,e),n.root=e.node,n.graph}}(),r.node=function(t){var n=c.soul(t);if(n)return o({},n,t)},function(){function i(t,n){var o,e;if(c._!==n)(o=f.rel.is(t))?(e=this.opt.seen[o])?this.obj[n]=e:this.obj[n]=this.opt.seen[o]=r.to(this.graph,o,this.opt):this.obj[n]=t;else{if(a(t,f.rel._))return;this.obj[n]=h(t)}}r.to=function(t,n,o){if(t){var e={};return o=o||{seen:{}},s(t[n],i,{obj:e,graph:t,opt:o}),e}}}();u.fn.is;var n=u.obj,l=n.is,p=n.del,g=n.has,a=n.empty,o=n.put,s=n.map,h=n.copy;t.exports=r})(x,"./graph"),x(function(t){x("./onto"),t.exports=function(t,n){if(this.on){if(!(t instanceof Function)){if(!t||!n)return;var o=t["#"]||t,e=(this.tag||empty)[o];if(!e)return;return e=this.on(o,n),clearTimeout(e.err),!0}o=n&&n["#"]||Math.random().toString(36).slice(2);if(!t)return o;var i=this.on(o,t,n);return i.err=i.err||setTimeout(function(){i.next({err:"Error: No ACK received yet."}),i.off()},(this.opt||{}).lack||9e3),o}}})(x,"./ask"),x(function(t){var r=x("./type");var u=r.time.is;t.exports=function(e){var i={s:{}};return e=e||{max:1e3,age:9e3},i.check=function(t){var n;return!!(n=i.s[t])&&(n.pass?n.pass=!1:i.track(t))},i.track=function(t,n){var o=i.s[t]||(i.s[t]={});return o.was=u(),n&&(o.pass=!0),i.to||(i.to=setTimeout(function(){var o=u();r.obj.map(i.s,function(t,n){e.age>o-t.was||r.obj.del(i.s,n)}),i.to=null},e.age+9)),o},i}})(x,"./dup"),x(function(t){function c(t){return t instanceof c?(this._={gun:this}).gun:this instanceof c?c.create(this._={gun:this,opt:t}):new c(t)}c.is=function(t){return t instanceof c||t&&t._&&t._.gun&&!0||!1},c.version=.9,(c.chain=c.prototype).toJSON=function(){};var n=x("./type");n.obj.to(n,c),c.HAM=x("./HAM"),c.val=x("./val"),c.node=x("./node"),c.state=x("./state"),c.graph=x("./graph"),c.on=x("./onto"),c.ask=x("./ask"),c.dup=x("./dup"),function(){function o(t){var n,o,e=this.as,i=e.gun;(o=t["#"])||(o=t["#"]=r(9)),(n=e.dup).check(o)||(n.track(o),e.ask(t["@"],t)||(t.get&&c.on.get(t,i),t.put&&c.on.put(t,i)),e.on("out",t))}c.create=function(t){t.root=t.root||t,t.graph=t.graph||{},t.on=t.on||c.on,t.ask=t.ask||c.ask,t.dup=t.dup||c.dup();var n=t.gun.opt(t.opt);return t.once||(t.on("in",o,t),t.on("out",o,t),c.on("create",t),t.on("create",t)),t.once=1,n}}(),function(){function i(t,n,o,e){var i=this,r=c.state.is(o,n);if(!r)return i.err="Error: No state on '"+n+"' in node '"+e+"'!";var u=i.graph[e]||v,a=c.state.is(u,n,!0),s=u[n],f=c.HAM(i.machine,r,a,t,s);f.incoming?(i.put[e]=c.state.to(o,n,i.put[e]),(i.diff||(i.diff={}))[e]=c.state.to(o,n,i.diff[e]),i.souls[e]=!0):f.defer&&(i.defer=r<(i.defer||1/0)?r:i.defer)}function r(t,n){var o=this,e=o.gun._,i=(e.next||v)[n];if(!i){if(!(e.opt||v).super)return void(o.souls[n]=!1);i=o.gun.get(n)._}var r=o.map[n]={put:t,get:n,gun:i.gun},u={ctx:o,msg:r};o.async=!!e.tag.node,o.ack&&(r["@"]=o.ack),g(t,a,u),o.async&&(o.and||e.on("node",function(t){this.to.next(t),t===o.map[t.get]&&(o.souls[t.get]=!1,g(t.put,s,t),g(o.souls,function(t){if(t)return t})||o.c||(o.c=1,this.off(),e.stop={},g(o.map,f,o)))}),o.and=!0,e.on("node",r))}function a(t,n){var o=this.ctx,e=o.graph,i=this.msg,r=i.get,u=i.put,a=i.gun._;e[r]=c.state.to(u,n,e[r]),o.async||(a.put=c.state.to(u,n,a.put))}function s(t,n){var o=this.put,e=this.gun._;e.put=c.state.to(o,n,e.put)}function f(t,n){t.gun&&t.gun._.on("in",t)}c.on.put=function(t,n){var o=n._,e={gun:n,graph:o.graph,put:{},map:{},souls:{},machine:c.state(),ack:t["@"]};if(c.graph.is(t.put,null,i,e)||(e.err="Error: Invalid graph!"),e.err)return o.on("in",{"@":t["#"],err:c.log(e.err)});g(e.put,r,e),e.async||(o.stop={},g(e.map,f,e)),void 0!==e.defer&&setTimeout(function(){c.on.put(t,n)},e.defer-e.machine),e.diff&&o.on("put",p(t,{put:e.diff}))},c.on.get=function(t,n){var o=n._,e=t.get[h],i=o.graph[e],r=t.get[d],u=(o.next||(o.next={}))[e];if(!i||!u)return o.on("get",t);if(r){if(!l(i,r))return o.on("get",t);i=c.state.to(i,r)}else i=c.obj.copy(i);i=c.graph.node(i),o.on("in",{"@":t["#"],how:"mem",put:i,gun:n}),o.on("get",t)}}(),c.chain.opt=function(t){t=t||{};var n=this._,o=t.peers||t;return a(t)||(t={}),a(n.opt)||(n.opt=t),i(o)&&(o=[o]),e(o)&&(o=g(o,function(t,n,o){o(t,{url:t})}),a(n.opt.peers)||(n.opt.peers={}),n.opt.peers=p(o,n.opt.peers)),n.opt.peers=n.opt.peers||{},p(t,n.opt),c.on("opt",n),n.opt.uuid=n.opt.uuid||function(){return s()+r(12)},this};var e=c.list.is,o=c.text,i=o.is,r=o.random,u=c.obj,a=u.is,l=u.has,p=u.to,g=u.map,s=(u.copy,c.state.lex),h=c.val.rel._,d=".",v=(c.node._,c.val.rel.is,{});_.debug=function(t,n){return _.debug.i&&t===_.debug.i&&_.debug.i++&&(_.log.apply(_,arguments)||n)},(c.log=function(){return!c.log.off&&_.log.apply(_,arguments),[].slice.call(arguments).join(" ")}).once=function(t,n,o){return(o=c.log.once)[t]=o[t]||0,o[t]++||c.log(n)},c.log.once("welcome","Hello wonderful person! :) Thanks for using GUN, feel free to ask for help on https://gitter.im/amark/gun and ask StackOverflow questions tagged with 'gun'!"),"undefined"!=typeof window&&(window.Gun=c);try{void 0!==f&&(f.exports=c)}catch(t){}t.exports=c})(x,"./root"),x(function(t){var a=x("./root");a.chain.back=function(t,n){if(-1===(t=t||1)||1/0===t)return this._.root.gun;if(1===t)return(this._.back||this._).gun;var o=this._;if("string"==typeof t&&(t=t.split(".")),t instanceof Array){for(var e=0,i=t.length,r=o;e<i;e++)r=(r||s)[t[e]];return void 0!==r?n?this:r:(r=o.back)?r.gun.back(t,n):void 0}if(t instanceof Function){var u;for(r={back:o};(r=r.back)&&!(u=t(r,n)););return u}return a.num.is(t)?(o.back||o).gun.back(t-1):this};var s={}})(x,"./back"),x(function(t){var u=x("./root");function r(t){var n,o=this.as,e=o.back,i=o.root;if(t.I||(t.I=o.gun),t.gun||(t.gun=o.gun),this.to.next(t),n=t.get){if(n["#"]||o.soul){if(n["#"]=n["#"]||o.soul,t["#"]||(t["#"]=_(9)),e=i.gun.get(n["#"])._,n=n["."]){if(d(e.put,n))return void e.on("in",{gun:e.gun,put:u.state.to(e.put,n),get:e.get})}else{if(d(e,"put")&&e.on("in",e),e.ack)return;t.gun=e.gun,e.ack=-1}return i.ask(p,t),i.on("in",t)}if(i.now&&(i.now[o.id]=i.now[o.id]||!0),n["."])return o.get?(t={get:{".":o.get},gun:o.gun},(e.ask||(e.ask={}))[o.get]=t.gun._):t={get:{},gun:o.gun},e.on("out",t);if(o.ack=o.ack||-1,o.get)return t.gun=o.gun,n["."]=o.get,(e.ask||(e.ask={}))[o.get]=t.gun._,e.on("out",t)}return e.on("out",t)}function a(t){var n,o=this,e=this.as,i=t.gun._,r=t.put;if(e.get&&t.get!==e.get&&(t=b(t,{get:e.get})),e.has&&i!==e&&(t=b(t,{gun:e.gun}),i.ack&&(e.ack=i.ack)),y===e.get&&r&&r["#"]&&(e._id=r["#"]),g===r){if(o.to.next(t),e.soul)return;return f(e,t,o),e.has&&l(e,t),v(i.echo,e.id),void v(e.map,i.id)}return e.soul?(o.to.next(t),f(e,t,o),void m(r,c,{at:t,cat:e})):(n=u.val.rel.is(r))?(s(e,t,i,n),o.to.next(t),void f(e,t,o)):u.val.is(r)?(e.has||e.soul?l(e,t):(i.has||i.soul)&&((((i.echo||(i.echo={}))[e.id]=e).map||(e.map={}))[i.id]=e.map[i.id]||{at:i}),o.to.next(t),void f(e,t,o)):(e.has&&i!==e&&d(i,"put")&&(e.put=i.put),(n=u.node.soul(r))&&i.has&&(i.put=e.root.gun.get(n)._.put),o.to.next(t),f(e,t,o),s(e,t,i,n),void m(r,c,{at:t,cat:e}))}function s(t,n,o,e){if(e&&y!==t.get){var i=t.root.gun.get(e)._;if(t.has?o=i:o.has&&s(o,n,o,e),o!==t){((o.echo||(o.echo={}))[t.id]=t).has&&!(t.map||h)[o.id]&&l(t,n),i=(t.map||(t.map={}))[o.id]=t.map[o.id]||{at:o};var r=t.root.now;if(e===i.rel){if(!r)return;if(g===r[t.id])return;if((r._||(r._={}))[t.id]===e)return;r._[t.id]=e}!function(t,o){var n=t.root.gun.get(o)._;if(t.ack&&(n.on("out",{get:{"#":o}}),!t.ask))return;m(t.ask||t.next,function(t,n){t.on("out",{get:{"#":o,".":n}})}),u.obj.del(t,"ask")}(t,i.rel=e)}}}function f(t,n,o){t.echo&&(t.has&&(n=b(n,{event:o})),m(t.echo,e,n))}function e(t){t.on("in",this)}function c(t,n){var o,e,i=this.cat.next||h,r=this.at;(y!==n||i[n])&&(e=i[n])&&(e.has?(t&&t[k]&&u.val.rel.is(t)===u.node.soul(e.put)||(e.put=t),o=e.gun):o=r.gun.get(n),e.on("in",{put:t,get:n,gun:o,via:r}))}function l(n,t){if(n.has||n.soul){var o=n.map,e=n.root;n.map=null,(e.now&&e.now[n.id]||t["@"]||null!==o)&&(g===o&&u.val.rel.is(n.put)||(m(o,function(t){(t=t.at)&&v(t.echo,n.id)}),m(n.next,function(t,n){t.put=g,t.ack&&(t.ack=-1),t.on("in",{get:n,gun:t.gun,put:g})})))}}function p(t,n){var o=this.as,e=o.get||h,i=o.gun._,r=(t.put||h)[e["#"]];if(i.ack&&(i.ack=i.ack+1||1),!t.put||e["."]&&!d(r,i.get)){if(i.put!==g)return;i.on("in",{get:i.get,put:i.put=g,gun:i.gun,"@":t["@"]})}else y!=e["."]?(t.gun=i.root.gun,u.on.put(t,i.root.gun)):i.on("in",{get:i.get,put:r[i.get],gun:i.gun,"@":t["@"]})}u.chain.chain=function(t){var n,o=this._,e=new(t||this).constructor(this),i=e._;return i.root=n=o.root,i.id=++n.once,i.back=this._,i.on=u.on,i.on("in",a,i),i.on("out",r,i),e};var g,h={},n=u.obj,d=n.has,v=(n.put,n.del),b=n.to,m=n.map,_=u.text.random,k=u.val.rel._,y=u.node._})(x,"./chain"),x(function(t){var f=x("./root");function c(t){var n,o=this,e=o.as,i=t.gun._,r=i.root,u=t.put;if((n=r.now)&&o!==n[e.now])return o.to.next(t);void 0===u&&(u=i.put),(n=u)&&n[s._]&&(n=s.is(n))&&void 0!==(n=i.root.gun.get(n)._).put&&(t=a(t,{put:n.put})),e.use(t,t.event||o),o.to.next(t)}f.chain.get=function(t,n,o){var e;if("string"!=typeof t){if(t instanceof Function){var i,r=(e=this)._,u=r.root;a=u.now;return(o=n||{}).use=t,o.out=o.out||{},o.out.get=o.out.get||{},i=r.on("in",c,o),(u.now={$:1})[o.now=r.id]=i,r.on("out",o.out),u.now=a,e}return l(t)?this.get(""+t,n,o):((o=this.chain())._.err={err:f.log("Invalid get request!",t)},n&&n.call(o,o._.err),o)}var a,s=this._;return(e=(s.next||p)[t])||(e=function(t,n){var o=n._,e=o.next,i=n.chain()._;e||(e=o.next={});e[i.get=t]=i,n===o.root.gun?i.soul=t:(o.soul||o.has)&&(i.has=t);return i}(t,this)),e=e.gun,(a=s.stun)&&(e._.stun=e._.stun||a),n&&n instanceof Function&&e.get(n,o),e};f.obj.has;var a=f.obj.to,l=f.num.is,s=f.val.rel,p=(f.node._,{})})(x,"./get"),x(function(t){var s=x("./root");function a(t){t&&t()}function f(){var i=this;i.graph&&!o(i.stun,n)&&(i.res=i.res||function(t){t&&t()},i.res(function(){var n=i.gun.back(-1)._,t=n.ask(function(t){n.root.on("ack",t),this.off(),i.ack&&i.ack(t,this)},i.opt),o=n.root.now;r.del(n.root,"now"),n.root.PUT=!0;var e=n.root.stop;i.ref._.now=!0,i.ref._.on("out",{gun:i.ref,put:i.out=i.env.graph,opt:i.opt,"#":t}),r.del(i.ref._,"now"),r.del(n.root,"PUT"),n.root.now=o,n.root.stop=e},i),i.res&&i.res())}function n(t,n){if(t)return!0}function c(t,n,o,r){var u=this;!n&&r.path.length&&(u.res||e)(function(){for(var o=r.path,e=u.ref,t=(u.opt,0),n=o.length;t<n;t++)e=e.get(o[t]);if(s.node.soul(r.obj)){var i=s.node.soul(r.obj)||(e.back("opt.uuid")||s.text.random)();return i?(e.back(-1).get(i),void r.soul(i)):((u.stun=u.stun||{})[o]=!0,void e.back("opt.uuid")(function(t,n){if(t)return s.log(t);e.back(-1).get(n),r.soul(n),u.stun[o]=!1,u.batch()}))}(u.stun=u.stun||{})[o]=!0,e.get("_").get(l,{as:{at:r,as:u}})},{as:u,at:r})}function l(t,n){var o=this.as,e=o.at;if(o=o.as,t.gun&&t.gun._.back){var i=t.gun._,r=i,u=(t.put||v)["#"];n.off(),i=t.gun._.back;var a=a||s.node.soul(e.obj)||s.node.soul(i.put)||s.val.rel.is(i.put)||u||r._id||(o.gun.back("opt.uuid")||s.text.random)();a?p(i,r._id=r._id||a,e,o):i.gun.back("opt.uuid")(function(t,n){if(t)return s.log(t);p(i,r._id=r._id||n,e,o)})}}function p(t,n,o,e){t.gun.back(-1).get(n),o.soul(n),e.stun[o.path]=!1,e.batch()}function g(t,n){var o=this.as;if(t.gun&&t.gun._)if(t.err)_.log("Please report this as an issue! Put.any.err");else{var e,i=t.gun._.back,r=i.put,u=o.opt||{};if(!(e=o.ref)||!e._.now){if(n.off(),o.ref!==o.gun){if(!(e=o.gun._.get||i.get))return void _.log("Please report this as an issue! Put.no.get");o.data=d({},e,o.data),e=null}if(void 0===r){if(!i.get)return;i.soul||(e=i.gun.back(function(t){if(t.soul)return t.soul;o.data=d({},t.get,o.data)})),e=e||i.get,i=i.root.gun.get(e)._,o.not=o.soul=e,r=o.data}o.not||(o.soul=s.node.soul(r))||(o.path&&h(o.data)?o.soul=(u.uuid||i.root.opt.uuid||s.text.random)():(m==t.get&&(o.soul=(t.put||v)["#"]||t._id),o.soul=o.soul||t.soul||i.soul||(u.uuid||i.root.opt.uuid||s.text.random)()),o.soul)?o.ref.put(o.data,o.soul,o):o.ref.back("opt.uuid")(function(t,n){if(t)return s.log(t);o.ref.put(o.data,o.soul=n,o)})}}}s.chain.put=function(t,e,i){var n,r=this,o=r._,u=o.root.gun;return(i=i||{}).data=t,i.gun=i.gun||r,"string"==typeof e?i.soul=e:i.ack=i.ack||e,o.soul&&(i.soul=o.soul),i.soul||u===r?h(i.data)?(i.soul=i.soul||(i.not=s.node.soul(i.data)||(u._.opt.uuid||s.text.random)()),i.soul?(i.gun=r=u.get(i.soul),i.ref=i.gun,function(t){t.batch=f;var n=t.opt||{},o=t.env=s.state.map(c,n.state);if(o.soul=t.soul,t.graph=s.graph.ify(t.data,o,t),o.err)return(t.ack||b).call(t,t.out={err:s.log(o.err)}),t.res&&t.res();t.batch()}(i)):u._.opt.uuid(function(t,n){if(t)return s.log(t);(i.ref||i.gun).put(i.data,i.soul=n,i)}),r):((i.ack||b).call(i,i.out={err:s.log("Data saved to the root level of the graph must be a node (an object), not a",typeof i.data,'of "'+i.data+'"!')}),i.res&&i.res(),r):s.is(t)?(t.get("_").get(function(t,n,o){if(n.off(),!(o=t.gun)||!(o=o._.back)||!o.soul)return s.log("The reference you are saving is a",typeof t.put,'"'+i.put+'", not a node (object)!');r.put(s.val.rel.ify(o.soul),e,i)}),r):(i.ref=i.ref||u._===(n=o.back)?r:n.gun,i.ref._.soul&&s.val.is(i.data)&&o.get?(i.data=d({},o.get,i.data),i.ref.put(i.data,i.soul,i)):(i.ref.get("_").get(g,{as:i}),i.out||(i.res=i.res||a,i.gun._.stun=i.ref._.stun)),r)};var r=s.obj,h=r.is,d=r.put,o=r.map,v={},b=function(){},e=function(t,n){t.call(n||v)},m=s.node._})(x,"./put"),x(function(t){var n=x("./root");x("./chain"),x("./back"),x("./put"),x("./get"),t.exports=n})(x,"./index"),x(function(t){var s=x("./index");function f(t,n){var o=this,e=t.gun,i=e._,r=i.put||t.put,u=o.last,a=i.id+t.get;if(l!==r){if(r&&r[p._]&&(u=p.is(r))){if(u=i.root.gun.get(u)._,l===u.put)return;r=u.put}o.change&&(r=t.put),(u.put!==r||u.get!==a||s.node.soul(r))&&(u.put=r,u.get=a,i.last=r,o.as?o.ok.call(o.as,t,n):o.ok.call(e,r,t.get,t,n))}}function c(t,n,o){var e,i=this.as,r=i.cat,u=t.gun._,a=u.put||t.put;if(e=s.node.soul(a)||p.is(a)){if(e=r.root.gun.get(e)._,l===e.put)return;a=e.put}if(n.wait&&clearTimeout(n.wait),o){if(r.has||r.soul){if(n.off())return}else{if((i.seen=i.seen||{})[u.id])return;i.seen[u.id]=!0}i.ok.call(t.gun||i.gun,a,t.get)}else n.wait=setTimeout(function(){c.call({as:i},t,n,n.wait||1)},i.wait||99)}s.chain.on=function(t,n,o,e){var i,r,u=this,a=u._;if("string"==typeof t)return n?(i=a.on(t,n,o||a,e),o&&o.gun&&(o.subs||(o.subs=[])).push(i),(r=function(){i&&i.off&&i.off(),r.off()}).off=u.off.bind(u)||g,u.off=r,u):a.on(t);var s=n;return(s=!0===s?{change:!0}:s||{}).ok=t,s.last={},u.get(f,s),u},s.chain.val=function(t,n){return s.log.once("onceval","Future Breaking API Change: .val -> .once, apologies unexpected."),this.once(t,n)},s.chain.once=function(t,n){var o=this,e=o._,i=e.put;if(0<e.ack&&l!==i)return(t||g).call(o,i,e.get),o;if(!t){s.log.once("valonce","Chainable val is experimental, its behavior and API may change moving forward. Please play with it and report bugs and ideas on how to improve it.");var r=o.chain();return r._.val=o.once(function(){r._.on("in",o._)}),r}return(n=n||{}).ok=t,n.cat=e,n.out={"#":s.text.random(9)},o.get(c,{as:n}),n.async=!0,o},s.chain.off=function(){var t,n=this._,o=n.back;if(o)return(t=o.next)&&t[n.get]&&i(t,n.get),(t=o.ask)&&i(t,n.get),(t=o.put)&&i(t,n.get),(t=n.soul)&&i(o.root.graph,t),(t=n.map)&&e(t,function(t){t.rel&&o.root.gun.get(t.rel).off()}),(t=n.next)&&e(t,function(t){t.gun.off()}),n.on("off",{}),this};var l,n=s.obj,e=n.map,i=(n.has,n.del),p=(n.to,s.val.rel),g=function(){}})(x,"./on"),x(function(t){var a=x("./index");function i(t){t.put&&!a.val.is(t.put)&&(this.as.val&&this.off(),o(t.put,n,{at:this.as,msg:t}),this.to.next(t))}function n(t,n){if(r!==n){var o=this.msg.gun,e=this.at,i=o.get(n)._;(i.echo||(i.echo={}))[e.id]=e}}a.chain.map=function(r,t,n){var u,o=this,e=o._;return r?(a.log.once("mapfn","Map functions are experimental, their behavior and API may change moving forward. Please play with it and report bugs and ideas on how to improve it."),u=o.chain(),o.map().on(function(t,n,o,e){var i=(r||s).call(this,t,n,o,e);void 0!==i&&(a.is(i)?u._.on("in",i._):u._.on("in",{get:n,put:i,gun:u}))})):(u=e.fields)||((u=e.fields=o.chain())._.val=o.back("val"),u._.MAPOF=e.soul,o.on("in",i,u._)),u};var o=a.obj.map,s=function(){},r=a.node._})(x,"./map"),x(function(t){var a=x("./index");a.chain.set=function(t,i,r){var n,u=this;if(i=i||function(){},(r=r||{}).item=r.item||t,n=a.node.soul(t))return u.set(u.back(-1).get(n),i,r);if(!a.is(t)){var o=u._.root.opt.uuid();return o&&a.obj.is(t)?u.set(u._.root.gun.put(t,o),i,r):u.get(o||a.state.lex()+a.text.random(12)).put(t,i,r)}return t.get("_").get(function(t,n){if(t.gun&&t.gun._.back){n.off();var o=(t.put||{})["#"],e=(t=t.gun._.back).put;if(!(o=t.soul||a.node.soul(e)||o))return i.call(u,{err:a.log('Only a node can be linked! Not "'+e+'"!')});u.put(a.obj.put({},o,a.val.rel.ify(o)),i,r)}},{wait:0}),t}})(x,"./set"),x(function(t){if("undefined"!=typeof Gun){var n,o=function(){};"undefined"!=typeof window&&(n=window);var c=n.localStorage||{setItem:o,removeItem:o,getItem:o};Gun.on("opt",function(t){var n=this.to,o=t.opt;if(t.once)return n.next(t);if(!1===o.localStorage)return n.next(t);o.file=o.file||"gun/";var i,e,r=Gun.obj.ify(c.getItem("gap/"+o.file))||{},u=Gun.obj.empty;function a(t){if(!t.err&&t.ok){var e=t["@"];setTimeout(function(){Gun.obj.map(r,function(o,t){Gun.obj.map(o,function(t,n){e===t&&delete o[n]}),u(o)&&delete r[t]}),f()},o.wait||1)}}u(r)||t.on("localStorage",function(e){this.off();var i={};Gun.obj.map(r,function(t,o){Gun.obj.map(t,function(t,n){i[o]=Gun.state.to(e[o],n,i[o])})}),setTimeout(function(){t.on("out",{put:i,"#":t.ask(a),I:t.gun})},10)}),t.on("out",function(t){t.lS||(t.I&&t.put&&!t["@"]&&!u(o.peers)&&(i=t["#"],Gun.graph.is(t.put,null,s),e||(e=setTimeout(f,o.wait||1))),this.to.next(t))}),t.on("ack",a),n.next(t);var s=function(t,n,o,e){(r[e]||(r[e]={}))[n]=i},f=function(){clearTimeout(e),e=!1;try{c.setItem("gap/"+o.file,JSON.stringify(r))}catch(t){Gun.log(err=t||"localStorage failure")}}}),Gun.on("opt",function(r){this.to.next(r);var u=r.opt;if(!r.once&&!1!==u.localStorage){u.file=u.file||u.prefix||"gun/";r.graph;var n,e={},i=0,a=Gun.obj.ify(c.getItem(u.file))||{};r.on("localStorage",a),r.on("put",function(t){if(this.to.next(t),Gun.graph.is(t.put,null,o),t["@"]||(e[t["#"]]=!0),(i+=1)>=(u.batch||1e3))return s();n||(n=setTimeout(s,u.wait||1))}),r.on("get",function(t){this.to.next(t);var n,o,e=t.get;if(e&&(n=e["#"])){var i=e["."];(o=a[n]||void 0)&&i&&(o=Gun.state.to(o,i)),(o||Gun.obj.empty(u.peers))&&r.on("in",{"@":t["#"],put:Gun.graph.node(o),how:"lS",lS:t.I})}});var o=function(t,n,o,e){a[e]=Gun.state.to(o,n,a[e])},s=function(){var o;i=0,clearTimeout(n),n=!1;var t=e;e={};try{c.setItem(u.file,JSON.stringify(a))}catch(t){Gun.log(o=t||"localStorage failure")}(o||Gun.obj.empty(u.peers))&&Gun.obj.map(t,function(t,n){r.on("in",{"@":n,err:o,ok:0})})}}})}})(x,"./adapters/localStorage"),x(function(t){var h=x("../type");function o(p){var g=function(){};return g.out=function(t){var n;if(this.to&&this.to.next(t),(n=t["@"])&&(n=p.dup.s[n])&&(n=n.it)&&n.mesh)return g.say(t,n.mesh.via),void(n["##"]=t["##"]);g.say(t)},g.hear=function(t,n){if(t){var o,e,i,r=p.dup,u=t[0];try{i=JSON.parse(t)}catch(t){}if("{"===u){if(!i)return;if(r.check(o=i["#"]))return;if((u=(r.track(o,!0).it=i)["@"])&&i.put&&(u+=e=i["##"]||(i["##"]=g.hash(i)))!=o){if(r.check(u))return;(u=r.s)[e]=u[o]}return(i.mesh=function(){}).via=n,(u=i["><"])&&(i.mesh.to=h.obj.map(u.split(","),function(t,n,o){o(t,!0)})),void p.on("in",i)}if("["!==u);else{if(!i)return;for(var a,s=0;a=i[s++];)g.hear(a,n)}}},function(){function r(n,o){var t=o.wire;try{t.send?t.readyState===t.OPEN?t.send(n):(o.queue=o.queue||[]).push(n):o.say&&o.say(n)}catch(t){(o.queue=o.queue||[]).push(n)}}g.say=function(n,o){var t,e,i;o?(o.wire||p.opt.wire&&p.opt.wire(o))&&(e=n.mesh||u,o!==e.via&&((i=e.raw)||(i=g.raw(n)),(t=n["@"])&&(t=p.dup.s[t])&&(t=t.it)&&t.get&&t["##"]&&t["##"]===n["##"]||(t=e.to)&&(t[o.url]||t[o.id])||(o.batch?o.batch.push(i):(o.batch=[],setTimeout(function(){var t=o.batch;t&&(o.batch=null,t.length&&r(JSON.stringify(t),o))},p.opt.gap||p.opt.wait||1),r(i,o))))):h.obj.map(p.opt.peers,function(t){g.say(n,t)})}}(),function(){function f(t,n){var o;return n instanceof Object?(h.obj.map(Object.keys(n).sort(),e,{to:o={},on:n}),o):n}function e(t){this.to[t]=this.on[t]}g.raw=function(t){if(!t)return"";var n,o,e,i=p.dup,r=t.mesh||{};if(e=r.raw)return e;if("string"==typeof t)return t;t["@"]&&(e=t.put)&&((o=t["##"])||(n=c(e,f)||"",o=g.hash(t,n),t["##"]=o),(e=i.s)[o=t["@"]+o]=e[t["#"]],t["#"]=o||t["#"],n&&((t=h.obj.to(t)).put=l));var u=0,a=[];h.obj.map(p.opt.peers,function(t){if(a.push(t.url||t.id),9<++u)return!0}),t["><"]=a.join();var s=c(t);return d!==n&&(s=s.replace('"'+l+'"',n)),r&&(r.raw=s),s},g.hash=function(t,n){return o.hash(n||c(t.put,f)||"")||t["#"]||h.text.random(9)};var c=JSON.stringify,l=":])([:"}(),g.hi=function(n){p.on("hi",n);var t=n.queue;n.queue=[],h.obj.map(t,function(t){g.say(t,n)})},g}o.hash=function(t){if("string"!=typeof t)return{err:1};var n=0;if(!t.length)return n;for(var o=0,e=t.length;o<e;++o)n=(n<<5)-n+t.charCodeAt(o),n|=0;return n};var d,u={};Object.keys=Object.keys||function(t){return map(t,function(t,n,o){o(n)})};try{t.exports=o}catch(t){}})(x,"./adapters/mesh"),x(function(t){var o=x("../index");o.Mesh=x("./mesh"),o.on("opt",function(e){this.to.next(e);var i=e.opt;if(!e.once&&!1!==i.WebSocket){var r;"undefined"!=typeof window&&(r=window),"undefined"!=typeof global&&(r=global),r=r||{};var t=i.WebSocket||r.WebSocket||r.webkitWebSocket||r.mozWebSocket;if(t){i.WebSocket=t;var u=i.mesh=i.mesh||o.Mesh(e);e.on("out",u.out),i.wire=i.wire||n}}function n(n){if(n&&n.url){var t=n.url.replace("http","ws"),o=n.wire=new i.WebSocket(t);return o.onclose=function(){e.on("bye",n),a(n)},o.onerror=function(t){a(n),t&&t.code},o.onopen=function(){u.hi(n)},o.onmessage=function(t){t&&(r.inLength=(r.inLength||0)+(t.data||t).length,u.hear(t.data||t,n))},o}}function a(t){clearTimeout(t.defer),t.defer=setTimeout(function(){n(t)},2e3)}})})(x,"./adapters/websocket")}();