@clutter/wt
Advanced tools
Comparing version 1.2.0-rc.5 to 1.2.0-rc.6
@@ -5,6 +5,5 @@ # WT | ||
## [v1.2.0] - Wednesday, April 21, 2021 | ||
## [v1.2.0] - Thursday, April 22, 2021 | ||
- Send events using navigator.sendBeacon() with fallback to pixel image | ||
- Add wt_version to all event metadata for auditability | ||
- Send events using window.fetch() | ||
- Send event data in POST request body to avoid URI length limit | ||
@@ -11,0 +10,0 @@ |
@@ -1,1 +0,1 @@ | ||
window.WT=function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}([function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty,i=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),o=function(e){for(;e.length>1;){var t=e.pop(),r=t.obj[t.prop];if(Array.isArray(r)){for(var n=[],i=0;i<r.length;++i)void 0!==r[i]&&n.push(r[i]);t.obj[t.prop]=n}}},s=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n<e.length;++n)void 0!==e[n]&&(r[n]=e[n]);return r},a=function e(t,r,i){if(!r)return t;if("object"!=typeof r){if(Array.isArray(t))t.push(r);else{if("object"!=typeof t)return[t,r];(i&&(i.plainObjects||i.allowPrototypes)||!n.call(Object.prototype,r))&&(t[r]=!0)}return t}if("object"!=typeof t)return[t].concat(r);var o=t;return Array.isArray(t)&&!Array.isArray(r)&&(o=s(t,i)),Array.isArray(t)&&Array.isArray(r)?(r.forEach(function(r,o){n.call(t,o)?t[o]&&"object"==typeof t[o]?t[o]=e(t[o],r,i):t.push(r):t[o]=r}),t):Object.keys(r).reduce(function(t,o){var s=r[o];return n.call(t,o)?t[o]=e(t[o],s,i):t[o]=s,t},o)},c=function(e,t){return Object.keys(t).reduce(function(e,r){return e[r]=t[r],e},e)},u=function(e,t,r){var n=e.replace(/\+/g," ");if("iso-8859-1"===r)return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch(e){return n}},l=function(e,t,r){if(0===e.length)return e;var n="string"==typeof e?e:String(e);if("iso-8859-1"===r)return escape(n).replace(/%u[0-9a-f]{4}/gi,function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"});for(var o="",s=0;s<n.length;++s){var a=n.charCodeAt(s);45===a||46===a||95===a||126===a||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122?o+=n.charAt(s):a<128?o+=i[a]:a<2048?o+=i[192|a>>6]+i[128|63&a]:a<55296||a>=57344?o+=i[224|a>>12]+i[128|a>>6&63]+i[128|63&a]:(s+=1,a=65536+((1023&a)<<10|1023&n.charCodeAt(s)),o+=i[240|a>>18]+i[128|a>>12&63]+i[128|a>>6&63]+i[128|63&a])}return o},f=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n<t.length;++n)for(var i=t[n],s=i.obj[i.prop],a=Object.keys(s),c=0;c<a.length;++c){var u=a[c],l=s[u];"object"==typeof l&&null!==l&&-1===r.indexOf(l)&&(t.push({obj:s,prop:u}),r.push(l))}return o(t),e},p=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},d=function(e){return null!==e&&void 0!==e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},h=function(e,t){return[].concat(e,t)};e.exports={arrayToObject:s,assign:c,combine:h,compact:f,decode:u,encode:l,isBuffer:d,isRegExp:p,merge:a}},function(e,t,r){"use strict";var n=String.prototype.replace,i=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return n.call(e,i,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,r){"use strict";(function(e){function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o.apply(this,arguments)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t,r){return t&&a(e.prototype,t),r&&a(e,r),e}function u(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return(0,v.isFunction)(e)?e.apply(void 0,r):e}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=d.default.get(e);return r||(r=(0,v.uuid)(),d.default.set(e,r,t)),r}function f(e){var t=new _(e);return function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return t[e]?t[e].apply(t,n):t.handleEvent.apply(t,[e].concat(n))}}Object.defineProperty(t,"__esModule",{value:!0}),t.withContext=f,t.default=t.WT=t.QUEUE_CONTINUED=t.QUEUE_COMPLETED=t.SEND_COMPLETED=t.SEND_STARTED=t.DEBOUNCE_MAX=t.DEBOUNCE_MIN=void 0;var p=n(r(4)),d=n(r(7)),h=n(r(8)),v=r(9),y=r(10),g=500;t.DEBOUNCE_MIN=g;var m=1500;t.DEBOUNCE_MAX=m;var b={arrayFormat:"brackets",skipNulls:!0,encode:!0},x=7300;t.SEND_STARTED="send:started";t.SEND_COMPLETED="send:completed";t.QUEUE_COMPLETED="queue:completed";t.QUEUE_CONTINUED="queue:continued";var w=function(e){return p.default.parse(e,{ignoreQueryPrefix:!0}).wvt},E=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return w(t)||l("wt_visitor_token",e)},O=function(){return l("wt_page_uuid")},_=function(){function e(t){s(this,e),this.emitter=new h.default,this.wtConfig={cookies:{expires:x}},this.context=t,this.paramDefaults={wt_version:y.version},this.eventQueue=[],this.loading=!1,this.pageUuid=null,this.processEventsDebounced=(0,v.debounce)(this.processEvents.bind(this),g,{maxWait:m}),this.resetFirstLoad()}return c(e,[{key:"resetFirstLoad",value:function(){var e=this;this.firstLoaded=!1,this.unsubFirstLoadCb&&this.unsubFirstLoadCb(),this.unsubFirstLoad&&this.unsubFirstLoad(),this.unsubFirstLoad=this.subscribe("send:completed",function(){e.firstLoaded=!0,e.unsubFirstLoad(),delete e.unsubFirstLoad})}},{key:"afterFirstLoad",value:function(e){var t=this;this.firstLoaded?e():this.unsubFirstLoadCb=this.subscribe("send:completed",function(){e(),t.unsubFirstLoadCb(),delete t.unsubFirstLoadCb})}},{key:"initialize",value:function(e){this.wtConfig=u(e,this.wtConfig,this),this.wtConfig.cookies&&(this.getUUIDToken(),this.getVisitorToken())}},{key:"getVisitorToken",value:function(){return E(this.wtConfig.cookies,this.context.location&&this.context.location.search)}},{key:"getUUIDToken",value:function(){return this.pageUuid=O(),this.pageUuid}},{key:"getLoaderImage",value:function(){return new this.context.Image}},{key:"getUrl",value:function(){return this.wtConfig.trackerUrl?this.wtConfig.trackerUrl:"".concat(this.getRoot(),"/track.gif")}},{key:"getBeaconUrl",value:function(){return this.wtConfig.beaconUrl?this.wtConfig.beaconUrl:"".concat(this.getRoot(),"/t")}},{key:"getRoot",value:function(){return this.wtConfig.trackerDomain?this.wtConfig.trackerDomain:"//".concat(this.context.location.hostname)}},{key:"sendToServer",value:function(e,t,r){var n=this;this.loaderImage=this.loaderImage||this.getLoaderImage();var i=p.default.stringify(e,o({addQueryPrefix:!1},this.wtConfig.stringifyOptions||b));this.loaderImage.onload=function(){delete n.loaderImage.onerror,delete n.loaderImage.onload,t()},this.loaderImage.onerror=function(){delete n.loaderImage.onerror,delete n.loaderImage.onload,r()};var s=new this.context.URLSearchParams(i);this.context.navigator.sendBeacon("".concat(this.getBeaconUrl()),s)?t():this.loaderImage.src="".concat(this.getUrl(),"?").concat(i),this.emitter.emit("send:started")}},{key:"getRequestEnvironmentArgs",value:function(){return{dimensions:{width:this.context.innerWidth,height:this.context.innerHeight},agent:this.context.navigator.userAgent,rts:(new Date).valueOf(),wvt:w(this.context.location&&this.context.location.search)}}},{key:"getEventEnvironmentArgs",value:function(){return{url:this.context.location.href,referrer:this.context.document.referrer,page_uuid:this.pageUuid}}},{key:"processEvents",value:function(){var e=this;if(!this.loading){var t=this.eventQueue.slice(0,100);if(this.eventQueue=this.eventQueue.slice(100),t.length){var r=(0,v.assign)({events:t},this.getRequestEnvironmentArgs());this.loading=!0;var n=function(){e.emitter.emit("send:completed"),e.eventQueue.length?(e.processEventsDebounced(),e.emitter.emit("queue:continued")):e.emitter.emit("queue:completed"),e.loading=!1},i=function(){e.loading=!1};this.sendToServer(r,n,i)}}}},{key:"handleEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.category,n=t.action,s=t.label,a=t.value,c=t.pageName,u=t.container,l=t.position,f=t.objectType,p=t.objectName,d=i(t,["category","action","label","value","pageName","container","position","objectType","objectName"]);this.eventQueue.push((0,v.omitBy)(o({kind:e,category:r,action:n,label:s,value:a,page_name:c,container:u,position:l,object_type:f,object_name:p,metadata:(0,v.assign)({},this.paramDefaults,d)},this.getEventEnvironmentArgs(),{ts:(new Date).valueOf()}),v.isNil)),this.signalEventChange()}},{key:"signalEventChange",value:function(){this.processEventsDebounced()}},{key:"flush",value:function(){this.processEventsDebounced.flush()}},{key:"clear",value:function(){this.paramDefaults={}}},{key:"set",value:function(e){(0,v.assign)(this.paramDefaults,u(e,this.paramDefaults,this))}},{key:"config",value:function(e){(0,v.assign)(this.wtConfig,u(e,this.wtConfig,this))}},{key:"subscribe",value:function(e,t){var r=this;return this.emitter.on(e,t),function(){r.emitter.removeListener(e,t)}}},{key:"instance",value:function(){return this}}]),e}();t.WT=_;var j=f(e);t.default=j}).call(t,r(3))},function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";var n=r(5),i=r(6),o=r(1);e.exports={formats:o,parse:i,stringify:n}},function(e,t,r){"use strict";var n=r(0),i=r(1),o={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},s=Array.isArray,a=Array.prototype.push,c=function(e,t){a.apply(e,s(t)?t:[t])},u=Date.prototype.toISOString,l={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:n.encode,encodeValuesOnly:!1,indices:!1,serializeDate:function(e){return u.call(e)},skipNulls:!1,strictNullHandling:!1},f=function e(t,r,i,o,s,a,u,f,p,d,h,v,y){var g=t;if("function"==typeof u?g=u(r,g):g instanceof Date&&(g=d(g)),null===g){if(o)return a&&!v?a(r,l.encoder,y):r;g=""}if("string"==typeof g||"number"==typeof g||"boolean"==typeof g||n.isBuffer(g)){if(a){return[h(v?r:a(r,l.encoder,y))+"="+h(a(g,l.encoder,y))]}return[h(r)+"="+h(String(g))]}var m=[];if(void 0===g)return m;var b;if(Array.isArray(u))b=u;else{var x=Object.keys(g);b=f?x.sort(f):x}for(var w=0;w<b.length;++w){var E=b[w];s&&null===g[E]||(Array.isArray(g)?c(m,e(g[E],i(r,E),i,o,s,a,u,f,p,d,h,v,y)):c(m,e(g[E],r+(p?"."+E:"["+E+"]"),i,o,s,a,u,f,p,d,h,v,y)))}return m};e.exports=function(e,t){var r=e,s=t?n.assign({},t):{};if(null!==s.encoder&&void 0!==s.encoder&&"function"!=typeof s.encoder)throw new TypeError("Encoder has to be a function.");var a=void 0===s.delimiter?l.delimiter:s.delimiter,u="boolean"==typeof s.strictNullHandling?s.strictNullHandling:l.strictNullHandling,p="boolean"==typeof s.skipNulls?s.skipNulls:l.skipNulls,d="boolean"==typeof s.encode?s.encode:l.encode,h="function"==typeof s.encoder?s.encoder:l.encoder,v="function"==typeof s.sort?s.sort:null,y=void 0===s.allowDots?l.allowDots:!!s.allowDots,g="function"==typeof s.serializeDate?s.serializeDate:l.serializeDate,m="boolean"==typeof s.encodeValuesOnly?s.encodeValuesOnly:l.encodeValuesOnly,b=s.charset||l.charset;if(void 0!==s.charset&&"utf-8"!==s.charset&&"iso-8859-1"!==s.charset)throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined");if(void 0===s.format)s.format=i.default;else if(!Object.prototype.hasOwnProperty.call(i.formatters,s.format))throw new TypeError("Unknown format option provided.");var x,w,E=i.formatters[s.format];"function"==typeof s.filter?(w=s.filter,r=w("",r)):Array.isArray(s.filter)&&(w=s.filter,x=w);var O=[];if("object"!=typeof r||null===r)return"";var _;_=s.arrayFormat in o?s.arrayFormat:"indices"in s?s.indices?"indices":"repeat":"indices";var j=o[_];x||(x=Object.keys(r)),v&&x.sort(v);for(var k=0;k<x.length;++k){var C=x[k];p&&null===r[C]||c(O,f(r[C],C,j,u,p,d?h:null,w,v,y,g,E,m,b))}var L=O.join(a),D=!0===s.addQueryPrefix?"?":"";return s.charsetSentinel&&(D+="iso-8859-1"===b?"utf8=%26%2310003%3B&":"utf8=%E2%9C%93&"),L.length>0?D+L:""}},function(e,t,r){"use strict";var n=r(0),i=Object.prototype.hasOwnProperty,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,decoder:n.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(parseInt(t,10))})},a=function(e,t){var r,a={},c=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,u=t.parameterLimit===1/0?void 0:t.parameterLimit,l=c.split(t.delimiter,u),f=-1,p=t.charset;if(t.charsetSentinel)for(r=0;r<l.length;++r)0===l[r].indexOf("utf8=")&&("utf8=%E2%9C%93"===l[r]?p="utf-8":"utf8=%26%2310003%3B"===l[r]&&(p="iso-8859-1"),f=r,r=l.length);for(r=0;r<l.length;++r)if(r!==f){var d,h,v=l[r],y=v.indexOf("]="),g=-1===y?v.indexOf("="):y+1;-1===g?(d=t.decoder(v,o.decoder,p),h=t.strictNullHandling?null:""):(d=t.decoder(v.slice(0,g),o.decoder,p),h=t.decoder(v.slice(g+1),o.decoder,p)),h&&t.interpretNumericEntities&&"iso-8859-1"===p&&(h=s(h)),i.call(a,d)?a[d]=n.combine(a[d],h):a[d]=h}return a},c=function(e,t,r){for(var n=t,i=e.length-1;i>=0;--i){var o,s=e[i];if("[]"===s&&r.parseArrays)o=[].concat(n);else{o=r.plainObjects?Object.create(null):{};var a="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,c=parseInt(a,10);r.parseArrays||""!==a?!isNaN(c)&&s!==a&&String(c)===a&&c>=0&&r.parseArrays&&c<=r.arrayLimit?(o=[],o[c]=n):o[a]=n:o={0:n}}n=o}return n},u=function(e,t,r){if(e){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,a=o.exec(n),u=a?n.slice(0,a.index):n,l=[];if(u){if(!r.plainObjects&&i.call(Object.prototype,u)&&!r.allowPrototypes)return;l.push(u)}for(var f=0;null!==(a=s.exec(n))&&f<r.depth;){if(f+=1,!r.plainObjects&&i.call(Object.prototype,a[1].slice(1,-1))&&!r.allowPrototypes)return;l.push(a[1])}return a&&l.push("["+n.slice(a.index)+"]"),c(l,t,r)}};e.exports=function(e,t){var r=t?n.assign({},t):{};if(null!==r.decoder&&void 0!==r.decoder&&"function"!=typeof r.decoder)throw new TypeError("Decoder has to be a function.");if(r.ignoreQueryPrefix=!0===r.ignoreQueryPrefix,r.delimiter="string"==typeof r.delimiter||n.isRegExp(r.delimiter)?r.delimiter:o.delimiter,r.depth="number"==typeof r.depth?r.depth:o.depth,r.arrayLimit="number"==typeof r.arrayLimit?r.arrayLimit:o.arrayLimit,r.parseArrays=!1!==r.parseArrays,r.decoder="function"==typeof r.decoder?r.decoder:o.decoder,r.allowDots=void 0===r.allowDots?o.allowDots:!!r.allowDots,r.plainObjects="boolean"==typeof r.plainObjects?r.plainObjects:o.plainObjects,r.allowPrototypes="boolean"==typeof r.allowPrototypes?r.allowPrototypes:o.allowPrototypes,r.parameterLimit="number"==typeof r.parameterLimit?r.parameterLimit:o.parameterLimit,r.strictNullHandling="boolean"==typeof r.strictNullHandling?r.strictNullHandling:o.strictNullHandling,void 0!==r.charset&&"utf-8"!==r.charset&&"iso-8859-1"!==r.charset)throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined");if(void 0===r.charset&&(r.charset=o.charset),""===e||null===e||void 0===e)return r.plainObjects?Object.create(null):{};for(var i="string"==typeof e?a(e,r):e,s=r.plainObjects?Object.create(null):{},c=Object.keys(i),l=0;l<c.length;++l){var f=c[l],p=u(f,i[f],r);s=n.merge(s,p,r)}return n.compact(s)}},function(e,t,r){var n,i;!function(o){var s=!1;if(n=o,void 0!==(i="function"==typeof n?n.call(t,r,t,e):n)&&(e.exports=i),s=!0,e.exports=o(),s=!0,!s){var a=window.Cookies,c=window.Cookies=o();c.noConflict=function(){return window.Cookies=a,c}}}(function(){function e(){for(var e=0,t={};e<arguments.length;e++){var r=arguments[e];for(var n in r)t[n]=r[n]}return t}function t(r){function n(t,i,o){var s;if("undefined"!=typeof document){if(arguments.length>1){if(o=e({path:"/"},n.defaults,o),"number"==typeof o.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*o.expires),o.expires=a}o.expires=o.expires?o.expires.toUTCString():"";try{s=JSON.stringify(i),/^[\{\[]/.test(s)&&(i=s)}catch(e){}i=r.write?r.write(i,t):encodeURIComponent(String(i)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)),t=t.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),t=t.replace(/[\(\)]/g,escape);var c="";for(var u in o)o[u]&&(c+="; "+u,!0!==o[u]&&(c+="="+o[u]));return document.cookie=t+"="+i+c}t||(s={});for(var l=document.cookie?document.cookie.split("; "):[],f=/(%[0-9A-Z]{2})+/g,p=0;p<l.length;p++){var d=l[p].split("="),h=d.slice(1).join("=");this.json||'"'!==h.charAt(0)||(h=h.slice(1,-1));try{var v=d[0].replace(f,decodeURIComponent);if(h=r.read?r.read(h,v):r(h,v)||h.replace(f,decodeURIComponent),this.json)try{h=JSON.parse(h)}catch(e){}if(t===v){s=h;break}t||(s[v]=h)}catch(e){}}return s}}return n.set=n,n.get=function(e){return n.call(n,e)},n.getJSON=function(){return n.apply({json:!0},[].slice.call(arguments))},n.defaults={},n.remove=function(t,r){n(t,"",e(r,{expires:-1}))},n.withConverter=t,n}return t(function(){})})},function(e,t){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function i(e){return"number"==typeof e}function o(e){return"object"==typeof e&&null!==e}function s(e){return void 0===e}e.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!i(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,r,i,a,c,u;if(this._events||(this._events={}),"error"===e&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(r=this._events[e],s(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),r.apply(this,a)}else if(o(r))for(a=Array.prototype.slice.call(arguments,1),u=r.slice(),i=u.length,c=0;c<i;c++)u[c].apply(this,a);return!0},r.prototype.addListener=function(e,t){var i;if(!n(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,o(this._events[e])&&!this._events[e].warned&&(i=s(this._maxListeners)?r.defaultMaxListeners:this._maxListeners)&&i>0&&this._events[e].length>i&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var r,i,s,a;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],s=r.length,i=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(r)){for(a=s;a-- >0;)if(r[a]===t||r[a].listener&&r[a].listener===t){i=a;break}if(i<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i.apply(this,arguments)}Object.defineProperty(t,"__esModule",{value:!0}),t.uuid=t.omitBy=t.isNil=t.debounce=t.assign=t.isFunction=void 0;var o=function(e){return"[object Function]"===Object.prototype.toString.call(e)};t.isFunction=o;var s=function(e){for(var t=arguments,r=Object(e),n=0;n<(arguments.length<=1?0:arguments.length-1);n+=1)!function(e){var n=e+1<1||t.length<=e+1?void 0:t[e+1];Object.keys(n).forEach(function(e){r[e]=n[e]})}(n);return r};t.assign=s;var a=function(e,t){var r,n,i,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=o.maxWait,c=!1,u=function(){clearTimeout(r),clearTimeout(n),c=!1,i=null},l=function(){return u(),e.apply(void 0,arguments)};return s(function(){for(var o=arguments.length,s=new Array(o),u=0;u<o;u++)s[u]=arguments[u];clearTimeout(r),r=setTimeout.apply(void 0,[l,t].concat(s)),!c&&a&&(n=setTimeout.apply(void 0,[l,a].concat(s)),c=!0),i=function(){return e.apply(void 0,s)}},{clear:u,flush:function(){return i?i():null}})};t.debounce=a;var c=function(e){return null===e||void 0===e};t.isNil=c;var u=function(e,t){return Object.keys(e).reduce(function(r,o){return t(e[o],o,e)?r:i({},r,n({},o,e[o]))},{})};t.omitBy=u;var l=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})};t.uuid=l},function(e,t){e.exports={name:"@clutter/wt",version:"1.2.0-rc.5",scripts:{clean:"rimraf lib",test:"cross-env BABEL_ENV=commonjs mocha test/index --compilers js:@babel/register --recursive",memory:"@babel/node test/memory-leak-check","test:watch":"npm test -- --watch",cover:"cross-env NODE_ENV=test nyc _mocha --compilers js:@babel/register --recursive",lint:"eslint src test",build:"babel src --out-dir lib && NODE_ENV=production webpack",prepublish:"npm run clean && npm run lint && npm run test && npm run build",example:'concurrently "webpack-dev-server --config example/webpack.config.js" "node example/index.server.js"',"example:build":'concurrently "NODE_ENV=production webpack --config example/webpack.config.js" "node example/index.server.js"'},main:"lib/index.js",dependencies:{"js-cookie":"^2.2.0",qs:"^6.5.1"},files:["lib","dist"],repository:{type:"git",url:"git+https://github.com/clutter/wt-javascript.git"},keywords:["analytics"],authors:["Matthew Drake <mdrake.drake@clutter.com> (https://github.com/clutter)"],license:"MIT",devDependencies:{"@babel/cli":"^7.0.0-beta.38","@babel/core":"^7.0.0-beta.38","@babel/node":"^7.0.0-beta.38","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.38","@babel/preset-env":"^7.0.0-beta.38","babel-eslint":"7","babel-loader":"8.0.0-beta.0","babel-plugin-istanbul":"^4.1.5",chai:"^3.5.0","clean-webpack-plugin":"^0.1.18",concurrently:"^3.5.1","cross-env":"^3.0.0",eslint:"3.x","eslint-config-airbnb-base":"^11.1.3","eslint-plugin-import":"^2.8.0","html-webpack-plugin":"^2.30.1",istanbul:"^0.4.5",lodash:"^4.17.4",mocha:"^3.0.2",nyc:"^11.4.1",redux:"^3.7.2","redux-logger":"^3.0.6",rimraf:"^2.5.4",webpack:"^3.10.0","webpack-bundle-analyzer":"^2.10.0","webpack-dev-server":"^2.11.1"}}}]).default; | ||
window.WT=function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}([function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty,o=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),i=function(e){for(;e.length>1;){var t=e.pop(),r=t.obj[t.prop];if(Array.isArray(r)){for(var n=[],o=0;o<r.length;++o)void 0!==r[o]&&n.push(r[o]);t.obj[t.prop]=n}}},s=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n<e.length;++n)void 0!==e[n]&&(r[n]=e[n]);return r},a=function e(t,r,o){if(!r)return t;if("object"!=typeof r){if(Array.isArray(t))t.push(r);else{if("object"!=typeof t)return[t,r];(o&&(o.plainObjects||o.allowPrototypes)||!n.call(Object.prototype,r))&&(t[r]=!0)}return t}if("object"!=typeof t)return[t].concat(r);var i=t;return Array.isArray(t)&&!Array.isArray(r)&&(i=s(t,o)),Array.isArray(t)&&Array.isArray(r)?(r.forEach(function(r,i){n.call(t,i)?t[i]&&"object"==typeof t[i]?t[i]=e(t[i],r,o):t.push(r):t[i]=r}),t):Object.keys(r).reduce(function(t,i){var s=r[i];return n.call(t,i)?t[i]=e(t[i],s,o):t[i]=s,t},i)},u=function(e,t){return Object.keys(t).reduce(function(e,r){return e[r]=t[r],e},e)},c=function(e,t,r){var n=e.replace(/\+/g," ");if("iso-8859-1"===r)return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch(e){return n}},l=function(e,t,r){if(0===e.length)return e;var n="string"==typeof e?e:String(e);if("iso-8859-1"===r)return escape(n).replace(/%u[0-9a-f]{4}/gi,function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"});for(var i="",s=0;s<n.length;++s){var a=n.charCodeAt(s);45===a||46===a||95===a||126===a||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122?i+=n.charAt(s):a<128?i+=o[a]:a<2048?i+=o[192|a>>6]+o[128|63&a]:a<55296||a>=57344?i+=o[224|a>>12]+o[128|a>>6&63]+o[128|63&a]:(s+=1,a=65536+((1023&a)<<10|1023&n.charCodeAt(s)),i+=o[240|a>>18]+o[128|a>>12&63]+o[128|a>>6&63]+o[128|63&a])}return i},f=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n<t.length;++n)for(var o=t[n],s=o.obj[o.prop],a=Object.keys(s),u=0;u<a.length;++u){var c=a[u],l=s[c];"object"==typeof l&&null!==l&&-1===r.indexOf(l)&&(t.push({obj:s,prop:c}),r.push(l))}return i(t),e},h=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},d=function(e){return null!==e&&void 0!==e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},p=function(e,t){return[].concat(e,t)};e.exports={arrayToObject:s,assign:u,combine:p,compact:f,decode:c,encode:l,isBuffer:d,isRegExp:h,merge:a}},function(e,t,r){"use strict";var n=String.prototype.replace,o=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return n.call(e,o,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,r){"use strict";(function(e){function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i.apply(this,arguments)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function u(e,t,r){return t&&a(e.prototype,t),r&&a(e,r),e}function c(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return(0,v.isFunction)(e)?e.apply(void 0,r):e}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=d.default.get(e);return r||(r=(0,v.uuid)(),d.default.set(e,r,t)),r}function f(e){var t=new O(e);return function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return t[e]?t[e].apply(t,n):t.handleEvent.apply(t,[e].concat(n))}}Object.defineProperty(t,"__esModule",{value:!0}),t.withContext=f,t.default=t.WT=t.QUEUE_CONTINUED=t.QUEUE_COMPLETED=t.SEND_COMPLETED=t.SEND_STARTED=t.DEBOUNCE_MAX=t.DEBOUNCE_MIN=void 0;var h=n(r(4)),d=n(r(7)),p=n(r(8)),y=r(9),v=r(10),b=500;t.DEBOUNCE_MIN=b;var m=1500;t.DEBOUNCE_MAX=m;var g={arrayFormat:"brackets",skipNulls:!0,encode:!0},w=7300;t.SEND_STARTED="send:started";t.SEND_COMPLETED="send:completed";t.QUEUE_COMPLETED="queue:completed";t.QUEUE_CONTINUED="queue:continued";var x=function(e){return h.default.parse(e,{ignoreQueryPrefix:!0}).wvt},_=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return x(t)||l("wt_visitor_token",e)},E=function(){return l("wt_page_uuid")},O=function(){function e(t){s(this,e),this.emitter=new p.default,this.wtConfig={cookies:{expires:w}},this.context=t,this.paramDefaults={},this.eventQueue=[],this.loading=!1,this.pageUuid=null,this.processEventsDebounced=(0,v.debounce)(this.processEvents.bind(this),b,{maxWait:m}),this.resetFirstLoad()}return u(e,[{key:"resetFirstLoad",value:function(){var e=this;this.firstLoaded=!1,this.unsubFirstLoadCb&&this.unsubFirstLoadCb(),this.unsubFirstLoad&&this.unsubFirstLoad(),this.unsubFirstLoad=this.subscribe("send:completed",function(){e.firstLoaded=!0,e.unsubFirstLoad(),delete e.unsubFirstLoad})}},{key:"afterFirstLoad",value:function(e){var t=this;this.firstLoaded?e():this.unsubFirstLoadCb=this.subscribe("send:completed",function(){e(),t.unsubFirstLoadCb(),delete t.unsubFirstLoadCb})}},{key:"initialize",value:function(e){this.wtConfig=c(e,this.wtConfig,this),this.wtConfig.cookies&&(this.getUUIDToken(),this.getVisitorToken())}},{key:"getVisitorToken",value:function(){return _(this.wtConfig.cookies,this.context.location&&this.context.location.search)}},{key:"getUUIDToken",value:function(){return this.pageUuid=E(),this.pageUuid}},{key:"getLoaderImage",value:function(){return new this.context.Image}},{key:"getUrl",value:function(){return this.wtConfig.trackerUrl?this.wtConfig.trackerUrl:"".concat(this.getRoot(),"/track.gif")}},{key:"getRoot",value:function(){return this.wtConfig.trackerDomain?this.wtConfig.trackerDomain:"//".concat(this.context.location.hostname)}},{key:"sendToServer",value:function(e,t,r){var n=this;this.loaderImage=this.loaderImage||this.getLoaderImage();var o=h.default.stringify(e,i({addQueryPrefix:!1},this.wtConfig.stringifyOptions||g));this.loaderImage.onload=function(){delete n.loaderImage.onerror,delete n.loaderImage.onload,t()},this.loaderImage.onerror=function(){delete n.loaderImage.onerror,delete n.loaderImage.onload,r()},(0,y.fetch)("".concat(this.getRoot(),"/wt/t"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:o}).then(function(){t()}).catch(function(){n.loaderImage.src="".concat(n.getUrl(),"?").concat(o)}),this.emitter.emit("send:started")}},{key:"getRequestEnvironmentArgs",value:function(){return{dimensions:{width:this.context.innerWidth,height:this.context.innerHeight},agent:this.context.navigator.userAgent,rts:(new Date).valueOf(),wvt:x(this.context.location&&this.context.location.search)}}},{key:"getEventEnvironmentArgs",value:function(){return{url:this.context.location.href,referrer:this.context.document.referrer,page_uuid:this.pageUuid}}},{key:"processEvents",value:function(){var e=this;if(!this.loading){var t=this.eventQueue.slice(0,100);if(this.eventQueue=this.eventQueue.slice(100),t.length){var r=(0,v.assign)({events:t},this.getRequestEnvironmentArgs());this.loading=!0;var n=function(){e.emitter.emit("send:completed"),e.eventQueue.length?(e.processEventsDebounced(),e.emitter.emit("queue:continued")):e.emitter.emit("queue:completed"),e.loading=!1},o=function(){e.loading=!1};this.sendToServer(r,n,o)}}}},{key:"handleEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.category,n=t.action,s=t.label,a=t.value,u=t.pageName,c=t.container,l=t.position,f=t.objectType,h=t.objectName,d=o(t,["category","action","label","value","pageName","container","position","objectType","objectName"]);this.eventQueue.push((0,v.omitBy)(i({kind:e,category:r,action:n,label:s,value:a,page_name:u,container:c,position:l,object_type:f,object_name:h,metadata:(0,v.assign)({},this.paramDefaults,d)},this.getEventEnvironmentArgs(),{ts:(new Date).valueOf()}),v.isNil)),this.signalEventChange()}},{key:"signalEventChange",value:function(){this.processEventsDebounced()}},{key:"flush",value:function(){this.processEventsDebounced.flush()}},{key:"clear",value:function(){this.paramDefaults={}}},{key:"set",value:function(e){(0,v.assign)(this.paramDefaults,c(e,this.paramDefaults,this))}},{key:"config",value:function(e){(0,v.assign)(this.wtConfig,c(e,this.wtConfig,this))}},{key:"subscribe",value:function(e,t){var r=this;return this.emitter.on(e,t),function(){r.emitter.removeListener(e,t)}}},{key:"instance",value:function(){return this}}]),e}();t.WT=O;var A=f(e);t.default=A}).call(t,r(3))},function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";var n=r(5),o=r(6),i=r(1);e.exports={formats:i,parse:o,stringify:n}},function(e,t,r){"use strict";var n=r(0),o=r(1),i={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},s=Array.isArray,a=Array.prototype.push,u=function(e,t){a.apply(e,s(t)?t:[t])},c=Date.prototype.toISOString,l={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:n.encode,encodeValuesOnly:!1,indices:!1,serializeDate:function(e){return c.call(e)},skipNulls:!1,strictNullHandling:!1},f=function e(t,r,o,i,s,a,c,f,h,d,p,y,v){var b=t;if("function"==typeof c?b=c(r,b):b instanceof Date&&(b=d(b)),null===b){if(i)return a&&!y?a(r,l.encoder,v):r;b=""}if("string"==typeof b||"number"==typeof b||"boolean"==typeof b||n.isBuffer(b)){if(a){return[p(y?r:a(r,l.encoder,v))+"="+p(a(b,l.encoder,v))]}return[p(r)+"="+p(String(b))]}var m=[];if(void 0===b)return m;var g;if(Array.isArray(c))g=c;else{var w=Object.keys(b);g=f?w.sort(f):w}for(var x=0;x<g.length;++x){var _=g[x];s&&null===b[_]||(Array.isArray(b)?u(m,e(b[_],o(r,_),o,i,s,a,c,f,h,d,p,y,v)):u(m,e(b[_],r+(h?"."+_:"["+_+"]"),o,i,s,a,c,f,h,d,p,y,v)))}return m};e.exports=function(e,t){var r=e,s=t?n.assign({},t):{};if(null!==s.encoder&&void 0!==s.encoder&&"function"!=typeof s.encoder)throw new TypeError("Encoder has to be a function.");var a=void 0===s.delimiter?l.delimiter:s.delimiter,c="boolean"==typeof s.strictNullHandling?s.strictNullHandling:l.strictNullHandling,h="boolean"==typeof s.skipNulls?s.skipNulls:l.skipNulls,d="boolean"==typeof s.encode?s.encode:l.encode,p="function"==typeof s.encoder?s.encoder:l.encoder,y="function"==typeof s.sort?s.sort:null,v=void 0===s.allowDots?l.allowDots:!!s.allowDots,b="function"==typeof s.serializeDate?s.serializeDate:l.serializeDate,m="boolean"==typeof s.encodeValuesOnly?s.encodeValuesOnly:l.encodeValuesOnly,g=s.charset||l.charset;if(void 0!==s.charset&&"utf-8"!==s.charset&&"iso-8859-1"!==s.charset)throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined");if(void 0===s.format)s.format=o.default;else if(!Object.prototype.hasOwnProperty.call(o.formatters,s.format))throw new TypeError("Unknown format option provided.");var w,x,_=o.formatters[s.format];"function"==typeof s.filter?(x=s.filter,r=x("",r)):Array.isArray(s.filter)&&(x=s.filter,w=x);var E=[];if("object"!=typeof r||null===r)return"";var O;O=s.arrayFormat in i?s.arrayFormat:"indices"in s?s.indices?"indices":"repeat":"indices";var A=i[O];w||(w=Object.keys(r)),y&&w.sort(y);for(var j=0;j<w.length;++j){var T=w[j];h&&null===r[T]||u(E,f(r[T],T,A,c,h,d?p:null,x,y,v,b,_,m,g))}var L=E.join(a),C=!0===s.addQueryPrefix?"?":"";return s.charsetSentinel&&(C+="iso-8859-1"===g?"utf8=%26%2310003%3B&":"utf8=%E2%9C%93&"),L.length>0?C+L:""}},function(e,t,r){"use strict";var n=r(0),o=Object.prototype.hasOwnProperty,i={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,decoder:n.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(parseInt(t,10))})},a=function(e,t){var r,a={},u=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,c=t.parameterLimit===1/0?void 0:t.parameterLimit,l=u.split(t.delimiter,c),f=-1,h=t.charset;if(t.charsetSentinel)for(r=0;r<l.length;++r)0===l[r].indexOf("utf8=")&&("utf8=%E2%9C%93"===l[r]?h="utf-8":"utf8=%26%2310003%3B"===l[r]&&(h="iso-8859-1"),f=r,r=l.length);for(r=0;r<l.length;++r)if(r!==f){var d,p,y=l[r],v=y.indexOf("]="),b=-1===v?y.indexOf("="):v+1;-1===b?(d=t.decoder(y,i.decoder,h),p=t.strictNullHandling?null:""):(d=t.decoder(y.slice(0,b),i.decoder,h),p=t.decoder(y.slice(b+1),i.decoder,h)),p&&t.interpretNumericEntities&&"iso-8859-1"===h&&(p=s(p)),o.call(a,d)?a[d]=n.combine(a[d],p):a[d]=p}return a},u=function(e,t,r){for(var n=t,o=e.length-1;o>=0;--o){var i,s=e[o];if("[]"===s&&r.parseArrays)i=[].concat(n);else{i=r.plainObjects?Object.create(null):{};var a="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,u=parseInt(a,10);r.parseArrays||""!==a?!isNaN(u)&&s!==a&&String(u)===a&&u>=0&&r.parseArrays&&u<=r.arrayLimit?(i=[],i[u]=n):i[a]=n:i={0:n}}n=i}return n},c=function(e,t,r){if(e){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/,s=/(\[[^[\]]*])/g,a=i.exec(n),c=a?n.slice(0,a.index):n,l=[];if(c){if(!r.plainObjects&&o.call(Object.prototype,c)&&!r.allowPrototypes)return;l.push(c)}for(var f=0;null!==(a=s.exec(n))&&f<r.depth;){if(f+=1,!r.plainObjects&&o.call(Object.prototype,a[1].slice(1,-1))&&!r.allowPrototypes)return;l.push(a[1])}return a&&l.push("["+n.slice(a.index)+"]"),u(l,t,r)}};e.exports=function(e,t){var r=t?n.assign({},t):{};if(null!==r.decoder&&void 0!==r.decoder&&"function"!=typeof r.decoder)throw new TypeError("Decoder has to be a function.");if(r.ignoreQueryPrefix=!0===r.ignoreQueryPrefix,r.delimiter="string"==typeof r.delimiter||n.isRegExp(r.delimiter)?r.delimiter:i.delimiter,r.depth="number"==typeof r.depth?r.depth:i.depth,r.arrayLimit="number"==typeof r.arrayLimit?r.arrayLimit:i.arrayLimit,r.parseArrays=!1!==r.parseArrays,r.decoder="function"==typeof r.decoder?r.decoder:i.decoder,r.allowDots=void 0===r.allowDots?i.allowDots:!!r.allowDots,r.plainObjects="boolean"==typeof r.plainObjects?r.plainObjects:i.plainObjects,r.allowPrototypes="boolean"==typeof r.allowPrototypes?r.allowPrototypes:i.allowPrototypes,r.parameterLimit="number"==typeof r.parameterLimit?r.parameterLimit:i.parameterLimit,r.strictNullHandling="boolean"==typeof r.strictNullHandling?r.strictNullHandling:i.strictNullHandling,void 0!==r.charset&&"utf-8"!==r.charset&&"iso-8859-1"!==r.charset)throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined");if(void 0===r.charset&&(r.charset=i.charset),""===e||null===e||void 0===e)return r.plainObjects?Object.create(null):{};for(var o="string"==typeof e?a(e,r):e,s=r.plainObjects?Object.create(null):{},u=Object.keys(o),l=0;l<u.length;++l){var f=u[l],h=c(f,o[f],r);s=n.merge(s,h,r)}return n.compact(s)}},function(e,t,r){var n,o;!function(i){var s=!1;if(n=i,void 0!==(o="function"==typeof n?n.call(t,r,t,e):n)&&(e.exports=o),s=!0,e.exports=i(),s=!0,!s){var a=window.Cookies,u=window.Cookies=i();u.noConflict=function(){return window.Cookies=a,u}}}(function(){function e(){for(var e=0,t={};e<arguments.length;e++){var r=arguments[e];for(var n in r)t[n]=r[n]}return t}function t(r){function n(t,o,i){var s;if("undefined"!=typeof document){if(arguments.length>1){if(i=e({path:"/"},n.defaults,i),"number"==typeof i.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*i.expires),i.expires=a}i.expires=i.expires?i.expires.toUTCString():"";try{s=JSON.stringify(o),/^[\{\[]/.test(s)&&(o=s)}catch(e){}o=r.write?r.write(o,t):encodeURIComponent(String(o)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)),t=t.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),t=t.replace(/[\(\)]/g,escape);var u="";for(var c in i)i[c]&&(u+="; "+c,!0!==i[c]&&(u+="="+i[c]));return document.cookie=t+"="+o+u}t||(s={});for(var l=document.cookie?document.cookie.split("; "):[],f=/(%[0-9A-Z]{2})+/g,h=0;h<l.length;h++){var d=l[h].split("="),p=d.slice(1).join("=");this.json||'"'!==p.charAt(0)||(p=p.slice(1,-1));try{var y=d[0].replace(f,decodeURIComponent);if(p=r.read?r.read(p,y):r(p,y)||p.replace(f,decodeURIComponent),this.json)try{p=JSON.parse(p)}catch(e){}if(t===y){s=p;break}t||(s[y]=p)}catch(e){}}return s}}return n.set=n,n.get=function(e){return n.call(n,e)},n.getJSON=function(){return n.apply({json:!0},[].slice.call(arguments))},n.defaults={},n.remove=function(t,r){n(t,"",e(r,{expires:-1}))},n.withConverter=t,n}return t(function(){})})},function(e,t){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function o(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function s(e){return void 0===e}e.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!o(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,r,o,a,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(r=this._events[e],s(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),r.apply(this,a)}else if(i(r))for(a=Array.prototype.slice.call(arguments,1),c=r.slice(),o=c.length,u=0;u<o;u++)c[u].apply(this,a);return!0},r.prototype.addListener=function(e,t){var o;if(!n(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(t.listener)?t.listener:t),this._events[e]?i(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,i(this._events[e])&&!this._events[e].warned&&(o=s(this._maxListeners)?r.defaultMaxListeners:this._maxListeners)&&o>0&&this._events[e].length>o&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),o||(o=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var o=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var r,o,s,a;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],s=r.length,o=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(a=s;a-- >0;)if(r[a]===t||r[a].listener&&r[a].listener===t){o=a;break}if(o<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,r){"use strict";function n(e){return e&&DataView.prototype.isPrototypeOf(e)}function o(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function i(e){return"string"!=typeof e&&(e=String(e)),e}function s(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return _.iterable&&(t[Symbol.iterator]=function(){return t}),t}function a(e){this.map={},e instanceof a?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function u(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function c(e){return new Promise(function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}})}function l(e){var t=new FileReader,r=c(t);return t.readAsArrayBuffer(e),r}function f(e){var t=new FileReader,r=c(t);return t.readAsText(e),r}function h(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n<t.length;n++)r[n]=String.fromCharCode(t[n]);return r.join("")}function d(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function p(){return this.bodyUsed=!1,this._initBody=function(e){this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:_.blob&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:_.formData&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:_.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():_.arrayBuffer&&_.blob&&n(e)?(this._bodyArrayBuffer=d(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):_.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||O(e))?this._bodyArrayBuffer=d(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):_.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},_.blob&&(this.blob=function(){var e=u(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var e=u(this);return e||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}return this.blob().then(l)}),this.text=function(){var e=u(this);if(e)return e;if(this._bodyBlob)return f(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(h(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},_.formData&&(this.formData=function(){return this.text().then(b)}),this.json=function(){return this.text().then(JSON.parse)},this}function y(e){var t=e.toUpperCase();return A.indexOf(t)>-1?t:e}function v(e,t){if(!(this instanceof v))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t=t||{};var r=t.body;if(e instanceof v){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new a(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,r||null==e._bodyInit||(r=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new a(t.headers)),this.method=y(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(r),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==t.cache&&"no-cache"!==t.cache)){var n=/([?&])_=[^&]*/;if(n.test(this.url))this.url=this.url.replace(n,"$1_="+(new Date).getTime());else{var o=/\?/;this.url+=(o.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function b(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(o))}}),t}function m(e){var t=new a;return e.replace(/\r?\n[\t ]+/g," ").split("\r").map(function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e}).forEach(function(e){var r=e.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();t.append(n,o)}}),t}function g(e,t){if(!(this instanceof g))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?"":""+t.statusText,this.headers=new a(t.headers),this.url=t.url||"",this._initBody(e)}function w(e,t){return new Promise(function(r,n){function o(){u.abort()}var s=new v(e,t);if(s.signal&&s.signal.aborted)return n(new T("Aborted","AbortError"));var u=new XMLHttpRequest;u.onload=function(){var e={status:u.status,statusText:u.statusText,headers:m(u.getAllResponseHeaders()||"")};e.url="responseURL"in u?u.responseURL:e.headers.get("X-Request-URL");var t="response"in u?u.response:u.responseText;setTimeout(function(){r(new g(t,e))},0)},u.onerror=function(){setTimeout(function(){n(new TypeError("Network request failed"))},0)},u.ontimeout=function(){setTimeout(function(){n(new TypeError("Network request failed"))},0)},u.onabort=function(){setTimeout(function(){n(new T("Aborted","AbortError"))},0)},u.open(s.method,function(e){try{return""===e&&x.location.href?x.location.href:e}catch(t){return e}}(s.url),!0),"include"===s.credentials?u.withCredentials=!0:"omit"===s.credentials&&(u.withCredentials=!1),"responseType"in u&&(_.blob?u.responseType="blob":_.arrayBuffer&&s.headers.get("Content-Type")&&-1!==s.headers.get("Content-Type").indexOf("application/octet-stream")&&(u.responseType="arraybuffer")),!t||"object"!=typeof t.headers||t.headers instanceof a?s.headers.forEach(function(e,t){u.setRequestHeader(t,e)}):Object.getOwnPropertyNames(t.headers).forEach(function(e){u.setRequestHeader(e,i(t.headers[e]))}),s.signal&&(s.signal.addEventListener("abort",o),u.onreadystatechange=function(){4===u.readyState&&s.signal.removeEventListener("abort",o)}),u.send(void 0===s._bodyInit?null:s._bodyInit)})}Object.defineProperty(t,"__esModule",{value:!0}),t.Headers=a,t.Request=v,t.Response=g,r.d(t,"DOMException",function(){return T}),t.fetch=w;var x="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==x&&x,_={searchParams:"URLSearchParams"in x,iterable:"Symbol"in x&&"iterator"in Symbol,blob:"FileReader"in x&&"Blob"in x&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in x,arrayBuffer:"ArrayBuffer"in x};if(_.arrayBuffer)var E=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],O=ArrayBuffer.isView||function(e){return e&&E.indexOf(Object.prototype.toString.call(e))>-1};a.prototype.append=function(e,t){e=o(e),t=i(t);var r=this.map[e];this.map[e]=r?r+", "+t:t},a.prototype.delete=function(e){delete this.map[o(e)]},a.prototype.get=function(e){return e=o(e),this.has(e)?this.map[e]:null},a.prototype.has=function(e){return this.map.hasOwnProperty(o(e))},a.prototype.set=function(e,t){this.map[o(e)]=i(t)},a.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},a.prototype.keys=function(){var e=[];return this.forEach(function(t,r){e.push(r)}),s(e)},a.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),s(e)},a.prototype.entries=function(){var e=[];return this.forEach(function(t,r){e.push([r,t])}),s(e)},_.iterable&&(a.prototype[Symbol.iterator]=a.prototype.entries);var A=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];v.prototype.clone=function(){return new v(this,{body:this._bodyInit})},p.call(v.prototype),p.call(g.prototype),g.prototype.clone=function(){return new g(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new a(this.headers),url:this.url})},g.error=function(){var e=new g(null,{status:0,statusText:""});return e.type="error",e};var j=[301,302,303,307,308];g.redirect=function(e,t){if(-1===j.indexOf(t))throw new RangeError("Invalid status code");return new g(null,{status:t,headers:{location:e}})};var T=x.DOMException;try{new T}catch(e){T=function(e,t){this.message=e,this.name=t;var r=Error(e);this.stack=r.stack},T.prototype=Object.create(Error.prototype),T.prototype.constructor=T}w.polyfill=!0,x.fetch||(x.fetch=w,x.Headers=a,x.Request=v,x.Response=g)},function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(){return o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o.apply(this,arguments)}Object.defineProperty(t,"__esModule",{value:!0}),t.uuid=t.omitBy=t.isNil=t.debounce=t.assign=t.isFunction=void 0;var i=function(e){return"[object Function]"===Object.prototype.toString.call(e)};t.isFunction=i;var s=function(e){for(var t=arguments,r=Object(e),n=0;n<(arguments.length<=1?0:arguments.length-1);n+=1)!function(e){var n=e+1<1||t.length<=e+1?void 0:t[e+1];Object.keys(n).forEach(function(e){r[e]=n[e]})}(n);return r};t.assign=s;var a=function(e,t){var r,n,o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=i.maxWait,u=!1,c=function(){clearTimeout(r),clearTimeout(n),u=!1,o=null},l=function(){return c(),e.apply(void 0,arguments)};return s(function(){for(var i=arguments.length,s=new Array(i),c=0;c<i;c++)s[c]=arguments[c];clearTimeout(r),r=setTimeout.apply(void 0,[l,t].concat(s)),!u&&a&&(n=setTimeout.apply(void 0,[l,a].concat(s)),u=!0),o=function(){return e.apply(void 0,s)}},{clear:c,flush:function(){return o?o():null}})};t.debounce=a;var u=function(e){return null===e||void 0===e};t.isNil=u;var c=function(e,t){return Object.keys(e).reduce(function(r,i){return t(e[i],i,e)?r:o({},r,n({},i,e[i]))},{})};t.omitBy=c;var l=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})};t.uuid=l}]).default; |
@@ -15,6 +15,6 @@ "use strict"; | ||
var _whatwgFetch = require("whatwg-fetch"); | ||
var _utils = require("./utils"); | ||
var _package = require("../package.json"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -109,5 +109,3 @@ | ||
this.context = context; | ||
this.paramDefaults = { | ||
wt_version: _package.version | ||
}; | ||
this.paramDefaults = {}; | ||
this.eventQueue = []; | ||
@@ -198,11 +196,2 @@ this.loading = false; | ||
}, { | ||
key: "getBeaconUrl", | ||
value: function getBeaconUrl() { | ||
if (this.wtConfig.beaconUrl) { | ||
return this.wtConfig.beaconUrl; | ||
} | ||
return "".concat(this.getRoot(), "/t"); | ||
} | ||
}, { | ||
key: "getRoot", | ||
@@ -239,11 +228,13 @@ value: function getRoot() { | ||
var params = new this.context.URLSearchParams(query); | ||
var sendBeaconResult = this.context.navigator.sendBeacon("".concat(this.getBeaconUrl()), params); | ||
if (sendBeaconResult) { | ||
(0, _whatwgFetch.fetch)("".concat(this.getRoot(), "/wt/t"), { | ||
method: 'POST', | ||
headers: { | ||
'Content-Type': 'application/x-www-form-urlencoded' | ||
}, | ||
body: query | ||
}).then(function () { | ||
resolve(); | ||
} else { | ||
this.loaderImage.src = "".concat(this.getUrl(), "?").concat(query); | ||
} | ||
}).catch(function () { | ||
_this3.loaderImage.src = "".concat(_this3.getUrl(), "?").concat(query); | ||
}); | ||
this.emitter.emit(SEND_STARTED); | ||
@@ -250,0 +241,0 @@ } |
{ | ||
"name": "@clutter/wt", | ||
"version": "1.2.0-rc.5", | ||
"version": "1.2.0-rc.6", | ||
"scripts": { | ||
@@ -19,3 +19,4 @@ "clean": "rimraf lib", | ||
"js-cookie": "^2.2.0", | ||
"qs": "^6.5.1" | ||
"qs": "^6.5.1", | ||
"whatwg-fetch": "^3.6.2" | ||
}, | ||
@@ -22,0 +23,0 @@ "files": [ |
@@ -18,6 +18,5 @@ # What is wt | ||
When `button` is clicked, this code will instantiate an `<img>` tag with the `src` attribute set to: | ||
`/track.gif?payload[][kind]=event&payload[][url]=CURRENT_URL&payload[][ts]=1517356691057&agent=Mozilla&rts=1517356691561` | ||
When `button` is clicked, this code will send event data to the server asynchronously using the polyfilled window.fetch() method. | ||
On the server, the endpoint `track.gif` is expected to return a valid image (for instance, a transparent pixel) | ||
On the server, the endpoint `/wt/t` is expected to return a valid response | ||
and to parse all the provided parameters, keeping track of the events sent by `wt`. | ||
@@ -27,4 +26,4 @@ | ||
The concept of `wt` is the same as Google Analytics: to use a transparent pixel to track events in the browser. | ||
The main difference is that `wt` is highly customizable and can send events to your own server, rather than to Google. | ||
The benefit of `wt` is to reliably track visitor events in the browser. | ||
`wt` is highly customizable and can send events to your own server, rather than third-party trackers. | ||
@@ -48,3 +47,3 @@ # How to install and load wt | ||
Events can be tracked with the function `wt(*string* kind, *object* params)`. | ||
For a single event, sent `kind` to `'event'` and pass any parameters you want to track in `params`. | ||
For a single event, set `kind` to `'event'` and pass any parameters you want to track in `params`. | ||
For instance: | ||
@@ -56,22 +55,9 @@ | ||
will instantiate an `<img>` tag with the `src` attribute set to | ||
``` | ||
/track.gif | ||
?payload[][kind]=event | ||
&payload[][url]=CURRENT_URL | ||
&payload[][action]=hover | ||
&payload[][ts]=1517356691057 | ||
&agent=Mozilla | ||
&rts=1517356691561 | ||
``` | ||
Breaking the URL down, `/track.gif` is followed by these query parameters: | ||
- `payload[][kind]`: the kind of tracking; in this case: `'event'` | ||
- `payload[][url]`: the URL of the page where the event occurred | ||
- `payload[][action]`: the only param to track in this case: `'hover'` | ||
- `payload[][ts]`: the timestamp when the event occurred (Unix-time milliseconds) | ||
The data sent to the server will contain the following: | ||
- `events[][kind]`: the kind of tracking; in this case: `'event'` | ||
- `events[][url]`: the URL of the page where the event occurred | ||
- `events[][action]`: the only param to track in this case: `'hover'` | ||
- `events[][ts]`: the timestamp when the event occurred (Unix-time milliseconds) | ||
- `agent`: the User Agent of the request | ||
- `rts`: the timestamp when the event was sent (that is, when the `src` attribute of the image was set) | ||
- `rts`: the timestamp when the event was sent | ||
@@ -90,26 +76,6 @@ ### How to track multiple events | ||
Firstly, `wt` instantiates a *new* image only the first time `wt` is invoked. | ||
Every other time, `wt` changes the `src` attribute without creating a new image. | ||
Secondly, `wt` bundles multiple consecutive events into one request, if they occur within 1.5 seconds. | ||
`wt` bundles multiple consecutive events into one request, if they occur within 1.5 seconds. | ||
The goal is to avoid hitting the server too many times. | ||
If multiple events are sent in the same request, each request has its own payload. | ||
For instance, the URL for the two events above looks like this: | ||
``` | ||
/track.gif | ||
?payload[][kind]=event | ||
&payload[][url]=CURRENT_URL | ||
&payload[][action]=hover | ||
&payload[][ts]=1517356691057 | ||
?payload[][kind]=event | ||
&payload[][url]=CURRENT_URL | ||
&payload[][action]=click | ||
&payload[][ts]=1517356691257 | ||
&agent=Mozilla | ||
&rts=1517356691561 | ||
``` | ||
This format of array in query parameters is particularly optimized for Rails. | ||
### How to track a pageview | ||
@@ -121,10 +87,10 @@ | ||
### How to change the location of the tracking image | ||
### How to change the location of the tracking endpoint | ||
By default, `wt` expects the image to be located at `/track.gif` in the same host as the current page. | ||
This can be changed by initializing `wt` with a different `trackerUrl` before tracking: | ||
By default, `wt` expects the tracker domain to be the same host as the current page. | ||
This can be changed by initializing `wt` with a different `trackerDomain` before tracking: | ||
```js | ||
wt('initialize', { | ||
trackerUrl: 'www.my-pixel-endpoint.com/track.gif', | ||
trackerDomain: 'www.my-pixel-endpoint.com', | ||
}); | ||
@@ -169,3 +135,3 @@ ``` | ||
user: { | ||
id: 1 | ||
id: 1 | ||
}, | ||
@@ -236,4 +202,4 @@ }); | ||
In order for `wt` to fully work, a server must be running that provides a `track.gif` endpoint. | ||
In order for `wt` to fully work, a server must be running that provides a `/wt/t` endpoint. | ||
This can be built in Rails, node.js or any other technology. | ||
An example is provided inside the repo at `examples/index.server.js` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
58161
3
423
198
+ Addedwhatwg-fetch@^3.6.2
+ Addedwhatwg-fetch@3.6.20(transitive)