gun/gun.min.js
Mark Nadal d42ed3ff95 secret
2018-04-19 04:06:43 -07:00

1 line
29 KiB
JavaScript

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