-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebcom-node.js
More file actions
23 lines (23 loc) · 172 KB
/
webcom-node.js
File metadata and controls
23 lines (23 loc) · 172 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*!
* Webcom. Build realtime apps. Share and sync data instantly between your clients
*
* Module name: Webcom
* Version: 2.7.1
* Created: 2019-04-01T10:10:54.110Z
*
* Copyright (C) <2015-2019> Orange
*
* This software is confidential and proprietary information of Orange.
* You shall not disclose such Confidential Information and shall use it only in
* accordance with the terms of the agreement you entered into.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*
* If you are Orange employee you shall use this software in accordance with
* the Orange Source Charter (http://opensource.itn.ftgroup/index.php/Orange_Source_Charter)
*/
module.exports=function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(6),o=r(a),s=n(10),u=r(s),l=n(1),c=r(l),d=n(2),h=r(d),f=n(16),v=r(f),p=n(15),_=r(p),g=n(50),y=r(g),m=n(51),b=r(m),k=n(31),C=r(k),w=n(8),E=r(w),S=n(52),N=r(S),P=n(3),A=i(P),D=n(4),R=i(D),O=n(59),T=n(19),I=i(T),M=n(9),W=n(5),x=i(W),L=n(11),j=n(42),V=n(24),U=i(V),F=n(49),q=r(F),Q=function(e){function t(e,n){(0,c.default)(this,t);var i=void 0,r=void 0,a=void 0;if(e instanceof C.default)i=e,r=n;else{(0,M.validateArgCount)("new Webcom",1,2,arguments.length);var o=A.parseURL(arguments[0]),s=void 0;if(I.validateUrl("new Webcom",1,o),n instanceof N.default)s=n;else{if(n instanceof Object)a=n;else if(n)throw new Error("Expected a valid Webcom.Context or Options object for second argument to new Webcom()");var l=process.env;(l.HTTPS_PROXY||l.https_proxy)&&(I.validateUri("new Webcom",2,l.HTTPS_PROXY||l.https_proxy),A.setNodeProxy(l.HTTPS_PROXY||l.https_proxy)),s=N.default.getInstance()}a&&(o.repoInfo.options=a),i=s.getRepo(o.repoInfo),r=o.path}return(0,v.default)(this,(t.__proto__||(0,u.default)(t)).call(this,i,r))}return(0,_.default)(t,e),(0,h.default)(t,[{key:"persist",value:function(){(0,M.validateArgCount)("Webcom.persist",0,0,arguments.length),this.repo.persist()}},{key:"name",value:function(){return(0,M.validateArgCount)("Webcom.name",0,0,arguments.length),this.path.isEmpty()?null:this.path.getBack()}},{key:"child",value:function(e){return(0,M.validateArgCount)("Webcom.child",1,1,arguments.length),R.isNumber(e)?e=String(e):e instanceof E.default||(null===this.path.getFront()?I.validateRootPathString("Webcom.child",1,e,!1):I.validatePathString("Webcom.child",1,e,!1)),new t(this.repo,this.path.child(e))}},{key:"parent",value:function(){(0,M.validateArgCount)("Webcom.parent",0,0,arguments.length);var e=this.path.parent();return null===e?null:new t(this.repo,e)}},{key:"root",value:function(){(0,M.validateArgCount)("Webcom.ref",0,0,arguments.length);for(var e=this;null!==e.parent();)e=e.parent();return e}},{key:"toString",value:function(){return(0,M.validateArgCount)("Webcom.toString",0,0,arguments.length),null===this.parent()?this.repo.toString():this.parent().toString()+"/"+(0,L.urlEncode)(this.name())}},{key:"set",value:function(e,t){(0,M.validateArgCount)("Webcom.set",1,2,arguments.length),(0,T.validateWritablePath)("Webcom.set",this.path),(0,T.validateWebcomDataArg)("Webcom.set",1,e,!1),(0,M.validateCallback)("Webcom.set",2,t,!0),this.repo.setWithPriority(this.path,e,null,t)}},{key:"update",value:function(e,t){if((0,M.validateArgCount)("Webcom.update",1,2,arguments.length),(0,T.validateWritablePath)("Webcom.update",this.path),R.isArray(e)){for(var n={},i=0;i<e.length;++i)n[""+i]=e[i];e=n,A.warn("Passing an Array to Webcom.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}if(I.validateWebcomObjectDataArg("Webcom.update",1,e,!1),(0,M.validateCallback)("Webcom.update",2,t,!0),x.contains(e,".priority"))throw new Error("update() does not currently support updating .priority.");this.repo.update(this.path,e,t)}},{key:"remove",value:function(e){(0,M.validateArgCount)("Webcom.remove",0,1,arguments.length),(0,T.validateWritablePath)("Webcom.remove",this.path),(0,M.validateCallback)("Webcom.remove",1,e,!0),this.set(null,e)}},{key:"transaction",value:function(e,t,n){if((0,M.validateArgCount)("Webcom.transaction",1,3,arguments.length),(0,T.validateWritablePath)("Webcom.transaction",this.path),(0,M.validateCallback)("Webcom.transaction",1,e,!1),(0,M.validateCallback)("Webcom.transaction",2,t,!0),I.validateBoolean("Webcom.transaction",3,n,!0),".length"===this.name()||".keys"===this.name())throw"Webcom.transaction failed: "+this.name()+" is a read-only object.";"undefined"==typeof n&&(n=!0),this.repo.startTransaction(this.path,e,t,n)}},{key:"push",value:function(e,t){(0,M.validateArgCount)("Webcom.push",0,2,arguments.length),(0,T.validateWritablePath)("Webcom.push",this.path),(0,T.validateWebcomDataArg)("Webcom.push",1,e,!0),(0,M.validateCallback)("Webcom.push",2,t,!0);var n=this.repo.serverTime(),i=(0,O.NextPushId)(n),r=this.child(i);return"undefined"!=typeof e&&null!==e&&r.set(e,t),r}},{key:"onDisconnect",value:function(){return new y.default(this.repo,this.path,this.name())}},{key:"auth",value:function(e,t){A.warn("Webcom.auth(cred, [onComplete]) is deprecated. Please use Webcom.authWithToken(cred, [onComplete]) instead."),this.authWithToken(e,t).catch(),this.repo.statsIncrementCounter("deprecated_auth(cred)")}},{key:"unauth",value:function(e){A.warn("Webcom.unauth([onComplete]) is deprecated. Please use Webcom.logout([onComplete]) instead."),this.logout(e),this.repo.statsIncrementCounter("deprecated_unauth()")}},{key:"resume",value:function(e){var t=this.getAuthClient(!1);e&&(this.registerAuthCallback(e),A.warn("Webcom.resume(callback) is deprecated. Please use Webcom.resume() and then Webcom.registerAuthCallback(callback) instead."),this.repo.statsIncrementCounter("deprecated_resume(callback)")),t.resumeSession()}},{key:"registerAuthCallback",value:function(e){return this.getAuthClient(!1).registerAuthCallback(e),e}},{key:"unregisterAuthCallback",value:function(e){this.getAuthClient(!1).unregisterAuthCallback(e)}},{key:"goOffline",value:function(){(0,M.validateArgCount)("Webcom.goOffline",0,0,arguments.length),N.default.getInstance().interrupt()}},{key:"goOnline",value:function(){(0,M.validateArgCount)("Webcom.goOnline",0,0,arguments.length),N.default.getInstance().resume()}},{key:"shouldBeOnline",value:function(){return this.repo.shouldBeOnline()}},{key:"getAuthClient",value:function(e){return this.client_||(this.client_=new j.Client(this,this.repo.internalHostUrl()),e&&this.client_.resumeSession()),this.client_}},{key:"authWithPrivateKey",value:function(e,t){return this.getAuthClient(!0).loginWithToken(e,t)}},{key:"authWithToken",value:function(e,t){return this.getAuthClient(!0).loginWithToken(e,t)}},{key:"authAnonymously",value:function(e){return this.getAuthClient(!0).loginAnonymously({},e)}},{key:"authWithCustomProvider",value:function(e,t,n){return this.getAuthClient(!0).loginWithCustomProvider(e,t,n)}},{key:"authWithPassword",value:function(e,t){return this.getAuthClient(!0).loginWithPassword(e,t)}},{key:"authWithPhone",value:function(e){return this.getAuthClient(!0).loginWithPhone(e)}},{key:"sendOtp",value:function(e,t,n){var i="Webcom:sendOtp";return(0,M.validateArgCount)(i,2,3,arguments.length),(0,M.validateString)(i,1,e,!1),(0,M.validateString)(i,2,t,!1),this.getAuthClient(!0).sendOtp(e,t,n)}},{key:"authWithOAuth",value:function(e,t,n){return this.getAuthClient(!0).loginWithOAuth(e,t,n)}},{key:"authWithWassup",value:function(e,t){return this.getAuthClient(!0).loginWithWassup(e,t)}},{key:"createUser",value:function(e,t){var n="Webcom:createUser",i=e;if("object"===("undefined"==typeof i?"undefined":(0,o.default)(i)))(0,M.validateArgCount)(n,1,2,arguments.length),(0,M.validateCallback)(n,2,t,!0),A.warn("Webcom.createUser(details, [onComplete]) is deprecated. Please use Webcom.addAccount(provider, details) instead."),this.repo.statsIncrementCounter("deprecated_createUser(details)");else{var r=arguments[2];(0,M.validateArgCount)(n,2,3,arguments.length),(0,M.validateCallback)(n,3,r,!0),i={email:e,password:t},t=r,A.warn("Webcom.createUser(email, password, [onComplete]) is deprecated. Please use Webcom.addAccount(provider, details) instead."),this.repo.statsIncrementCounter("deprecated_createUser(email,password)")}return this.getAuthClient(!0).createUser(i,t)}},{key:"addAccount",value:function(e,t,n){var i="Webcom:addAccount";return(0,M.validateArgCount)(i,2,3,arguments.length),(0,M.validateString)(i,1,e,!1),this.getAuthClient(!0).addAccount(e,t,n)}},{key:"removeIdentity",value:function(){var e="Webcom:removeIdentity";return(0,M.validateArgCount)(e,0,0,arguments.length),this.getAuthClient(!0).removeIdentity()}},{key:"removeAccount",value:function(){var e="Webcom:removeAccount";return(0,M.validateArgCount)(e,0,0,arguments.length),this.getAuthClient(!0).removeAccount()}},{key:"verifyIdentity",value:function(e,t,n){var i="Webcom:verifyIdentity";return(0,M.validateArgCount)(i,3,3,arguments.length),(0,M.validateString)(i,1,e,!1),(0,M.validateString)(i,2,t,!1),this.getAuthClient(!0).verifyIdentity(e,t,n)}},{key:"updateEmailPasswordProfile",value:function(e,t,n){A.warn("Webcom.updateEmailPasswordProfile([path], data, [onComplete]) is deprecated. Please use Webcom.updateIdentityProfile([path], data) instead."),this.repo.statsIncrementCounter("deprecated_updateEmailPasswordProfile(path,data)");var i="Webcom:updateEmailPasswordProfile";(0,M.validateArgCount)(i,1,3,arguments.length);var r=void 0,a=void 0;switch("undefined"==typeof t?"undefined":(0,o.default)(t)){case"undefined":a=e;break;case"function":a=e,n=t;break;default:r=e,a=t}return(0,M.validateString)(i,1,r,!0),(0,M.validateCallback)(i,3,n,!0),this.getAuthClient(!0).updateIdentityProfile(r,a,n)}},{key:"updateIdentityProfile",value:function(e,t){var n="Webcom:updateIdentityProfile";(0,M.validateArgCount)(n,1,2,arguments.length);var i=void 0,r=void 0;return t?((0,M.validateString)(n,1,e,!1),i=e,r=t):r=e,this.getAuthClient(!0).updateIdentityProfile(i,r)}},{key:"changePassword",value:function(e,t,n,i){var r="Webcom:changePassword";return(0,M.validateArgCount)(r,3,4,arguments.length),(0,M.validateCallback)(r,4,i,!0),this.getAuthClient(!0).changePassword(e,t,n,i)}},{key:"removeUser",value:function(e,t,n){A.warn("Webcom.removeUser(email, password, [onComplete]) is deprecated. Please use Webcom.removeAccount() instead."),this.repo.statsIncrementCounter("deprecated_removeUser(email,password)");var i="Webcom:removeUser";return(0,M.validateArgCount)(i,2,3,arguments.length),(0,M.validateCallback)(i,3,n,!0),this.getAuthClient(!0).removeUser(e,t,n)}},{key:"sendPasswordResetEmail",value:function(e,t){A.warn("Webcom.sendPasswordResetEmail(email, [onComplete]) is deprecated. Please use Webcom.sendPasswordResetCode(provider,id,[message]) instead."),this.repo.statsIncrementCounter("deprecated_sendPasswordResetEmail(email)");var n="Webcom:sendPasswordResetEmail";return(0,M.validateArgCount)(n,1,2,arguments.length),(0,M.validateCallback)(n,2,t,!0),this.getAuthClient(!0).sendPasswordResetEmail(e,t)}},{key:"sendPasswordResetCode",value:function(e,t,n){var i="Webcom:sendPasswordResetCode";return(0,M.validateArgCount)(i,2,3,arguments.length),(0,M.validateString)(i,1,e,!1),(0,M.validateString)(i,2,t,!1),this.getAuthClient(!0).sendPasswordResetCode(e,t,n)}},{key:"sendConfirmationEmail",value:function(e,t){A.warn("Webcom.sendConfirmationEmail(email, [onComplete]) is deprecated. Please use Webcom.sendVerificationCode(provider,id,[message]) instead."),this.repo.statsIncrementCounter("deprecated_sendConfirmationEmail(email)");var n="Webcom:sendConfirmationEmail";return(0,M.validateArgCount)(n,1,2,arguments.length),(0,M.validateCallback)(n,2,t,!0),this.getAuthClient(!0).sendConfirmationEmail(e,t)}},{key:"sendVerificationCode",value:function(e,t,n){var i="Webcom:sendVerificationCode";return(0,M.validateArgCount)(i,2,3,arguments.length),(0,M.validateString)(i,1,e,!1),(0,M.validateString)(i,2,t,!1),this.getAuthClient(!0).sendVerificationCode(e,t,n)}},{key:"logout",value:function(e){(0,M.validateArgCount)("Webcom:logout",0,1,arguments.length),this.getAuthClient(!1).logout(e)}},{key:"getOAuthConfig",value:function(){var e=this,t={};return["google","facebook","orange","mobileconnectOFR","mobileconnectOES","mobileconnectOJO","mobileconnectOMG","mobileconnectOMA","github","gitlab"].forEach(function(n){t[n]={signin_url:U.getApiHost()+"/auth/v2/"+e.repo.name()+"/"+n+"/signin?mode=code",callback_url:U.getApiHost()+"/auth/v2/"+e.repo.name()+"/"+n+"/callback"}}),t}}],[{key:"ServerValue",get:function(){return{TIMESTAMP:{".sv":"timestamp"}}}},{key:"SDK_VERSION",get:function(){return"2.7.1"}},{key:"INTERNAL",get:function(){return q.default}},{key:"Context",get:function(){return N.default}}]),t}(b.default);t.default=Q,global.Webcom=Q,e.exports=t.default},function(e,t){e.exports=require("babel-runtime/helpers/classCallCheck")},function(e,t){e.exports=require("babel-runtime/helpers/createClass")},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}function a(){return ae++}function o(e,t){if(!e)throw new Error("Webcom INTERNAL ASSERT FAILED:"+t)}function s(e,t){e||p(t)}function u(e){return global.btoa(window.unescape(encodeURIComponent(e))).replace(/[\+\/=]/g,function(e){switch(e){case"=":return".";case"/":return"_";case"+":return"-"}})}function l(e){try{return new Buffer(e,"base64").toString("utf8")}catch(e){h("base64DecodeIfNativeSupport failed: ",e)}return null}function c(e){return(0,te.fromBits)(ne.sha1.hash(e))}function d(){for(var e="",t=0;t<arguments.length;t++)e+=$.isArrayLike(arguments[t])?d.apply(null,arguments[t]):"object"===(0,B.default)(arguments[t])?(0,Q.default)(arguments[t]):arguments[t],e+=" ";return e}function h(){if(ue===!0&&(ue=!1,null===le&&z.SessionStorage.get("logging_enabled")===!0&&f(!0)),le){var e=d.apply(null,arguments);le(e)}}function f(e,n){o(!n||e===!0||e===!1,"Can't turn on custom loggers persistently."),e===!0?("undefined"!=typeof console&&("function"==typeof console.log?t.logger=le=(0,re.bind)(console.log,console):"object"===(0,B.default)(console.log)&&(t.logger=le=function(e){})),n&&z.SessionStorage.set("logging_enabled",!0)):e?t.logger=le=e:(t.logger=le=null,z.SessionStorage.remove("logging_enabled"))}function v(e){return function(){h(e,arguments)}}function p(){if("undefined"!=typeof console){"WEBCOM INTERNAL ERROR: "+d.apply(null,arguments);"undefined"!=typeof console.error}}function _(){var e=d.apply(null,arguments);throw new Error("WEBCOM FATAL ERROR: "+e)}function g(){if("undefined"!=typeof console){"WEBCOM WARNING: "+d.apply(null,arguments);"undefined"!=typeof console.warn}}function y(){"undefined"!=typeof window&&window.location&&window.location.protocol&&window.location.protocol.indexOf("https:")!==-1&&g("Insecure Webcom access from a secure page. Please use https in calls to new Webcom().")}function m(e){var t="",n="",i=!0,r="",a="",o=!0,s=void 0,u=void 0,l=void 0,c=void 0;return $.isString(e)&&(s=e.indexOf("//"),s>=0&&(a=e.substring(0,s-1),e=e.substring(s+2)),u=e.indexOf("/"),u===-1&&(u=e.length),t=e.substring(0,u),e=e.substring(u+1),l=t.split("."),c=e.split("/"),c.length>1&&"base"===c[0]?(i="https"===a||"wss"===a,n=c[1],r=b("/"+c.slice(2).join("/")),z.PersistentStorage.set("host:"+se+"/"+/base\/[^\/]*/.exec(e),t),(0,ie.setApiHost)((i?"https":"http")+("://"+t)),t=se+"/base/"+n,z.PersistentStorage.set("host:"+t,z.PersistentStorage.get("host:"+t)+(i?"/_wss":"/_ws"))):_("Cannot parse Webcom url. Please check your url.")),i||y(),{repoInfo:new G.default(t,i,n,o),path:new Y.default(r)}}function b(e){for(var t="",n=e.split("/"),i=0;i<n.length;i++)if(n[i].length>0){var r=n[i];try{r=(0,ee.urlDecode)(r)}catch(e){}t+="/"+r}return t}function k(e){return $.isNumber(e)&&(e!==e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)}function C(e){e()}function w(e,t){return e!==t?null===e?-1:null===t?1:("undefined"==typeof e?"undefined":(0,B.default)(e))!==("undefined"==typeof t?"undefined":(0,B.default)(t))?"number"==typeof e?-1:1:e>t?1:-1:0}function E(e,t){if(e===t)return 0;var n=M(e),i=M(t);return null!==n?null!==i?n-i===0?e.length-t.length:n-i:-1:null!==i?1:e<t?-1:1}function S(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+(0,Q.default)(t))}function N(e){if("object"!==("undefined"==typeof e?"undefined":(0,B.default)(e))||null===e)return(0,Q.default)(e);var t=(0,F.default)(e);t.sort();for(var n="{",i=0;i<t.length;i++)0!==i&&(n+=","),n+=(0,Q.default)(t[i]),n+=":",n+=N(e[t[i]]);return n+="}"}function P(e,t){if(e.length<=t)return[e];for(var n=[],i=0;i<e.length;i+=t)n.push(e.substr(i,t));return n}function A(e,t){if($.isArray(e))for(var n=0;n<e.length;++n)t(n,e[n]);else(0,Z.forEach)(e,t)}function D(e){o(!k(e),"Invalid JSON number");var t,n,i,r,a,s,u,l=11,c=52,d=(1<<l-1)-1;for(0===e?(n=0,i=0,t=1/e===-(1/0)?1:0):(t=e<0,e=Math.abs(e),e>=Math.pow(2,1-d)?(r=Math.min(Math.floor(Math.log(e)/Math.LN2),d),n=r+d,i=Math.round(e*Math.pow(2,c-r)-Math.pow(2,c))):(n=0,i=Math.round(e/Math.pow(2,1-d-c)))),s=[],a=c;a;a-=1)s.push(i%2?1:0),i=Math.floor(i/2);for(a=l;a;a-=1)s.push(n%2?1:0),n=Math.floor(n/2);s.push(t?1:0),s.reverse(),u=s.join("");var h="";for(a=0;a<64;a+=8){var f=parseInt(u.substr(a,8),2).toString(16);1===f.length&&(f="0"+f),h+=f}return h.toLowerCase()}function R(){return!("object"!==("undefined"==typeof window?"undefined":(0,B.default)(window))||!window.chrome||!window.chrome.extension||/^chrome/.test(window.location.href))}function O(){return"object"===("undefined"==typeof Windows?"undefined":(0,B.default)(Windows))&&"object"===(0,B.default)(Windows.UI)}function T(e){var t=null;return"too_big"===e?t="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?t="Client doesn't have permission to access the desired data.":"unavailable"===e&&(t="The service is unavailable"),t}function I(e){var t=T(e)||"Unknown Error",n=new Error(e+": "+t);return n.code=e.toUpperCase(),n}function M(e){if(ce.test(e)){var t=Number(e);if(t>=-2147483648&&t<=2147483647)return t}return null}function W(e){return"number"==typeof e?"number:"+D(e):"string:"+e}function x(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"ns",t="undefined"!=typeof window?window:global;return e.split(".").forEach(function(e){t=t[e]=t[e]||{}}),t}function L(e){oe=e}function j(){return oe}function V(){return"undefined"==typeof window}Object.defineProperty(t,"__esModule",{value:!0}),t.INTEGER_REGEXP_=t.logger=void 0;var U=n(18),F=r(U),q=n(14),Q=r(q),H=n(6),B=r(H);t.LUIDGenerator=a,t.assert=o,t.assertWeak=s,t.base64Encode=u,t.base64DecodeIfNativeSupport=l,t.sha1=c,t.log=h,t.enableLogging=f,t.logWrapper=v,t.error=p,t.fatal=_,t.warn=g,t.warnIfPageIsSecure=y,t.parseURL=m,t.decodePath=b,t.isInvalidJSONNumber=k,t.executeWhenDOMReady=C,t.priorityCompare=w,t.nameCompare=E,t.requireKey=S,t.objectToUniqueKey=N,t.splitStringBySize=P,t.each=A,t.doubleToIEEE754String=D,t.isChromeExtensionContentScript=R,t.isWindowsStoreApp=O,t.getFriendlyErrorReason=T,t.errorForServerCode=I,t.tryParseInt=M,t.priorityHashText=W,t.getGlobalNamespace=x,t.setNodeProxy=L,t.getNodeProxy=j,t.isNodeEnv=V;var K=n(32),G=r(K),J=n(8),Y=r(J),z=n(12),X=n(4),$=i(X),Z=n(5),ee=n(11),te=n(76),ne=n(78),ie=n(24),re=(n(13),n(7)),ae=1,oe=void 0,se="io.datasync.orange.com",ue=!0,le=t.logger=void 0;t.logger=le=null;var ce=t.INTEGER_REGEXP_=new RegExp("^-?\\d{1,10}$");t.default={assert:o,assertWeak:s,base64DecodeIfNativeSupport:l,base64Encode:u,decodePath:b,doubleToIEEE754String:D,each:A,error:p,getFriendlyErrorReason:T,errorForServerCode:I,executeWhenDOMReady:C,fatal:_,isChromeExtensionContentScript:R,isInvalidJSONNumber:k,isWindowsStoreApp:O,log:h,logger:le,logWrapper:v,LUIDGenerator:a,nameCompare:E,objectToUniqueKey:N,parseURL:m,priorityCompare:w,priorityHashText:W,requireKey:S,sha1:c,splitStringBySize:P,tryParseInt:M,warn:g,warnIfPageIsSecure:y,getGlobalNamespace:x,setNodeProxy:L,getNodeProxy:j}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e){var t="undefined"==typeof e?"undefined":(0,N.default)(e);if("object"===t){if(!e)return"null";if(e instanceof Array)return"array";if(e instanceof Object)return t;var n=Object.prototype.toString.call(e);if("[object Window]"===n)return"object";if("[object Array]"===n||"number"==typeof e.length&&"undefined"!=typeof e.splice&&"undefined"!=typeof e.propertyIsEnumerable&&!e.propertyIsEnumerable("splice"))return"array";if("[object Function]"===n||"undefined"!=typeof e.call&&"undefined"!=typeof e.propertyIsEnumerable&&!e.propertyIsEnumerable("call"))return"function"}else if("function"===t&&"undefined"==typeof e.call)return"object";return t}function a(e){return"array"===r(e)}function o(e){var t=r(e);return"array"===t||"object"===t&&"number"==typeof e.length}function s(e){return"string"==typeof e}function u(e){return"boolean"==typeof e}function l(e){return"number"==typeof e}function c(e){return"function"===r(e)}function d(e){var t="undefined"==typeof e?"undefined":(0,N.default)(e);return"object"===t&&null!==e||"function"===t}function h(e){var t=new RegExp("^(https?://)?([a-z\\d]+:[a-z\\d%_.~+=-]+@)?((((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,})|([a-z\\d]+))|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i");return!!t.test(e)}function f(e){return void 0!==e}function v(){return(window.cordova||window.CordovaInAppBrowser||window.phonegap)&&/ios|iphone|ipod|ipad|android/i.test(navigator.userAgent)}function p(){return window.forge&&/ios|iphone|ipod|ipad|android/i.test(navigator.userAgent)}function _(){return!!window.Windows&&/^ms-appx:/.test(location.href)}function g(){return!!navigator.userAgent.match(/CriOS/)}function y(){return!!navigator.userAgent.match(/Twitter for iPhone/)}function m(){return!!navigator.userAgent.match(/FBAN\/FBIOS/)}function b(){return!!navigator.userAgent.match(/Windows Phone/)}function k(){return!!window.navigator.standalone}function C(){return!!navigator.userAgent.match(/PhantomJS/)}function w(){var e,t,n=-1,i=navigator.userAgent;return"Microsoft Internet Explorer"===navigator.appName&&(e=/MSIE ([0-9]+[\.0-9]*)/,t=i.match(e),t&&t.length>1&&(n=parseFloat(t[1])),n<10)}function E(){try{var e=navigator.userAgent;return e.indexOf("Fennec/")!==-1||e.indexOf("Firefox/")!==-1&&e.indexOf("Android")!==-1}catch(e){}return!1}Object.defineProperty(t,"__esModule",{value:!0});var S=n(6),N=i(S);t.typeOf=r,t.isArray=a,t.isArrayLike=o,t.isString=s,t.isBoolean=u,t.isNumber=l,t.isFunction=c,t.isObject=d,t.isUrl=h,t.isDef=f,t.isMobileCordovaInAppBrowser=v,t.isMobileTriggerIoTab=p,t.isWindowsMetro=_,t.isChromeiOS=g,t.isTwitteriOS=y,t.isFacebookiOS=m,t.isWindowsPhone=b,t.isStandaloneiOS=k,t.isPhantomJS=C,t.isIeLT10=w,t.isFennec=E,t.default={typeOf:r,isDef:f,isArray:a,isArrayLike:o,isString:s,isBoolean:u,isNumber:l,isFunction:c,isObject:d,isUrl:h,isMobileCordovaInAppBrowser:v,isMobileTriggerIoTab:p,isWindowsMetro:_,isChromeiOS:g,isTwitteriOS:y,isFacebookiOS:m,isWindowsPhone:b,isStandaloneiOS:k,isPhantomJS:C,isIeLT10:w,isFennec:E}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function a(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function o(e,t,n){h(e).forEach(function(i){t.call(n,e[i],i,e)})}function s(e){return h(e).length}function u(e){return 0===h(e).length}function l(e){var t={};return o(e,function(e,n){t[n]=e}),t}Object.defineProperty(t,"__esModule",{value:!0}),t.getKeys=void 0;var c=n(18),d=i(c);t.contains=r,t.get=a,t.forEach=o,t.getCount=s,t.isEmpty=u,t.clone=l;var h=t.getKeys=function(e){return e&&e instanceof Object?(0,d.default)(e):[]};t.default={contains:r,forEach:o,getCount:s,isEmpty:u,clone:l,getKeys:h,get:a}},function(e,t){e.exports=require("babel-runtime/helpers/typeof")},function(e,t){"use strict";function n(e,t){return t?o(e,t):e}function i(e){try{e()}catch(e){global.setTimeout(function(){throw e},Math.floor(0))}}function r(){}function a(){throw Error("unimplemented abstract method")}function o(e,t){for(var n=arguments.length,i=Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return e.bind.apply(e,[t].concat(i))}Object.defineProperty(t,"__esModule",{value:!0}),t.bindCallback=n,t.exceptionGuard=i,t.nullFunction=r,t.abstractMethod=a,t.bind=o,t.default={abstractMethod:a,exceptionGuard:i,nullFunction:r,bind:o,bindCallback:n}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=function(){function e(t,n){if((0,a.default)(this,e),1===arguments.length){this.pieces_=t.split("/");for(var i=0,r=0;r<this.pieces_.length;r++)this.pieces_[r].length>0&&(this.pieces_[i]=this.pieces_[r],i++);this.pieces_.length=i,this.pieceNum_=0}else this.pieces_=t,this.pieceNum_=n}return(0,s.default)(e,[{key:"getFront",value:function(){return this.pieceNum_>=this.pieces_.length?null:this.pieces_[this.pieceNum_]}},{key:"popFront",value:function(){var t=this.pieceNum_;return t<this.pieces_.length&&t++,new e(this.pieces_,t)}},{key:"getBack",value:function(){return this.pieceNum_<this.pieces_.length?this.pieces_[this.pieces_.length-1]:null}},{key:"toString",value:function(){for(var e="",t=this.pieceNum_;t<this.pieces_.length;t++)""!==this.pieces_[t]&&(e+="/"+this.pieces_[t]);return e||"/"}},{key:"parent",value:function(){if(this.pieceNum_>=this.pieces_.length)return null;for(var t=[],n=this.pieceNum_;n<this.pieces_.length-1;n++)t.push(this.pieces_[n]);return new e(t,0)}},{key:"child",value:function(t){for(var n=[],i=this.pieceNum_;i<this.pieces_.length;i++)n.push(this.pieces_[i]);if(t instanceof e)for(i=t.pieceNum_;i<t.pieces_.length;i++)n.push(t.pieces_[i]);else{var r=t.split("/");for(i=0;i<r.length;i++)r[i].length>0&&n.push(r[i])}return new e(n,0)}},{key:"isEmpty",value:function(){return this.pieceNum_>=this.pieces_.length}},{key:"length",value:function(){return this.pieces_.length-this.pieceNum_}},{key:"contains",value:function(e){var t=this.pieceNum_,n=e.pieceNum_;if(this.length()>e.length())return!1;for(;t<this.pieces_.length;){if(this.pieces_[t]!==e.pieces_[n])return!1;++t,++n}return!0}}],[{key:"RelativePath",value:function(t,n){var i=t.getFront(),r=n.getFront();if(null===i)return n;if(i===r)return e.RelativePath(t.popFront(),n.popFront());throw"INTERNAL ERROR: innerPath ("+n+") is not within outerPath ("+t+")"}}]),e}();t.default=u,e.exports=t.default},function(e,t,n){"use strict";function i(e,t){var n=t();if(n){if(n=(0,p.formatError)(n),!e)throw n;return global.setTimeout(function(){e(n)},0),!1}return!0}function r(e,t,n,r,a){return i(a,function(){if(!e.includes(t))return{code:"CLIENT_ERROR",message:"Transport "+r+" is not supported for this request: "+t+" "+n+"."}})}function a(e,t,n,i){var r;if(i<t?r="at least "+t:i>n&&(r=0===n?"none":"no more than "+n),r){var a=e+" failed: Was called with "+i+(1===i?" argument.":" arguments.")+" Expects "+r+".";throw new Error(a)}}function o(e,t,n,i){var r="";switch(t){case 1:r=n?"first":"First";break;case 2:r=n?"second":"Second";break;case 3:r=n?"third":"Third";break;case 4:r=n?"fourth":"Fourth";break;default:(0,_.assert)(!1,"errorPrefix_ called with argumentNumber > 4. Need to update it?")}var a=e+" failed: ";return"string"==typeof i&&(a+="the '"+i+":' field of the "),a+=r+" argument "}function s(){return g.apply(void 0,[v.isString,"must be a valid webcom namespace."].concat(Array.prototype.slice.call(arguments)))}function u(){return g.apply(void 0,[v.isFunction,"must be a valid function."].concat(Array.prototype.slice.call(arguments)))}function l(){return g.apply(void 0,[v.isString,"must be a valid string."].concat(Array.prototype.slice.call(arguments)))}function c(){return g.apply(void 0,[function(e){return null!==e&&(0,v.isObject)(e)},"must be a valid context object."].concat(Array.prototype.slice.call(arguments)))}function d(e){return(0,v.isString)(e)&&y.test(e)}function h(e){return(0,v.isString)(e)}function f(e){return(0,v.isString)(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.validateWithCallback=i,t.validateHttpMethod=r,t.validateArgCount=a,t.errorPrefix=o,t.validateNamespace=s,t.validateCallback=u,t.validateString=l,t.validateContextObject=c,t.isValidEmail=d,t.isValidPassword=h,t.isValidNamespace=f;var v=n(4),p=n(48),_=n(3),g=function(e,t){for(var n=arguments.length,i=Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];if((!i[3]||(0,v.isDef)(i[2]))&&!e(i[2]))throw i.splice(2,1),new Error(o.apply(void 0,i)+t)},y=/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,6})+$/;t.default={errorPrefix:o,validateArgCount:a,validateCallback:u,validateContextObject:c,validateNamespace:s,validateString:l,isValidEmail:d,isValidPassword:h,isValidNamespace:f,validateHttpMethod:r,validateWithCallback:i}},function(e,t){e.exports=require("babel-runtime/core-js/object/get-prototype-of")},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e){return encodeURIComponent(String(e))}function a(e){return decodeURIComponent(e.replace(/\+/g," "))}function o(){var e=2147483648;return Math.floor(Math.random()*e).toString(36)+Math.abs(Math.floor(Math.random()*e)^Date.now()).toString(36)}function s(e){var t=document.createElement("a");return t.href=e,{protocol:t.protocol.replace(":",""),host:t.hostname,port:t.port,query:t.search,params:u(t.search),hash:t.hash.replace("#",""),path:t.pathname.replace(/^([^\/])/,"/$1")}}function u(e){for(var t={},n=e.replace(/^\?/,"").split("&"),i=0;i<n.length;i++)if(n[i]){var r=n[i].split("=");t[r[0]]=r[1]}return t}function l(e){if(!e)return"";var t=[];return(0,_.default)(e).forEach(function(n){var i=e[n];void 0!==i&&null!==i&&("object"===("undefined"==typeof i?"undefined":(0,v.default)(i))&&(i=(0,h.default)(i)),t.push(encodeURIComponent(n)+"="+encodeURIComponent(i)))}),t.join("&")}function c(e,t){return e.indexOf("?")===-1&&(e+="?"),e.endsWith("?")||(e+="&"),e+=l(t)}Object.defineProperty(t,"__esModule",{value:!0});var d=n(14),h=i(d),f=n(6),v=i(f),p=n(18),_=i(p);t.urlEncode=r,t.urlDecode=a,t.getRandomString=o,t.parseUrl=s,t.parseQuerystring=u,t.formatQueryString=l,t.addQueryParameters=c,t.default={urlDecode:a,urlEncode:r,getRandomString:o,parseQuerystring:u,parseUrl:s,formatQueryString:l,addQueryParameters:c}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e){try{if("undefined"!=typeof window&&"undefined"!=typeof window[e]){var t=window[e];return t.setItem("webcom:sentinel","cache"),t.removeItem("webcom:sentinel"),new o.default(t)}}catch(e){}return new u.default}Object.defineProperty(t,"__esModule",{value:!0}),t.SessionStorage=t.PersistentStorage=void 0;var a=n(57),o=i(a),s=n(58),u=i(s);t.PersistentStorage=r("localStorage"),t.SessionStorage=r("sessionStorage")},function(e,t,n){"use strict";function i(){return d.apply(void 0,["forEach"].concat(Array.prototype.slice.call(arguments)))}function r(){return d.apply(void 0,["map"].concat(Array.prototype.slice.call(arguments)))}function a(){return d.apply(void 0,["every"].concat(Array.prototype.slice.call(arguments)))}function o(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return i&&(t=(0,c.bind)(t,i)),d("reduce",e,t,n,i)}function s(e,t,n){for(var i=e.length,r=(0,l.isString)(e)?e.split(""):e,a=0;a<i;a++)if(a in r&&t.call(n,r[a],a,e))return a;return-1}function u(e,t,n){var i=s(e,t,n);return i<0?null:(0,l.isString)(e)?e.charAt(i):e[i]}Object.defineProperty(t,"__esModule",{value:!0}),t.forEach=i,t.map=r,t.every=a,t.reduce=o,t.findIndex=s,t.find=u;var l=n(4),c=n(7),d=function(e,t){for(var n=arguments.length,i=Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return t[e].apply(t,i)};t.default={forEach:i,map:r,reduce:o,find:u,findIndex:s}},function(e,t){e.exports=require("babel-runtime/core-js/json/stringify")},function(e,t){e.exports=require("babel-runtime/helpers/inherits")},function(e,t){e.exports=require("babel-runtime/helpers/possibleConstructorReturn")},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);
return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){return C.priorityCompare(e.priority,t.priority)||(0,k.nameCompare)(e.name,t.name)}function o(e,t){return(0,k.nameCompare)(e.name,t.name)}function s(e,t){if(null===e)return A;var n=null;if("object"===("undefined"==typeof e?"undefined":(0,c.default)(e))&&".priority"in e?n=e[".priority"]:"undefined"!=typeof t&&(n=t),C.assert(null===n||"string"==typeof n||"number"==typeof n||"object"===("undefined"==typeof n?"undefined":(0,c.default)(n))&&".sv"in n,"Invalid priority type found: "+("undefined"==typeof n?"undefined":(0,c.default)(n))),"object"===("undefined"==typeof e?"undefined":(0,c.default)(e))&&".value"in e&&null!==e[".value"]&&(e=e[".value"]),"object"!==("undefined"==typeof e?"undefined":(0,c.default)(e))||".sv"in e){var i=e;return new y.default(i,n)}if(e instanceof Array||!D){var r=A,a=e;return(0,w.forEach)(a,function(e,t){if((0,w.contains)(a,t)&&"."!==t.substring(0,1)){var n=s(e);!n.isLeafNode()&&n.isEmpty()||(r=r.updateImmediateChild(t,n))}}),r.updatePriority(n)}var o=[],l={},d=!1,h=e;C.each(h,function(e,t){if("string"!=typeof t||"."!==t.substring(0,1)){var n=s(h[t]);n.isEmpty()||(d=d||null!==n.getPriority(),o.push({name:t,priority:n.getPriority()}),l[t]=n)}});var f=u(o,l,!1);if(d){var v=u(o,l,!0);return new b.default(f,v,n)}return new _.default(f,n)}function u(e,t,n){var i=n?a:o;e.sort(i);var r=function i(r,a){var o,s,u=a-r;if(0===u)return null;if(1===u)return o=e[r].name,s=n?e[r]:o,new E.LLRBNode(s,t[o],E.LLRBNode.BLACK,null,null);var l=parseInt(u/2,10)+r,c=i(r,l),d=i(l+1,a);return o=e[l].name,s=n?e[l]:o,new E.LLRBNode(s,t[o],E.LLRBNode.BLACK,c,d)},s=function(i){for(var a=null,o=null,s=e.length,u=function(e){a?(a.left=e,a=e):(o=e,a=e)},l=function(i,a){var o=s-i,l=s;s-=i;var c=r(o+1,l),d=e[o].name,h=n?e[o]:d;u(new E.LLRBNode(h,t[d],a,null,c))},c=0;c<i.count;++c){var d=i.nextBitIsOne(),h=Math.pow(2,i.count-(c+1));d?l(h,E.LLRBNode.BLACK):(l(h,E.LLRBNode.BLACK),l(h,E.LLRBNode.RED))}return o},u=new P(e.length),l=s(u);return i=n?a:k.nameCompare,null!==l?new S.default(i,l):new S.default(i)}Object.defineProperty(t,"__esModule",{value:!0}),t.EMPTY_NODE=t.Base12Num=void 0;var l=n(6),c=r(l),d=n(1),h=r(d),f=n(2),v=r(f);t.NAME_AND_PRIORITY_COMPARATOR=a,t.NAME_ONLY_COMPARATOR=o,t.NodeFromJSON=s,t.buildChildSet=u;var p=n(20),_=r(p),g=n(21),y=r(g),m=n(35),b=r(m),k=n(3),C=i(k),w=n(5),E=n(26),S=r(E),N=Math.log(2),P=t.Base12Num=function(){function e(t){(0,h.default)(this,e);var n=function(e){return parseInt(Math.log(e)/N,10)},i=function(e){return parseInt(Array(e+1).join("1"),2)};this.count=n(t+1),this.current_=this.count-1;var r=i(this.count);this.bits_=t+1&r}return(0,v.default)(e,[{key:"nextBitIsOne",value:function(){var e=!(this.bits_&1<<this.current_);return this.current_--,e}}]),e}(),A=t.EMPTY_NODE=new _.default,D=!0;t.default={EMPTY_NODE:A,NAME_AND_PRIORITY_COMPARATOR:a,NAME_ONLY_COMPARATOR:o,NodeFromJSON:s,buildChildSet:u}},function(e,t){e.exports=require("babel-runtime/core-js/object/keys")},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return(0,S.isString)(e)&&0!==e.length&&!P.test(e)}function a(e){return(0,S.isString)(e)&&0!==e.length&&!A.test(e)}function o(e){return e&&(e=e.replace(/^\/*\.info(\/|$)/,"/")),a(e)}function s(e,t,n,i){i&&!(0,S.isDef)(n)||u((0,w.errorPrefix)(e,t,i),n)}function u(e,t,n,i){if(n||(n=0),i=i||[],!(0,S.isDef)(t))throw new Error(e+"contains undefined"+l(i));if(N.isFunction(t))throw new Error(e+"contains a function"+l(i)+" with contents: "+t.toString());if((0,E.isInvalidJSONNumber)(t))throw new Error(e+"contains "+t.toString()+l(i));if(n>R)throw new TypeError(e+"contains a cyclic object value ("+i.slice(0,100).join(".")+"...)");if((0,S.isString)(t)&&t.length>D/3&&(0,C.stringToByteArray)(t).length>D)throw new Error(e+"contains a string greater than "+D+" utf8 bytes"+l(i)+" ('"+t.substring(0,50)+"...')");if((0,S.isObject)(t))for(var a in t)if((0,k.contains)(t,a)){var o=t[a];if(".priority"!==a&&".value"!==a&&".sv"!==a&&!r(a))throw new Error(e+"contains an invalid key ("+a+")"+l(i)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');i.push(a),u(e,o,n+1,i),i.pop()}}function l(e){return 0===e.length?"":" in property '"+e.join(".")+"'"}function c(e,t,n,i){if(!i||(0,S.isDef)(n)){if(!(0,S.isObject)(n)||N.isArray(n))throw new Error((0,w.errorPrefix)(e,t,i)+" must be an Object containing the children to replace.");s(e,t,n,i)}}function d(e,t,n,i){if((!i||(0,S.isDef)(n))&&!(null===n||(0,S.isNumber)(n)||(0,S.isString)(n)||(0,S.isObject)(n)&&(0,k.contains)(n,".sv")))throw new Error((0,w.errorPrefix)(e,t,i)+"must be a valid webcom priority (a string, number, or null).")}function h(e,t,n,i){if(!i||(0,S.isDef)(n))switch(n){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error((0,w.errorPrefix)(e,t,i)+'must be a valid event type: "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}function f(e,t,n,i){if((!i||(0,S.isDef)(n))&&!r(n))throw new Error((0,w.errorPrefix)(e,t,i)+'was an invalid key: "'+n+'". Webcom keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function v(e,t,n,i){if((!i||(0,S.isDef)(n))&&!a(n))throw new Error((0,w.errorPrefix)(e,t,i)+'was an invalid path: "'+n+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')}function p(e,t,n,i){n&&(n=n.replace(/^\/*\.info(\/|$)/,"/")),v(e,t,n,i)}function _(e,t){if(".info"===t.getFront())throw new Error(e+" failed: Can't modify data under /.info/")}function g(e,t,n){var i=n.path.toString();if(!(0,S.isString)(n.repoInfo.host)||0===n.repoInfo.host.length||!r(n.repoInfo.namespace)||0!==i.length&&!o(i))throw new Error((0,w.errorPrefix)(e,t,!1)+'must be a valid webcom URL and the path can\'t contain ".", "#", "$", "[", or "]".')}function y(e,t,n,i){if((!i||(0,S.isDef)(n))&&!(0,S.isUrl)(n))throw new Error((0,w.errorPrefix)(e,t,i)+"must be a valid credential (a string).")}function m(e,t,n,i){if((!i||(0,S.isDef)(n))&&!(0,S.isString)(n))throw new Error((0,w.errorPrefix)(e,t,i)+"must be a valid credential (a string).")}function b(e,t,n,i){if((!i||(0,S.isDef)(n))&&!N.isBoolean(n))throw new Error((0,w.errorPrefix)(e,t,i)+"must be a boolean.")}Object.defineProperty(t,"__esModule",{value:!0}),t.MAX_DEPTH_SIZE_=t.MAX_LEAF_SIZE_=t.INVALID_PATH_REGEX_=t.INVALID_KEY_REGEX_=void 0,t.isValidKey=r,t.isValidPathString=a,t.isValidRootPathString=o,t.validateWebcomDataArg=s,t.validateWebcomData=u,t.pathLocation_=l,t.validateWebcomObjectDataArg=c,t.validatePriority=d,t.validateEventType=h,t.validateKey=f,t.validatePathString=v,t.validateRootPathString=p,t.validateWritablePath=_,t.validateUrl=g,t.validateUri=y,t.validateCredential=m,t.validateBoolean=b;var k=n(5),C=n(79),w=n(9),E=n(3),S=n(4),N=i(S),P=t.INVALID_KEY_REGEX_=/[\[\].#$\/\u0000-\u001F\u007F]/,A=t.INVALID_PATH_REGEX_=/[\[\].#$\u0000-\u001F\u007F]/,D=t.MAX_LEAF_SIZE_=10485760,R=t.MAX_DEPTH_SIZE_=1e3;t.default={isValidKey:r,isValidPathString:a,isValidRootPathString:o,pathLocation_:l,validateBoolean:b,validateCredential:m,validateEventType:h,validateWebcomData:u,validateWebcomDataArg:s,validateWebcomObjectDataArg:c,validateKey:f,validatePathString:v,validatePriority:d,validateRootPathString:p,validateUrl:g,validateWritablePath:_}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ChildrenNode=void 0;var r=n(10),a=i(r),o=n(18),s=i(o),u=n(1),l=i(u),c=n(2),d=i(c),h=n(28),f=i(h),v=n(3),p=n(26),_=i(p),g=n(21),y=i(g),m=/^(0|[1-9][0-9]*)$/,b=t.ChildrenNode=function(){function e(t,n){(0,l.default)(this,e),this.children_=t||new _.default(v.nameCompare),this.priority_="undefined"!=typeof n?n:null}return(0,d.default)(e,[{key:"isLeafNode",value:function(){return!1}},{key:"getPriority",value:function(){return this.priority_}},{key:"updatePriority",value:function(t){return new e(this.children_,t)}},{key:"updateValue",value:function(e){return new y.default(e,this.priority_)}},{key:"updateImmediateChild",value:function(t,n){var i=this.children_.remove(t);return n&&n.isEmpty()&&(n=null),null!==n&&(i=i.insert(t,n)),n&&null!==n.getPriority()?new Webcom.INTERNAL.SortedChildrenNode(i,null,this.priority_):new e(i,this.priority_)}},{key:"updateChild",value:function(e,t){var n=e.getFront();if(null===n)return t;var i=this.getImmediateChild(n).updateChild(e.popFront(),t);return this.updateImmediateChild(n,i)}},{key:"isEmpty",value:function(){return this.children_.isEmpty()}},{key:"numChildren",value:function(){return this.children_.count()}},{key:"val",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"withArrays";if(this.isEmpty())return null;var t="export"===e,n="withArrays"===e,i={},r=0,a=0,o=n;if(this.forEachChild(function(t,n){i[t]=n.val(e),r++,o&&(m.test(t)?a=Math.max(a,Number(t)):o=!1)}),o&&a<2*r){var u=[];return(0,s.default)(i).forEach(function(e){return u[e]=i[e]}),u}return t&&null!==this.getPriority()&&(i[".priority"]=this.getPriority()),i}},{key:"hash",value:function(){var e="";return null!==this.getPriority()&&(e+="priority:"+(0,v.priorityHashText)(this.getPriority())+":"),this.forEachChild(function(t,n){var i=n.hash();""!==i&&(e+=":"+t+":"+i)}),""===e?"":(0,v.sha1)(e)}},{key:"getImmediateChild",value:function(t){var n=this.children_.get(t);return null===n?new e:n}},{key:"getChild",value:function(e){var t=e.getFront();return null===t?this:this.getImmediateChild(t).getChild(e.popFront())}},{key:"getPredecessorChildName",value:function(e){return this.children_.getPredecessorKey(e)}},{key:"getFirstChildName",value:function(){return this.children_.minKey()}},{key:"getLastChildName",value:function(){return this.children_.maxKey()}},{key:"forEachChild",value:function(e){return this.children_.inorderTraversal(e)}},{key:"forEachChildReverse",value:function(e){return this.children_.reverseTraversal(e)}},{key:"getIterator",value:function(){return this.children_.getIterator()}},{key:"toString",value:function(){return(0,f.default)(e.prototype.__proto__||(0,a.default)(e.prototype),"toString",this).call(this)}}]),e}();t.default=b},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.LeafNode=void 0;var a=n(10),o=r(a),s=n(6),u=r(s),l=n(1),c=r(l),d=n(2),h=r(d),f=n(28),v=r(f),p=n(3),_=i(p),g=n(20),y=r(g),m=t.LeafNode=function(){function e(t,n){(0,c.default)(this,e),this.value_=t,_.assert(null!==this.value_,"LeafNode shouldn't be created with null value."),this.priority_="undefined"!=typeof n?n:null}return(0,h.default)(e,[{key:"isLeafNode",value:function(){return!0}},{key:"getPriority",value:function(){return this.priority_}},{key:"updatePriority",value:function(t){return new e(this.value_,t)}},{key:"updateValue",value:function(t){return new e(t,this.priority_)}},{key:"getImmediateChild",value:function(){return new y.default}},{key:"getChild",value:function(e){return null===e.getFront()?this:new y.default}},{key:"getPredecessorChildName",value:function(){return null}},{key:"updateImmediateChild",value:function(e,t){return(new y.default).updateImmediateChild(e,t).updatePriority(this.priority_)}},{key:"updateChild",value:function(e,t){var n=e.getFront();return null===n?t:this.updateImmediateChild(n,(new y.default).updateChild(e.popFront(),t))}},{key:"isEmpty",value:function(){return!1}},{key:"numChildren",value:function(){return 0}},{key:"val",value:function(e){return e&&null!==this.getPriority()?{".value":this.getValue(),".priority":this.getPriority()}:this.getValue()}},{key:"hash",value:function(){var e="";null!==this.getPriority()&&(e+="priority:"+_.priorityHashText(this.getPriority())+":");var t=(0,u.default)(this.value_);return e+=t+":",e+="number"===t?_.doubleToIEEE754String(this.value_):this.value_,_.sha1(e)}},{key:"getValue",value:function(){return this.value_}},{key:"toString",value:function(){return(0,v.default)(e.prototype.__proto__||(0,o.default)(e.prototype),"toString",this).call(this)}}]),e}();t.default=m},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TreeNode=void 0;var a=n(2),o=r(a),s=n(1),u=r(s),l=n(8),c=r(l),d=n(5),h=i(d),f=n(3),v=t.TreeNode=function e(){(0,u.default)(this,e),this.children={},this.childCount=0,this.value=null},p=function(){function e(t,n,i){(0,u.default)(this,e),this.name_=t?t:"",this.parent_=n?n:null,this.node_=i?i:new v}return(0,o.default)(e,[{key:"subTree",value:function(t){for(var n,i=t instanceof c.default?t:new c.default(t),r=this;null!==(n=i.getFront());){var a=h.get(r.node_.children,n)||new v;r=new e(n,r,a),i=i.popFront()}return r}},{key:"getValue",value:function(){return this.node_.value}},{key:"setValue",value:function(e){(0,f.assert)("undefined"!=typeof e,"Cannot set value to undefined"),this.node_.value=e,this.updateParents_()}},{key:"clear",value:function(){this.node_.value=null,this.node_.children={},this.node_.childCount=0,this.updateParents_()}},{key:"hasChildren",value:function(){return this.node_.childCount>0}},{key:"isEmpty",value:function(){return null===this.getValue()&&!this.hasChildren()}},{key:"forEachChild",value:function(t){for(var n in this.node_.children)this.node_.children.hasOwnProperty(n)&&t(new e(n,this,this.node_.children[n]))}},{key:"forEachDescendant",value:function(e,t,n){t&&!n&&e(this),this.forEachChild(function(t){t.forEachDescendant(e,!0,n)}),t&&n&&e(this)}},{key:"forEachAncestor",value:function(e,t){for(var n=t?this:this.parent();null!==n;){if(e(n))return!0;n=n.parent()}return!1}},{key:"forEachImmediateDescendantWithValue",value:function(e){this.forEachChild(function(t){null!==t.getValue()?e(t):t.forEachImmediateDescendantWithValue(e)})}},{key:"path",value:function(){return new c.default(null===this.parent_?this.name_:this.parent_.path()+"/"+this.name_)}},{key:"name",value:function(){return this.name_}},{key:"parent",value:function(){return this.parent_}},{key:"updateParents_",value:function(){null!==this.parent_&&this.parent_.updateChild_(this.name_,this)}},{key:"updateChild_",value:function(e,t){var n=t.isEmpty(),i=h.contains(this.node_.children,e);n&&i?(delete this.node_.children[e],this.node_.childCount--,this.updateParents_()):n||i||(this.node_.children[e]=t.node_,this.node_.childCount++,this.updateParents_())}}]),e}();t.default=p},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=function(){function e(t,n,i,r){(0,a.default)(this,e),this.type=t,this.snapshotNode=n,this.childName=i,this.prevName=r}return(0,s.default)(e,null,[{key:"CHILD_ADDED",get:function(){return"child_added"}},{key:"CHILD_REMOVED",get:function(){return"child_removed"}},{key:"CHILD_CHANGED",get:function(){return"child_changed"}},{key:"CHILD_MOVED",get:function(){return"child_moved"}},{key:"VALUE",get:function(){return"value"}}]),e}();t.default=u,e.exports=t.default},function(e,t){"use strict";function n(e){r=/http(?:s)?:\/\/[^\/]*/.exec(e)[0]}function i(){return r}Object.defineProperty(t,"__esModule",{value:!0}),t.setApiHost=n,t.getApiHost=i;var r="";t.default={setApiHost:n,getApiHost:i}},function(e,t){e.exports=require("babel-runtime/core-js/object/assign")},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){return e<t?-1:e>t?1:0}Object.defineProperty(t,"__esModule",{value:!0}),t.LLRBNode=t.SortedMapIterator=t.LLRBEmptyNode=void 0;var a=n(1),o=i(a),s=n(2),u=i(s),l=t.LLRBEmptyNode=function(){function e(){(0,o.default)(this,e)}return(0,u.default)(e,[{key:"copy",value:function(){return this}},{key:"insert",value:function(e,t,n){return new p(e,t,null)}},{key:"remove",value:function(e,t){return this}},{key:"count",value:function(){return 0}},{key:"isEmpty",value:function(){return!0}},{key:"inorderTraversal",value:function(e){return!1}},{key:"reverseTraversal",value:function(e){return!1}},{key:"minKey",value:function(){return null}},{key:"maxKey",value:function(){return null}},{key:"check_",value:function(){return 0}},{key:"isRed_",value:function(){return!1}}]),e}(),c=new l,d=!0,h=!1,f=function(){function e(t,n){(0,o.default)(this,e),this.comparator_=t?t:r,this.root_=n?n:c}return(0,u.default)(e,[{key:"insert",value:function(t,n){return new e(this.comparator_,this.root_.insert(t,n,this.comparator_).copy(null,null,p.BLACK,null,null))}},{key:"remove",value:function(t){return new e(this.comparator_,this.root_.remove(t,this.comparator_).copy(null,null,p.BLACK,null,null))}},{key:"get",value:function(e){for(var t,n=this.root_;!n.isEmpty();){if(t=this.comparator_(e,n.key),0===t)return n.value;t<0?n=n.left:t>0&&(n=n.right)}return null}},{key:"getPredecessorKey",value:function(e){for(var t,n=this.root_,i=null;!n.isEmpty();){if(t=this.comparator_(e,n.key),0===t){if(n.left.isEmpty())return i?i.key:null;for(n=n.left;!n.right.isEmpty();)n=n.right;return n.key}t<0?n=n.left:t>0&&(i=n,n=n.right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}},{key:"isEmpty",value:function(){return this.root_.isEmpty()}},{key:"count",value:function(){return this.root_.count()}},{key:"minKey",value:function(){return this.root_.minKey()}},{key:"maxKey",value:function(){return this.root_.maxKey()}},{key:"inorderTraversal",value:function(e){return this.root_.inorderTraversal(e)}},{key:"reverseTraversal",value:function(e){return this.root_.reverseTraversal(e)}},{key:"getIterator",value:function(e){return new v(this.root_,e)}}]),e}();t.default=f;var v=t.SortedMapIterator=function(){function e(t,n){for((0,o.default)(this,e),this.resultGenerator_=n,this.nodeStack_=[];!t.isEmpty();)this.nodeStack_.push(t),t=t.left}return(0,u.default)(e,[{key:"getNext",value:function(){if(0===this.nodeStack_.length)return null;var e,t=this.nodeStack_.pop();for(e=this.resultGenerator_?this.resultGenerator_(t.key,t.value):{key:t.key,value:t.value},t=t.right;!t.isEmpty();)this.nodeStack_.push(t),t=t.left;return e}}]),e}(),p=t.LLRBNode=function(){function e(t,n,i,r,a){(0,o.default)(this,e),this.key=t,this.value=n,this.color=null!=i?i:d,this.left=null!=r?r:c,this.right=null!=a?a:c}return(0,u.default)(e,[{key:"copy",value:function(t,n,i,r,a){return new e(null!=t?t:this.key,null!=n?n:this.value,null!=i?i:this.color,null!=r?r:this.left,null!=a?a:this.right)}},{key:"count",value:function(){return this.left.count()+1+this.right.count()}},{key:"isEmpty",value:function(){return!1}},{key:"inorderTraversal",value:function(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}},{key:"reverseTraversal",value:function(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}},{key:"min_",value:function(){return this.left.isEmpty()?this:this.left.min_()}},{key:"minKey",value:function(){return this.min_().key}},{key:"maxKey",value:function(){return this.right.isEmpty()?this.key:this.right.maxKey()}},{key:"insert",value:function(e,t,n){var i,r;return r=this,i=n(e,r.key),r=i<0?r.copy(null,null,null,r.left.insert(e,t,n),null):0===i?r.copy(null,t,null,null,null):r.copy(null,null,null,null,r.right.insert(e,t,n)),r.fixUp_()}},{key:"removeMin_",value:function(){var e;return this.left.isEmpty()?c:(e=this,e.left.isRed_()||e.left.left.isRed_()||(e=e.moveRedLeft_()),e=e.copy(null,null,null,e.left.removeMin_(),null),e.fixUp_())}},{key:"remove",value:function(e,t){var n,i;if(n=this,t(e,n.key)<0)n.left.isEmpty()||n.left.isRed_()||n.left.left.isRed_()||(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.remove(e,t),null);else{if(n.left.isRed_()&&(n=n.rotateRight_()),n.right.isEmpty()||n.right.isRed_()||n.right.left.isRed_()||(n=n.moveRedRight_()),0===t(e,n.key)){if(n.right.isEmpty())return c;i=n.right.min_(),n=n.copy(i.key,i.value,null,null,n.right.removeMin_())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp_()}},{key:"isRed_",value:function(){return this.color}},{key:"fixUp_",value:function(){var e=this;return e.right.isRed_()&&!e.left.isRed_()&&(e=e.rotateLeft_()),e.left.isRed_()&&e.left.left.isRed_()&&(e=e.rotateRight_()),e.left.isRed_()&&e.right.isRed_()&&(e=e.colorFlip_()),e}},{key:"moveRedLeft_",value:function(){var e=this.colorFlip_();return e.right.left.isRed_()&&(e=e.copy(null,null,null,null,e.right.rotateRight_()),e=e.rotateLeft_(),e=e.colorFlip_()),e}},{key:"moveRedRight_",value:function(){var e=this.colorFlip_();return e.left.left.isRed_()&&(e=e.rotateRight_(),e=e.colorFlip_()),e}},{key:"rotateLeft_",value:function(){var e;return e=this.copy(null,null,d,null,this.right.left),this.right.copy(null,null,this.color,e,null)}},{key:"rotateRight_",value:function(){var e;return e=this.copy(null,null,d,this.left.right,null),this.left.copy(null,null,this.color,null,e)}},{key:"colorFlip_",value:function(){var e,t;return e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null),this.copy(null,null,!this.color,e,t)}},{key:"checkMaxDepth_",value:function(){var e;return e=this.check_(),Math.pow(2,e)<=this.count()+1}},{key:"check_",value:function(){var e;if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");if(e=this.left.check_(),e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}]),e}();p.RED=d,p.BLACK=h},function(e,t){"use strict";function n(e,t,n){return e=c(e.slice(t/32),32-(31&t)).slice(1),void 0===n?e:o(e,n-t)}function i(e,t,n){var i,r=Math.floor(-t-n&31);return i=(t+n-1^t)&-32?e[t/32|0]<<32-r^e[t/32+1|0]>>>r:e[t/32|0]>>>r,i&(1<<n)-1}function r(e,t){if(0===e.length||0===t.length)return e.concat(t);var n=e[e.length-1],i=u(n);return 32===i?e.concat(t):c(t,i,0|n,e.slice(0,e.length-1))}function a(e){var t,n=e.length;return 0===n?0:(t=e[n-1],32*(n-1)+u(t))}function o(e,t){if(32*e.length<t)return e;e=e.slice(0,Math.ceil(t/32));var n=e.length;return t&=31,n>0&&t&&(e[n-1]=s(t,e[n-1]&2147483648>>t-1,1)),e}function s(e,t,n){return 32===e?t:(n?0|t:t<<32-e)+1099511627776*e}function u(e){return Math.round(e/1099511627776)||32}function l(e,t){if(a(e)!==a(t))return!1;var n,i=0;for(n=0;n<e.length;n++)i|=e[n]^t[n];return 0===i}function c(e,t,n,i){var r,a,o=0;for(void 0===i&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(0===t)return i.concat(e);for(r=0;r<e.length;r++)i.push(n|e[r]>>>t),n=e[r]<<32-t;return o=e.length?e[e.length-1]:0,a=u(o),i.push(s(t+a&31,t+a>32?n:i.pop(),1)),i}function d(e,t){return[e[0]^t[0],e[1]^t[1],e[2]^t[2],e[3]^t[3]]}function h(e){var t,n,i=65280;for(t=0;t<e.length;++t)n=e[t],e[t]=n>>>24|n>>>8&i|(n&i)<<8|n<<24;return e}Object.defineProperty(t,"__esModule",{value:!0}),t.bitSlice=n,t.extract=i,t.concat=r,t.bitLength=a,t.clamp=o,t.partial=s,t.getPartial=u,t.equal=l,t._shiftRight=c,t._xor4=d,t.byteswapM=h},function(e,t){e.exports=require("babel-runtime/helpers/get")},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(8),l=i(u),c=n(19),d=n(9),h=n(4),f=function(){function e(t,n){(0,a.default)(this,e),this.ref_=n,this.node_=t}return(0,s.default)(e,[{key:"val",value:function(){return(0,d.validateArgCount)("Webcom.DataSnapshot.val",0,0,arguments.length),this.node_.val()}},{key:"rawVal",value:function(){return(0,d.validateArgCount)("Webcom.DataSnapshot.rawVal",0,0,arguments.length),this.node_.val("raw")}},{key:"exportVal",value:function(){return(0,d.validateArgCount)("Webcom.DataSnapshot.exportVal",0,0,arguments.length),this.node_.val("export")}},{key:"child",value:function(t){(0,d.validateArgCount)("Webcom.DataSnapshot.child",0,1,arguments.length),(0,h.isNumber)(t)&&(t=String(t)),(0,c.validatePathString)("Webcom.DataSnapshot.child",1,t,!1);var n=new l.default(t),i=this.ref_.child(n);return new e(this.node_.getChild(n),i)}},{key:"hasChild",value:function(e){(0,d.validateArgCount)("Webcom.DataSnapshot.hasChild",1,1,arguments.length),(0,c.validatePathString)("Webcom.DataSnapshot.hasChild",1,e,!1);var t=new l.default(e);return!this.node_.getChild(t).isEmpty()}},{key:"getPriority",value:function(){return(0,d.validateArgCount)("Webcom.DataSnapshot.getPriority",0,0,arguments.length),this.node_.getPriority()}},{key:"forEach",value:function(t){if((0,d.validateArgCount)("Webcom.DataSnapshot.forEach",1,1,arguments.length),(0,d.validateCallback)("Webcom.DataSnapshot.forEach",1,t,!1),this.node_.isLeafNode())return!1;var n=this;return this.node_.forEachChild(function(i,r){return t(new e(r,n.ref_.child(i)))})}},{key:"hasChildren",value:function(){return(0,d.validateArgCount)("Webcom.DataSnapshot.hasChildren",0,0,arguments.length),!this.node_.isLeafNode()&&!this.node_.isEmpty()}},{key:"name",value:function(){return(0,d.validateArgCount)("Webcom.DataSnapshot.name",0,0,arguments.length),this.ref_.name()}},{key:"numChildren",value:function(){return(0,d.validateArgCount)("Webcom.DataSnapshot.numChildren",0,0,arguments.length),this.node_.numChildren()}},{key:"ref",value:function(){return(0,d.validateArgCount)("Webcom.DataSnapshot.ref",0,0,arguments.length),this.ref_}}]),e}();t.default=f,e.exports=t.default},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(14),o=r(a),s=n(1),u=r(s),l=n(2),c=r(l),d=n(61),h=r(d),f=n(63),v=r(f),p=n(8),_=r(p),g=n(46),y=r(g),m=n(3),b=i(m),k=(n(5),n(4)),C=n(13),w=n(7),E=i(w),S=1e3,N=3e5,P=3e4,A=1.3,D=3e4,R=0,O=0,T=function(){function e(t,n,i,r,a,o){(0,u.default)(this,e),this.id=R++,this.log_=b.logWrapper("p:"+this.id+":"),this.shouldReconnect_=!0,this.listens_={},this.outstandingPuts_=[],this.outstandingPutCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=S,this.maxReconnectDelay_=N,this.onDataUpdate_=n||E.nullFunction,this.onConnectStatus_=i||E.nullFunction,this.onAuthStatus_=r||E.nullFunction,this.onServerInfoUpdate_=a||E.nullFunction,this.getServerDataHashForPath_=o||E.nullFunction,this.repoInfo_=t,this.securityDebugCallback_=null,this.requestCBHash_={},this.requestNumber_=0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,this.scheduleConnect_(0),v.default.getInstance().on("visible",this.onVisible_,this),t.host.indexOf("fblocal")!==-1||"__karma__"in(global||window)||h.default.getInstance().on("online",this.onOnline_,this)}return(0,c.default)(e,[{key:"sendRequest_",value:function(e,t,n){var i=++this.requestNumber_,r={r:i,a:e,b:t};this.log_((0,o.default)(r)),b.assert(this.connected_,"sendRequest_ call when we're not connected not allowed."),this.realtime_.sendRequest(r),n&&(this.requestCBHash_[i]=n)}},{key:"listen",value:function(e,t){var n=e.toString(),i=e.path().toString();this.listens_[i]=this.listens_[i]||{},b.assert(!this.listens_[i][n],"listen() called twice for same path/queryId."),this.listens_[i][n]={queries:e.queries(),onComplete:t},this.connected_&&this.sendListen_(i,n,e.queries(),t)}},{key:"sendListen_",value:function(e,t,n,i){var r=this;this.log_("Listen on "+e+" for "+t);var a={p:e},o=(0,C.map)(n,function(e){return e.queryObject()});"{}"!==t&&(a.q=o),a.h=this.getServerDataHashForPath_(e),this.sendRequest_("l",a,function(n){r.log_("listen response",n);var a=n.s;"ok"!==a&&r.removeListen_(e,t),i&&i(a)})}},{key:"auth",value:function(e,t,n){this.credential_={cred:e,firstRequestSent:!1,callback:t,cancelCallback:n},this.log_("Authenticating using credential: "+this.credential_),this.tryAuth(),this.reduceReconnectDelayIfAdminCredential_(e)}},{key:"reduceReconnectDelayIfAdminCredential_",value:function(e){var t=40===e.length;(t||this.isAdminAuthToken_(e))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=P)}},{key:"isAdminAuthToken_",value:function(e){var t;try{var n=e.split(".");if(3!==n.length)return!1;var i=b.base64DecodeIfNativeSupport(n[1]);if(null!==i&&(t=JSON.parse(i),null!==t)){var r=t.p;return"admin"===r||"super"===r}}catch(e){b.log("isAdminAuthToken_ failed",e)}return!1}},{key:"unauth",value:function(e){delete this.credential_,this.onAuthStatus_(!1),this.connected_&&this.sendRequest_("unauth",{},function(t){var n=t.s,i=t.d;e(n,i)})}},{key:"tryAuth",value:function(){var e=this.credential_,t=this;if(e)if(this.connected_){var n={cred:e.cred};this.sendRequest_("auth",n,function(n){var i=n.s,r=n.d||"error";"ok"!==i&&t.credential_===e&&delete t.credential_,t.onAuthStatus_("ok"===i),e.firstRequestSent?"ok"!==i&&e.cancelCallback&&e.cancelCallback(i,r):(e.firstRequestSent=!0,e.callback&&e.callback(i,r))})}else this.repoInfo_.options.persist&&(this.onAuthStatus_(!0),e.callback&&e.callback("ok",null))}},{key:"unlisten",value:function(e,t,n){var i=e.toString(),r=this.removeListen_(i,t);r&&this.connected_&&this.sendUnlisten_(i,t,n)}},{key:"sendUnlisten_",value:function(e,t,n){this.log_("Unlisten on "+e+" for "+t);var i={p:e},r=(0,C.map)(n,function(e){return e.queryObject()});"{}"!==t&&(i.q=r),this.sendRequest_("u",i)}},{key:"onDisconnectPut",value:function(e,t,n){this.connected_?this.sendOnDisconnect_("o",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:n})}},{key:"onDisconnectMerge",value:function(e,t,n){this.connected_?this.sendOnDisconnect_("om",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:n})}},{key:"onDisconnectCancel",value:function(e,t){this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}},{key:"sendOnDisconnect_",value:function(e,t,n,i){var r=this,a={p:t,d:n};r.log_("onDisconnect "+e,a),this.sendRequest_(e,a,function(e){i&&global.setTimeout(function(){i(e.s,e.d)},Math.floor(0))})}},{key:"put",value:function(e,t,n,i){this.putInternal("p",e,t,n,i)}},{key:"merge",value:function(e,t,n,i){this.putInternal("m",e,t,n,i)}},{key:"putInternal",value:function(e,t,n,i,r){var a={p:t,d:n};(0,k.isDef)(r)&&(a.h=r),this.outstandingPuts_.push({action:e,request:a,onComplete:i}),this.outstandingPutCount_++;var o=this.outstandingPuts_.length-1;this.connected_&&this.sendPut_(o)}},{key:"sendPut_",value:function(e){var t=this,n=this.outstandingPuts_[e].action,i=this.outstandingPuts_[e].request,r=this.outstandingPuts_[e].onComplete;this.outstandingPuts_[e].queued=this.connected_,this.sendRequest_(n,i,function(i){t.log_(n+" response",i),delete t.outstandingPuts_[e],t.outstandingPutCount_--,0===t.outstandingPutCount_&&(t.outstandingPuts_=[]),r&&r(i.s,i.d)})}},{key:"reportStats",value:function(e){if(this.connected_){var t={c:e};this.log_("reportStats",t),this.sendRequest_("s",t)}}},{key:"onDataMessage_",value:function(e){if("r"in e){this.log_("from server: "+(0,o.default)(e));var t=e.r,n=this.requestCBHash_[t];n&&(delete this.requestCBHash_[t],n(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}},{key:"onDataPush_",value:function(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1):"m"===e?this.onDataUpdate_(t.p,t.d,!0):"c"===e?this.onListenRevoked_(t.p,t.q,t.d):"ac"===e?this.onAuthRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):b.error("Unrecognized action received from server: "+(0,o.default)(e)+"\nAre you using the latest client?")}},{key:"onReady_",value:function(e){
this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=Date.now(),this.handleTimestamp_(e),this.restoreState_(),this.onConnectStatus_(!0)}},{key:"scheduleConnect_",value:function(e){b.assert(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_||0===this.establishConnectionTimer_?(this.log_("Schedule connection establishment, clearing previous scheduling before"),global.clearTimeout(this.establishConnectionTimer_)):this.log_("Schedule connection establishment");var t=this;this.establishConnectionTimer_=global.setTimeout(function(){t.establishConnectionTimer_=null,t.establishConnection_()},Math.floor(e))}},{key:"onVisible_",value:function(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=S,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}},{key:"onOnline_",value:function(e){e?(this.log_("Browser went online. Reconnecting."),this.reconnectDelay_=S,this.shouldReconnect_=!0,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection; don't reconnect."),this.shouldReconnect_=!1,this.realtime_&&this.realtime_.close())}},{key:"onRealtimeDisconnect_",value:function(){if(this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.shouldReconnect_){if(this.visible_){if(this.lastConnectionEstablishedTime_){var e=Date.now()-this.lastConnectionEstablishedTime_;e>D&&(this.reconnectDelay_=S),this.lastConnectionEstablishedTime_=null}}else this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=Date.now();var t=Date.now()-this.lastConnectionAttemptTime_,n=Math.max(0,this.reconnectDelay_-t);n=Math.random()*n,this.log_("Trying to reconnect in "+n+"ms"),this.scheduleConnect_(n),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,this.reconnectDelay_*A)}else for(var i in this.requestCBHash_)delete this.requestCBHash_[i];this.onConnectStatus_(!1)}},{key:"establishConnection_",value:function(){if(this.shouldReconnect_){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=Date.now(),this.lastConnectionEstablishedTime_=null;var e=E.bind(this.onDataMessage_,this),t=E.bind(this.onReady_,this),n=E.bind(this.onRealtimeDisconnect_,this),i=this.id+":"+O++,r=this;this.realtime_=new y.default(i,this.repoInfo_,e,t,n,function(e){b.warn(e+" ("+r.repoInfo_.toString()+")"),r.shouldReconnect_=!1}),this.log_("New connection set")}}},{key:"interrupt",value:function(){this.shouldReconnect_=!1,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(global.clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}},{key:"resume",value:function(){this.shouldReconnect_=!0,this.reconnectDelay_=S,this.connected_||this.scheduleConnect_(0)}},{key:"handleTimestamp_",value:function(e){var t=e-Date.now();this.onServerInfoUpdate_({serverTimeOffset:t})}},{key:"cancelSentTransactions_",value:function(){for(var e,t=0;t<this.outstandingPuts_.length;t++)e=this.outstandingPuts_[t],e&&"h"in e.request&&e.queued&&(e.onComplete&&e.onComplete("disconnect"),delete this.outstandingPuts_[t],this.outstandingPutCount_--);0===this.outstandingPutCount_&&(this.outstandingPuts_=[])}},{key:"onListenRevoked_",value:function(e,t,n){var i;i=t?(0,C.map)(t,function(e){return b.ObjectToUniqueKey(e)}).join("$"):"{}";var r;r=n?n:"permission_denied";var a=this.removeListen_(e,i);a&&a.onComplete&&a.onComplete(r)}},{key:"removeListen_",value:function(e,t){var n=new _.default(e).toString();t||(t="{}");var i=this.listens_[n][t];return delete this.listens_[n][t],i}},{key:"onAuthRevoked_",value:function(e,t){var n=this.credential_;delete this.credential_,n&&n.cancelCallback&&n.cancelCallback(e,t),this.onAuthStatus_(!1)}},{key:"onSecurityDebugPacket_",value:function(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&"undefined"!=typeof console}},{key:"restoreState_",value:function(){this.tryAuth();for(var e in this.listens_)for(var t in this.listens_[e]){var n=this.listens_[e][t];this.sendListen_(e,t,n.queries,n.onComplete)}for(var i=0;i<this.outstandingPuts_.length;i++)this.outstandingPuts_[i]&&this.sendPut_(i);for(;this.onDisconnectRequestQueue_.length;){var r=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(r.action,r.pathString,r.data,r.onComplete)}}}]),e}();t.default=T,e.exports=t.default},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(6),o=r(a),s=n(1),u=r(s),l=n(2),c=r(l),d=n(37),h=i(d),f=n(56),v=r(f),p=n(36),_=r(p),g=n(30),y=r(g),m=n(54),b=r(m),k=n(53),C=r(k),w=n(33),E=r(w),S=n(34),N=r(S),P=n(8),A=r(P),D=n(62),R=i(D),O=n(17),T=n(3),I=n(4),M=n(7),W=n(5),x=i(W),L=n(13),j=i(L),V=n(12),U=n(29),F=r(U),q=n(22),Q=r(q),H=n(19),B={RUN:1,SENT:2,COMPLETED:3,SENT_NEEDS_ABORT:4,NEEDS_ABORT:5},K=25,G=function(){function e(t){(0,u.default)(this,e),this.repoInfo_=t,this.stats_=h.getCollection(t),this.connection_=new y.default(this.repoInfo_,(0,M.bind)(this.onDataUpdate_,this),(0,M.bind)(this.onConnectStatus_,this),(0,M.bind)(this.onAuthStatus_,this),(0,M.bind)(this.onServerInfoUpdate_,this),(0,M.bind)(this.getServerDataHashForPath_,this)),this.authCallbacks_=[],this.statsReporter_=h.getOrCreateReporter(t,(0,M.bind)(function(){return new v.default(this.stats_,this.connection_)},this)),this.transactions_init_&&this.transactions_init_(),this.persistor_=t.options.persist?{key:"cache:"+t.host,storage:V.PersistentStorage}:void 0,this.data_=new b.default(this.persistor_?(0,O.NodeFromJSON)(this.persistor_.storage.get(this.persistor_.key)):void 0),this.viewManager_=new C.default(this.connection_,this.data_.visibleData),this.infoData_=new E.default,this.infoViewManager_=new C.default(null,this.infoData_),this.updateInfo_("connected",!1),this.updateInfo_("authenticated",!1),this.onDisconnect_=new N.default,this.dataUpdateCount=0,this.log_("New Repo: "+t)}return(0,c.default)(e,[{key:"persist",value:function(){this.persistor_&&this.persistor_.storage.set(this.persistor_.key,this.data_.visibleData.rootNode_.val("raw"))}},{key:"toString",value:function(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}},{key:"protocol",value:function(){return this.repoInfo_.secure?"https://":"http://"}},{key:"name",value:function(){return this.repoInfo_.namespace}},{key:"host",value:function(){return this.repoInfo_.host}},{key:"internalHostUrl",value:function(){return this.repoInfo_.needsQueryParam()?this.protocol()+this.repoInfo_.internalHost:null}},{key:"serverTime",value:function(){var e=this.infoData_.getNode(new A.default(".info/serverTimeOffset")),t=e.val()||0;return Date.now()+t}},{key:"generateServerValues",value:function(){return R.generateWithValues({timestamp:this.serverTime()})}},{key:"onDataUpdate_",value:function(e,t,n){this.dataUpdateCount++,this.interceptServerDataCallback_&&(t=this.interceptServerDataCallback_(e,t));var i,r,a=[];e.length>=9&&e.lastIndexOf(".priority")===e.length-9?(i=new A.default(e.substring(0,e.length-9)),r=this.data_.serverData.getNode(i).updatePriority(t),a.push(i)):n?(i=new A.default(e),r=this.data_.serverData.getNode(i),x.forEach(t,function(e,t){var n=new A.default(t);".priority"===t?r=r.updatePriority(e):(r=r.updateChild(n,(0,O.NodeFromJSON)(e)),a.push(i.child(t)))})):(i=new A.default(e),r=(0,O.NodeFromJSON)(t),a.push(i));for(var o,s=this.viewManager_.pruneUpdateNode(i,r,this.data_.mergedData,n?t:null),u=!1,l=0;l<s.length;++l)o=s[l],u=this.data_.updateServerData(o.path,o.node)||u;u&&(i=this.rerunTransactionsAndUpdateVisibleData_(i)),this.viewManager_.raiseEventsForChange(i,a)}},{key:"interceptServerData_",value:function(e){this.interceptServerDataCallback_=e}},{key:"onConnectStatus_",value:function(e){this.updateInfo_("connected",e),e===!1&&this.runOnDisconnectEvents_()}},{key:"onServerInfoUpdate_",value:function(e){var t=this;(0,T.each)(e,function(e,n){t.updateInfo_(n,e)})}},{key:"getServerDataHashForPath_",value:function(e){var t=new A.default(e);return this.data_.serverData.getNode(t).hash()}},{key:"onAuthStatus_",value:function(e){this.updateInfo_("authenticated",e)}},{key:"updateInfo_",value:function(e,t){var n=new A.default("/.info/"+e);this.infoData_.updateSnapshot(n,(0,O.NodeFromJSON)(t)),this.infoViewManager_.raiseEventsForChange(n,[n])}},{key:"auth",value:function(e,t,n){var i=this;this.connection_.auth(e,function(e,n){i.callOnCompleteCallback(t,e,n)},function(e,t){if((0,T.warn)("auth() was canceled: "+t),n){var i=new Error(t);i.code=e.toUpperCase(),n(i)}})}},{key:"unauth",value:function(e){var t=this;this.connection_.unauth(function(n,i){t.callOnCompleteCallback(e,n,i)})}},{key:"setWithPriority",value:function(e,t,n,i){this.log_("set",{path:e.toString(),value:t,priority:n});var r=this.generateServerValues(),a=(0,O.NodeFromJSON)(t,n),o=R.resolveDeferredValueSnapshot(a,r),s=this.viewManager_.pruneUpdateNode(e,o,this.data_.mergedData,null),u=this.data_.set(e,s),l=this;this.connection_.put(e.toString(),a.val("export"),function(t,n){var r="ok"===t;r||(0,T.warn)("set at "+e+" failed: "+t),l.data_.setCompleted(u),l.data_.mergeServerAndPendingData(e);var a=l.rerunTransactionsAndUpdateVisibleData_(e);l.viewManager_.raiseEventsForChange(a,[]),l.callOnCompleteCallback(i,t,n)});var c=this.abortTransactions_(e);this.rerunTransactionsAndUpdateVisibleData_(c),this.viewManager_.raiseEventsForChange(c,[e])}},{key:"update",value:function(e,t,n){this.log_("update",{path:e.toString(),value:t});var i=this.data_.visibleData.getNode(e),r=!0,a=[],o=this.generateServerValues(),s=[];for(var u in t){r=!1;var l=(0,O.NodeFromJSON)(t[u]),c=R.resolveDeferredValueSnapshot(l,o);i=i.updateImmediateChild(u,c);var d=e.child(u);a.push(d);var h=this.viewManager_.pruneUpdateNode(d,c,this.data_.mergedData,null);s=s.concat(this.data_.set(e,h))}if(r)return(0,T.log)("update() called with empty data. Don't do anything."),void this.callOnCompleteCallback(n,"ok");var f=this;this.connection_.merge(e.toString(),t,function(t,i){var r="ok"===t;r||(0,T.warn)("update at "+e+" failed: "+t),f.data_.setCompleted(s),f.data_.mergeServerAndPendingData(e);var a=f.rerunTransactionsAndUpdateVisibleData_(e);f.viewManager_.raiseEventsForChange(a,[]),f.callOnCompleteCallback(n,t,i)});var v=this.abortTransactions_(e);this.rerunTransactionsAndUpdateVisibleData_(v),f.viewManager_.raiseEventsForChange(v,a)}},{key:"setPriority",value:function(e,t,n){this.log_("setPriority",{path:e.toString(),priority:t});var i=this.generateServerValues(),r=R.resolveDeferredValue(t,i),a=this.data_.mergedData.getNode(e).updatePriority(r),o=this.viewManager_.pruneUpdateNode(e,a,this.data_.mergedData,null),s=this.data_.set(e,o),u=this;this.connection_.put(e.toString()+"/.priority",t,function(t,i){"permission_denied"===t&&(0,T.warn)("setPriority at "+e+" failed: "+t),u.data_.setCompleted(s),u.data_.mergeServerAndPendingData(e);var r=u.rerunTransactionsAndUpdateVisibleData_(e);u.viewManager_.raiseEventsForChange(r,[]),u.callOnCompleteCallback(n,t,i)});var l=this.rerunTransactionsAndUpdateVisibleData_(e);u.viewManager_.raiseEventsForChange(l,[])}},{key:"runOnDisconnectEvents_",value:function(){this.log_("onDisconnectEvents");var e=this,t=[],n=this.generateServerValues(),i=R.resolveDeferredValueTree(this.onDisconnect_,n);i.forEachTree(new A.default(""),function(n,i){var r=e.viewManager_.pruneUpdateNode(n,i,e.data_.mergedData,null);t.push.apply(t,e.data_.set(n,r));var a=e.abortTransactions_(n);e.rerunTransactionsAndUpdateVisibleData_(a),e.viewManager_.raiseEventsForChange(a,[n])}),this.data_.setCompleted(t),this.onDisconnect_=new N.default}},{key:"onDisconnectCancel",value:function(e,t){var n=this;this.connection_.onDisconnectCancel(e.toString(),function(i,r){"ok"===i&&n.onDisconnect_.forget(e),n.callOnCompleteCallback(t,i,r)})}},{key:"onDisconnectSet",value:function(e,t,n){var i=this,r=(0,O.NodeFromJSON)(t);this.connection_.onDisconnectPut(e.toString(),r.val("export"),function(t,a){"ok"===t&&i.onDisconnect_.remember(e,r),i.callOnCompleteCallback(n,t,a)})}},{key:"onDisconnectSetWithPriority",value:function(e,t,n,i){var r=this,a=(0,O.NodeFromJSON)(t,n);this.connection_.onDisconnectPut(e.toString(),a.val("export"),function(t,n){"ok"===t&&r.onDisconnect_.remember(e,a),r.callOnCompleteCallback(i,t,n)})}},{key:"onDisconnectUpdate",value:function(e,t,n){var i=!0;for(var r in t)i=!1;if(i)return(0,T.log)("onDisconnect().update() called with empty data. Don't do anything."),void this.callOnCompleteCallback(n,"ok");var a=this;this.connection_.onDisconnectMerge(e.toString(),t,function(i,r){if("ok"===i)for(var o in t){var s=(0,O.NodeFromJSON)(t[o]);a.onDisconnect_.remember(e.child(o),s)}a.callOnCompleteCallback(n,i,r)})}},{key:"addEventCallbackForQuery",value:function(e,t,n,i,r){".info"===e.path.getFront()?this.infoViewManager_.addEventCallbackForQuery(e,t,n,i,r):this.viewManager_.addEventCallbackForQuery(e,t,n,i,r)}},{key:"removeEventCallbackForQuery",value:function(e,t,n,i){if(".info"===e.path.getFront())this.infoViewManager_.removeEventCallbackForQuery(e,t,n,i);else{var r=this.viewManager_.removeEventCallbackForQuery(e,t,n,i);if(null!==r){var a=this.data_.forgetPath(e.path,r);a&&((0,T.assert)(this.data_.visibleData.rootNode_===this.viewManager_.oldDataNode_,"We should have raised any outstanding events by now. Else, we'll blow them away."),this.data_.visibleData.updateSnapshot(e.path,this.data_.mergedData.getNode(e.path)),this.viewManager_.oldDataNode_=this.data_.visibleData.rootNode_)}}}},{key:"interrupt",value:function(){this.connection_.interrupt()}},{key:"resume",value:function(){this.connection_.resume()}},{key:"shouldBeOnline",value:function(){return this.connection_.shouldReconnect_}},{key:"stats",value:function e(t){if("undefined"!=typeof console){var e;t?(this.statsListener_||(this.statsListener_=new _.default(this.stats_)),e=this.statsListener_.get()):e=this.stats_.get();var n=j.reduce(x.getKeys(e),function(e,t,n,i){return Math.max(t.length,e)},0);for(var i in e)for(var r=(e[i],i.length);r<n+2;r++)i+=" "}}},{key:"statsIncrementCounter",value:function(e){this.stats_.incrementCounter(e),this.statsReporter_.includeStat(e)}},{key:"log_",value:function(){(0,T.log)("r:"+this.connection_.id+":",arguments)}},{key:"callOnCompleteCallback",value:function(e,t,n){e&&(0,M.exceptionGuard)(function(){if("ok"===t)e(null,n);else{var i=t||"ERROR",r=i,a=(0,T.getFriendlyErrorReason)(t)||n,o=void 0;a&&(r+=": "+a),o=new Error(r),o.code=i,e(o)}})}},{key:"transactions_init_",value:function(){this.transactionQueueTree_=new Q.default,this.transactionResultData_=new E.default}},{key:"startTransaction",value:function(e,t,n,i){this.log_("transaction on "+e);var r=this,a=!1,s=function(){if(!a){a=!0,r.pruneResultData_();var t=c.update(r.transactionResultData_.getNode(e).val("raw"));if((0,I.isDef)(t)){(0,H.validateWebcomData)("transaction failed: Data returned ",t),c.status=B.RUN;var n=r.transactionQueueTree_.subTree(e),i=n.getValue()||[];i.push(c),n.setValue(i);var s;if("object"===("undefined"==typeof t?"undefined":(0,o.default)(t))&&null!==t&&(0,W.contains)(t,".priority"))s=t[".priority"];else{var u=r.data_.mergedData.getNode(e);s=u.getPriority()}var l=r.generateServerValues(),d=(0,O.NodeFromJSON)(t,s),h=R.resolveDeferredValueSnapshot(d,l);r.transactionResultData_.updateSnapshot(e,h),c.applyLocally&&(r.data_.visibleData.updateSnapshot(e,h),r.viewManager_.raiseEventsForChange(e,[e])),r.sendReadyTransactions_()}else if(c.unwatcher(),c.onComplete){var f=r.getSnapshot_(e);c.onComplete(null,!1,f)}}},u=new Webcom(this,e),l=function(){u.off("value",s)},c={path:e,update:t,onComplete:n,status:null,order:(0,T.LUIDGenerator)(),applyLocally:i,retryCount:0,unwatcher:l,abortReason:null};u.on("value",s)}},{key:"sendReadyTransactions_",value:function(e){var t=e||this.transactionQueueTree_;if(e||this.pruneCompletedTransactionsBelowNode_(t),null!==t.getValue()){var n=this.buildTransactionQueue_(t);(0,T.assert)(n.length>0);var i=j.every(n,function(e){return e.status===B.RUN});i&&this.sendTransactionQueue_(t.path(),n)}else if(t.hasChildren()){var r=this;t.forEachChild(function(e){r.sendReadyTransactions_(e)})}}},{key:"sendTransactionQueue_",value:function(e,t){for(var n=0;n<t.length;n++)(0,T.assert)(t[n].status===B.RUN,"tryToSendTransactionQueue_: items in queue should all be run."),t[n].status=B.SENT,t[n].retryCount++;var i=this.data_.mergedData.getNode(e).hash();this.data_.mergedData.updateSnapshot(e,this.data_.visibleData.getNode(e));var r=this.transactionResultData_.getNode(e).val("export"),a=(0,T.LUIDGenerator)(),o=this.pathsWithLocallyAppliedChanges(t);for(n=0;n<o.length;n++)this.data_.pendingPuts.subTree(o[n]).setValue(a);var s=this;this.connection_.put(e.toString(),r,function(i){for(s.log_("transaction put response",{path:e.toString(),status:i}),n=0;n<o.length;n++){var r=s.data_.pendingPuts.subTree(o[n]),u=r.getValue();(0,T.assert)(null!==u,"sendTransactionQueue_: pendingPut should not be null."),u===a&&(r.setValue(null),s.data_.mergedData.updateSnapshot(o[n],s.data_.serverData.getNode(o[n])))}if("ok"===i){var l=[];for(n=0;n<t.length;n++){if(t[n].status=B.COMPLETED,t[n].onComplete){var c=s.getSnapshot_(t[n].path);l.push((0,M.bind)(t[n].onComplete,null,null,!0,c))}t[n].unwatcher()}for(s.pruneCompletedTransactionsBelowNode_(s.transactionQueueTree_.subTree(e)),s.sendReadyTransactions_(),n=0;n<l.length;n++)(0,M.exceptionGuard)(l[n])}else{if("hash_differs"===i)for(n=0;n<t.length;n++)t[n].status===B.SENT_NEEDS_ABORT?t[n].status=B.NEEDS_ABORT:t[n].status=B.RUN;else for((0,T.warn)("transaction at "+e+" failed: "+i),n=0;n<t.length;n++)t[n].status=B.NEEDS_ABORT,t[n].abortReason=i;var d=s.rerunTransactionsAndUpdateVisibleData_(e);s.viewManager_.raiseEventsForChange(d,[e])}},i)}},{key:"pathsWithLocallyAppliedChanges",value:function(e){for(var t={},n=0;n<e.length;n++)e[n].applyLocally&&(t[e[n].path.toString()]=e[n].path);var i=[];for(var r in t)i.push(t[r]);return i}},{key:"rerunTransactionsAndUpdateVisibleData_",value:function(e){var t=this.getAncestorTransactionNode_(e),n=t.path(),i=this.buildTransactionQueue_(t);return this.rerunTransactionQueue_(i,n),n}},{key:"rerunTransactionQueue_",value:function(e,t){if(this.data_.visibleData.updateSnapshot(t,this.data_.mergedData.getNode(t)),this.transactionResultData_.updateSnapshot(t,this.data_.mergedData.getNode(t)),0!==e.length){for(var n=this.data_.visibleData.getNode(t),i=n,r=[],a=0;a<e.length;a++){var s,u=A.default.RelativePath(t,e[a].path),l=!1;if((0,T.assert)(null!==u,"rerunTransactionsUnderNode_: relativePath should not be null."),e[a].status===B.NEEDS_ABORT)l=!0,s=e[a].abortReason;else if(e[a].status===B.RUN)if(e[a].retryCount>=K)l=!0,s="maxretry";else{var c=n.getChild(u),d=e[a].update(c.val("raw"));if((0,I.isDef)(d)){(0,H.validateWebcomData)("transaction failed: Data returned ",d);var h=(0,O.NodeFromJSON)(d),f="object"===("undefined"==typeof d?"undefined":(0,o.default)(d))&&null!=d&&(0,W.contains)(d,".priority");f||(h=h.updatePriority(c.getPriority())),n=n.updateChild(u,h),e[a].applyLocally&&(i=i.updateChild(u,h))}else l=!0,s="nodata"}if(l&&(e[a].status=B.COMPLETED,function(e){global.setTimeout(e,Math.floor(0))}(e[a].unwatcher),e[a].onComplete)){var v=new Webcom(this,e[a].path),p=new F.default(n.getChild(u),v);"nodata"===s?r.push((0,M.bind)(e[a].onComplete,null,null,!1,p)):r.push((0,M.bind)(e[a].onComplete,null,new Error(s),!1,p))}}for(this.transactionResultData_.updateSnapshot(t,n),this.data_.visibleData.updateSnapshot(t,i),this.pruneCompletedTransactionsBelowNode_(this.transactionQueueTree_),a=0;a<r.length;a++)(0,M.exceptionGuard)(r[a]);this.sendReadyTransactions_()}}},{key:"getAncestorTransactionNode_",value:function(e){for(var t,n=this.transactionQueueTree_;null!==(t=e.getFront())&&null===n.getValue();)n=n.subTree(t),e=e.popFront();return n}},{key:"buildTransactionQueue_",value:function(e){var t=[];return this.aggregateTransactionQueuesForNode_(e,t),t.sort(function(e,t){return e.order-t.order}),t}},{key:"aggregateTransactionQueuesForNode_",value:function(e,t){var n=e.getValue();if(null!==n)for(var i=0;i<n.length;i++)t.push(n[i]);var r=this;e.forEachChild(function(e){r.aggregateTransactionQueuesForNode_(e,t)})}},{key:"pruneCompletedTransactionsBelowNode_",value:function(e){var t=e.getValue();if(t){for(var n=0,i=0;i<t.length;i++)t[i].status!==B.COMPLETED&&(t[n]=t[i],n++);t.length=n,e.setValue(t.length>0?t:null)}var r=this;e.forEachChild(function(e){r.pruneCompletedTransactionsBelowNode_(e)})}},{key:"abortTransactions_",value:function(e){var t=this.getAncestorTransactionNode_(e).path(),n=this.transactionQueueTree_.subTree(e),i=this;return n.forEachAncestor(function(e){i.abortTransactionsOnNode_(e)}),this.abortTransactionsOnNode_(n),n.forEachDescendant(function(e){i.abortTransactionsOnNode_(e)}),t}},{key:"abortTransactionsOnNode_",value:function(e){var t=e.getValue();if(null!==t){for(var n=[],i=-1,r=0;r<t.length;r++)if(t[r].status===B.SENT_NEEDS_ABORT);else if(t[r].status===B.SENT)(0,T.assert)(i===r-1,"All SENT items should be at beginning of queue."),i=r,t[r].status=B.SENT_NEEDS_ABORT,t[r].abortReason="set";else if((0,T.assert)(t[r].status===B.RUN),t[r].unwatcher(),t[r].onComplete){var a=null;n.push((0,M.bind)(t[r].onComplete,null,new Error("set"),!1,a))}for(i===-1?e.setValue(null):t.length=i+1,r=0;r<n.length;r++)(0,M.exceptionGuard)(n[r])}}},{key:"getSnapshot_",value:function(e){var t=new Webcom(this,e);return new F.default(this.transactionResultData_.getNode(e),t)}},{key:"pruneResultData_",value:function(){this.transactionResultData_.rootNode_=this.pruneResultDataHelper_(this.transactionResultData_.rootNode_,this.data_.mergedData.rootNode_,this.transactionQueueTree_)}},{key:"pruneResultDataHelper_",value:function(e,t,n){var i=this;if(n.isEmpty())return t;if(null!=n.getValue())return e;var r=t;return n.forEachChild(function(n){var a=n.name(),o=new A.default(a),s=i.pruneResultDataHelper_(e.getChild(o),t.getChild(o),n);r=r.updateImmediateChild(a,s)}),r}}]),e}();t.default=G,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(12),l=function(){function e(t,n,i,r){(0,a.default)(this,e),this.host=t.toLowerCase(),t.indexOf("/")>0?this.domain=this.host.replace(/\/.*$/,""):this.domain=this.host.substr(this.host.indexOf(".")+1),this.secure=n,this.namespace=i,this.webSocketOnly=r,this.internalHost=u.PersistentStorage.get("host:"+t)||this.host,this.options={}}return(0,s.default)(e,[{key:"needsQueryParam",value:function(){return this.host!==this.internalHost}},{key:"isCacheableHost",value:function(){return"s-"===this.internalHost.substr(0,2)}},{key:"updateHost",value:function(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost()&&u.PersistentStorage.set("host:"+this.host,this.internalHost))}},{key:"toString",value:function(){return(this.secure?"https://":"http://")+this.host}}]),e}();t.default=l,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(10),a=i(r),o=n(1),s=i(o),u=n(2),l=i(u),c=n(28),d=i(c),h=n(17),f=function(){function e(t){(0,s.default)(this,e),this.rootNode_=t||h.EMPTY_NODE}return(0,l.default)(e,[{key:"getNode",value:function(e){return this.rootNode_.getChild(e)}},{key:"updateSnapshot",value:function(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}},{key:"toString",value:function(){return(0,d.default)(e.prototype.__proto__||(0,a.default)(e.prototype),"toString",this).call(this)}}]),e}();t.default=f,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(8),l=i(u),c=n(38),d=i(c),h=function(){function e(){(0,a.default)(this,e),this.value_=null,this.children_=null}return(0,s.default)(e,[{key:"find",value:function(e){if(null!=this.value_)return this.value_.getChild(e);if(e.isEmpty()||null==this.children_)return null;var t=e.getFront();if(e=e.popFront(),this.children_.contains(t)){var n=this.children_.get(t);return n.find(e)}return null}},{key:"remember",value:function(t,n){if(t.isEmpty())this.value_=n,this.children_=null;else if(null!==this.value_)this.value_=this.value_.updateChild(t,n);else{null==this.children_&&(this.children_=new d.default);var i=t.getFront();this.children_.contains(i)||this.children_.add(i,new e);var r=this.children_.get(i);t=t.popFront(),r.remember(t,n)}}},{key:"forget",value:function(e){if(e.isEmpty())return this.value_=null,this.children_=null,!0;if(null!==this.value_){if(this.value_.isLeafNode())return!1;var t=this.value_;this.value_=null;var n=this;return t.forEachChild(function(e,t){n.remember(new l.default(e),t)}),this.forget(e)}if(null!==this.children_){var i=e.getFront();if(e=e.popFront(),this.children_.contains(i)){var r=this.children_.get(i).forget(e);r&&this.children_.remove(i)}return!!this.children_.isEmpty()&&(this.children_=null,!0)}return!0}},{key:"forEachTree",value:function(e,t){null!==this.value_?t(e,this.value_):this.forEachChild(function(n,i){var r=new l.default(e.toString()+"/"+n);i.forEachTree(r,t)})}},{key:"forEachChild",value:function(e){null!==this.children_&&this.children_.each(function(t,n){e(t,n)})}}]),e}();t.default=h,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SortedChildrenNode=void 0;var r=n(10),a=i(r),o=n(1),s=i(o),u=n(2),l=i(u),c=n(16),d=i(c),h=n(15),f=i(h),v=n(26),p=i(v),_=n(20),g=i(_),y=n(3),m=function(e,t){return(0,y.priorityCompare)(e.priority,t.priority)||(0,y.nameCompare)(e.name,t.name)},b=t.SortedChildrenNode=function(e){function t(e,n,i){(0,s.default)(this,t);var r=(0,d.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e,i));return null===n&&(n=new p.default(m),e.inorderTraversal(function(e,t){n=n.insert({name:e,priority:t.getPriority()},t)})),r.sortedChildren_=n,r}return(0,f.default)(t,e),(0,l.default)(t,[{key:"updateImmediateChild",value:function(e,n){var i=this.getImmediateChild(e),r=this.children_,a=this.sortedChildren_;return null!==i&&(r=r.remove(e),a=a.remove({name:e,priority:i.getPriority()})),n&&n.isEmpty()&&(n=null),null!==n&&(r=r.insert(e,n),a=a.insert({name:e,priority:n.getPriority()},n)),new t(r,a,this.getPriority())}},{key:"getPredecessorChildName",value:function(e,t){var n=this.sortedChildren_.getPredecessorKey({name:e,priority:t.getPriority()});return n?n.name:null}},{key:"forEachChild",value:function(e){return this.sortedChildren_.inorderTraversal(function(t,n){return e(t.name,n)})}},{key:"forEachChildReverse",value:function(e){return this.sortedChildren_.reverseTraversal(function(t,n){return e(t.name,n)})}},{key:"getIterator",value:function(){return this.sortedChildren_.getIterator(function(e,t){return{key:e.name,value:t}})}},{key:"getFirstChildName",value:function(){return this.sortedChildren_.isEmpty()?null:this.sortedChildren_.minKey().name}},{key:"getLastChildName",value:function(){return this.sortedChildren_.isEmpty()?null:this.sortedChildren_.maxKey().name}}]),t}(g.default);t.default=b},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(5),l=function(){function e(t){(0,a.default)(this,e),this.collection_=t,this.last_=null}return(0,s.default)(e,[{key:"get",value:function(){var e=this.collection_.get(),t=(0,u.clone)(e);if(this.last_)for(var n in this.last_)this.last_.hasOwnProperty(n)&&(t[n]=t[n]-this.last_[n]);return this.last_=e,t}}]),e}();t.default=l,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e){var t=e.toString();return u[t]||(u[t]=new s.default),u[t]}function a(e,t){var n=e.toString();return l[n]||(l[n]=t()),l[n]}Object.defineProperty(t,"__esModule",{value:!0}),t.getCollection=r,t.getOrCreateReporter=a;var o=n(55),s=i(o),u={},l={};t.default={getCollection:r,getOrCreateReporter:a}},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1),o=r(a),s=n(2),u=r(s),l=n(5),c=i(l),d=function(){function e(){(0,o.default)(this,e),this.set={}}return(0,u.default)(e,[{key:"add",value:function(e,t){this.set[e]=null===t||t}},{key:"contains",value:function(e){return c.contains(this.set,e)}},{key:"get",value:function(e){return this.contains(e)?this.set[e]:void 0}},{key:"remove",value:function(e){delete this.set[e]}},{key:"clear",value:function(){this.set={}}},{key:"isEmpty",value:function(){return c.isEmpty(this.set)}},{key:"count",value:function(){return c.getCount(this.set)}},{key:"each",value:function(e){c.forEach(this.set,function(t,n){e(n,t)})}},{key:"keys",value:function e(){var e=[];return c.forEach(this.set,function(t,n){e.push(n)}),e}}]),e}();t.default=d,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(3),l=n(4),c=n(7),d=n(13),h=function(){function e(t){(0,a.default)(this,e),(0,u.assert)((0,l.isArray)(t)&&t.length>0,"Requires a non-empty array"),this.allowedEvents_=t,this.listeners_={}}return(0,s.default)(e,[{key:"trigger",value:function(e){for(var t=this.listeners_[e]||[],n=0;n<t.length;n++)t[n].callback.apply(t[n].context,Array.prototype.slice.call(arguments,1))}},{key:"on",value:function(e,t,n){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:n});var i=this.getInitialEvent(e);i&&t.apply(n,i)}},{key:"off",value:function(e,t,n){this.validateEventType_(e);for(var i=this.listeners_[e]||[],r=0;r<i.length;r++)if(i[r].callback===t&&(!n||n===i[r].context))return void i.splice(r,1)}},{key:"validateEventType_",value:function(e){(0,u.assert)((0,d.find)(this.allowedEvents_,function(t){return t===e}),"Unknown event: "+e)}},{key:"getInitialEvent",value:function(){(0,c.abstractMethod)()}}]),e}();t.default=h,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(23),l=i(u),c=n(5),d=n(17),h=n(4),f=function(){function e(t,n){(0,a.default)(this,e),this.diffMaskTree_=t,this.onDiffCallback_=n}return(0,s.default)(e,[{key:"propagateDiffUpward_",value:function(e,t,n,i,r){for(;null!==e.parent();){var a=t.getChild(e),o=n.getChild(e),s=e.parent();if(!this.diffMaskTree_||this.diffMaskTree_.subTree(s).getValue()){var u,c=n.getChild(s),d=[],h=e.getBack();a.isEmpty()?(u=c.getPredecessorChildName(h,o),d.push(new l.default("child_added",o,h,u))):o.isEmpty()?d.push(new l.default("child_removed",a,h)):(u=c.getPredecessorChildName(h,o),r&&d.push(new l.default("child_moved",o,h,u)),i&&d.push(new l.default("child_changed",o,h,u))),this.onDiffCallback_(s,c,d)}r&&(r=!1,i=!0),e=s}}},{key:"diffRecursive_",value:function(e,t,n){var i,r=[];return t===n?i=!1:t.isLeafNode()&&n.isLeafNode()?i=t.getValue()!==n.getValue():t.isLeafNode()?(this.diffChildrenRecursive_(e,d.EMPTY_NODE,n,r),i=!0):n.isLeafNode()?(this.diffChildrenRecursive_(e,t,d.EMPTY_NODE,r),i=!0):i=this.diffChildrenRecursive_(e,t,n,r),i?this.onDiffCallback_(e,n,r):t.getPriority()!==n.getPriority()&&this.onDiffCallback_(e,n,null),i}},{key:"diffChildrenRecursive_",value:function(e,t,n,i){var r,a,o,s,u,f,v,p=!1,_=!this.diffMaskTree_||!this.diffMaskTree_.subTree(e).isEmpty(),g=[],y=[],m=[],b=[],k={},C={};
for(r=t.getIterator(),o=r.getNext(),a=n.getIterator(),s=a.getNext();null!==o||null!==s;){var w=this.compareChildren_(o,s);if(w<0){var E=(0,c.get)(k,o.key);(0,h.isDef)(E)?(m.push({from:o,to:g[E]}),g[E]=null):(C[o.key]=y.length,y.push(o)),p=!0,o=r.getNext()}else if(w>0){var S=(0,c.get)(C,s.key);(0,h.isDef)(S)?(m.push({from:y[S],to:s}),y[S]=null):(k[s.key]=g.length,g.push(s)),p=!0,s=a.getNext()}else u=e.child(s.key),v=this.diffRecursive_(u,o.value,s.value),v&&(b.push(s),p=!0),o.value.getPriority()!==s.value.getPriority()&&(m.push({from:o,to:s}),p=!0),o=r.getNext(),s=a.getNext();if(!_&&p)return!0}for(var N,P=0;P<y.length;P++)N=y[P],N&&(u=e.child(N.key),this.diffRecursive_(u,N.value,d.EMPTY_NODE),i.push(new l.default("child_removed",N.value,N.key)));for(P=0;P<g.length;P++){var A=g[P];A&&(u=e.child(A.key),f=n.getPredecessorChildName(A.key,A.value),this.diffRecursive_(u,d.EMPTY_NODE,A.value),i.push(new l.default("child_added",A.value,A.key,f)))}for(P=0;P<m.length;P++){var D=m[P].from,R=m[P].to;u=e.child(R.key),f=n.getPredecessorChildName(R.key,R.value),i.push(new l.default("child_moved",R.value,R.key,f)),v=this.diffRecursive_(u,D.value,R.value),v&&b.push(R)}for(P=0;P<b.length;P++){var O=b[P];f=n.getPredecessorChildName(O.key,O.value),i.push(new l.default("child_changed",O.value,O.key,f))}return p}},{key:"compareChildren_",value:function(e,t){return null===e?1:null===t?-1:e.key===t.key?0:(0,d.NAME_AND_PRIORITY_COMPARATOR)({name:e.key,priority:e.value.getPriority()},{name:t.key,priority:t.value.getPriority()})}}],[{key:"Diff",value:function(t,n,i,r,a){var o=t.getChild(i),s=n.getChild(i),u=new e(r,a),l=u.diffRecursive_(i,o,s),c=!o.isEmpty()&&!s.isEmpty()&&o.getPriority()!==s.getPriority();(l||c)&&u.propagateDiffUpward_(i,t,n,l,c)}}]),e}();t.default=f,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(23),l=i(u),c=n(65),d=i(c),h=n(29),f=i(h),v=n(3),p=n(7),_=function(){function e(t){(0,a.default)(this,e),this.query_=t,this.callbacks_=[],this.eventQueue_=new d.default}return(0,s.default)(e,[{key:"getQuery",value:function(){return this.query_}},{key:"addEventCallback",value:function(e,t,n,i){this.callbacks_.push({type:e,callback:t,cancel:n,context:i});var r=[],a=this.generateChangesForSnapshot(this.snapshotNode_);this.isComplete_&&a.push(new l.default("value",this.snapshotNode_));for(var o=0;o<a.length;o++)if(a[o].type===e){var s=new Webcom(this.query_.repo,this.query_.path);a[o].childName&&(s=s.child(a[o].childName)),r.push({callback:(0,p.bindCallback)(t,i),snapshot:new f.default(a[o].snapshotNode,s),prevName:a[o].prevName})}this.eventQueue_.queueEvents(r)}},{key:"removeEventCallback",value:function(e,t,n){for(var i,r=!1,a=this.callbacks_.length-1;a>=0&&(i=this.callbacks_[a],e&&i.type!==e||t&&i.callback!==t||n&&i.context!==n||(this.callbacks_.splice(a,1),r=!0,!e||!t));a--);return r}},{key:"hasCallbacks",value:function(){return this.callbacks_.length>0}},{key:"processChanges",value:function(e,t){t=this.processChanges_(e,t),null!==t&&this.queueEventsForChanges_(t)}},{key:"raiseCancelEvents",value:function(e){for(var t,n=0;n<this.callbacks_.length;n++)t=this.callbacks_[n],t.cancel&&(0,p.bindCallback)(t.cancel,t.context)(e)}},{key:"queueEventsForChanges_",value:function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n],r=i.type,a=new Webcom(this.query_.repo,this.query_.path);e[n].childName&&(a=a.child(e[n].childName));var o=new f.default(e[n].snapshotNode,a);"value"!==i.type||o.hasChildren()?"value"!==i.type&&(r+=" "+o.name()):r+="("+o.val()+")",(0,v.log)(this.query_.repo.connection_.id+": event:"+this.query_.path+":"+this.query_.queryIdentifier()+":"+r);for(var s,u=0;u<this.callbacks_.length;u++)s=this.callbacks_[u],e[n].type===s.type&&t.push({callback:(0,p.bindCallback)(s.callback,s.context),snapshot:o,prevName:i.prevName})}this.eventQueue_.queueEvents(t)}},{key:"raiseQueuedEvents",value:function(){this.eventQueue_.raiseQueuedEvents()}},{key:"generateChangesForSnapshot",value:function(e){var t=[];if(!e.isLeafNode()){var n=null;e.forEachChild(function(e,i){t.push(new l.default(l.default.CHILD_ADDED,i,e,n)),n=e})}return t}},{key:"isComplete",value:function(){return this.isComplete_}},{key:"markComplete",value:function(){this.isComplete_||(this.isComplete_=!0,this.queueEventsForChanges_([new l.default("value",this.snapshotNode_)]))}},{key:"processChanges_",value:function(){(0,p.abstractMethod)()}},{key:"getChildRelevance",value:function(){(0,p.abstractMethod)()}}]),e}();t.default=_,e.exports=t.default},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.onOpen=t.Client=void 0;var a=n(18),o=r(a),s=n(25),u=r(s),l=n(1),c=r(l),d=n(2),h=r(d),f=n(82),v=r(f),p=n(24),_=i(p),g=n(68),y=n(69),m=i(y),b=n(12),k=n(4),C=i(k),w=n(70),E=i(w),S=n(43),N=i(S),P=n(71),A=i(P),D=n(72),R=i(D),O=n(45),T=i(O),I=n(11),M=n(7),W=n(3),x=n(9),L=i(x),j="undefined"==typeof window?global:window,V=j.Webcom?j.Webcom.SDK_VERSION:"0.0.0",U=function(e){R.onOpen(e)},F=function(){return n(44)},q={facebook:{height:650,width:680},google:{height:460,width:490},github:{height:760,width:340},gitlab:{height:710,width:800},orange:{height:700,width:1e3},mobileconnectOFR:{height:540,width:700}},Q=function(e,t){var n=new v.default(e);return t&&(n=n.then(function(e){return t(null,e)},function(e){throw t(e,null),e})),n},H=function(){function e(t,n){function i(e,t,n){global.setTimeout(function(){e(t,n)},0)}function r(e,t,n){var r=!!t||"undefined"==typeof e.user;if(!r){var a=void 0,o=void 0;e.user&&e.user.webcomAuthToken&&(a=e.user.webcomAuthToken),n&&n.webcomAuthToken&&(o=n.webcomAuthToken),r=(a||o)&&a!==o}e.user=n||null,r&&i((0,M.bind)(e.cb,e.ctx),t,n)}(0,c.default)(this,e),this.mRef=t,this.mNamespace=t.repo.name();var a="undefined"!=typeof window&&"file:"===window.location.protocol&&!C.isPhantomJS()&&!C.isMobileCordovaInAppBrowser();if(a){var o="WebcomSimpleLogin(): Due to browser security restrictions, loading applications via `file://*` URLs will prevent popup-based authentication providers from working properly. When testing locally, you'll need to run a barebones webserver on your machine rather than loading your test files via `file://*`. The easiest way to run a barebones server on your local machine is to `cd` to the root directory of your code and run `python -m SimpleHTTPServer`, which will allow you to access your content via `http://127.0.0.1:8000/*`.";(0,W.warn)(o)}n&&_.setApiHost(n),this.mLoginStateChange=function(e,t){this.mRef.repo.authCallbacks_.forEach(function(n){return r(n,e,t)})}}return(0,h.default)(e,[{key:"registerAuthCallback",value:function(e,t){this.mRef.repo.authCallbacks_.push({cb:e,ctx:t})}},{key:"unregisterAuthCallback",value:function(e,t){for(var n=!1,i=this.mRef.repo.authCallbacks_,r=i.length-1;r>=0;r--){var a=i[r];if(!(e&&a.cb!==e||t&&a.ctx!==t)&&(i.splice(r,1),n=!0,e))break}return n}},{key:"setApiHost",value:function(e){_.setApiHost(e)}},{key:"resumeSession",value:function(){var e=this,t=void 0,n=void 0;try{n=b.SessionStorage.get("requestId"),b.SessionStorage.remove("requestId")}catch(e){}if(n){var i=N;T.isAvailable()&&(i=T),i.open(_.getApiHost()+"/auth/v2/"+e.mNamespace+"/session/"+n,{},function(t,n){n&&n.token&&n.user?e.attemptAuth(n.token,n.user,!0):t?(m.clear(),e.mLoginStateChange(t)):(m.clear(),e.mLoginStateChange(null,null))})}else t=m.get(),t&&t.token&&t.user?e.attemptAuth(t.token,t.user,!1):e.mLoginStateChange(null,null)}},{key:"attemptAuth",value:function(e,t,n,i,r){var a=this;this.mRef.repo.auth(e,function(o,s){o?(m.clear(),a.mLoginStateChange(null,null),r&&r()):(n&&m.set({token:e,user:t,sessionKey:t.sessionKey}),"function"==typeof s&&s(),delete t.sessionKey,t.webcomAuthToken=e,a.mLoginStateChange(null,t),i&&i(t))},function(){m.clear(),a.mLoginStateChange(null,null),r&&r()})}},{key:"_loginTransport",value:function(e,t,n){var i=this;return Q(function(n,r){t.v=V,E[e](i.mNamespace,t,i._tokenResponseCallback(function(e){return e},n,r))},n)}},{key:"_tokenResponseCallback",value:function(e,t,n){var i=this;return function(r,a){var o=e(a);if(r||!o.token){var s=(0,g.format)(r);i.mLoginStateChange(s,null),n(s)}else{var u=o.token,l=o.user;i.attemptAuth(u,l,!0,function(e){t(e)},function(e){n(e)})}}}},{key:"loginWithToken",value:function(e,t){var n="WebcomSimpleLogin.loginWithToken()";L.validateArgCount(n,1,2,arguments.length),L.validateString(n,1,arguments[0],!1);var i=this;return Q(function(t,n){F().open(_.getApiHost()+"/auth/v2/"+i.mNamespace+"/decode",{token:e},i._tokenResponseCallback(function(t){return{token:e,user:t.data}},t,n))},t)}},{key:"loginAnonymously",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n="WebcomSimpleLogin.loginAnonymously()";return L.validateArgCount(n,0,2,arguments.length),this._loginTransport("anonymous",e,t)}},{key:"loginWithPassword",value:function(e,t){var n="WebcomSimpleLogin.loginWithPassword()";return L.validateArgCount(n,1,2,arguments.length),this._loginTransport("login",e,t)}},{key:"loginWithPhone",value:function(e,t){return this._loginTransport("authWithPhone",e,t)}},{key:"sendOtp",value:function(e,t,n){return this.manageUsers("sendOtp",{provider:e,id:t,message:n})}},{key:"loginWithCustomProvider",value:function(e,t,n){var i="WebcomSimpleLogin.loginWithCustomProvider()";return L.validateArgCount(i,2,3,arguments.length),L.validateString(i,1,arguments[0],!1),L.validateString(i,2,arguments[1],!1),this._loginTransport("custom",{provider:e,token:t},n)}},{key:"loginWithOAuth",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i="WebcomSimpleLogin.loginWithOAuth()";L.validateArgCount(i,1,3,arguments.length),L.validateString(i,1,arguments[0],!1),t.mode=t.mode||"popup";var r=t.mode;return"code"===r?this.loginViaOAuthCode(e,t,n):this.loginViaOAuth(e,t,n)}},{key:"loginWithWassup",value:function(e,t){var n="WebcomSimpleLogin.loginWithWassup()",i=e.mcc;L.validateString(n,1,i,!1,"mcc");var r=this;return Q(function(e,t){F().open(_.getApiHost()+"/auth/v2/"+r.mNamespace+"/wassup/signin",{mcc:i},r._tokenResponseCallback(function(e){return e},e,t))},t)}},{key:"logout",value:function(e){m.clear(),this.mRef.repo.unauth(e),this.mLoginStateChange(null,null)}},{key:"loginViaOAuthCode",value:function(e,t,n){t.v=V,!t.code||!t.state;var i=this,r=_.getApiHost()+"/auth/v2/"+this.mNamespace+"/"+e+"/callback";return Q(function(e,n){F().open(r,t,i._tokenResponseCallback(function(e){return e},e,n))},n)}},{key:"loginViaOAuth",value:function(e,t,n){var i=this,r=_.getApiHost()+"/auth/v2/"+i.mNamespace+"/"+e+"/signin";t.v=V;var a={menubar:0,location:0,resizable:0,scrollbars:1,status:0,dialog:1,width:700,height:375};(0,u.default)(a,q[e]),t.height&&(a.height=t.height,delete t.height),t.width&&(a.width=t.width,delete t.width);var s=function(){return C.isMobileCordovaInAppBrowser()?"mobile-phonegap":C.isMobileTriggerIoTab()?"mobile-triggerio":C.isWindowsMetro()?"windows-metro":"desktop"}(),l=void 0;if("desktop"===s?!function(){l=R;var e=[];(0,o.default)(a).forEach(function(t){e.push(t+"="+a[t])}),t.options={relay_url:_.getApiHost()+"/auth/v2/relay",window_features:e.join(",")}}():"mobile-phonegap"===s?l=CordovaInAppBrowser:"mobile-triggerio"===s?l=TriggerIoTab:"windows-metro"===s&&(l=WindowsMetroAuthBroker),"redirect"===t.mode||C.isChromeiOS()||C.isWindowsPhone()||C.isStandaloneiOS()||C.isTwitteriOS()||C.isFacebookiOS()){var c=(0,I.getRandomString)()+(0,I.getRandomString)();try{b.SessionStorage.set("requestId",c)}catch(e){}return t.from=c,t.to||(t.to=window.location.href),void A.open(r,t)}return Q(function(e,n){l.open(r,t,function(t,r){if(r&&r.token&&r.user)i.attemptAuth(r.token,r.user,!0,function(t){e(t)},function(e){n(e)});else{var a=t||{code:"UNKNOWN_ERROR",message:"An unknown error occurred."};"unknown closed window"===t?a={code:"USER_DENIED",message:"User cancelled the authentication request."}:r&&r.error&&(a=r.error),a=(0,g.format)(a),i.mLoginStateChange(a),n(a)}})},n)}},{key:"manageUsers",value:function(e,t,n){var i=this.mNamespace;return Q(function(n,r){E[e](i,t,function(e,t){if(e){var i=(0,g.format)(e);r(i)}else n(t)})},n)}},{key:"createUser",value:function(e,t){return this.manageUsers("createUser",e,t)}},{key:"addAccount",value:function(e,t,n){return this.manageUsers("addAccount",{provider:e,details:t,message:n})}},{key:"removeIdentity",value:function(){var e=void 0,t=void 0;try{var n=this.currentAuthData("removeIdentity");e=n.token,t=n.auth}catch(e){return v.default.reject(e)}return this.manageUsers("removeIdentity",{provider:t.provider,token:e,id:t.providerUid})}},{key:"removeAccount",value:function(){var e=void 0,t=void 0;try{var n=this.currentAuthData("removeAccount");e=n.token,t=n.auth}catch(e){return v.default.reject(e)}return this.manageUsers("removeAccount",{token:e,uid:t.uid})}},{key:"verifyIdentity",value:function(e,t,n){return n.auth&&(n.challenge=n.auth.verificationPending,delete n.auth),this._loginTransport("verifyIdentity",{provider:e,id:t,verificationData:n})}},{key:"updateIdentityProfile",value:function(e,t,n){var i=void 0,r=void 0;try{var a=this.currentAuthData("updateIdentityProfile");i=a.token,r=a.auth}catch(e){return Q(function(t,n){n(e)},n)}return this.manageUsers("updateIdentityProfile",{token:i,id:r.providerUid,provider:r.provider,json:t,path:e||""},n)}},{key:"currentAuthData",value:function e(t){var e=m.get(),n=void 0,i=void 0;if(!e)throw{code:"AUTH_MISSING",message:"Webcom:"+t+" failed: needs to be authenticated"};return n=e.token,i=e.user||{},{token:n,auth:i}}},{key:"changePassword",value:function(e,t,n,i){return this.manageUsers("changePassword",{email:e,password:t,newPassword:n},function(e){return i&&i(e)})}},{key:"removeUser",value:function(e,t,n){return this.manageUsers("removeUser",{email:e,password:t},function(e){return n&&n(e)})}},{key:"sendPasswordResetEmail",value:function(e,t){return this.manageUsers("sendPasswordResetEmail",{email:e},function(e){return t&&t(e)})}},{key:"sendPasswordResetCode",value:function(e,t,n){return this.manageUsers("sendPasswordResetCode",{provider:e,id:t,message:n})}},{key:"sendVerificationCode",value:function(e,t,n){return this.manageUsers("sendVerificationCode",{provider:e,id:t,message:n})}},{key:"sendConfirmationEmail",value:function(e,t){return this.manageUsers("sendConfirmationEmail",{email:e},function(e){return t&&t(e)})}}]),e}();t.default=H,t.Client=H,t.onOpen=U},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(){return"_JSONP"+(new Date).getTime()+Math.floor(100*Math.random())}function a(e){global.setTimeout(function(){delete(0,d.getGlobalNamespace)(p)[e];var t=document.getElementById(e);t&&t.parentNode.removeChild(t)},0)}function o(e,t){(0,d.getGlobalNamespace)(p)[e]=function(n){var i=n.error||null;delete n.error,t(i,n),a(e)}}function s(e,t,n){global.setTimeout(function(){try{var i=document.createElement("script");i.type="text/javascript",i.id=e,i.async=!0,i.src=t,i.onerror=function(){var t=document.getElementById(e);null!==t&&t.parentNode.removeChild(t),n&&n((0,h.formatError)({code:"SERVER_ERROR",message:"An unknown server error occurred."}))},document.getElementsByTagName("head")[0].appendChild(i)}catch(e){n&&n((0,h.formatError)({code:"SERVER_ERROR",message:"An unknown server error occurred."}))}},0)}function u(e,t,n){var i=t.options||{},a=(i.method||"GET").toUpperCase();if(delete t.options,(0,v.validateHttpMethod)(["GET"],a,e,"JSONP",n)){var u=r();(0,c.default)(t,{transport:"jsonp",callback:p+"."+u}),e=(0,f.addQueryParameters)(e,t),o(u,n),s(u,e,n)}}Object.defineProperty(t,"__esModule",{value:!0});var l=n(25),c=i(l);t.open=u;var d=n(3),h=n(48),f=n(11),v=n(9),p="Webcom._SimpleLoginJSONP";t.default={open:u}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t,n){var i=t.options||{},r=(i.method||"GET").toUpperCase(),a=i.contentType||"application/x-www-form-urlencoded",s={headers:{Accept:"application/json;text/plain"}};delete t.options,"GET"===r?(e.indexOf("?")===-1&&(e+="?"),e+=(0,l.formatQueryString)(t)):"POST"!==r&&"PUT"!==r&&"PATCH"!==r||("application/x-www-form-urlencoded"===a?(s.headers["Content-Type"]=a,s.body=(0,l.formatQueryString)(t)):"application/json"===a?(s.json=!0,s.body=t.json||t):(s.headers["Content-Type"]=a,s.body=t)),s.url=e,s.method=r,(0,u.default)(s.headers,i.headers||{}),c(s,function(e,t,i){var r={};if(!e){var a=t.statusCode,u=a>=400&&a<500;if(a>=200&&a<300||304===a||u||1223===a)try{s.json?r=i||{}:i.length>0&&(r=JSON.parse(i)),e=r.error||null,e?("object"!==("undefined"==typeof e?"undefined":(0,o.default)(e))&&(e={code:r.status,message:e},delete r.status),delete r.error):u&&(e={code:"UNKNOWN_ERROR",message:i})}catch(t){e={code:"UNKNOWN_ERROR",message:i}}else e="RESPONSE_PAYLOAD_ERROR"}return n&&n(e,r)})}Object.defineProperty(t,"__esModule",{value:!0});var a=n(6),o=i(a),s=n(25),u=i(s);t.open=r;var l=n(11),c=n(84);t.default={open:r}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t,n){var i=new XMLHttpRequest,r=t.options||{},a=(r.method||"GET").toUpperCase(),o=r.contentType||"application/x-www-form-urlencoded",u={Accept:"application/json"},c=!1;i.onreadystatechange=function(){if(!c&&4===i.readyState){var t={},r=void 0;c=!0;var a=i.status>=400&&i.status<500;if(i.status>=200&&i.status<300||304===i.status||a||1223===i.status)try{i.responseText.toString().length>0&&(t=JSON.parse(i.responseText)),r=t.error||null,r?("object"!==("undefined"==typeof r?"undefined":(0,f.default)(r))&&(r={code:t.status,message:r},delete t.status),delete t.error):a&&(r="UNKNOWN_ERROR")}catch(e){r="UNKNOWN_ERROR"}else r=i.status?"RESPONSE_PAYLOAD_ERROR":{code:"NETWORK_ERROR",message:"Connection to "+e+" failed."};return n&&n(r,t)}},t&&(delete t.options,"GET"===a?(e.indexOf("?")===-1&&(e+="?"),e+=(0,v.formatQueryString)(t),t=null):"POST"!==a&&"PUT"!==a&&"PATCH"!==a||("application/x-www-form-urlencoded"===o?t=(0,v.formatQueryString)(t):"application/json"===o&&(t=(0,d.default)(t.json||t)),u["Content-Type"]=o)),i.open(a,e,!0),(0,l.default)(u,r.headers||{}),(0,s.default)(u).forEach(function(e){i.setRequestHeader(e,u[e])}),i.send(t)}function a(){return"undefined"!=typeof window&&window.XMLHttpRequest&&!(0,p.isIeLT10)()}Object.defineProperty(t,"__esModule",{value:!0});var o=n(18),s=i(o),u=n(25),l=i(u),c=n(14),d=i(c),h=n(6),f=i(h);t.open=r,t.isAvailable=a;var v=n(11),p=n(4);t.default={open:r,isAvailable:a}},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1),o=r(a),s=n(2),u=r(s),l=n(3),c=i(l),d=n(73),h=r(d),f=n(47),v=n(12),p=6e4,_=5e3,g=10240,y=102400,m=0,b=1,k=2,C="t",w="d",E="s",S="r",N="e",P="o",A="a",D="n",R="p",O="h",T=function(){function e(t,n,i,r,a,s){(0,o.default)(this,e),this.id=t,this.log_=c.logWrapper("c:"+this.id+":"),this.onMessage_=i,this.onReady_=r,this.onDisconnect_=a,this.onKill_=s,this.repoInfo_=n,this.pendingDataMessages=[],this.connectionCount=0,this.transportManager_=new h.default(n),this.state_=m,this.log_("Connection created"),this.start_()}return(0,u.default)(e,[{key:"start_",value:function(){var e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var t=this.connReceiver_(this.conn_),n=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1;var i=this;global.setTimeout(function(){i.conn_&&i.conn_.open(t,n)},Math.floor(0));var r=e.healthyTimeout||0;r>0&&(this.healthyTimeout_=global.setTimeout(function(){i.healthyTimeout_=null,i.isHealthy_||(i.conn_&&i.conn_.bytesReceived>y?(i.log_("Connection exceeded healthy timeout but has received "+i.conn_.bytesReceived+" bytes. Marking connection healthy."),i.isHealthy_=!0,i.conn_.markConnectionHealthy()):i.conn_&&i.conn_.bytesSent>g?i.log_("Connection exceeded healthy timeout but has sent "+i.conn_.bytesSent+" bytes. Leaving connection alive."):(i.log_("Closing unhealthy connection after timeout."),i.close()))},Math.floor(r)))}},{key:"nextTransportId_",value:function(){return"c:"+this.id+":"+this.connectionCount++}},{key:"disconnReceiver_",value:function(e){var t=this;return function(n){e===t.conn_?t.onConnectionLost_(n):e===t.secondaryConn_?(t.log_("Secondary connection lost."),t.onSecondaryConnectionLost_()):t.log_("closing an old connection")}}},{key:"connReceiver_",value:function(e){var t=this;return function(n){t.state_!==k&&(e===t.rx_?t.onPrimaryMessageReceived_(n):e===t.secondaryConn_?t.onSecondaryMessageReceived_(n):t.log_("message on old connection"))}}},{key:"sendRequest",value:function(e){var t={t:"d",d:e};this.sendData_(t)}},{key:"tryCleanupConnection",value:function(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}},{key:"onSecondaryControl_",value:function(e){if(C in e){var t=e[C];t===A?this.upgradeIfSecondaryHealthy_():t===S?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):t===P&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_())}}},{key:"onSecondaryMessageReceived_",value:function(e){var t=(0,l.requireKey)("t",e),n=(0,l.requireKey)("d",e);if("c"===t)this.onSecondaryControl_(n);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(n)}}},{key:"upgradeIfSecondaryHealthy_",value:function(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:R,d:{}}}))}},{key:"proceedWithUpgrade_",value:function(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:A,d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:D,d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}},{key:"onPrimaryMessageReceived_",value:function(e){var t=(0,l.requireKey)("t",e),n=(0,l.requireKey)("d",e);"c"===t?this.onControl_(n):"d"===t&&this.onDataMessage_(n)}},{key:"onDataMessage_",value:function(e){this.onPrimaryResponse_(),this.onMessage_(e)}},{key:"onPrimaryResponse_",value:function(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}},{key:"onControl_",value:function(e){var t=(0,l.requireKey)(C,e);if(w in e){var n=e[w];if(t===O)this.onHandshake_(n);else if(t===D){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(var i=0;i<this.pendingDataMessages.length;++i)this.onDataMessage_(this.pendingDataMessages[i]);this.pendingDataMessages=[],this.tryCleanupConnection()}else t===E?this.onConnectionShutdown_(n):t===S?this.onReset_(n):t===N?c.error("Server Error: "+n):t===P?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):c.error("Unknown control packet command: "+t)}}},{key:"onHandshake_",value:function(e){var t=e.ts,n=e.v,i=e.h;this.sessionId=e.s,this.repoInfo_.updateHost(i),this.state_===m&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,t),f.PROTOCOL_VERSION!==n&&c.warn("Protocol version mismatch detected"),this.tryStartUpgrade_())}},{key:"tryStartUpgrade_",value:function(){var e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}},{key:"startUpgrade_",value:function(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var t=this.connReceiver_(this.secondaryConn_),n=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,n);var i=this;global.setTimeout(function(){i.secondaryConn_&&(i.log_("Timed out trying to upgrade."),i.secondaryConn_.close())},Math.floor(p))}},{key:"onReset_",value:function(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.updateHost(e),this.state_===b?this.close():(this.closeConnections_(),this.start_())}},{key:"onConnectionEstablished_",value:function(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=b,this.onReady_&&(this.onReady_(t),this.onReady_=null);var n=this;0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):global.setTimeout(function(){n.sendPingOnPrimaryIfNecessary_()},Math.floor(_))}},{key:"sendPingOnPrimaryIfNecessary_",value:function(){this.isHealthy_||this.state_!==b||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:R,d:{}}}))}},{key:"onSecondaryConnectionLost_",value:function(){var e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}},{key:"onConnectionLost_",value:function(e){this.conn_=null,e||this.state_!==m?this.state_===b&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(v.PersistentStorage.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}},{key:"onConnectionShutdown_",value:function(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}},{key:"sendData_",value:function(e){if(this.state_!==b)throw"Connection is not connected";this.tx_.send(e)}},{key:"close",value:function(){this.state_!==k&&(this.log_("Closing realtime connection."),this.state_=k,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))}},{key:"closeConnections_",value:function(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),"number"==typeof this.healthyTimeout_&&(global.clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}]),e}();t.default=T,e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=t.PROTOCOL_VERSION="5",i=t.VERSION_PARAM="v",r=t.SESSION_PARAM="s";t.default={PROTOCOL_VERSION:n,VERSION_PARAM:i,SESSION_PARAM:r}},function(e,t){"use strict";function n(e){e||(e={});var t=new Error(e.message);return t.code=e.code||"UNKNOWN_ERROR",t}Object.defineProperty(t,"__esModule",{value:!0}),t.formatError=n,t.default={formatError:n}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e){var t=y.default.prototype.hash;y.default.prototype.hash=e;var n=C.default.prototype.hash;return C.default.prototype.hash=e,function(){y.default.prototype.hash=t,C.default.prototype.hash=n}}function a(e){return e.queryIdentifier()}function o(e){return e.repo.connection_.listens_}function s(e){return e.repo.connection_.realtime_}function u(e,t){e.repo.connection_.securityDebugCallback_=t}function l(e,t){e.repo.stats(t)}function c(e,t){e.repo.statsIncrementCounter(t)}function d(e){return e.repo.dataUpdateCount}function h(e,t){return e.repo.interceptServerData_(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.onPopupOpen=t.SortedChildrenNode=t.SessionStorage=t.PersistentStorage=t.ConnectionTarget=t.RealTimeConnection=t.DataConnection=void 0,t.hijackHash=r,t.queryIdentifier=a,t.listens=o,t.refConnection=s,t.setSecurityDebugCallback=u,t.stats=l,t.statsIncrementCounter=c,t.dataUpdateCount=d,t.interceptServerData=h;var f=n(30),v=i(f),p=n(32),_=i(p),g=n(20),y=i(g),m=n(35),b=i(m),k=n(21),C=i(k),w=n(46),E=i(w),S=n(42),N=n(12);t.DataConnection=v.default,t.RealTimeConnection=E.default,t.ConnectionTarget=_.default,t.PersistentStorage=N.PersistentStorage,t.SessionStorage=N.SessionStorage,t.SortedChildrenNode=b.default,t.onPopupOpen=S.onOpen,t.default={hijackHash:r,queryIdentifier:a,listens:o,refConnection:s,setSecurityDebugCallback:u,stats:l,statsIncrementCounter:c,dataUpdateCount:d,interceptServerData:h,DataConnection:v.default,RealTimeConnection:E.default,ConnectionTarget:_.default,PersistentStorage:N.PersistentStorage,SessionStorage:N.SessionStorage,onPopupOpen:S.onOpen,SortedChildrenNode:b.default}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(3),l=n(19),c=n(9),d=n(4),h=function(){function e(t,n,i){(0,a.default)(this,e),this.repo_=t,this.path_=n,this.name_=i}return(0,s.default)(e,[{key:"cancel",value:function(e){(0,c.validateArgCount)("Webcom. onDisconnect().cancel",0,1,arguments.length),(0,c.validateCallback)("Webcom. onDisconnect().cancel",1,e,!0),this.repo_.onDisconnectCancel(this.path_,e)}},{key:"remove",value:function(e){(0,c.validateArgCount)("Webcom. onDisconnect().remove",0,1,arguments.length),(0,l.validateWritablePath)("Webcom. onDisconnect().remove",this.path_),(0,c.validateCallback)("Webcom. onDisconnect().remove",1,e,!0),this.repo_.onDisconnectSet(this.path_,null,e)}},{key:"set",value:function(e,t){(0,c.validateArgCount)("Webcom. onDisconnect().set",1,2,arguments.length),(0,l.validateWritablePath)("Webcom. onDisconnect().set",this.path_),(0,l.validateWebcomDataArg)("Webcom. onDisconnect().set",1,e,!1),(0,c.validateCallback)("Webcom. onDisconnect().set",2,t,!0),this.repo_.onDisconnectSet(this.path_,e,t)}},{key:"setWithPriority",value:function(e,t,n){if((0,c.validateArgCount)("Webcom. onDisconnect().setWithPriority",2,3,arguments.length),(0,l.validateWritablePath)("Webcom. onDisconnect().setWithPriority",this.path_),(0,l.validateWebcomDataArg)("Webcom. onDisconnect().setWithPriority",1,e,!1),(0,l.validatePriority)("Webcom. onDisconnect().setWithPriority",2,t,!1),(0,c.validateCallback)("Webcom. onDisconnect().setWithPriority",3,n,!0),".length"===this.name_||".keys"===this.name_)throw"Webcom. onDisconnect().setWithPriority failed: "+this.name_+" is a read-only object.";this.repo_.onDisconnectSetWithPriority(this.path_,e,t,n)}},{key:"update",value:function(e,t){if((0,c.validateArgCount)("Webcom. onDisconnect().update",1,2,arguments.length),(0,l.validateWritablePath)("Webcom. onDisconnect().update",this.path_),(0,d.isArray)(e)){for(var n={},i=0;i<e.length;++i)n[""+i]=e[i];e=n,(0,u.warn)("Passing an Array to Webcom. onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}(0,l.validateWebcomObjectDataArg)("Webcom. onDisconnect().update",1,e,!1),(0,c.validateCallback)("Webcom. onDisconnect().update",2,t,!0),this.repo_.onDisconnectUpdate(this.path_,e,t)}}]),e}();t.default=h,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(6),a=i(r),o=n(1),s=i(o),u=n(2),l=i(u),c=n(3),d=n(19),h=n(9),f=n(7),v=n(4),p=function(){function e(t,n,i,r,a){if((0,s.default)(this,e),this.repo=t,this.path=n,this.itemLimit=i,this.startName=r,this.endName=a,(0,v.isDef)(this.startName)&&(0,v.isDef)(this.endName)&&(0,v.isDef)(this.itemLimit))throw"Query: Can't combine startAt(), endAt(), and limit()."}return(0,l.default)(e,[{key:"pathString",value:function(){return this.path.toString()}},{key:"ref",value:function(){return(0,h.validateArgCount)("Query.ref",0,0,arguments.length),
new Webcom(this.repo,this.path)}},{key:"on",value:function(e,t,n,i){(0,h.validateArgCount)("Query.on",2,4,arguments.length),(0,d.validateEventType)("Query.on",1,e,!1),(0,h.validateCallback)("Query.on",2,t,!1);var r=this.getCancelAndContextArgs_("Query.on",n,i);return this.repo.addEventCallbackForQuery(this,e,t,r.cancel,r.context),t}},{key:"off",value:function(e,t,n){(0,h.validateArgCount)("Query.off",0,3,arguments.length),(0,d.validateEventType)("Query.off",1,e,!0),(0,h.validateCallback)("Query.off",2,t,!0),(0,h.validateContextObject)("Query.off",3,n,!0),this.repo.removeEventCallbackForQuery(this,e,t,n)}},{key:"once",value:function(e,t,n,i){(0,h.validateArgCount)("Query.once",2,4,arguments.length),(0,d.validateEventType)("Query.once",1,e,!1),(0,h.validateCallback)("Query.once",2,t,!1);var r=this.getCancelAndContextArgs_("Query.once",n,i),a=this,o=!0,s=function n(i){o&&(o=!1,a.off(e,n),(0,f.bind)(t,r.context)(i))};this.on(e,s,function(t){a.off(e,s),r.cancel&&(0,f.bind)(r.cancel,r.context)(t)})}},{key:"limit",value:function(t){if((0,h.validateArgCount)("Query.limit",1,1,arguments.length),!(0,v.isNumber)(t)||Math.floor(t)!==t||t<=0)throw"Query.limit: First argument must be a positive integer.";return new e(this.repo,this.path,t,this.startName,this.endName)}},{key:"startAt",value:function(t){return(0,h.validateArgCount)("Query.startAt",0,1,arguments.length),(0,d.validateKey)("Query.startAt",1,t,!0),(0,v.isDef)(t)||(t=null),new e(this.repo,this.path,this.itemLimit,t,this.endName)}},{key:"endAt",value:function(t){return(0,h.validateArgCount)("Query.endAt",0,1,arguments.length),(0,d.validateKey)("Query.endAt",1,t,!0),new e(this.repo,this.path,this.itemLimit,this.startName,t)}},{key:"equalTo",value:function(e){return(0,h.validateArgCount)("Query.equalTo",1,1,arguments.length),(0,d.validateKey)("Query.equalTo",1,e,!0),this.startAt(e).endAt(e)}},{key:"queryObject",value:function(){var e={};return(0,v.isDef)(this.startName)&&(e.sn=this.startName),(0,v.isDef)(this.endName)&&(e.en=this.endName),(0,v.isDef)(this.itemLimit)&&(e.l=this.itemLimit),(0,v.isDef)(this.startName)&&null===this.startName&&(e.vf="l"),e}},{key:"queryIdentifier",value:function(){var e=this.queryObject(),t=(0,c.objectToUniqueKey)(e);return"{}"===t?"default":t}},{key:"getCancelAndContextArgs_",value:function(e,t,n){var i={};if(t&&n)i.cancel=t,(0,h.validateCallback)(e,3,i.cancel,!0),i.context=n,(0,h.validateContextObject)(e,4,i.context,!0);else if(t)if("object"===("undefined"==typeof t?"undefined":(0,a.default)(t))&&null!==t)i.context=t;else{if("function"!=typeof t)throw new Error((0,h.errorPrefix_)(e,3,!0)+"must either be a cancel callback or a context object.");i.cancel=t}return i}}]),e}();t.default=p,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(1),o=i(a),s=n(2),u=i(s),l=n(31),c=i(l),d=n(5),h=function(){function e(){(0,o.default)(this,e),this.repos_={}}return(0,u.default)(e,[{key:"interrupt",value:function(){for(var e in this.repos_)this.repos_[e].interrupt()}},{key:"resume",value:function(){for(var e in this.repos_)this.repos_[e].resume()}},{key:"getRepo",value:function(e){var t=e.toString(),n=(0,d.get)(this.repos_,t);return n||(n=new c.default(e),this.repos_[t]=n),n}}],[{key:"getInstance",value:function(){return r||(r=new e),r}}]),e}();t.default=h,e.exports=t.default},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1),o=r(a),s=n(2),u=r(s),l=n(64),c=r(l),d=n(66),h=r(d),f=n(67),v=r(f),p=n(40),_=r(p),g=n(22),y=r(g),m=n(8),b=r(m),k=n(17),C=n(3),w=i(C),E=n(5),S=i(E),N=n(7),P=i(N),A=n(13),D=function(){function e(t,n){(0,o.default)(this,e),this.connection_=t,this.data_=n,this.oldDataNode_=n.rootNode_,this.viewsTree_=new y.default}return(0,u.default)(e,[{key:"addEventCallbackForQuery",value:function(e,t,n,i,r){var a=e.path,o=this.viewsTree_.subTree(a),s=o.getValue();null===s?(s=new h.default,o.setValue(s)):w.assert(!s.isEmpty(),"We shouldn't be storing empty QueryMaps");var u,l=e.queryIdentifier();if(s.contains(l))u=s.get(l),u.addEventCallback(t,n,i,r),u.raiseQueuedEvents();else{var c=this.data_.rootNode_.getChild(a);u=this.createView_(e,c),this.ensureListening_(o,s,l,u),u.addEventCallback(t,n,i,r);var d=this.viewsTree_.subTree(a).forEachAncestor(function(e){if(e.getValue()&&e.getValue().defaultView()&&e.getValue().defaultView().isComplete())return!0},!0);d=d||null===this.connection_&&!this.data_.getNode(a).isEmpty(),d&&u.markComplete(),u.raiseQueuedEvents()}}},{key:"removeCallbackForQuery_",value:function(e,t,n,i,r){var a=e.get(t),o=a&&a.removeEventCallback(n,i,r)&&!a.hasCallbacks();return o&&e.remove(t),o}},{key:"doRemoveQueries_",value:function(e,t,n,i,r){var a=t?t.queryIdentifier():null,o=[];if(a&&"default"!==a)this.removeCallbackForQuery_(e,a,n,i,r)&&o.push(a);else{var s=this;(0,A.forEach)(e.keys(),function(t){s.removeCallbackForQuery_(e,t,n,i,r)&&o.push(t)})}return o}},{key:"removeEventCallbackForQuery",value:function(e,t,n,i){var r=e.path,a=this.viewsTree_.subTree(r),o=a.getValue();return null===o?null:this.removeQueries_(o,e,t,n,i)}},{key:"removeQueries_",value:function(e,t,n,i,r){var a=e.path(),o=this.viewsTree_.subTree(a),s=this.doRemoveQueries_(e,t,n,i,r);e.isEmpty()&&o.setValue(null);var u=this.hasActiveAncestor(o);if(s.length>0&&!u){for(var l=o,c=o.parent(),d=!1;!d&&c;){var h=c.getValue();if(h){w.assert(!h.hasActiveDefaultQuery());var f=l.name(),v=!1;h.each(function(e,t){v=t.hasChild(f)||v}),v&&(d=!0)}l=c,c=c.parent()}var p=null;if(!e.hasActiveDefaultQuery()){var _=e.removeStopListener();p=this.collectListeners_(o,!0),_&&_()}return d?null:p}return null}},{key:"markQueriesComplete",value:function(e,t){var n=this.viewsTree_.subTree(e);n.forEachDescendant(function(e){var t=e.getValue();t&&t.each(function(e,t){t.markComplete()})},t,!0)}},{key:"raiseEventsForChange",value:function(e,t){var n=this,i=this.oldDataNode_,r=this.data_.rootNode_;this.oldDataNode_=r;for(var a={},o=0;o<t.length;o++)a[t[o].toString()]=!0;var s=function(e){do{if(a[e.toString()])return!0;e=e.parent()}while(null!==e);return!1},u=function(t,i,r){if(e.contains(t)){var a=s(t);a&&n.markQueriesComplete(t,!1),n.processChanges(t,i,r),a&&n.markQueriesComplete(t,!0)}else n.processChanges(t,i,r)};_.default.Diff(i,r,e,this.viewsTree_,u),s(e)&&this.markQueriesComplete(e,!0),this.raiseQueuedEvents_(e)}},{key:"raiseQueuedEvents_",value:function(e){var t=this.viewsTree_.subTree(e);t.forEachDescendant(function(e){var t=e.getValue();t&&t.each(function(e,t){t.raiseQueuedEvents()})},!0,!0),t.forEachAncestor(function(e){var t=e.getValue();t&&t.each(function(e,t){t.raiseQueuedEvents()})},!1)}},{key:"processChanges",value:function(e,t,n){var i=this.viewsTree_.subTree(e).getValue();null!==i&&i.each(function(e,i){i.processChanges(t,n)})}},{key:"hasActiveAncestor",value:function(e){return e.forEachAncestor(function(e){return e.getValue()&&e.getValue().hasActiveDefaultQuery()})}},{key:"ensureListening_",value:function(e,t,n,i){if(t.hasActiveDefaultQuery()||this.hasActiveAncestor(e))t.setView(n,i);else{var r,a;t.isEmpty()||(r=t.toString(),a=t.queries()),t.setView(n,i),t.setActive(this.startListening(t)),r&&a&&this.connection_.unlisten(t.path(),r,a)}t.hasActiveDefaultQuery()&&e.forEachDescendant(function(e){var t=e.getValue();t&&t.deactivate()})}},{key:"collectListeners_",value:function(e,t){var n=[],i=this,r=function e(r){var a=r.getValue();if(a&&a.hasDefaultQuery())n.push(a.path()),t&&!a.isActive()&&a.setActive(i.startListening(a));else{if(t&&a){a.isActive()||a.setActive(i.startListening(a));var o={};a.each(function(e,t){t.snapshotNode_.forEachChild(function(e){if(!S.contains(o,e)){o[e]=!0;var t=a.path().child(e);n.push(t)}})})}r.forEachChild(e)}};return r(e),n}},{key:"startListening",value:function(e){if(this.connection_){var t,n=this,i=this.connection_,r=e.path(),a=e.toString(),o=e.queries(),s=function(){t=!0,i.unlisten(r,a,o)},u=e.keys(),l=e.hasDefaultQuery();return!this.connection_.connected_&&this.connection_.repoInfo_.options.persist&&(l?this.markQueriesComplete(e.path(),!0):(0,A.forEach)(u,function(t){var n=e.get(t);n&&n.markComplete()})),this.connection_.listen(e,function(i){if("ok"!==i){var r=w.errorForServerCode(i);w.warn("on() or once() for "+e.path().toString()+" failed: "+r.toString()),n.raiseCancelEventsForQuery_(e,r)}else t||(l?n.markQueriesComplete(e.path(),!0):(0,A.forEach)(u,function(t){var n=e.get(t);n&&n.markComplete()}),n.raiseQueuedEvents_(e.path()))}),s}return P.nullFunction}},{key:"raiseCancelEventsForQuery_",value:function(e,t){e&&(e.each(function(e,n){n.raiseCancelEvents(t)}),this.removeQueries_(e))}},{key:"createView_",value:function(e,t){return"default"===e.queryIdentifier()?new c.default(e,t):new v.default(e,t)}},{key:"getChildRelevance",value:function(e,t,n,i){var r={},a=function(e){(0,E.forEach)(e,function(e,t){if(e===v.default.IN_VIEW)r[t]=v.default.IN_VIEW;else{var n=S.get(r,t)||e;n===e?r[t]=e:r[t]=v.default.IN_VIEW}})};return t.each(function(t,r){a(r.getChildRelevance(e,n,i))}),n.isLeafNode()||n.forEachChild(function(e){S.contains(r,e)||(r[e]=v.default.OUT_OF_VIEW)}),r}},{key:"getAncestorUpdate",value:function(e,t,n){for(var i=this.viewsTree_.subTree(e),r=i.parent(),a=[];null!==r;){var o=r.getValue();if(null!==o){if(o.hasDefaultQuery())return[{path:e,node:t}];var s=this.getChildRelevance(e,o,t,n),u=S.get(s,i.name());if(u===v.default.IN_VIEW||u===v.default.ENTERING_VIEW)return[{path:e,node:t}];u===v.default.LEAVING_VIEW&&a.push({path:e,node:k.EMPTY_NODE})}i=r,r=r.parent()}return a}},{key:"pruneNonDefaultQuery",value:function(e,t,n,i){var r=e.path(),a=this.getChildRelevance(r,e,n,i),o=k.EMPTY_NODE,s=[],u=this;return(0,E.forEach)(a,function(e,a){var l=new b.default(a);e===v.default.IN_VIEW||e===v.default.ENTERING_VIEW?o=o.updateImmediateChild(a,n.getChild(l)):e===v.default.LEAVING_VIEW?(s.push({path:r.child(a),node:k.EMPTY_NODE}),s=s.concat(u.pruneObjectToListeners_(n.getChild(l),t.subTree(l),i))):s=s.concat(u.pruneObjectToListeners_(n.getChild(l),t.subTree(l),i))}),[{path:r,node:o}].concat(s)}},{key:"pruneUpdateNode",value:function(e,t,n){var i=this.getAncestorUpdate(e,t,n);if(1===i.length&&(!i[0].node.isEmpty()||t.isEmpty()))return i;var r=this.viewsTree_.subTree(e),a=r.getValue();return null!==a?a.hasDefaultQuery()?i.push({path:e,node:t}):i=i.concat(this.pruneNonDefaultQuery(a,r,t,n)):i=i.concat(this.pruneObjectToListeners_(t,r,n)),i}},{key:"pruneObjectToListeners_",value:function(e,t,n){var i=t.getValue();if(null!==i)return i.hasDefaultQuery()?[{path:t.path(),node:e}]:this.pruneNonDefaultQuery(i,t,e,n);var r=[],a=this;return t.forEachChild(function(t){var i;i=e.isLeafNode()?k.EMPTY_NODE:e.getImmediateChild(t.name());var o=a.pruneObjectToListeners_(i,t,n);r=r.concat(o)}),r}}]),e}();t.default=D,e.exports=t.default},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.WebcomData=void 0;var a=n(1),o=r(a),s=n(2),u=r(s),l=n(33),c=r(l),d=n(22),h=r(d),f=n(3),v=i(f),p=n(17),_=n(13),g=t.WebcomData=function(){function e(t){(0,o.default)(this,e),this.serverData=new c.default,this.mergedData=new c.default,this.visibleData=new c.default(t),this.pendingPuts=new h.default}return(0,u.default)(e,[{key:"updateServerData",value:function(e,t){return this.serverData.updateSnapshot(e,t),this.mergeServerAndPendingData(e)}},{key:"mergeServerAndPendingData",value:function(t){for(var n=this.serverData.getNode(t),i=this.mergedData.getNode(t),r=this.pendingPuts.subTree(t),a=!1,o=r;null!==o;){if(null!==o.getValue()){a=!0;break}o=o.parent()}if(a)return!1;var s=e.mergeSnapshotNodes_(n,i,r);return s!==i&&(this.mergedData.updateSnapshot(t,s),!0)}},{key:"set",value:function(e,t){var n=this,i=[];return(0,_.forEach)(t,function(e){var t=e.path,r=e.node,a=v.LUIDGenerator();n.pendingPuts.subTree(t).setValue(a),n.mergedData.updateSnapshot(t,r),i.push({path:t,setId:a})}),i}},{key:"setCompleted",value:function(e){var t=this;(0,_.forEach)(e,function(e){var n=e.setId,i=e.path,r=t.pendingPuts.subTree(i),a=r.getValue();null!==a&&a===n&&r.setValue(null)})}},{key:"forgetPath",value:function(e,t){for(var n=[],i=0;i<t.length;++i)n[i]=this.serverData.getNode(t[i]);for(this.serverData.updateSnapshot(e,p.EMPTY_NODE),i=0;i<t.length;++i)this.serverData.updateSnapshot(t[i],n[i]);return this.mergeServerAndPendingData(e)}}],[{key:"mergeSnapshotNodes_",value:function(t,n,i){return i.isEmpty()?t:null!==i.getValue()?n:(t=t||p.EMPTY_NODE,i.forEachChild(function(r){var a=r.name(),o=t.getImmediateChild(a),s=n.getImmediateChild(a),u=i.subTree(a),l=e.mergeSnapshotNodes_(o,s,u);t=t.updateImmediateChild(a,l)}),t)}}]),e}();t.default=g},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(4),l=n(5),c=function(){function e(){(0,a.default)(this,e),this.counters_={}}return(0,s.default)(e,[{key:"incrementCounter",value:function(e,t){(0,u.isDef)(t)||(t=1),(0,l.contains)(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}},{key:"get",value:function(){return(0,l.clone)(this.counters_)}}]),e}();t.default=c,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(36),l=i(u),c=n(7),d=n(5),h=1e4,f=3e4,v=3e5,p=function(){function e(t,n){(0,a.default)(this,e),this.statsToReport_={},this.statsListener_=new l.default(t),this.connection_=n;var i=h+(f-h)*Math.random();global.setTimeout((0,c.bind)(this.reportStats_,this),Math.floor(i))}return(0,s.default)(e,[{key:"includeStat",value:function(e){this.statsToReport_[e]=!0}},{key:"reportStats_",value:function(){var e=this.statsListener_.get(),t={},n=!1;for(var i in e)e[i]>0&&(0,d.contains)(this.statsToReport_,i)&&(t[i]=e[i],n=!0);n&&this.connection_.reportStats(t),global.setTimeout((0,c.bind)(this.reportStats_,this),Math.floor(2*Math.random()*v))}}]),e}();t.default=p,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(14),a=i(r),o=n(1),s=i(o),u=n(2),l=i(u),c=function(){function e(t){(0,s.default)(this,e),this.domStorage_=t,this.prefix_="webcom:"}return(0,l.default)(e,[{key:"isInMemoryStorage",get:function(){return!1}}]),(0,l.default)(e,[{key:"set",value:function(e,t){null===t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),(0,a.default)(t))}},{key:"get",value:function(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null===t?null:JSON.parse(t)}},{key:"remove",value:function(e){this.domStorage_.removeItem(this.prefixedName_(e))}},{key:"prefixedName_",value:function(e){return this.prefix_+e}}]),e}();t.default=c,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(5),l=function(){function e(){(0,a.default)(this,e),this.cache_={}}return(0,s.default)(e,[{key:"isInMemoryStorage",get:function(){return!0}}]),(0,s.default)(e,[{key:"set",value:function(e,t){null===t?delete this.cache_[e]:this.cache_[e]=t}},{key:"get",value:function(e){return(0,u.contains)(this.cache_,e)?this.cache_[e]:null}},{key:"remove",value:function(e){delete this.cache_[e]}}]),e}();t.default=l,e.exports=t.default},function(e,t,n){"use strict";function i(e){var t=e===o;o=e;for(var n=new Array(8),i=7;i>=0;i--)n[i]=a.charAt(e%64),e=Math.floor(e/64);(0,r.assert)(0===e,"Cannot push at time == 0");var u=n.join("");if(t){for(i=11;i>=0&&63===s[i];i--)s[i]=0;s[i]++}else for(i=0;i<12;i++)s[i]=Math.floor(64*Math.random());for(i=0;i<12;i++)u+=a.charAt(s[i]);return(0,r.assert)(20===u.length,"NextPushId: Length should be 20."),u}Object.defineProperty(t,"__esModule",{value:!0}),t.NextPushId=i;var r=n(3),a="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",o=0,s=[];t.default={NextPushId:i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=process.version;if("v0.10.22"===e||"v0.10.23"===e||"v0.10.24"===e){var t=n(81);t.prototype.write=function(e,t,n){var o=this._writableState,s=!1;return"function"==typeof t&&(n=t,t=null),Buffer.isBuffer(e)?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=function(){}),o.ended?i(this,o,n):r(this,o,e,n)&&(s=a(this,o,e,t,n)),s};var i=function(e,t,n){var i=new Error("write after end");e.emit("error",i),process.nextTick(function(){n(i)})},r=function(e,t,n,i){var r=!0;if(!Buffer.isBuffer(n)&&"string"!=typeof n&&null!==n&&void 0!==n&&!t.objectMode){var a=new TypeError("Invalid non-string/buffer chunk");e.emit("error",a),process.nextTick(function(){i(a)}),r=!1}return r},a=function(e,t,n,i,r){n=o(t,n,i),Buffer.isBuffer(n)&&(i="buffer");var a=t.objectMode?1:n.length;t.length+=a;var l=t.length<t.highWaterMark;return l||(t.needDrain=!0),t.writing?t.buffer.push(new s(n,i,r)):u(e,t,a,n,i,r),l},o=function(e,t,n){return e.objectMode||e.decodeStrings===!1||"string"!=typeof t||(t=new Buffer(t,n)),t},s=function(e,t,n){this.chunk=e,this.encoding=t,this.callback=n},u=function(e,t,n,i,r,a){t.writelen=n,t.writecb=a,t.writing=!0,t.sync=!0,e._write(i,r,t.onwrite),t.sync=!1},l=n(80);l.prototype.write=t.prototype.write}},e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(10),o=i(a),s=n(1),u=i(s),l=n(16),c=i(l),d=n(2),h=i(d),f=n(15),v=i(f),p=n(39),_=i(p),g=n(3),y=function(e){function t(){(0,u.default)(this,t);var e=(0,c.default)(this,(t.__proto__||(0,o.default)(t)).call(this,["online"]));if("undefined"!=typeof window&&"undefined"!=typeof window.addEventListener){var n=e;window.addEventListener("online",function(){n.online_||n.trigger("online",!0),n.online_=!0},!1),window.addEventListener("offline",function(){n.online_&&n.trigger("online",!1),n.online_=!1},!1)}return e}return(0,v.default)(t,e),(0,h.default)(t,null,[{key:"getInstance",value:function(){return r||(r=new t),r}}]),(0,h.default)(t,[{key:"getInitialEvent",value:function(e){return(0,g.assert)("online"===e,"Unknown event type: "+e),void 0===this.online_&&("undefined"!=typeof window&&window.initialEvent?this.online_=!!window.initialEvent.online:this.online_=!0),[this.online_]}}]),t}(_.default);t.default=y,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e){return e=e||{},e.timestamp=e.timestamp||Date.now(),e}function a(e,t){return e&&"object"===("undefined"==typeof e?"undefined":(0,l.default)(e))?((0,_.assert)(".sv"in e,"Unexpected leaf node or priority contents"),t[e[".sv"]]):e}function o(e,t){var n=new p.default;return e.forEachTree(new f.default(""),function(e,i){n.remember(e,s(i,t))}),n}function s(e,t){var n,i=a(e.getPriority(),t);if(e.isLeafNode()){var r=a(e.getValue(),t);return r!==e.getValue()||i!==e.getPriority()?new d.default(r,i):e}return n=e,i!==e.getPriority()&&(n=n.updatePriority(i)),e.forEachChild(function(e,i){var r=s(i,t);r!==i&&(n=n.updateImmediateChild(e,r))}),n}Object.defineProperty(t,"__esModule",{value:!0});var u=n(6),l=i(u);t.generateWithValues=r,t.resolveDeferredValue=a,t.resolveDeferredValueTree=o,t.resolveDeferredValueSnapshot=s;var c=n(21),d=i(c),h=n(8),f=i(h),v=n(34),p=i(v),_=n(3);t.default={generateWithValues:r,resolveDeferredValue:a,resolveDeferredValueSnapshot:s,resolveDeferredValueTree:o}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r,a=n(10),o=i(a),s=n(1),u=i(s),l=n(16),c=i(l),d=n(2),h=i(d),f=n(15),v=i(f),p=n(39),_=i(p),g=n(3),y=function(e){function t(){(0,u.default)(this,t);var e,n,e,n,i=(0,c.default)(this,(t.__proto__||(0,o.default)(t)).call(this,["visible"]));if("undefined"!=typeof document&&"undefined"!=typeof document.addEventListener&&("undefined"!=typeof document.hidden?(n="visibilitychange",e="hidden"):"undefined"!=typeof document.mozHidden?(n="mozvisibilitychange",e="mozHidden"):"undefined"!=typeof document.msHidden?(n="msvisibilitychange",e="msHidden"):"undefined"!=typeof document.webkitHidden&&(n="webkitvisibilitychange",e="webkitHidden")),i.visible_=!0,n){var r=i;document.addEventListener(n,function(){var t=!document[e];t!==r.visible_&&(r.visible_=t,r.trigger("visible",t))},!1)}return i}return(0,v.default)(t,e),(0,h.default)(t,null,[{key:"getInstance",value:function(){return r||(r=new t),r}}]),(0,h.default)(t,[{key:"getInitialEvent",value:function(e){return(0,g.assert)("visible"===e,"Unknown event type: "+e),[this.visible_]}}]),t}(_.default);t.default=y,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(10),a=i(r),o=n(1),s=i(o),u=n(2),l=i(u),c=n(16),d=i(c),h=n(15),f=i(h),v=n(41),p=i(v),_=n(23),g=i(_),y=function(e){function t(e,n){(0,s.default)(this,t);var i=(0,d.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return i.snapshotNode_=n,i}return(0,f.default)(t,e),(0,l.default)(t,[{key:"processChanges_",value:function(e,t){return this.snapshotNode_=e,this.isComplete_&&null!==t&&t.push(new g.default("value",this.snapshotNode_)),t}},{key:"getChildRelevance",value:function(e,t,n){return{}}}]),t}(p.default);t.default=y,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),a=i(r),o=n(2),s=i(o),u=n(7),l=function(){function e(){(0,a.default)(this,e),this.events=[]}return(0,s.default)(e,[{key:"queueEvents",value:function(e){if(0!==e.length)for(var t=0;t<e.length;t++)this.events.push(e[t])}},{key:"raiseQueuedEvents",value:function(){for(var e=0;e<this.events.length;e++)if(this.events[e]){var t=this.events[e];this.events[e]=null,this.raiseEvent_(t)}this.events=[]}},{key:"raiseEvent_",value:function(e){var t=e.callback,n=e.snapshot,i=e.prevName;(0,u.exceptionGuard)(function(){t(n,i)})}}]),e}();t.default=l,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(10),a=i(r),o=n(1),s=i(o),u=n(2),l=i(u),c=n(16),d=i(c),h=n(15),f=i(h),v=n(38),p=i(v),_=n(13),g=function(e){function t(){(0,s.default)(this,t);var e=(0,d.default)(this,(t.__proto__||(0,a.default)(t)).call(this));return e.stopListener_=null,e.path_=null,e}return(0,f.default)(t,e),(0,l.default)(t,[{key:"setActive",value:function(e){this.stopListener_=e}},{key:"isActive",value:function(){return null!==this.stopListener_}},{key:"setView",value:function(e,t){this.add(e,t),this.path_||(this.path_=t.getQuery().path)}},{key:"deactivate",value:function(){this.stopListener_&&this.stopListener_(),this.stopListener_=null}},{key:"removeStopListener",value:function(){var e=this.stopListener_;return this.stopListener_=null,e}},{key:"hasDefaultQuery",value:function(){return this.contains("default")}},{key:"hasActiveDefaultQuery",value:function(){return null!==this.stopListener_&&this.hasDefaultQuery()}},{key:"defaultView",value:function(){return this.hasDefaultQuery()?this.get("default"):null}},{key:"path",value:function(){return this.path_}},{key:"toString",value:function(){return(0,_.map)(this.keys(),function(e){return"default"===e?"{}":e}).join("$")}},{key:"queries",value:function e(){var e=[];return this.each(function(t,n){e.push(n.getQuery())}),e}}]),t}(p.default);t.default=g,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(10),a=i(r),o=n(1),s=i(o),u=n(16),l=i(u),c=n(2),d=i(c),h=n(15),f=i(h),v=n(41),p=i(v),_=n(23),g=i(_),y=n(40),m=i(y),b=n(8),k=i(b),C=n(22),w=i(C),E=n(17),S=n(3),N=n(5),P=n(4),A=function(e){function t(e,n){(0,s.default)(this,t);var i=(0,l.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return i.snapshotNode_=E.EMPTY_NODE,i.processChanges_(n,i.generateChangesForSnapshot(n)),i}return(0,f.default)(t,e),(0,d.default)(t,null,[{key:"ENTERING_VIEW",get:function(){return 1}},{key:"LEAVING_VIEW",get:function(){return 2}},{key:"IN_VIEW",get:function(){return 3}},{key:"OUT_OF_VIEW",get:function(){return 4}}]),(0,d.default)(t,[{key:"processChanges_",value:function(e,t){if(null===t)return t;var n=[],i=this.query_;(0,P.isDef)(i.startName)&&null!==i.startName&&n.push(function(e){return(0,S.nameCompare)(e,i.startName)>=0}),(0,P.isDef)(i.endName)&&n.push(function(e){return(0,S.nameCompare)(e,i.endName)<=0});var r=null,a=null;(0,P.isDef)(this.query_.itemLimit)&&(a=this.getLimitName_(e,n,this.query_.itemLimit,!0),a&&n.push(function(e){return(0,S.nameCompare)(e,a)>=0}));for(var o=[],s=[],u=[],l=[],c=0;c<t.length;c++){var d=t[c].type,h=t[c].childName,f=t[c].snapshotNode;switch(d){case g.default.CHILD_ADDED:this.meetsConstraints_(n,h,f)&&(this.snapshotNode_=this.snapshotNode_.updateImmediateChild(h,f),s.push(t[c]));break;case g.default.CHILD_REMOVED:this.snapshotNode_.getImmediateChild(h).isEmpty()||(this.snapshotNode_=this.snapshotNode_.updateImmediateChild(h,null),o.push(t[c]));break;case g.default.CHILD_CHANGED:!this.snapshotNode_.getImmediateChild(h).isEmpty()&&this.meetsConstraints_(n,h,f)&&(this.snapshotNode_=this.snapshotNode_.updateImmediateChild(h,f),l.push(t[c]));break;case g.default.CHILD_MOVED:var v=!this.snapshotNode_.getImmediateChild(h).isEmpty(),p=this.meetsConstraints_(n,h,f);v?p?(this.snapshotNode_=this.snapshotNode_.updateImmediateChild(h,f),u.push(t[c])):(o.push(new g.default("child_removed",this.snapshotNode_.getImmediateChild(h),h)),this.snapshotNode_=this.snapshotNode_.updateImmediateChild(h,null)):p&&(this.snapshotNode_=this.snapshotNode_.updateImmediateChild(h,f),s.push(t[c]))}}var _=r||a;if(_){var y=null!==a,m=y?this.snapshotNode_.getFirstChildName():this.snapshotNode_.getLastChildName(),b=y?e.forEachChildReverse:e.forEachChild,k=!1,C=!1,w=this;b.call(e,function(e,t){return C||null!==m||(C=!0),!(!C||!k)||(k?(o.push(new g.default("child_removed",w.snapshotNode_.getImmediateChild(e),e)),w.snapshotNode_=w.snapshotNode_.updateImmediateChild(e,null)):C&&(s.push(new g.default("child_added",t,e)),w.snapshotNode_=w.snapshotNode_.updateImmediateChild(e,t)),m===e&&(C=!0),void(e===_&&(k=!0)))})}var E,N;for(c=0;c<s.length;c++)E=s[c],N=this.snapshotNode_.getPredecessorChildName(E.childName,E.snapshotNode),o.push(new g.default("child_added",E.snapshotNode,E.childName,N));for(c=0;c<u.length;c++)E=u[c],N=this.snapshotNode_.getPredecessorChildName(E.childName,E.snapshotNode),o.push(new g.default("child_moved",E.snapshotNode,E.childName,N));for(c=0;c<l.length;c++)E=l[c],N=this.snapshotNode_.getPredecessorChildName(E.childName,E.snapshotNode),o.push(new g.default("child_changed",E.snapshotNode,E.childName,N));return this.isComplete_&&o.length>0&&o.push(new g.default("value",this.snapshotNode_)),o}},{key:"getLimitName_",value:function(e,t,n,i){if(e.isLeafNode())return null;var r=i?e.forEachChildReverse:e.forEachChild,a=this,o=null;return r.call(e,function(e,i){if(a.meetsConstraints_(t,e,i)&&(o=e,n--,0===n))return!0}),o}},{key:"meetsConstraints_",value:function(e,t,n){for(var i=0;i<e.length;i++)if(!e[i](t,n.getPriority()))return!1;return!0}},{key:"hasChild",value:function(e){return this.snapshotNode_.getImmediateChild(e)!==E.EMPTY_NODE}},{key:"getChildRelevance",value:function(e,n,i){var r={};this.snapshotNode_.isLeafNode()||this.snapshotNode_.forEachChild(function(e){r[e]=t.IN_VIEW});var a=this.snapshotNode_,o=i.getNode(new k.default("")),s=new w.default,u=this.query_.path,l=s.subTree(u);l.setValue(!0);var c=E.EMPTY_NODE.updateChild(e,n),d=this,h=function(e,t,n){null!==n&&e.toString()===d.query_.path.toString()&&d.processChanges_(t,n)};return m.default.Diff(o,c,e,s,h),this.snapshotNode_.isLeafNode()?(0,N.forEach)(r,function(e,n){r[n]=t.LEAVING_VIEW}):(this.snapshotNode_.forEachChild(function(e){(0,N.contains)(r,e)||(r[e]=t.ENTERING_VIEW)}),(0,N.forEach)(r,function(e,n){d.snapshotNode_.getImmediateChild(n).isEmpty()&&(r[n]=t.LEAVING_VIEW)})),this.snapshotNode_=a,r}}]),t}(p.default);t.default=A,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){var n,i,r,a={},l=arguments.length;if(2===l)n=e,i=t;else if(1===l)if("object"===("undefined"==typeof e?"undefined":(0,o.default)(e))&&e.code&&e.message){if(0===e.message.indexOf(s))return e;n=e.code,i=e.message,a=e.data}else"string"==typeof e&&(n=e,i=u[n]);else n="UNKNOWN_ERROR",i=u[n];try{r=new Error(s+i)}catch(e){}return r.code=n,a&&(r.data=a),r}Object.defineProperty(t,"__esModule",{value:!0});var a=n(6),o=i(a);t.format=r;var s="WebcomSimpleLogin: ",u={UNKNOWN_ERROR:"An unknown error occurred.",INVALID_EMAIL:"Invalid email specified.",INVALID_PASSWORD:"Invalid password specified.",USER_DENIED:"User cancelled the authentication request.",RESPONSE_PAYLOAD_ERROR:"Unable to parse response payload.",TRIGGER_IO_TABS:'The "forge.tabs" module required when using Webcom Simple Login and Trigger.io. Without this module included and enabled, login attempts to OAuth authentication providers will not be able to complete.'};t.default={format:r}},function(e,t,n){"use strict";function i(e){o.PersistentStorage.set(s,e)}function r(){return o.PersistentStorage.get(s)}function a(){o.PersistentStorage.remove(s)}Object.defineProperty(t,"__esModule",{value:!0}),t.set=i,t.get=r,t.clear=a;var o=n(12),s="session";t.default={set:i,get:r,clear:a}},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e,t,n){A("/v2/"+e+"/anonymous/signin",1,t,n)}function a(e,t,n){t.options={method:"POST"},A("/v2/"+e+"/password/signin",1,t,n)}function o(e,t,n){var i={options:{method:"POST",contentType:"application/json"},json:t};A("/v2/"+e+"/phone/signin",0,i,n)}function s(e,t,n){t.options={method:"POST"},A("/v2/"+e+"/custom."+t.provider+"/signin",1,t,n)}function u(e,t,n){t.options={method:"POST"},A("/v2/"+e+"/password/identities/"+encodeURIComponent(t.email),7,t,n)}function l(e,t,n){t.options={method:"POST",contentType:"application/json"},t.json=t.details,A("/v2/"+e+"/"+t.provider+"/identities?"+(0,N.formatQueryString)(t.message),0,t,n)}function c(e,t,n){t.options={method:"POST",contentType:"application/json"},t.json={},A("/v2/"+e+"/"+t.provider+"/identities/"+t.id+"/reset",0,t,n)}function d(e,t,n){t.options={method:"POST",contentType:"aplication/json"},t.json={},A("/v2/"+e+"/"+t.provider+"/identities/"+t.id+"/sendVerification",0,t,n)}function h(e,t,n){t.options={method:"DELETE",headers:{Authorization:"Bearer "+t.token}},A("/v2/"+e+"/"+t.provider+"/identities/"+t.id,0,t,n)}function f(e,t,n){t.options={method:"DELETE",headers:{Authorization:"Bearer "+t.token}},A("/v2/"+e+"/accounts/"+t.uid,0,t,n)}function v(e,t,n){t.options={method:"POST",contentType:"application/json"},t.json=t.verificationData,A("/v2/"+e+"/"+t.provider+"/identities/"+t.id+"/verify",0,t,n)}function p(e,t,n){t.options={method:"PUT",contentType:"application/json",headers:{Authorization:"Bearer "+t.token}},A("/v2/"+e+"/"+t.provider+"/identities/"+encodeURIComponent(t.id)+"/providerProfile/"+t.path,0,t,n)}function _(e,t,n){t.options={method:"PUT"},A("/v2/"+e+"/password/identities/"+encodeURIComponent(t.email)+"/password",15,t,n)}function g(e,t,n){t.base=e,A("/base/remove",7,t,n)}function y(e,t,n){A("/v2/"+e+"/password/identities/"+encodeURIComponent(t.email)+"/reset",3,t,n)}function m(e,t,n){A("/v2/"+e+"/password/identities/"+encodeURIComponent(t.email)+"/resendConfirmation",3,t,n);
}function b(e,t,n){t.options={method:"POST",contentType:"application/json"},t.json=t.id,A("/v2/"+e+"/"+t.provider+"/otps?"+(0,N.formatQueryString)(t.message),0,t,n)}Object.defineProperty(t,"__esModule",{value:!0}),t.anonymous=r,t.login=a,t.authWithPhone=o,t.custom=s,t.createUser=u,t.addAccount=l,t.sendPasswordResetCode=c,t.sendVerificationCode=d,t.removeIdentity=h,t.removeAccount=f,t.verifyIdentity=v,t.updateIdentityProfile=p,t.changePassword=_,t.removeUser=g,t.sendPasswordResetEmail=y,t.sendConfirmationEmail=m,t.sendOtp=b;var k=n(24),C=n(9),w=i(C),E=n(45),S=(i(E),n(43)),N=(i(S),n(11)),P=function(){return n(44)},A=function(e,t,n,i){var r=(0,k.getApiHost)()+"/auth"+e,a=2&t,o=4&t,s=8&t;return a&&!w.isValidEmail(n.email)?i&&i("INVALID_EMAIL"):o&&!w.isValidPassword(s?n.newPassword:n.password)?i&&i("INVALID_PASSWORD"):void P().open(r,n,i)}},function(e,t,n){"use strict";function i(e,t){var n=t.options||{},i=(n.method||"GET").toUpperCase();delete t.options,(0,a.validateHttpMethod)(["GET"],i,e,"JSONP")&&(window.location=(0,r.addQueryParameters)(e,t))}Object.defineProperty(t,"__esModule",{value:!0}),t.open=i;var r=n(11),a=n(9);t.default={open:i}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t,n){e.attachEvent?e.attachEvent("on"+t,n):e.addEventListener&&e.addEventListener(t,n,!1)}function a(e,t,n){e.detachEvent?e.detachEvent("on"+t,n):e.removeEventListener&&e.removeEventListener(t,n,!1)}function o(e){/^https?:\/\//.test(e)||(e=window.location.href);var t=/^(https?:\/\/[\-_a-zA-Z\.0-9:]+)/.exec(e);return t?t[1]:e}function s(){for(var e=window.location,t=window.opener.frames,n=e.protocol+"//"+e.host,i=t.length-1;i>=0;i--)try{if(0===t[i].location.href.indexOf(n)&&t[i].name===g)return t[i]}catch(e){}}function u(e,t,n){var i=function(){return n?e?t.method&&"GET"!==t.method.toUpperCase()?"only GET method is supported":t.relay_url?void 0:"missing required 'relay_url' parameter":"missing required 'url' parameter":"missing required callback argument"};return(0,_.validateWithCallback)(n,function(){var e=i();if(e)return{code:"CLIENT_ERROR",message:"Transport WinChan: "+e}})}function l(e,t,n){function i(e){if(c&&document.body.removeChild(c),c=void 0,b&&(b=global.clearInterval(b)),a(window,"message",s),a(window,"unload",i),_&&!e)try{_.close()}catch(e){h.postMessage(y,d)}_=h=void 0}function s(e){try{if(e.origin!==d)return i(),void(n&&(n({code:"INVALID_ORIGIN",message:"The origin of the popup window is unexpected: '"+e.origin+"' instead of '"+d+"'."}),n=null));var t=JSON.parse(e.data);"ready"===t.a?h.postMessage(k,d):"error"===t.a?(i(),n&&(n(t.d),n=null)):"response"===t.a&&(i(t.forceKeepWindowOpen),n&&(n(null,t.d),n=null))}catch(e){}}var l=t.options||{};if(delete t.options,u(e,l,n)){e=(0,p.addQueryParameters)(e,t),l.window_name||(l.window_name=null),l.window_features&&!(0,v.isFennec)()||(l.window_features=void 0);var c,d=o(e);if(d!==o(l.relay_url))return global.setTimeout(function(){n("invalid arguments: origin of url and relay_url must match")},0);var h;m&&(c=document.createElement("iframe"),c.setAttribute("src",l.relay_url),c.style.display="none",c.setAttribute("name",g),document.body.appendChild(c),h=c.contentWindow);var _=window.open(e,l.window_name,l.window_features);h||(h=_);var b=global.setInterval(function(){_&&_.closed&&(i(),n&&(n("unknown closed window"),n=null))},500),k=(0,f.default)({a:"request",d:l.params});return r(window,"unload",i),r(window,"message",s),{close:i,focus:function(){if(_)try{_.focus()}catch(e){}}}}}function c(e){function t(e){e=(0,f.default)(e),m?u.doPost(e,o):u.postMessage(e,o)}function n(i){var r;try{r=JSON.parse(i.data)}catch(e){}r&&"request"===r.a&&(a(window,"message",n),o=i.origin,e&&global.setTimeout(function(){e(o,r.d,function(n,i){l=!i,e=void 0,t({a:"response",d:n,forceKeepWindowOpen:i})})},0))}function i(e){if(l&&e.data===y)try{window.close()}catch(e){}}var o="*",u=m?s():window.opener,l=!0;if(!u)throw"can't find relay frame";r(m?u:window,"message",n),r(m?u:window,"message",i);try{t({a:"ready"})}catch(e){r(u,"load",function(){t({a:"ready"})})}var c=function(){try{a(m?u:window,"message",i)}catch(e){}e&&t({a:"error",d:"client closed window"}),e=void 0;try{window.close()}catch(e){}};return r(window,"unload",c),{detach:function(){a(window,"unload",c)}}}function d(){return JSON&&JSON.parse&&f.default&&window.postMessage}Object.defineProperty(t,"__esModule",{value:!0});var h=n(14),f=i(h);t.open=l,t.onOpen=c,t.isAvailable=d;var v=n(4),p=n(11),_=n(9),g="__winchan_relay_frame",y="die",m=function(){var e,t,n=-1,i="undefined"!=typeof navigator?navigator.userAgent||"":"";return"undefined"!=typeof navigator&&"Microsoft Internet Explorer"===navigator.appName?(e=/MSIE ([0-9]+[\.0-9]*)/,t=i.match(e),t&&t.length>1&&(n=parseFloat(t[1]))):i.indexOf("Trident")>-1&&(e=/rv:([0-9]{2}[\.0-9]*)/,t=i.match(e),t&&t.length>1&&(n=parseFloat(t[1]))),n>=8}();t.default={open:l,onOpen:c,isAvailable:d}},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1),o=r(a),s=n(2),u=r(s),l=n(74),c=r(l),d=n(3),h=i(d),f=[c.default],v=function(){function e(t){(0,o.default)(this,e),this.initTransports_(t)}return(0,u.default)(e,[{key:"initTransports_",value:function(e){var t=c.default&&c.default.isAvailable(),n=t&&!c.default.previouslyFailed();if(e.webSocketOnly&&(t||h.warn("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),n=!0),n)this.transports_=[c.default];else{var i=this.transports_=[];h.each(f,function(e,t){t&&t.isAvailable()&&i.push(t)})}}},{key:"initialTransport",value:function(){if(this.transports_.length>0)return this.transports_[0];throw new Error("No transports available")}},{key:"upgradeTransport",value:function(){return this.transports_.length>1?this.transports_[1]:null}}]),e}();t.default=v,e.exports=t.default},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(14),o=r(a),s=n(1),u=r(s),l=n(2),c=r(l),d=n(47),h=i(d),f=n(37),v=n(60),p=r(v),_=n(3),g=i(_),y=n(12),m=16384,b=45e3,k=null;(0,p.default)(),k=n(83).Client;var C=!1,w=function(){function e(t,n,i){(0,u.default)(this,e),this.connId=t,this.log_=g.logWrapper(this.connId),this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.stats_=(0,f.getCollection)(n),this.connURL=(n.secure?"wss://":"ws://")+n.internalHost+"/.ws?"+h.VERSION_PARAM+"="+h.PROTOCOL_VERSION,n.needsQueryParam()&&(this.connURL=this.connURL+"&ns="+n.namespace),i&&(this.connURL=this.connURL+"&"+h.SESSION_PARAM+"="+i)}return(0,c.default)(e,[{key:"responsesRequiredToBeHealthy",get:function(){return 2}},{key:"healthyTimeout",get:function(){return 3e4}}]),(0,c.default)(e,[{key:"open",value:function(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),g.getNodeProxy()?this.mySock=new k(this.connURL,[],{proxy:{origin:g.getNodeProxy(),headers:{"User-Agent":"node"}}}):this.mySock=new k(this.connURL),this.everConnected_=!1,y.PersistentStorage.set("previous_websocket_failure",!0);var n=this;this.mySock.onopen=function(){n.log_("Websocket connected."),n.everConnected_=!0},this.mySock.onclose=function(e){n.log_("Websocket connection was disconnected: "+e.code),n.mySock=null,n.onClosed_()},this.mySock.onmessage=function(e){n.log_("Websocket received a message"),n.handleIncomingFrame(e)},this.mySock.onerror=function(e){n.log_("WebSocket error. Closing connection.");var t=e.message||e.data;t&&n.log_(t),n.onClosed_()}}},{key:"start",value:function(){}},{key:"markConnectionHealthy",value:function(){y.PersistentStorage.remove("previous_websocket_failure")}},{key:"appendFrame_",value:function(e){if(this.frames.push(e),this.frames.length===this.totalFrames){var t=this.frames.join("");this.frames=null;var n=JSON.parse(t);this.onMessage(n)}}},{key:"handleNewFrameCount_",value:function(e){this.totalFrames=e,this.frames=[]}},{key:"extractFrameCount_",value:function(e){if(g.assert(null===this.frames,"We already have a frame buffer"),e.length<=6){var t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}},{key:"handleIncomingFrame",value:function(e){if(null!==this.mySock){var t=e.data;if(this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames)this.appendFrame_(t);else{var n=this.extractFrameCount_(t);null!==n&&this.appendFrame_(n)}}}},{key:"send",value:function(e){this.resetKeepAlive(),this.log_("Sending data");var t=(0,o.default)(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);var n=g.splitStringBySize(t,m);n.length>1&&this.mySock.send(String(n.length));for(var i=0;i<n.length;i++)this.mySock.send(n[i])}},{key:"shutdown_",value:function(){this.isClosed_=!0,this.keepaliveTimer&&(global.clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}},{key:"onClosed_",value:function(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}},{key:"close",value:function(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}},{key:"resetKeepAlive",value:function(){var e=this;global.clearInterval(this.keepaliveTimer),this.keepaliveTimer=global.setInterval(function(){e.mySock&&e.mySock.send("0"),e.resetKeepAlive()},Math.floor(b))}}],[{key:"forceDisallow",value:function(){C=!0}},{key:"isAvailable",value:function(){var e=!1;if("undefined"!=typeof navigator&&navigator.userAgent){var t=/Android ([0-9]*\.[0-9]*)/,n=navigator.userAgent.match(t);n&&n.length>1&&parseFloat(n[1])<4.4&&(e=!0)}return!e&&null!==k&&!C}},{key:"previouslyFailed",value:function(){return y.PersistentStorage.isInMemoryStorage||y.PersistentStorage.get("previous_websocket_failure")===!0}}]),e}();t.default=w,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.exception=void 0;var r=n(1),a=i(r),o=n(2),s=i(o),u=function(){function e(t){(0,a.default)(this,e),this.message=t}return(0,s.default)(e,[{key:"toString",value:function(){return"CORRUPT: "+this.message}}]),e}(),l=function(){function e(t){(0,a.default)(this,e),this.message=t}return(0,s.default)(e,[{key:"toString",value:function(){return"INVALID: "+this.message}}]),e}(),c=function(){function e(t){(0,a.default)(this,e),this.message=t}return(0,s.default)(e,[{key:"toString",value:function(){return"BUG: "+this.message}}]),e}(),d=function(){function e(t){(0,a.default)(this,e),this.message=t}return(0,s.default)(e,[{key:"toString",value:function(){return"NOT READY: "+this.message}}]),e}(),h=t.exception={corrupt:u,invalid:l,bug:c,notReady:d};t.default={exception:h}},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e,t,n){var i,r="",a=0,o=l,u=0,c=s.bitLength(e);for(n&&(o=o.substr(0,62)+"-_"),i=0;6*r.length<c;)r+=o.charAt((u^e[i]>>>a)>>>26),a<6?(u=e[i]<<6-a,a+=26,i++):(u<<=6,a-=6);for(;3&r.length&&!t;)r+="=";return r}function a(e,t){e=e.replace(/\s|=/g,"");var n,i,r=[],a=0,o=l,c=0;for(t&&(o=o.substr(0,62)+"-_"),n=0;n<e.length;n++){if(i=o.indexOf(e.charAt(n)),i<0)throw new u.exception.invalid("this isn't base64!");a>26?(a-=26,r.push(c^i>>>a),c=i<<32-a):(a+=6,c^=i<<32-a)}return 56&a&&r.push(s.partial(56&a,c,1)),r}Object.defineProperty(t,"__esModule",{value:!0}),t.fromBits=r,t.toBits=a;var o=n(27),s=i(o),u=n(75),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){var t,n,i="",r=s.bitLength(e);for(t=0;t<r/8;t++)0===(3&t)&&(n=e[t/4]),i+=String.fromCharCode(n>>>24),n<<=8;return decodeURIComponent(escape(i))}function a(e){e=unescape(encodeURIComponent(e));var t,n=[],i=0;for(t=0;t<e.length;t++)i=i<<8|e.charCodeAt(t),3===(3&t)&&(n.push(i),i=0);return 3&t&&n.push(s.partial(8*(3&t),i)),n}Object.defineProperty(t,"__esModule",{value:!0}),t.fromBits=r,t.toBits=a;var o=n(27),s=i(o)},function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.sha1=void 0;var a=n(1),o=r(a),s=n(2),u=r(s),l=n(27),c=i(l),d=n(77),h=512,f=[1732584193,4023233417,2562383102,271733878,3285377520],v=[1518500249,1859775393,2400959708,3395469782],p=t.sha1=function(){function e(t){(0,o.default)(this,e),t?(this._h=t._h.slice(0),this._buffer=t._buffer.slice(0),this._length=t._length):this.reset()}return(0,u.default)(e,[{key:"reset",value:function(){return this._h=f.slice(0),this._buffer=[],this._length=0,this}},{key:"update",value:function(e){"string"==typeof e&&(e=(0,d.toBits)(e));var t,n=this._buffer=c.concat(this._buffer,e),i=this._length,r=this._length=i+c.bitLength(e);for(t=h+i&-h;t<=r;t+=h)this._block(n.splice(0,16));return this}},{key:"finalize",value:function(){var e,t=this._buffer,n=this._h;for(t=c.concat(t,[c.partial(1,1)]),e=t.length+2;15&e;e++)t.push(0);for(t.push(Math.floor(this._length/4294967296)),t.push(0|this._length);t.length;)this._block(t.splice(0,16));return this.reset(),n}},{key:"_f",value:function(e,t,n,i){return e<=19?t&n|~t&i:e<=39?t^n^i:e<=59?t&n|t&i|n&i:e<=79?t^n^i:void 0}},{key:"_S",value:function(e,t){return t<<e|t>>>32-e}},{key:"_block",value:function(e){var t,n,i,r,a,o,s,u=e.slice(0),l=this._h;for(i=l[0],r=l[1],a=l[2],o=l[3],s=l[4],t=0;t<=79;t++)t>=16&&(u[t]=this._S(1,u[t-3]^u[t-8]^u[t-14]^u[t-16])),n=this._S(5,i)+this._f(t,r,a,o)+s+u[t]+v[Math.floor(t/20)]|0,s=o,o=a,a=this._S(30,r),r=i,i=n;l[0]=l[0]+i|0,l[1]=l[1]+r|0,l[2]=l[2]+a|0,l[3]=l[3]+o|0,l[4]=l[4]+s|0}}],[{key:"hash",value:function(t){return(new e).update(t).finalize()}}]),e}();t.default=p},function(e,t,n){"use strict";function i(e){for(var t,n,i,a=[],o=0,s=0;s<e.length;s++)t=e.charCodeAt(s),t>=55296&&t<=56319&&(n=t-55296,s++,(0,r.assert)(s<e.length,"Surrogate pair missing trail surrogate."),i=e.charCodeAt(s)-56320,t=65536+(n<<10)+i),t<128?a[o++]=t:t<2048?(a[o++]=t>>6|192,a[o++]=63&t|128):t<65536?(a[o++]=t>>12|224,a[o++]=t>>6&63|128,a[o++]=63&t|128):(a[o++]=t>>18|240,a[o++]=t>>12&63|128,a[o++]=t>>6&63|128,a[o++]=63&t|128);return a}Object.defineProperty(t,"__esModule",{value:!0}),t.stringToByteArray=i;var r=n(3);t.default={stringToByteArray:i}},function(e,t){e.exports=require("_stream_duplex")},function(e,t){e.exports=require("_stream_writable")},function(e,t){e.exports=require("babel-runtime/core-js/promise")},function(e,t){e.exports=require("faye-websocket")},function(e,t){e.exports=require("request")}]);