test_track_rails_client 0.9.4 → 0.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- !function(a){var b="object"==typeof exports&&exports,c="object"==typeof module&&module&&module.exports==b&&module,d="object"==typeof global&&global;d.global!==d&&d.window!==d||(a=d);var e=function(a){this.message=a};e.prototype=new Error,e.prototype.name="InvalidCharacterError";var f=function(a){throw new e(a)},g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=/[\t\n\f\r ]/g,i=function(a){a=String(a).replace(h,"");var b=a.length;b%4==0&&(a=a.replace(/==?$/,""),b=a.length),(b%4==1||/[^+a-zA-Z0-9/]/.test(a))&&f("Invalid character: the string to be decoded is not correctly encoded.");for(var c,d,e=0,i="",j=-1;++j<b;)d=g.indexOf(a.charAt(j)),c=e%4?64*c+d:d,e++%4&&(i+=String.fromCharCode(255&c>>(-2*e&6)));return i},j=function(a){a=String(a),/[^\0-\xFF]/.test(a)&&f("The string to be encoded contains characters outside of the Latin1 range.");for(var b,c,d,e,h=a.length%3,i="",j=-1,k=a.length-h;++j<k;)b=a.charCodeAt(j)<<16,c=a.charCodeAt(++j)<<8,d=a.charCodeAt(++j),e=b+c+d,i+=g.charAt(e>>18&63)+g.charAt(e>>12&63)+g.charAt(e>>6&63)+g.charAt(63&e);return 2==h?(b=a.charCodeAt(j)<<8,c=a.charCodeAt(++j),e=b+c,i+=g.charAt(e>>10)+g.charAt(e>>4&63)+g.charAt(e<<2&63)+"="):1==h&&(e=a.charCodeAt(j),i+=g.charAt(e>>2)+g.charAt(e<<4&63)+"=="),i},k={encode:j,decode:i,version:"0.1.0"};if("function"==typeof define&&"object"==typeof define.amd&&define.amd)define(function(){return k});else if(b&&!b.nodeType)if(c)c.exports=k;else for(var l in k)k.hasOwnProperty(l)&&(b[l]=k[l]);else a.base64=k}(this),function(a){"use strict";function b(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c}function c(a,b){return a<<b|a>>>32-b}function d(a,d,e,f,g,h){return b(c(b(b(d,a),b(f,h)),g),e)}function e(a,b,c,e,f,g,h){return d(b&c|~b&e,a,b,f,g,h)}function f(a,b,c,e,f,g,h){return d(b&e|c&~e,a,b,f,g,h)}function g(a,b,c,e,f,g,h){return d(b^c^e,a,b,f,g,h)}function h(a,b,c,e,f,g,h){return d(c^(b|~e),a,b,f,g,h)}function i(a,c){a[c>>5]|=128<<c%32,a[(c+64>>>9<<4)+14]=c;var d,i,j,k,l,m=1732584193,n=-271733879,o=-1732584194,p=271733878;for(d=0;d<a.length;d+=16)i=m,j=n,k=o,l=p,m=e(m,n,o,p,a[d],7,-680876936),p=e(p,m,n,o,a[d+1],12,-389564586),o=e(o,p,m,n,a[d+2],17,606105819),n=e(n,o,p,m,a[d+3],22,-1044525330),m=e(m,n,o,p,a[d+4],7,-176418897),p=e(p,m,n,o,a[d+5],12,1200080426),o=e(o,p,m,n,a[d+6],17,-1473231341),n=e(n,o,p,m,a[d+7],22,-45705983),m=e(m,n,o,p,a[d+8],7,1770035416),p=e(p,m,n,o,a[d+9],12,-1958414417),o=e(o,p,m,n,a[d+10],17,-42063),n=e(n,o,p,m,a[d+11],22,-1990404162),m=e(m,n,o,p,a[d+12],7,1804603682),p=e(p,m,n,o,a[d+13],12,-40341101),o=e(o,p,m,n,a[d+14],17,-1502002290),n=e(n,o,p,m,a[d+15],22,1236535329),m=f(m,n,o,p,a[d+1],5,-165796510),p=f(p,m,n,o,a[d+6],9,-1069501632),o=f(o,p,m,n,a[d+11],14,643717713),n=f(n,o,p,m,a[d],20,-373897302),m=f(m,n,o,p,a[d+5],5,-701558691),p=f(p,m,n,o,a[d+10],9,38016083),o=f(o,p,m,n,a[d+15],14,-660478335),n=f(n,o,p,m,a[d+4],20,-405537848),m=f(m,n,o,p,a[d+9],5,568446438),p=f(p,m,n,o,a[d+14],9,-1019803690),o=f(o,p,m,n,a[d+3],14,-187363961),n=f(n,o,p,m,a[d+8],20,1163531501),m=f(m,n,o,p,a[d+13],5,-1444681467),p=f(p,m,n,o,a[d+2],9,-51403784),o=f(o,p,m,n,a[d+7],14,1735328473),n=f(n,o,p,m,a[d+12],20,-1926607734),m=g(m,n,o,p,a[d+5],4,-378558),p=g(p,m,n,o,a[d+8],11,-2022574463),o=g(o,p,m,n,a[d+11],16,1839030562),n=g(n,o,p,m,a[d+14],23,-35309556),m=g(m,n,o,p,a[d+1],4,-1530992060),p=g(p,m,n,o,a[d+4],11,1272893353),o=g(o,p,m,n,a[d+7],16,-155497632),n=g(n,o,p,m,a[d+10],23,-1094730640),m=g(m,n,o,p,a[d+13],4,681279174),p=g(p,m,n,o,a[d],11,-358537222),o=g(o,p,m,n,a[d+3],16,-722521979),n=g(n,o,p,m,a[d+6],23,76029189),m=g(m,n,o,p,a[d+9],4,-640364487),p=g(p,m,n,o,a[d+12],11,-421815835),o=g(o,p,m,n,a[d+15],16,530742520),n=g(n,o,p,m,a[d+2],23,-995338651),m=h(m,n,o,p,a[d],6,-198630844),p=h(p,m,n,o,a[d+7],10,1126891415),o=h(o,p,m,n,a[d+14],15,-1416354905),n=h(n,o,p,m,a[d+5],21,-57434055),m=h(m,n,o,p,a[d+12],6,1700485571),p=h(p,m,n,o,a[d+3],10,-1894986606),o=h(o,p,m,n,a[d+10],15,-1051523),n=h(n,o,p,m,a[d+1],21,-2054922799),m=h(m,n,o,p,a[d+8],6,1873313359),p=h(p,m,n,o,a[d+15],10,-30611744),o=h(o,p,m,n,a[d+6],15,-1560198380),n=h(n,o,p,m,a[d+13],21,1309151649),m=h(m,n,o,p,a[d+4],6,-145523070),p=h(p,m,n,o,a[d+11],10,-1120210379),o=h(o,p,m,n,a[d+2],15,718787259),n=h(n,o,p,m,a[d+9],21,-343485551),m=b(m,i),n=b(n,j),o=b(o,k),p=b(p,l);return[m,n,o,p]}function j(a){var b,c="";for(b=0;b<32*a.length;b+=8)c+=String.fromCharCode(a[b>>5]>>>b%32&255);return c}function k(a){var b,c=[];for(c[(a.length>>2)-1]=void 0,b=0;b<c.length;b+=1)c[b]=0;for(b=0;b<8*a.length;b+=8)c[b>>5]|=(255&a.charCodeAt(b/8))<<b%32;return c}function l(a){return j(i(k(a),8*a.length))}function m(a,b){var c,d,e=k(a),f=[],g=[];for(f[15]=g[15]=void 0,e.length>16&&(e=i(e,8*a.length)),c=0;c<16;c+=1)f[c]=909522486^e[c],g[c]=1549556828^e[c];return d=i(f.concat(k(b)),512+8*b.length),j(i(g.concat(d),640))}function n(a){var b,c,d="0123456789abcdef",e="";for(c=0;c<a.length;c+=1)b=a.charCodeAt(c),e+=d.charAt(b>>>4&15)+d.charAt(15&b);return e}function o(a){return unescape(encodeURIComponent(a))}function p(a){return l(o(a))}function q(a){return n(p(a))}function r(a,b){return m(o(a),o(b))}function s(a,b){return n(r(a,b))}function t(a,b,c){return b?c?r(b,a):s(b,a):c?p(a):q(a)}"function"==typeof define&&define.amd?define(function(){return t}):a.md5=t}(this),function(){function a(a,b,c){var d=b&&c||0,e=0;for(b=b||[],a.toLowerCase().replace(/[0-9a-f]{2}/g,function(a){e<16&&(b[d+e++]=m[a])});e<16;)b[d+e++]=0;return b}function b(a,b){var c=b||0,d=l;return d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]}function c(a,c,d){var e=c&&d||0,f=c||[];a=a||{};var g=null!=a.clockseq?a.clockseq:q,h=null!=a.msecs?a.msecs:(new Date).getTime(),i=null!=a.nsecs?a.nsecs:s+1,j=h-r+(i-s)/1e4;if(j<0&&null==a.clockseq&&(g=g+1&16383),(j<0||h>r)&&null==a.nsecs&&(i=0),i>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");r=h,s=i,q=g,h+=122192928e5;var k=(1e4*(268435455&h)+i)%4294967296;f[e++]=k>>>24&255,f[e++]=k>>>16&255,f[e++]=k>>>8&255,f[e++]=255&k;var l=h/4294967296*1e4&268435455;f[e++]=l>>>8&255,f[e++]=255&l,f[e++]=l>>>24&15|16,f[e++]=l>>>16&255,f[e++]=g>>>8|128,f[e++]=255&g;for(var m=a.node||p,n=0;n<6;n++)f[e+n]=m[n];return c?c:b(f)}function d(a,c,d){var f=c&&d||0;"string"==typeof a&&(c="binary"==a?new k(16):null,a=null),a=a||{};var g=a.random||(a.rng||e)();if(g[6]=15&g[6]|64,g[8]=63&g[8]|128,c)for(var h=0;h<16;h++)c[f+h]=g[h];return c||b(g)}var e,f=this;if("function"==typeof f.require)try{var g=f.require("crypto").randomBytes;e=g&&function(){return g(16)}}catch(h){}if(!e&&f.crypto&&crypto.getRandomValues){var i=new Uint8Array(16);e=function(){return crypto.getRandomValues(i),i}}if(!e){var j=new Array(16);e=function(){for(var a,b=0;b<16;b++)0===(3&b)&&(a=4294967296*Math.random()),j[b]=a>>>((3&b)<<3)&255;return j}}for(var k="function"==typeof f.Buffer?f.Buffer:Array,l=[],m={},n=0;n<256;n++)l[n]=(n+256).toString(16).substr(1),m[l[n]]=n;var o=e(),p=[1|o[0],o[1],o[2],o[3],o[4],o[5]],q=16383&(o[6]<<8|o[7]),r=0,s=0,t=d;if(t.v1=c,t.v4=d,t.parse=a,t.unparse=b,t.BufferClass=k,"function"==typeof define&&define.amd)define(function(){return t});else if("undefined"!=typeof module&&module.exports)module.exports=t;else{var u=f.uuid;t.noConflict=function(){return f.uuid=u,t},f.uuid=t}}.call(this),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;n<o;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0!==a.cookie(b)&&(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}),function(a,b){"function"==typeof define&&define.amd?define(["node-uuid","blueimp-md5","jquery","base-64","jquery.cookie"],b):a.TestTrack=b(a.uuid,a.md5,a.jQuery,a.base64)}(this,function(a,b,c,d){"use strict";if("undefined"==typeof a)throw new Error('TestTrack depends on node-uuid. Make sure you are including "bower_components/node-uuid/uuid.js"');if("undefined"==typeof b)throw new Error('TestTrack depends on blueimp-md5. Make sure you are including "bower_components/blueimp-md5/js/md5.js"');if("undefined"==typeof c)throw new Error('TestTrack depends on jquery. You can use your own copy of jquery or the one in "bower_components/jquery/dist/jquery.js"');if("function"!=typeof c.cookie)throw new Error("TestTrack depends on jquery.cookie. You can user your own copy of jquery.cooke or the one in bower_components/jquery.cookie/jquery.cookie.js");if("undefined"==typeof d)throw new Error('TestTrack depends on base-64. Make sure you are including "bower_components/base-64/base64.js"');!function(){Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d?this:a,b.concat(Array.prototype.slice.call(arguments)))};return this.prototype&&(d.prototype=this.prototype),e.prototype=new d,e})}();var e=function(){var a=function(){};return a.prototype.trackAssignment=function(a,b,c){var d={TTVisitorID:a,SplitName:b.getSplitName(),SplitVariant:b.getVariant(),SplitContext:b.getContext()};window.mixpanel&&window.mixpanel.track("SplitAssigned",d,c)},a.prototype.identify=function(a){window.mixpanel&&window.mixpanel.identify(a)},a.prototype.alias=function(a){window.mixpanel&&window.mixpanel.alias(a)},a}(),f=function(){var a=function(a){if(!a.splitName)throw new Error("must provide splitName");if(!a.hasOwnProperty("variant"))throw new Error("must provide variant");if(!a.hasOwnProperty("isUnsynced"))throw new Error("must provide isUnsynced");this._splitName=a.splitName,this._variant=a.variant,this._context=a.context,this._isUnsynced=a.isUnsynced};return a.fromJsonArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(new f({splitName:a[c].split_name,variant:a[c].variant,context:a[c].context,isUnsynced:a[c].unsynced}));return b},a.prototype.getSplitName=function(){return this._splitName},a.prototype.getVariant=function(){return this._variant},a.prototype.setVariant=function(a){this._variant=a},a.prototype.getContext=function(){return this._context},a.prototype.setContext=function(a){this._context=a},a.prototype.isUnsynced=function(){return this._isUnsynced},a.prototype.setUnsynced=function(a){this._isUnsynced=a},a}(),g=function(){var a=function(){};return a.prototype.getConfig=function(){return"function"==typeof window.atob?JSON.parse(window.atob(window.TT)):JSON.parse(d.decode(window.TT))},a}(),h=function(){var a,b,c=function(){if(!a){var b=new g;a=b.getConfig()}return a};return{getUrl:function(){return c().url},getCookieDomain:function(){return c().cookieDomain},getSplitRegistry:function(){return c().registry},getAssignments:function(){var a=c().assignments;if(!a)return null;if(!b){b=[];for(var d in a)b.push(new f({splitName:d,variant:a[d],isUnsynced:!1}))}return b}}}(),i=function(){var a=function(a){if(this.visitor=a.visitor,this.splitName=a.splitName,!this.visitor)throw new Error("must provide visitor");if(!this.splitName)throw new Error("must provide splitName")};return a.prototype.getVariant=function(){if(!h.getSplitRegistry())return null;for(var a=0,b=this.getAssignmentBucket(),c=this.getWeighting(),d=this.getSortedVariants(),e=0;e<d.length;e++){var f=d[e];if(a+=c[f],a>b)return f}throw new Error("Assignment bucket out of range. "+b+" unmatched in "+this.splitName+": "+JSON.stringify(c))},a.prototype.getSplitVisitorHash=function(){return b(this.splitName+this.visitor.getId())},a.prototype.getHashFixnum=function(){return parseInt(this.getSplitVisitorHash().substr(0,8),16)},a.prototype.getAssignmentBucket=function(){return this.getHashFixnum()%100},a.prototype.getSortedVariants=function(){return this.getVariants().sort()},a.prototype.getVariants=function(){return Object.getOwnPropertyNames(this.getWeighting())},a.prototype.getWeighting=function(){var a=h.getSplitRegistry()[this.splitName];if(!a){var b='Unknown split: "'+this.splitName+'"';throw this.visitor.logError(b),new Error(b)}return a},a}(),j=function(){var a=function(a){if(a=a||{},this._visitor=a.visitor,this._assignment=a.assignment,!this._visitor)throw new Error("must provide visitor");if(!this._assignment)throw new Error("must provide assignment")};return a.prototype.send=function(){this.persistAssignment(),this._visitor.analytics.trackAssignment(this._visitor.getId(),this._assignment,function(a){this.persistAssignment(a?"success":"failure")}.bind(this))},a.prototype.persistAssignment=function(a){return c.ajax(h.getUrl()+"/api/v1/assignment_event",{method:"POST",dataType:"json",crossDomain:!0,data:{visitor_id:this._visitor.getId(),split_name:this._assignment.getSplitName(),context:this._assignment.getContext(),mixpanel_result:a}}).fail(function(a,b,c){var d=a&&a.status,e=a&&a.responseText;this._visitor.logError("test_track persistAssignment error: "+[a,d,e,b,c].join(", "))}.bind(this))},a}(),k=function(){var b=function(a){if(a=a||{},this._id=a.id,this._assignments=a.assignments,this._ttOffline=a.ttOffline,!this._id)throw new Error("must provide id");if(!this._assignments)throw new Error("must provide assignments");this._errorLogger=function(a){window.console.error(a)},this.analytics=new e};return b.loadVisitor=function(b){var d=c.Deferred(),e=function(a){d.resolve(new k(a))};return b?h.getAssignments()?e({id:b,assignments:h.getAssignments(),ttOffline:!1}):c.ajax(h.getUrl()+"/api/v1/visitors/"+b,{method:"GET",timeout:5e3}).done(function(a){e({id:a.id,assignments:f.fromJsonArray(a.assignments),ttOffline:!1})}).fail(function(){e({id:b,assignments:[],ttOffline:!0})}):e({id:a.v4(),assignments:[],ttOffline:!1}),d.promise()},b.prototype.getId=function(){return this._id},b.prototype.getAssignmentRegistry=function(){if(!this._assignmentRegistry){for(var a={},b=0;b<this._assignments.length;b++){var c=this._assignments[b];a[c.getSplitName()]=c}this._assignmentRegistry=a}return this._assignmentRegistry},b.prototype.vary=function(a,b){if("object"!=typeof b.variants)throw new Error("must provide variants object to `vary` for "+a);if(!b.context)throw new Error("must provide context to `vary` for "+a);if(!b.defaultVariant&&b.defaultVariant!==!1)throw new Error("must provide defaultVariant to `vary` for "+a);var c=b.defaultVariant.toString(),d=b.variants,e=b.context;if(!d.hasOwnProperty(c))throw new Error("defaultVariant: "+c+" must be represented in variants object");var f=this._getAssignmentFor(a,e),g=new n({assignment:f,visitor:this});for(var h in d)d.hasOwnProperty(h)&&(h===c?g.default(h,d[h]):g.when(h,d[h]));g.run(),g.isDefaulted()&&(f.setVariant(g.getDefaultVariant()),f.setUnsynced(!0),f.setContext(e)),this.notifyUnsyncedAssignments()},b.prototype.ab=function(a,b){var c=new o({splitName:a,trueVariant:b.trueVariant,visitor:this}),d=c.getVariants(),e={};e[d.true]=function(){b.callback(!0)},e[d.false]=function(){b.callback(!1)},this.vary(a,{context:b.context,variants:e,defaultVariant:d.false})},b.prototype.setErrorLogger=function(a){if("function"!=typeof a)throw new Error("must provide function for errorLogger");this._errorLogger=a},b.prototype.logError=function(a){this._errorLogger.call(null,a)},b.prototype.linkIdentifier=function(a,b){var d=c.Deferred(),e=new m({visitorId:this.getId(),identifierType:a,value:b});return e.save().then(function(a){this._merge(a),this.notifyUnsyncedAssignments(),d.resolve()}.bind(this)),d.promise()},b.prototype.setAnalytics=function(a){if("object"!=typeof a)throw new Error("must provide object for setAnalytics");this.analytics=a},b.prototype.notifyUnsyncedAssignments=function(){for(var a=this._getUnsyncedAssignments(),b=0;b<a.length;b++)this._notify(a[b])},b.prototype._getUnsyncedAssignments=function(){var a=[],b=this.getAssignmentRegistry();return Object.keys(b).forEach(function(c){var d=b[c];d.isUnsynced()&&a.push(d)}),a},b.prototype._merge=function(a){var b=this.getAssignmentRegistry(),c=a.getAssignmentRegistry();this._id=a.getId();for(var d in c)c.hasOwnProperty(d)&&(b[d]=c[d])},b.prototype._getAssignmentFor=function(a,b){return this.getAssignmentRegistry()[a]||this._generateAssignmentFor(a,b)},b.prototype._generateAssignmentFor=function(a,b){var c=new i({visitor:this,splitName:a}).getVariant();c||(this._ttOffline=!0);var d=new f({splitName:a,variant:c,context:b,isUnsynced:!0});return this._assignments.push(d),this._assignmentRegistry=null,d},b.prototype._notify=function(a){try{if(this._ttOffline)return;var b=new j({visitor:this,assignment:a});b.send(),a.setUnsynced(!1)}catch(c){this.logError("test_track notify error: "+c)}},b}(),l=function(){var a="tt_visitor_id",b=function(){this._visitorDeferred=c.Deferred()};return b.prototype.initialize=function(b){var d=c.cookie(a);this._visitorDeferred.then(function(a){a.notifyUnsyncedAssignments()}),k.loadVisitor(d).then(function(a){b&&b.analytics&&a.setAnalytics(b.analytics),b&&b.errorLogger&&a.setErrorLogger(b.errorLogger),b&&"function"==typeof b.onVisitorLoaded&&b.onVisitorLoaded.call(null,a),this._visitorDeferred.resolve(a)}.bind(this)),this._setCookie()},b.prototype.vary=function(a,b){this._visitorDeferred.then(function(c){c.vary(a,b)})},b.prototype.ab=function(a,b){this._visitorDeferred.then(function(c){c.ab(a,b)})},b.prototype.logIn=function(a,b){var d=c.Deferred();return this._visitorDeferred.then(function(c){c.linkIdentifier(a,b).then(function(){this._setCookie(),c.analytics.identify(c.getId()),d.resolve()}.bind(this))}.bind(this)),d.promise()},b.prototype.signUp=function(a,b){var d=c.Deferred();return this._visitorDeferred.then(function(c){c.linkIdentifier(a,b).then(function(){this._setCookie(),c.analytics.alias(c.getId()),d.resolve()}.bind(this))}.bind(this)),d.promise()},b.prototype._setCookie=function(){this._visitorDeferred.then(function(b){c.cookie(a,b.getId(),{expires:365,path:"/",domain:h.getCookieDomain()})})},b.prototype.getPublicAPI=function(){return{vary:this.vary.bind(this),ab:this.ab.bind(this),logIn:this.logIn.bind(this),signUp:this.signUp.bind(this),initialize:this.initialize.bind(this),_crx:{loadInfo:function(){var a=c.Deferred();return this._visitorDeferred.then(function(b){var c={};for(var d in b.getAssignmentRegistry())c[d]=b.getAssignmentRegistry()[d].getVariant();a.resolve({visitorId:b.getId(),splitRegistry:h.getSplitRegistry(),assignmentRegistry:c})}),a.promise()}.bind(this),persistAssignment:function(a,b){var d=c.Deferred();return this._visitorDeferred.then(function(c){var e=new j({visitor:c,assignment:new f({splitName:a,variant:b,context:"chrome_extension",isUnsynced:!0})});e.persistAssignment().then(function(){d.resolve()})}),d.promise()}.bind(this)}}},b}(),m=function(){var a=function(a){if(this.visitorId=a.visitorId,this.identifierType=a.identifierType,this.value=a.value,!this.visitorId)throw new Error("must provide visitorId");if(!this.identifierType)throw new Error("must provide identifierType");if(!this.value)throw new Error("must provide value")};return a.prototype.save=function(a,b){var d=c.Deferred();return c.ajax(h.getUrl()+"/api/v1/identifier",{method:"POST",dataType:"json",crossDomain:!0,data:{identifier_type:this.identifierType,value:this.value,visitor_id:this.visitorId}}).then(function(a){var b=new k({id:a.visitor.id,assignments:f.fromJsonArray(a.visitor.assignments)});d.resolve(b)}),d.promise()},a}(),n=function(){var a=function(a){if(!a.assignment)throw new Error("must provide assignment");if(!a.visitor)throw new Error("must provide visitor");this._assignment=a.assignment,this._visitor=a.visitor,this._splitRegistry=h.getSplitRegistry(),this._variantHandlers={}};return a.prototype.when=function(){var a=Array.prototype.slice.call(arguments,0),b=a.length-1,c="function"!=typeof a[0]&&a.length>0,d=c?a.slice(0,Math.max(1,b)):[],e=a[b];if(0===d.length)throw new Error("must provide at least one variant");for(var f=0;f<d.length;f++)this._assignHandlerToVariant(d[f],e)},a.prototype.default=function(a,b){if(this._defaultVariant)throw new Error("must provide exactly one `default`");this._defaultVariant=this._assignHandlerToVariant(a,b)},a.prototype.run=function(){this._validate();var a;this._variantHandlers[this._assignment.getVariant()]?a=this._variantHandlers[this._assignment.getVariant()]:(a=this._variantHandlers[this.getDefaultVariant()],this._defaulted=!0),a()},a.prototype.isDefaulted=function(){return this._defaulted||!1},a.prototype.getDefaultVariant=function(){return this._defaultVariant},a.prototype._assignHandlerToVariant=function(a,b){if("function"!=typeof b)throw new Error("must provide handler for "+a);return a=a.toString(),this._getSplit()&&!this._getSplit().hasOwnProperty(a)&&this._visitor.logError("configures unknown variant "+a),this._variantHandlers[a]=b,a},a.prototype._validate=function(){if(!this.getDefaultVariant())throw new Error("must provide exactly one `default`");if(this._getVariants().length<2)throw new Error("must provide at least one `when`");if(this._getSplit()){var a=this._getMissingVariants();if(a.length>0){var b=a.join(", ").replace(/, (.+)$/," and $1");this._visitor.logError("does not configure variants "+b)}}},a.prototype._getSplit=function(){return this._splitRegistry?this._splitRegistry[this._assignment.getSplitName()]:null},a.prototype._getVariants=function(){return Object.getOwnPropertyNames(this._variantHandlers)},a.prototype._getMissingVariants=function(){for(var a=this._getVariants(),b=this._getSplit(),c=Object.getOwnPropertyNames(b),d=[],e=0;e<c.length;e++){var f=c[e];a.indexOf(f)===-1&&d.push(f)}return d},a}(),o=function(){var a=function(a){if(!a.splitName)throw new Error("must provide splitName");if(!a.hasOwnProperty("trueVariant"))throw new Error("must provide trueVariant");if(!a.visitor)throw new Error("must provide visitor");this._splitName=a.splitName,this._trueVariant=a.trueVariant,this._visitor=a.visitor,this._splitRegistry=h.getSplitRegistry()};return a.prototype.getVariants=function(){var a=this._getSplitVariants();return a&&a.length>2&&this._visitor.logError("A/B for "+this._splitName+" configures split with more than 2 variants"),{true:this._getTrueVariant(),false:this._getFalseVariant()}},a.prototype._getTrueVariant=function(){return this._trueVariant||!0},a.prototype._getFalseVariant=function(){var a=this._getNonTrueVariants();return!!a&&a.sort()[0]},a.prototype._getNonTrueVariants=function(){var a=this._getSplitVariants();if(a){var b=this._getTrueVariant(),c=a.indexOf(b);return c!==-1&&a.splice(c,1),a}return null},a.prototype._getSplit=function(){return this._splitRegistry?this._splitRegistry[this._splitName]:null},a.prototype._getSplitVariants=function(){return this._getSplit()&&Object.getOwnPropertyNames(this._getSplit())},a}(),p=(new l).getPublicAPI(),q=function(){window.dispatchEvent(new CustomEvent("tt:lib:loaded",{detail:{TestTrack:p}}))};try{c(document).ready(function(){c(document.body).addClass("_tt");try{window.dispatchEvent(new CustomEvent("tt:class:added"))}catch(a){}}),q(),window.addEventListener("tt:listener:ready",q)}catch(r){}return p});
1
+ !function(a){var b="object"==typeof exports&&exports,c="object"==typeof module&&module&&module.exports==b&&module,d="object"==typeof global&&global;d.global!==d&&d.window!==d||(a=d);var e=function(a){this.message=a};e.prototype=new Error,e.prototype.name="InvalidCharacterError";var f=function(a){throw new e(a)},g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=/[\t\n\f\r ]/g,i=function(a){a=String(a).replace(h,"");var b=a.length;b%4==0&&(a=a.replace(/==?$/,""),b=a.length),(b%4==1||/[^+a-zA-Z0-9/]/.test(a))&&f("Invalid character: the string to be decoded is not correctly encoded.");for(var c,d,e=0,i="",j=-1;++j<b;)d=g.indexOf(a.charAt(j)),c=e%4?64*c+d:d,e++%4&&(i+=String.fromCharCode(255&c>>(-2*e&6)));return i},j=function(a){a=String(a),/[^\0-\xFF]/.test(a)&&f("The string to be encoded contains characters outside of the Latin1 range.");for(var b,c,d,e,h=a.length%3,i="",j=-1,k=a.length-h;++j<k;)b=a.charCodeAt(j)<<16,c=a.charCodeAt(++j)<<8,d=a.charCodeAt(++j),e=b+c+d,i+=g.charAt(e>>18&63)+g.charAt(e>>12&63)+g.charAt(e>>6&63)+g.charAt(63&e);return 2==h?(b=a.charCodeAt(j)<<8,c=a.charCodeAt(++j),e=b+c,i+=g.charAt(e>>10)+g.charAt(e>>4&63)+g.charAt(e<<2&63)+"="):1==h&&(e=a.charCodeAt(j),i+=g.charAt(e>>2)+g.charAt(e<<4&63)+"=="),i},k={encode:j,decode:i,version:"0.1.0"};if("function"==typeof define&&"object"==typeof define.amd&&define.amd)define(function(){return k});else if(b&&!b.nodeType)if(c)c.exports=k;else for(var l in k)k.hasOwnProperty(l)&&(b[l]=k[l]);else a.base64=k}(this),function(a){"use strict";function b(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c}function c(a,b){return a<<b|a>>>32-b}function d(a,d,e,f,g,h){return b(c(b(b(d,a),b(f,h)),g),e)}function e(a,b,c,e,f,g,h){return d(b&c|~b&e,a,b,f,g,h)}function f(a,b,c,e,f,g,h){return d(b&e|c&~e,a,b,f,g,h)}function g(a,b,c,e,f,g,h){return d(b^c^e,a,b,f,g,h)}function h(a,b,c,e,f,g,h){return d(c^(b|~e),a,b,f,g,h)}function i(a,c){a[c>>5]|=128<<c%32,a[(c+64>>>9<<4)+14]=c;var d,i,j,k,l,m=1732584193,n=-271733879,o=-1732584194,p=271733878;for(d=0;d<a.length;d+=16)i=m,j=n,k=o,l=p,m=e(m,n,o,p,a[d],7,-680876936),p=e(p,m,n,o,a[d+1],12,-389564586),o=e(o,p,m,n,a[d+2],17,606105819),n=e(n,o,p,m,a[d+3],22,-1044525330),m=e(m,n,o,p,a[d+4],7,-176418897),p=e(p,m,n,o,a[d+5],12,1200080426),o=e(o,p,m,n,a[d+6],17,-1473231341),n=e(n,o,p,m,a[d+7],22,-45705983),m=e(m,n,o,p,a[d+8],7,1770035416),p=e(p,m,n,o,a[d+9],12,-1958414417),o=e(o,p,m,n,a[d+10],17,-42063),n=e(n,o,p,m,a[d+11],22,-1990404162),m=e(m,n,o,p,a[d+12],7,1804603682),p=e(p,m,n,o,a[d+13],12,-40341101),o=e(o,p,m,n,a[d+14],17,-1502002290),n=e(n,o,p,m,a[d+15],22,1236535329),m=f(m,n,o,p,a[d+1],5,-165796510),p=f(p,m,n,o,a[d+6],9,-1069501632),o=f(o,p,m,n,a[d+11],14,643717713),n=f(n,o,p,m,a[d],20,-373897302),m=f(m,n,o,p,a[d+5],5,-701558691),p=f(p,m,n,o,a[d+10],9,38016083),o=f(o,p,m,n,a[d+15],14,-660478335),n=f(n,o,p,m,a[d+4],20,-405537848),m=f(m,n,o,p,a[d+9],5,568446438),p=f(p,m,n,o,a[d+14],9,-1019803690),o=f(o,p,m,n,a[d+3],14,-187363961),n=f(n,o,p,m,a[d+8],20,1163531501),m=f(m,n,o,p,a[d+13],5,-1444681467),p=f(p,m,n,o,a[d+2],9,-51403784),o=f(o,p,m,n,a[d+7],14,1735328473),n=f(n,o,p,m,a[d+12],20,-1926607734),m=g(m,n,o,p,a[d+5],4,-378558),p=g(p,m,n,o,a[d+8],11,-2022574463),o=g(o,p,m,n,a[d+11],16,1839030562),n=g(n,o,p,m,a[d+14],23,-35309556),m=g(m,n,o,p,a[d+1],4,-1530992060),p=g(p,m,n,o,a[d+4],11,1272893353),o=g(o,p,m,n,a[d+7],16,-155497632),n=g(n,o,p,m,a[d+10],23,-1094730640),m=g(m,n,o,p,a[d+13],4,681279174),p=g(p,m,n,o,a[d],11,-358537222),o=g(o,p,m,n,a[d+3],16,-722521979),n=g(n,o,p,m,a[d+6],23,76029189),m=g(m,n,o,p,a[d+9],4,-640364487),p=g(p,m,n,o,a[d+12],11,-421815835),o=g(o,p,m,n,a[d+15],16,530742520),n=g(n,o,p,m,a[d+2],23,-995338651),m=h(m,n,o,p,a[d],6,-198630844),p=h(p,m,n,o,a[d+7],10,1126891415),o=h(o,p,m,n,a[d+14],15,-1416354905),n=h(n,o,p,m,a[d+5],21,-57434055),m=h(m,n,o,p,a[d+12],6,1700485571),p=h(p,m,n,o,a[d+3],10,-1894986606),o=h(o,p,m,n,a[d+10],15,-1051523),n=h(n,o,p,m,a[d+1],21,-2054922799),m=h(m,n,o,p,a[d+8],6,1873313359),p=h(p,m,n,o,a[d+15],10,-30611744),o=h(o,p,m,n,a[d+6],15,-1560198380),n=h(n,o,p,m,a[d+13],21,1309151649),m=h(m,n,o,p,a[d+4],6,-145523070),p=h(p,m,n,o,a[d+11],10,-1120210379),o=h(o,p,m,n,a[d+2],15,718787259),n=h(n,o,p,m,a[d+9],21,-343485551),m=b(m,i),n=b(n,j),o=b(o,k),p=b(p,l);return[m,n,o,p]}function j(a){var b,c="";for(b=0;b<32*a.length;b+=8)c+=String.fromCharCode(a[b>>5]>>>b%32&255);return c}function k(a){var b,c=[];for(c[(a.length>>2)-1]=void 0,b=0;b<c.length;b+=1)c[b]=0;for(b=0;b<8*a.length;b+=8)c[b>>5]|=(255&a.charCodeAt(b/8))<<b%32;return c}function l(a){return j(i(k(a),8*a.length))}function m(a,b){var c,d,e=k(a),f=[],g=[];for(f[15]=g[15]=void 0,e.length>16&&(e=i(e,8*a.length)),c=0;c<16;c+=1)f[c]=909522486^e[c],g[c]=1549556828^e[c];return d=i(f.concat(k(b)),512+8*b.length),j(i(g.concat(d),640))}function n(a){var b,c,d="0123456789abcdef",e="";for(c=0;c<a.length;c+=1)b=a.charCodeAt(c),e+=d.charAt(b>>>4&15)+d.charAt(15&b);return e}function o(a){return unescape(encodeURIComponent(a))}function p(a){return l(o(a))}function q(a){return n(p(a))}function r(a,b){return m(o(a),o(b))}function s(a,b){return n(r(a,b))}function t(a,b,c){return b?c?r(b,a):s(b,a):c?p(a):q(a)}"function"==typeof define&&define.amd?define(function(){return t}):a.md5=t}(this),function(){function a(a,b,c){var d=b&&c||0,e=0;for(b=b||[],a.toLowerCase().replace(/[0-9a-f]{2}/g,function(a){e<16&&(b[d+e++]=m[a])});e<16;)b[d+e++]=0;return b}function b(a,b){var c=b||0,d=l;return d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]}function c(a,c,d){var e=c&&d||0,f=c||[];a=a||{};var g=null!=a.clockseq?a.clockseq:q,h=null!=a.msecs?a.msecs:(new Date).getTime(),i=null!=a.nsecs?a.nsecs:s+1,j=h-r+(i-s)/1e4;if(j<0&&null==a.clockseq&&(g=g+1&16383),(j<0||h>r)&&null==a.nsecs&&(i=0),i>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");r=h,s=i,q=g,h+=122192928e5;var k=(1e4*(268435455&h)+i)%4294967296;f[e++]=k>>>24&255,f[e++]=k>>>16&255,f[e++]=k>>>8&255,f[e++]=255&k;var l=h/4294967296*1e4&268435455;f[e++]=l>>>8&255,f[e++]=255&l,f[e++]=l>>>24&15|16,f[e++]=l>>>16&255,f[e++]=g>>>8|128,f[e++]=255&g;for(var m=a.node||p,n=0;n<6;n++)f[e+n]=m[n];return c?c:b(f)}function d(a,c,d){var f=c&&d||0;"string"==typeof a&&(c="binary"==a?new k(16):null,a=null),a=a||{};var g=a.random||(a.rng||e)();if(g[6]=15&g[6]|64,g[8]=63&g[8]|128,c)for(var h=0;h<16;h++)c[f+h]=g[h];return c||b(g)}var e,f=this;if("function"==typeof f.require)try{var g=f.require("crypto").randomBytes;e=g&&function(){return g(16)}}catch(h){}if(!e&&f.crypto&&crypto.getRandomValues){var i=new Uint8Array(16);e=function(){return crypto.getRandomValues(i),i}}if(!e){var j=new Array(16);e=function(){for(var a,b=0;b<16;b++)0===(3&b)&&(a=4294967296*Math.random()),j[b]=a>>>((3&b)<<3)&255;return j}}for(var k="function"==typeof f.Buffer?f.Buffer:Array,l=[],m={},n=0;n<256;n++)l[n]=(n+256).toString(16).substr(1),m[l[n]]=n;var o=e(),p=[1|o[0],o[1],o[2],o[3],o[4],o[5]],q=16383&(o[6]<<8|o[7]),r=0,s=0,t=d;if(t.v1=c,t.v4=d,t.parse=a,t.unparse=b,t.BufferClass=k,"function"==typeof define&&define.amd)define(function(){return t});else if("undefined"!=typeof module&&module.exports)module.exports=t;else{var u=f.uuid;t.noConflict=function(){return f.uuid=u,t},f.uuid=t}}.call(this),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;n<o;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0!==a.cookie(b)&&(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}),function(a,b){"function"==typeof define&&define.amd?define(["node-uuid","blueimp-md5","jquery","base-64","jquery.cookie"],b):a.TestTrack=b(a.uuid,a.md5,a.jQuery,a.base64)}(this,function(a,b,c,d){"use strict";if("undefined"==typeof a)throw new Error('TestTrack depends on node-uuid. Make sure you are including "bower_components/node-uuid/uuid.js"');if("undefined"==typeof b)throw new Error('TestTrack depends on blueimp-md5. Make sure you are including "bower_components/blueimp-md5/js/md5.js"');if("undefined"==typeof c)throw new Error('TestTrack depends on jquery. You can use your own copy of jquery or the one in "bower_components/jquery/dist/jquery.js"');if("function"!=typeof c.cookie)throw new Error("TestTrack depends on jquery.cookie. You can user your own copy of jquery.cooke or the one in bower_components/jquery.cookie/jquery.cookie.js");if("undefined"==typeof d)throw new Error('TestTrack depends on base-64. Make sure you are including "bower_components/base-64/base64.js"');!function(){Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d?this:a,b.concat(Array.prototype.slice.call(arguments)))};return this.prototype&&(d.prototype=this.prototype),e.prototype=new d,e})}();var e=function(){var a=function(){};return a.prototype.trackAssignment=function(a,b,c){var d={TTVisitorID:a,SplitName:b.getSplitName(),SplitVariant:b.getVariant(),SplitContext:b.getContext()};window.mixpanel&&window.mixpanel.track("SplitAssigned",d,c)},a.prototype.identify=function(a){window.mixpanel&&window.mixpanel.identify(a)},a.prototype.alias=function(a){window.mixpanel&&window.mixpanel.alias(a)},a}(),f=function(){var a=function(a){if(!a.splitName)throw new Error("must provide splitName");if(!a.hasOwnProperty("variant"))throw new Error("must provide variant");if(!a.hasOwnProperty("isUnsynced"))throw new Error("must provide isUnsynced");this._splitName=a.splitName,this._variant=a.variant,this._context=a.context,this._isUnsynced=a.isUnsynced};return a.fromJsonArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(new f({splitName:a[c].split_name,variant:a[c].variant,context:a[c].context,isUnsynced:a[c].unsynced}));return b},a.prototype.getSplitName=function(){return this._splitName},a.prototype.getVariant=function(){return this._variant},a.prototype.setVariant=function(a){this._variant=a},a.prototype.getContext=function(){return this._context},a.prototype.setContext=function(a){this._context=a},a.prototype.isUnsynced=function(){return this._isUnsynced},a.prototype.setUnsynced=function(a){this._isUnsynced=a},a}(),g=function(){var a=function(){};return a.prototype.getConfig=function(){return"function"==typeof window.atob?JSON.parse(window.atob(window.TT)):JSON.parse(d.decode(window.TT))},a}(),h=function(){var a,b,c=function(){if(!a){var b=new g;a=b.getConfig()}return a};return{getUrl:function(){return c().url},getCookieDomain:function(){return c().cookieDomain},getSplitRegistry:function(){return c().registry},getAssignments:function(){var a=c().assignments;if(!a)return null;if(!b){b=[];for(var d in a)b.push(new f({splitName:d,variant:a[d],isUnsynced:!1}))}return b}}}(),i=function(){var a=function(a){if(this.visitor=a.visitor,this.splitName=a.splitName,!this.visitor)throw new Error("must provide visitor");if(!this.splitName)throw new Error("must provide splitName")};return a.prototype.getVariant=function(){if(!h.getSplitRegistry())return null;for(var a=0,b=this.getAssignmentBucket(),c=this.getWeighting(),d=this.getSortedVariants(),e=0;e<d.length;e++){var f=d[e];if(a+=c[f],a>b)return f}throw new Error("Assignment bucket out of range. "+b+" unmatched in "+this.splitName+": "+JSON.stringify(c))},a.prototype.getSplitVisitorHash=function(){return b(this.splitName+this.visitor.getId())},a.prototype.getHashFixnum=function(){return parseInt(this.getSplitVisitorHash().substr(0,8),16)},a.prototype.getAssignmentBucket=function(){return this.getHashFixnum()%100},a.prototype.getSortedVariants=function(){return this.getVariants().sort()},a.prototype.getVariants=function(){return Object.getOwnPropertyNames(this.getWeighting())},a.prototype.getWeighting=function(){var a=h.getSplitRegistry()[this.splitName];if(!a){var b='Unknown split: "'+this.splitName+'"';throw this.visitor.logError(b),new Error(b)}return a},a}(),j=function(){var a=function(a){if(a=a||{},this._visitor=a.visitor,this._assignment=a.assignment,!this._visitor)throw new Error("must provide visitor");if(!this._assignment)throw new Error("must provide assignment")};return a.prototype.send=function(){this.persistAssignment(),this._visitor.analytics.trackAssignment(this._visitor.getId(),this._assignment,function(a){this.persistAssignment(a?"success":"failure")}.bind(this))},a.prototype.persistAssignment=function(a){return c.ajax(h.getUrl()+"/api/v1/assignment_event",{method:"POST",dataType:"json",crossDomain:!0,data:{visitor_id:this._visitor.getId(),split_name:this._assignment.getSplitName(),context:this._assignment.getContext(),mixpanel_result:a}}).fail(function(a,b,c){var d=a&&a.status,e=a&&a.responseText;this._visitor.logError("test_track persistAssignment error: "+[a,d,e,b,c].join(", "))}.bind(this))},a}(),k=function(){var a=function(a){if(a=a||{},this._visitor=a.visitor,this._assignment=a.assignment,this._username=a.username,this._password=a.password,!this._visitor)throw new Error("must provide visitor");if(!this._assignment)throw new Error("must provide assignment");if(!this._username)throw new Error("must provide username");if(!this._password)throw new Error("must provide password")};return a.prototype.send=function(){this.persistAssignment(),this._visitor.analytics.trackAssignment(this._visitor.getId(),this._assignment,function(a){this.persistAssignment(a?"success":"failure")}.bind(this))},a.prototype.persistAssignment=function(a){return c.ajax(h.getUrl()+"/api/v1/assignment_override",{method:"POST",dataType:"json",crossDomain:!0,headers:{Authorization:"Basic "+btoa(this._username+":"+this._password)},data:{visitor_id:this._visitor.getId(),split_name:this._assignment.getSplitName(),variant:this._assignment.getVariant(),context:this._assignment.getContext(),mixpanel_result:a}}).fail(function(a,b,c){var d=a&&a.status,e=a&&a.responseText;this._visitor.logError("test_track persistAssignment error: "+[a,d,e,b,c].join(", "))}.bind(this))},a}(),l=function(){var b=function(a){if(a=a||{},this._id=a.id,this._assignments=a.assignments,this._ttOffline=a.ttOffline,!this._id)throw new Error("must provide id");if(!this._assignments)throw new Error("must provide assignments");this._errorLogger=function(a){window.console.error(a)},this.analytics=new e};return b.loadVisitor=function(b){var d=c.Deferred(),e=function(a){d.resolve(new l(a))};return b?h.getAssignments()?e({id:b,assignments:h.getAssignments(),ttOffline:!1}):c.ajax(h.getUrl()+"/api/v1/visitors/"+b,{method:"GET",timeout:5e3}).done(function(a){e({id:a.id,assignments:f.fromJsonArray(a.assignments),ttOffline:!1})}).fail(function(){e({id:b,assignments:[],ttOffline:!0})}):e({id:a.v4(),assignments:[],ttOffline:!1}),d.promise()},b.prototype.getId=function(){return this._id},b.prototype.getAssignmentRegistry=function(){if(!this._assignmentRegistry){for(var a={},b=0;b<this._assignments.length;b++){var c=this._assignments[b];a[c.getSplitName()]=c}this._assignmentRegistry=a}return this._assignmentRegistry},b.prototype.vary=function(a,b){if("object"!=typeof b.variants)throw new Error("must provide variants object to `vary` for "+a);if(!b.context)throw new Error("must provide context to `vary` for "+a);if(!b.defaultVariant&&b.defaultVariant!==!1)throw new Error("must provide defaultVariant to `vary` for "+a);var c=b.defaultVariant.toString(),d=b.variants,e=b.context;if(!d.hasOwnProperty(c))throw new Error("defaultVariant: "+c+" must be represented in variants object");var f=this._getAssignmentFor(a,e),g=new o({assignment:f,visitor:this});for(var h in d)d.hasOwnProperty(h)&&(h===c?g.default(h,d[h]):g.when(h,d[h]));g.run(),g.isDefaulted()&&(f.setVariant(g.getDefaultVariant()),f.setUnsynced(!0),f.setContext(e)),this.notifyUnsyncedAssignments()},b.prototype.ab=function(a,b){var c=new p({splitName:a,trueVariant:b.trueVariant,visitor:this}),d=c.getVariants(),e={};e[d.true]=function(){b.callback(!0)},e[d.false]=function(){b.callback(!1)},this.vary(a,{context:b.context,variants:e,defaultVariant:d.false})},b.prototype.setErrorLogger=function(a){if("function"!=typeof a)throw new Error("must provide function for errorLogger");this._errorLogger=a},b.prototype.logError=function(a){this._errorLogger.call(null,a)},b.prototype.linkIdentifier=function(a,b){var d=c.Deferred(),e=new n({visitorId:this.getId(),identifierType:a,value:b});return e.save().then(function(a){this._merge(a),this.notifyUnsyncedAssignments(),d.resolve()}.bind(this)),d.promise()},b.prototype.setAnalytics=function(a){if("object"!=typeof a)throw new Error("must provide object for setAnalytics");this.analytics=a},b.prototype.notifyUnsyncedAssignments=function(){for(var a=this._getUnsyncedAssignments(),b=0;b<a.length;b++)this._notify(a[b])},b.prototype._getUnsyncedAssignments=function(){var a=[],b=this.getAssignmentRegistry();return Object.keys(b).forEach(function(c){var d=b[c];d.isUnsynced()&&a.push(d)}),a},b.prototype._merge=function(a){var b=this.getAssignmentRegistry(),c=a.getAssignmentRegistry();this._id=a.getId();for(var d in c)c.hasOwnProperty(d)&&(b[d]=c[d])},b.prototype._getAssignmentFor=function(a,b){return this.getAssignmentRegistry()[a]||this._generateAssignmentFor(a,b)},b.prototype._generateAssignmentFor=function(a,b){var c=new i({visitor:this,splitName:a}).getVariant();c||(this._ttOffline=!0);var d=new f({splitName:a,variant:c,context:b,isUnsynced:!0});return this._assignments.push(d),this._assignmentRegistry=null,d},b.prototype._notify=function(a){try{if(this._ttOffline)return;var b=new j({visitor:this,assignment:a});b.send(),a.setUnsynced(!1)}catch(c){this.logError("test_track notify error: "+c)}},b}(),m=function(){var a="tt_visitor_id",b=function(){this._visitorDeferred=c.Deferred()};return b.prototype.initialize=function(b){var d=c.cookie(a);this._visitorDeferred.then(function(a){a.notifyUnsyncedAssignments()}),l.loadVisitor(d).then(function(a){b&&b.analytics&&a.setAnalytics(b.analytics),b&&b.errorLogger&&a.setErrorLogger(b.errorLogger),b&&"function"==typeof b.onVisitorLoaded&&b.onVisitorLoaded.call(null,a),this._visitorDeferred.resolve(a)}.bind(this)),this._setCookie()},b.prototype.vary=function(a,b){this._visitorDeferred.then(function(c){c.vary(a,b)})},b.prototype.ab=function(a,b){this._visitorDeferred.then(function(c){c.ab(a,b)})},b.prototype.logIn=function(a,b){var d=c.Deferred();return this._visitorDeferred.then(function(c){c.linkIdentifier(a,b).then(function(){this._setCookie(),c.analytics.identify(c.getId()),d.resolve()}.bind(this))}.bind(this)),d.promise()},b.prototype.signUp=function(a,b){var d=c.Deferred();return this._visitorDeferred.then(function(c){c.linkIdentifier(a,b).then(function(){this._setCookie(),c.analytics.alias(c.getId()),d.resolve()}.bind(this))}.bind(this)),d.promise()},b.prototype._setCookie=function(){this._visitorDeferred.then(function(b){c.cookie(a,b.getId(),{expires:365,path:"/",domain:h.getCookieDomain()})})},b.prototype.getPublicAPI=function(){return{vary:this.vary.bind(this),ab:this.ab.bind(this),logIn:this.logIn.bind(this),signUp:this.signUp.bind(this),initialize:this.initialize.bind(this),_crx:{loadInfo:function(){var a=c.Deferred();return this._visitorDeferred.then(function(b){var c={};for(var d in b.getAssignmentRegistry())c[d]=b.getAssignmentRegistry()[d].getVariant();a.resolve({visitorId:b.getId(),splitRegistry:h.getSplitRegistry(),assignmentRegistry:c})}),a.promise()}.bind(this),persistAssignment:function(a,b,d,e){var g=c.Deferred();return this._visitorDeferred.then(function(c){var h=new k({visitor:c,username:d,password:e,assignment:new f({splitName:a,variant:b,context:"chrome_extension",isUnsynced:!0})});h.persistAssignment().then(function(){g.resolve()})}),g.promise()}.bind(this)}}},b}(),n=function(){var a=function(a){if(this.visitorId=a.visitorId,this.identifierType=a.identifierType,this.value=a.value,!this.visitorId)throw new Error("must provide visitorId");if(!this.identifierType)throw new Error("must provide identifierType");if(!this.value)throw new Error("must provide value")};return a.prototype.save=function(a,b){var d=c.Deferred();return c.ajax(h.getUrl()+"/api/v1/identifier",{method:"POST",dataType:"json",crossDomain:!0,data:{identifier_type:this.identifierType,value:this.value,visitor_id:this.visitorId}}).then(function(a){var b=new l({id:a.visitor.id,assignments:f.fromJsonArray(a.visitor.assignments)});d.resolve(b)}),d.promise()},a}(),o=function(){var a=function(a){if(!a.assignment)throw new Error("must provide assignment");if(!a.visitor)throw new Error("must provide visitor");this._assignment=a.assignment,this._visitor=a.visitor,this._splitRegistry=h.getSplitRegistry(),this._variantHandlers={}};return a.prototype.when=function(){var a=Array.prototype.slice.call(arguments,0),b=a.length-1,c="function"!=typeof a[0]&&a.length>0,d=c?a.slice(0,Math.max(1,b)):[],e=a[b];if(0===d.length)throw new Error("must provide at least one variant");for(var f=0;f<d.length;f++)this._assignHandlerToVariant(d[f],e)},a.prototype.default=function(a,b){if(this._defaultVariant)throw new Error("must provide exactly one `default`");this._defaultVariant=this._assignHandlerToVariant(a,b)},a.prototype.run=function(){this._validate();var a;this._variantHandlers[this._assignment.getVariant()]?a=this._variantHandlers[this._assignment.getVariant()]:(a=this._variantHandlers[this.getDefaultVariant()],this._defaulted=!0),a()},a.prototype.isDefaulted=function(){return this._defaulted||!1},a.prototype.getDefaultVariant=function(){return this._defaultVariant},a.prototype._assignHandlerToVariant=function(a,b){if("function"!=typeof b)throw new Error("must provide handler for "+a);return a=a.toString(),this._getSplit()&&!this._getSplit().hasOwnProperty(a)&&this._visitor.logError("configures unknown variant "+a),this._variantHandlers[a]=b,a},a.prototype._validate=function(){if(!this.getDefaultVariant())throw new Error("must provide exactly one `default`");if(this._getVariants().length<2)throw new Error("must provide at least one `when`");if(this._getSplit()){var a=this._getMissingVariants();if(a.length>0){var b=a.join(", ").replace(/, (.+)$/," and $1");this._visitor.logError("does not configure variants "+b)}}},a.prototype._getSplit=function(){return this._splitRegistry?this._splitRegistry[this._assignment.getSplitName()]:null},a.prototype._getVariants=function(){return Object.getOwnPropertyNames(this._variantHandlers)},a.prototype._getMissingVariants=function(){for(var a=this._getVariants(),b=this._getSplit(),c=Object.getOwnPropertyNames(b),d=[],e=0;e<c.length;e++){var f=c[e];a.indexOf(f)===-1&&d.push(f)}return d},a}(),p=function(){var a=function(a){if(!a.splitName)throw new Error("must provide splitName");if(!a.hasOwnProperty("trueVariant"))throw new Error("must provide trueVariant");if(!a.visitor)throw new Error("must provide visitor");this._splitName=a.splitName,this._trueVariant=a.trueVariant,this._visitor=a.visitor,this._splitRegistry=h.getSplitRegistry()};return a.prototype.getVariants=function(){var a=this._getSplitVariants();return a&&a.length>2&&this._visitor.logError("A/B for "+this._splitName+" configures split with more than 2 variants"),{true:this._getTrueVariant(),false:this._getFalseVariant()}},a.prototype._getTrueVariant=function(){return this._trueVariant||!0},a.prototype._getFalseVariant=function(){var a=this._getNonTrueVariants();return!!a&&a.sort()[0]},a.prototype._getNonTrueVariants=function(){var a=this._getSplitVariants();if(a){var b=this._getTrueVariant(),c=a.indexOf(b);return c!==-1&&a.splice(c,1),a}return null},a.prototype._getSplit=function(){return this._splitRegistry?this._splitRegistry[this._splitName]:null},a.prototype._getSplitVariants=function(){return this._getSplit()&&Object.getOwnPropertyNames(this._getSplit())},a}(),q=(new m).getPublicAPI(),r=function(){window.dispatchEvent(new CustomEvent("tt:lib:loaded",{detail:{TestTrack:q}}))};try{c(document).ready(function(){c(document.body).addClass("_tt");try{window.dispatchEvent(new CustomEvent("tt:class:added"))}catch(a){}}),r(),window.addEventListener("tt:listener:ready",r)}catch(s){}return q});
@@ -1,3 +1,3 @@
1
1
  module TestTrackRailsClient
2
- VERSION = "0.9.4" # rubocop:disable Style/MutableConstant
2
+ VERSION = "0.9.5" # rubocop:disable Style/MutableConstant
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_track_rails_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2016-10-20 00:00:00.000000000 Z
17
+ date: 2016-10-23 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: rails
@@ -333,7 +333,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
333
333
  version: '0'
334
334
  segments:
335
335
  - 0
336
- hash: -3099468662076960015
336
+ hash: 3378028524347421266
337
337
  requirements: []
338
338
  rubyforge_project:
339
339
  rubygems_version: 1.8.23.2