mirror of
https://github.com/imezx/Warp.git
synced 2025-04-24 15:10:03 +00:00
1 line
12 KiB
JavaScript
1 line
12 KiB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var version="2.13.0";function extractAdditionalParams(e){return e.reduce(function(e,t){var n=e.events,e=e.additionalParams;return"index"in t?{additionalParams:e,events:n.concat([t])}:{events:n,additionalParams:t}},{events:[],additionalParams:void 0})}var supportsCookies=function(){try{return Boolean(navigator.cookieEnabled)}catch(e){return!1}},supportsNodeHttpModule=function(){try{var e=require("http").request,t=require("https").request;return Boolean(e)&&Boolean(t)}catch(e){return!1}},supportsNativeFetch=function(){try{return void 0!==fetch}catch(e){return!1}},isUndefined=function(e){return void 0===e},isNumber=function(e){return"number"==typeof e},isFunction=function(e){return"function"==typeof e};function getFunctionalInterface(i){return function(e){for(var t=[],n=arguments.length-1;0<n--;)t[n]=arguments[n+1];e&&isFunction(i[e])?i[e].apply(i,t):console.warn("The method `"+e+"` doesn't exist.")}}var DEFAULT_ALGOLIA_AGENTS=["insights-js ("+version+")","insights-js-node-cjs ("+version+")"];function addAlgoliaAgent(e){-1===this._ua.indexOf(e)&&this._ua.push(e)}function getVersion(e){isFunction(e)&&e(this.version)}function __rest(e,t){var n={};for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,s=Object.getOwnPropertySymbols(e);i<s.length;i++)t.indexOf(s[i])<0&&Object.prototype.propertyIsEnumerable.call(e,s[i])&&(n[s[i]]=e[s[i]]);return n}function makeSendEvents(s){return function(e,t){var i=this;if(!this._userHasOptedOut){if(!(!isUndefined(this._apiKey)&&!isUndefined(this._appId)||(null==(n=null==t?void 0:t.headers)?void 0:n["X-Algolia-Application-Id"])&&(null==(n=null==t?void 0:t.headers)?void 0:n["X-Algolia-API-Key"])))throw new Error("Before calling any methods on the analytics, you first need to call the 'init' function with appId and apiKey parameters or provide custom credentials in additional parameters.");!this._userToken&&this._anonymousUserToken&&this.setAnonymousUserToken(!0);var n=e.map(function(e){var t=e.filters,n=__rest(e,["filters"]),e=Object.assign(Object.assign({},n),{userToken:null!=(n=null==e?void 0:e.userToken)?n:i._userToken,authenticatedUserToken:null!=(n=null==e?void 0:e.authenticatedUserToken)?n:i._authenticatedUserToken});return isUndefined(t)||(e.filters=t.map(encodeURIComponent)),e});return sendRequest(s,this._ua,this._endpointOrigin,n,this._appId,this._apiKey,null==t?void 0:t.headers)}}}function sendRequest(e,t,n,i,s,o,r){var a=(r=void 0===r?{}:r)["X-Algolia-Application-Id"],c=r["X-Algolia-API-Key"],r=__rest(r,["X-Algolia-Application-Id","X-Algolia-API-Key"]),d=Object.assign({"X-Algolia-Application-Id":null!=a?a:s,"X-Algolia-API-Key":null!=c?c:o,"X-Algolia-Agent":encodeURIComponent(t.join("; "))},r);return e(n+"/1/events?"+Object.keys(d).map(function(e){return e+"="+d[e]}).join("&"),{events:i})}function createUUID(){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)})}var COOKIE_KEY="_ALGOLIA",MONTH=2592e6,setCookie=function(e,t,n){var i=new Date,n=(i.setTime(i.getTime()+n),"expires="+i.toUTCString());document.cookie=e+"="+t+";"+n+";path=/"},getCookie=function(e){for(var t=e+"=",n=document.cookie.split(";"),i=0;i<n.length;i++){for(var s=n[i];" "===s.charAt(0);)s=s.substring(1);if(0===s.indexOf(t))return s.substring(t.length,s.length)}return""};function setAnonymousUserToken(e){(e=void 0!==e&&e)?this.setUserToken("anonymous-"+createUUID()):supportsCookies()&&((e=getCookie(COOKIE_KEY))&&""!==e&&0===e.indexOf("anonymous-")?this.setUserToken(e):(e=this.setUserToken("anonymous-"+createUUID()),setCookie(COOKIE_KEY,e,this._cookieDuration)))}function setUserToken(e){return this._userToken=e,isFunction(this._onUserTokenChangeCallback)&&this._onUserTokenChangeCallback(this._userToken),this._userToken}function getUserToken(e,t){return isFunction(t)&&t(null,this._userToken),this._userToken}function onUserTokenChange(e,t){this._onUserTokenChangeCallback=e,t&&t.immediate&&isFunction(this._onUserTokenChangeCallback)&&this._onUserTokenChangeCallback(this._userToken)}function setAuthenticatedUserToken(e){return this._authenticatedUserToken=e,isFunction(this._onAuthenticatedUserTokenChangeCallback)&&this._onAuthenticatedUserTokenChangeCallback(this._authenticatedUserToken),this._authenticatedUserToken}function getAuthenticatedUserToken(e,t){return isFunction(t)&&t(null,this._authenticatedUserToken),this._authenticatedUserToken}function onAuthenticatedUserTokenChange(e,t){this._onAuthenticatedUserTokenChangeCallback=e,t&&t.immediate&&isFunction(this._onAuthenticatedUserTokenChangeCallback)&&this._onAuthenticatedUserTokenChangeCallback(this._authenticatedUserToken)}function addEventType(t,e){return e.map(function(e){return Object.assign({eventType:t},e)})}function addEventTypeAndSubtype(t,n,e){return e.map(function(e){return Object.assign({eventType:t,eventSubtype:n},e)})}function clickedObjectIDsAfterSearch(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventType("click",i),n)}function clickedObjectIDs(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventType("click",i),n)}function clickedFilters(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventType("click",i),n)}function convertedObjectIDsAfterSearch(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventType("conversion",i),n)}function addedToCartObjectIDsAfterSearch(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventTypeAndSubtype("conversion","addToCart",i),n)}function purchasedObjectIDsAfterSearch(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventTypeAndSubtype("conversion","purchase",i),n)}function convertedObjectIDs(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventType("conversion",i),n)}function addedToCartObjectIDs(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventTypeAndSubtype("conversion","addToCart",i),n)}function purchasedObjectIDs(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventTypeAndSubtype("conversion","purchase",i),n)}function convertedFilters(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventType("conversion",i),n)}var SUPPORTED_REGIONS=["de","us"];function init(e){var t;if(!isUndefined((e=void 0===e?{}:e).region)&&-1===SUPPORTED_REGIONS.indexOf(e.region))throw new Error("optional region is incorrect, please provide either one of: "+SUPPORTED_REGIONS.join(", ")+".");if(!(isUndefined(e.cookieDuration)||isNumber(e.cookieDuration)&&isFinite(e.cookieDuration)&&Math.floor(e.cookieDuration)===e.cookieDuration))throw new Error("optional cookieDuration is incorrect, expected an integer.");"development"===process.env.NODE_ENV&&console.info("Since v2.0.4, search-insights no longer validates event payloads.\nYou can visit https://algolia.com/events/debugger instead."),setOptions(this,e,{_userHasOptedOut:Boolean(e.userHasOptedOut),_region:e.region,_host:e.host,_anonymousUserToken:null==(t=e.anonymousUserToken)||t,_useCookie:null!=(t=e.useCookie)&&t,_cookieDuration:e.cookieDuration||6*MONTH}),this._endpointOrigin=this._host||(this._region?"https://insights."+this._region+".algolia.io":"https://insights.algolia.io"),this._ua=[].concat(DEFAULT_ALGOLIA_AGENTS),e.authenticatedUserToken&&this.setAuthenticatedUserToken(e.authenticatedUserToken),e.userToken?this.setUserToken(e.userToken):this._userToken||this._userHasOptedOut||!this._useCookie||this.setAnonymousUserToken()}function setOptions(e,t,n){var i=t.partial,s=__rest(t,["partial"]);i||Object.assign(e,n),Object.assign(e,Object.keys(s).reduce(function(e,t){return Object.assign(Object.assign({},e),((e={})["_"+t]=s[t],e))},{}))}function viewedObjectIDs(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventType("view",i),n)}function viewedFilters(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n=extractAdditionalParams(e),i=n.events,n=n.additionalParams;return this.sendEvents(addEventType("view",i),n)}var AlgoliaAnalytics=function(e){e=e.requestFn;this._endpointOrigin="https://insights.algolia.io",this._anonymousUserToken=!0,this._userHasOptedOut=!1,this._useCookie=!1,this._cookieDuration=6*MONTH,this._ua=[],this.version=version,this.sendEvents=makeSendEvents(e).bind(this),this.init=init.bind(this),this.addAlgoliaAgent=addAlgoliaAgent.bind(this),this.setUserToken=setUserToken.bind(this),this.setAnonymousUserToken=setAnonymousUserToken.bind(this),this.getUserToken=getUserToken.bind(this),this.onUserTokenChange=onUserTokenChange.bind(this),this.setAuthenticatedUserToken=setAuthenticatedUserToken.bind(this),this.getAuthenticatedUserToken=getAuthenticatedUserToken.bind(this),this.onAuthenticatedUserTokenChange=onAuthenticatedUserTokenChange.bind(this),this.clickedObjectIDsAfterSearch=clickedObjectIDsAfterSearch.bind(this),this.clickedObjectIDs=clickedObjectIDs.bind(this),this.clickedFilters=clickedFilters.bind(this),this.convertedObjectIDsAfterSearch=convertedObjectIDsAfterSearch.bind(this),this.purchasedObjectIDsAfterSearch=purchasedObjectIDsAfterSearch.bind(this),this.addedToCartObjectIDsAfterSearch=addedToCartObjectIDsAfterSearch.bind(this),this.convertedObjectIDs=convertedObjectIDs.bind(this),this.addedToCartObjectIDs=addedToCartObjectIDs.bind(this),this.purchasedObjectIDs=purchasedObjectIDs.bind(this),this.convertedFilters=convertedFilters.bind(this),this.viewedObjectIDs=viewedObjectIDs.bind(this),this.viewedFilters=viewedFilters.bind(this),this.getVersion=getVersion.bind(this)};function createInsightsClient(e){var t,e=getFunctionalInterface(new AlgoliaAnalytics({requestFn:e}));if("object"==typeof window&&!window.AlgoliaAnalyticsObject){for(;t=createUUID(),void 0!==window[t];);window.AlgoliaAnalyticsObject=t,window[window.AlgoliaAnalyticsObject]=e}return e.version=version,e}function processQueue(e){var n,t=e.AlgoliaAnalyticsObject;t&&(n=getFunctionalInterface(this),(e=e[t]).queue=e.queue||[],(t=e.queue).forEach(function(e){var e=[].slice.call(e),t=e[0],e=e.slice(1);n.apply(void 0,[t].concat(e))}),t.push=function(e){var e=[].slice.call(e),t=e[0],e=e.slice(1);n.apply(void 0,[t].concat(e))})}var requestWithNodeHttpModule=function(s,o){return new Promise(function(t,n){var e=JSON.stringify(o),i=require("url").parse(s),i={protocol:i.protocol,host:i.host,path:i.path,method:"POST",headers:{"Content-Type":"application/json","Content-Length":e.length}},i=(0,(s.startsWith("https://")?require("https"):require("http")).request)(i,function(e){e=e.statusCode;t(200===e)});i.on("error",function(e){console.error(e),n(e)}),i.on("timeout",function(){return t(!1)}),i.write(e),i.end()})},requestWithNativeFetch=function(e,i){return new Promise(function(t,n){fetch(e,{method:"POST",body:JSON.stringify(i),headers:{"Content-Type":"application/json"}}).then(function(e){t(200===e.status)}).catch(function(e){n(e)})})};function getRequesterForNode(){if(supportsNodeHttpModule())return requestWithNodeHttpModule;if(supportsNativeFetch())return requestWithNativeFetch;throw new Error("Could not find a supported HTTP request client in this environment.")}var entryNodeCjs=createInsightsClient(getRequesterForNode());exports.AlgoliaAnalytics=AlgoliaAnalytics,exports.default=entryNodeCjs,exports.getFunctionalInterface=getFunctionalInterface,exports.getRequesterForNode=getRequesterForNode,exports.processQueue=processQueue;
|