@v-tilt/browser 1.0.1
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.
- package/dist/array.js +2 -0
- package/dist/array.js.map +1 -0
- package/dist/array.no-external.js +2 -0
- package/dist/array.no-external.js.map +1 -0
- package/dist/config.d.ts +17 -0
- package/dist/constants.d.ts +10 -0
- package/dist/entrypoints/array.d.ts +1 -0
- package/dist/entrypoints/array.no-external.d.ts +1 -0
- package/dist/entrypoints/main.cjs.d.ts +4 -0
- package/dist/entrypoints/module.es.d.ts +3 -0
- package/dist/entrypoints/module.no-external.es.d.ts +4 -0
- package/dist/geolocation.d.ts +5 -0
- package/dist/main.js +2 -0
- package/dist/main.js.map +1 -0
- package/dist/module.d.ts +214 -0
- package/dist/module.js +2 -0
- package/dist/module.js.map +1 -0
- package/dist/module.no-external.d.ts +214 -0
- package/dist/module.no-external.js +2 -0
- package/dist/module.no-external.js.map +1 -0
- package/dist/session.d.ts +26 -0
- package/dist/tracking.d.ts +112 -0
- package/dist/types.d.ts +67 -0
- package/dist/user-manager.d.ts +152 -0
- package/dist/utils/globals.d.ts +4 -0
- package/dist/utils/index.d.ts +30 -0
- package/dist/utils.d.ts +21 -0
- package/dist/vtilt.d.ts +178 -0
- package/dist/web-vitals.d.ts +11 -0
- package/lib/config.d.ts +17 -0
- package/lib/config.js +76 -0
- package/lib/constants.d.ts +10 -0
- package/lib/constants.js +463 -0
- package/lib/entrypoints/array.d.ts +1 -0
- package/lib/entrypoints/array.js +3 -0
- package/lib/entrypoints/array.no-external.d.ts +1 -0
- package/lib/entrypoints/array.no-external.js +4 -0
- package/lib/entrypoints/main.cjs.d.ts +4 -0
- package/lib/entrypoints/main.cjs.js +29 -0
- package/lib/entrypoints/module.es.d.ts +3 -0
- package/lib/entrypoints/module.es.js +22 -0
- package/lib/entrypoints/module.no-external.es.d.ts +4 -0
- package/lib/entrypoints/module.no-external.es.js +23 -0
- package/lib/geolocation.d.ts +5 -0
- package/lib/geolocation.js +26 -0
- package/lib/session.d.ts +26 -0
- package/lib/session.js +115 -0
- package/lib/tracking.d.ts +112 -0
- package/lib/tracking.js +326 -0
- package/lib/types.d.ts +67 -0
- package/lib/types.js +2 -0
- package/lib/user-manager.d.ts +152 -0
- package/lib/user-manager.js +565 -0
- package/lib/utils/globals.d.ts +4 -0
- package/lib/utils/globals.js +5 -0
- package/lib/utils/index.d.ts +30 -0
- package/lib/utils/index.js +89 -0
- package/lib/utils.d.ts +21 -0
- package/lib/utils.js +57 -0
- package/lib/vtilt.d.ts +178 -0
- package/lib/vtilt.js +403 -0
- package/lib/web-vitals.d.ts +11 -0
- package/lib/web-vitals.js +67 -0
- package/package.json +61 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function e(e,i,t,a,r,n,s){try{var o=e[n](s),c=o.value}catch(e){return void t(e)}o.done?i(c):Promise.resolve(c).then(a,r)}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var i=1;i<arguments.length;i++){var t=arguments[i];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},i.apply(null,arguments)}class t{constructor(e){void 0===e&&(e={}),this.config=this.parseConfigFromScript(e)}parseConfigFromScript(e){if(!document.currentScript)return i({projectId:e.projectId||"",token:e.token||""},e);var t=document.currentScript,a=i({projectId:"",token:""},e);if(a.host=t.getAttribute("data-host")||e.host,a.proxy=t.getAttribute("data-proxy")||e.proxy,a.proxyUrl=t.getAttribute("data-proxy-url")||e.proxyUrl,a.token=t.getAttribute("data-token")||e.token||"",a.projectId=t.getAttribute("data-project-id")||e.projectId||"",a.domain=t.getAttribute("data-domain")||e.domain,a.storage=t.getAttribute("data-storage")||e.storage,a.stringifyPayload="false"!==t.getAttribute("data-stringify-payload"),a.webVitals="true"===t.getAttribute("web-vitals")||"true"===t.getAttribute("data-web-vitals")||e.webVitals,a.proxy&&a.proxyUrl)throw console.error("Error: Both data-proxy and data-proxy-url are specified. Please use only one of them."),new Error("Both data-proxy and data-proxy-url are specified. Please use only one of them.");for(var r of(a.globalAttributes=i({},e.globalAttributes),Array.from(t.attributes)))r.name.startsWith("tb_")&&(a.globalAttributes[r.name.slice(3).replace(/-/g,"_")]=r.value),r.name.startsWith("data-tb-")&&(a.globalAttributes[r.name.slice(8).replace(/-/g,"_")]=r.value);return a}getConfig(){return i({},this.config)}updateConfig(e){this.config=i({},this.config,e)}}var a,r="vt_session_id",n="vt_anonymous_id",s="vt_distinct_id",o="vt_device_id",c="vt_user_properties",d="vt_user_state",u="localStorage",A="sessionStorage",l={"Asia/Barnaul":"RU","Africa/Nouakchott":"MR","Africa/Lusaka":"ZM","Asia/Pyongyang":"KP","Europe/Bratislava":"SK","America/Belize":"BZ","America/Maceio":"BR","Pacific/Chuuk":"FM","Indian/Comoro":"KM","Pacific/Palau":"PW","Asia/Jakarta":"ID","Africa/Windhoek":"NA","America/Chihuahua":"MX","America/Nome":"US","Africa/Mbabane":"SZ","Africa/Porto-Novo":"BJ","Europe/San_Marino":"SM","Pacific/Fakaofo":"TK","America/Denver":"US","Europe/Belgrade":"RS","America/Indiana/Tell_City":"US","America/Fortaleza":"BR","America/Halifax":"CA","Europe/Bucharest":"RO","America/Indiana/Petersburg":"US","Europe/Kirov":"RU","Europe/Athens":"GR","America/Argentina/Ushuaia":"AR","Europe/Monaco":"MC","Europe/Vilnius":"LT","Europe/Copenhagen":"DK","Pacific/Kanton":"KI","America/Caracas":"VE","Asia/Almaty":"KZ","Europe/Paris":"FR","Africa/Blantyre":"MW","Asia/Muscat":"OM","America/North_Dakota/Beulah":"US","America/Matamoros":"MX","Asia/Irkutsk":"RU","America/Costa_Rica":"CR","America/Araguaina":"BR","Atlantic/Canary":"ES","America/Santo_Domingo":"DO","America/Vancouver":"CA","Africa/Addis_Ababa":"ET","Africa/Accra":"GH","Pacific/Kwajalein":"MH","Asia/Baghdad":"IQ","Australia/Adelaide":"AU","Australia/Hobart":"AU","America/Guayaquil":"EC","America/Argentina/Tucuman":"AR","Australia/Lindeman":"AU","America/New_York":"US","Pacific/Fiji":"FJ","America/Antigua":"AG","Africa/Casablanca":"MA","America/Paramaribo":"SR","Africa/Cairo":"EG","America/Cayenne":"GF","America/Detroit":"US","Antarctica/Syowa":"AQ","Africa/Douala":"CM","America/Argentina/La_Rioja":"AR","Africa/Lagos":"NG","America/St_Barthelemy":"BL","Asia/Nicosia":"CY","Asia/Macau":"MO","Europe/Riga":"LV","Asia/Ashgabat":"TM","Indian/Antananarivo":"MG","America/Argentina/San_Juan":"AR","Asia/Aden":"YE","Asia/Tomsk":"RU","America/Asuncion":"PY","Pacific/Bougainville":"PG","Asia/Vientiane":"LA","America/Mazatlan":"MX","Africa/Luanda":"AO","Europe/Oslo":"NO","Africa/Kinshasa":"CD","Europe/Warsaw":"PL","America/Grand_Turk":"TC","Asia/Seoul":"KR","Africa/Tripoli":"LY","America/St_Thomas":"VI","Asia/Kathmandu":"NP","Pacific/Pitcairn":"PN","Pacific/Nauru":"NR","America/Curacao":"CW","Asia/Kabul":"AF","Pacific/Tongatapu":"TO","Europe/Simferopol":"UA","Asia/Ust-Nera":"RU","Africa/Mogadishu":"SO","Indian/Mayotte":"YT","Pacific/Niue":"NU","America/Thunder_Bay":"CA","Atlantic/Azores":"PT","Pacific/Gambier":"PF","Europe/Stockholm":"SE","Africa/Libreville":"GA","America/Punta_Arenas":"CL","America/Guatemala":"GT","America/Noronha":"BR","Europe/Helsinki":"FI","Asia/Gaza":"PS","Pacific/Kosrae":"FM","America/Aruba":"AW","America/Nassau":"BS","Asia/Choibalsan":"MN","America/Winnipeg":"CA","America/Anguilla":"AI","Asia/Thimphu":"BT","Asia/Beirut":"LB","Atlantic/Faroe":"FO","Europe/Berlin":"DE","Europe/Amsterdam":"NL","Pacific/Honolulu":"US","America/Regina":"CA","America/Scoresbysund":"GL","Europe/Vienna":"AT","Europe/Tirane":"AL","Africa/El_Aaiun":"EH","America/Creston":"CA","Asia/Qostanay":"KZ","Asia/Ho_Chi_Minh":"VN","Europe/Samara":"RU","Europe/Rome":"IT","Australia/Eucla":"AU","America/El_Salvador":"SV","America/Chicago":"US","Africa/Abidjan":"CI","Asia/Kamchatka":"RU","Pacific/Tarawa":"KI","America/Santiago":"CL","America/Bahia":"BR","Indian/Christmas":"CX","Asia/Atyrau":"KZ","Asia/Dushanbe":"TJ","Europe/Ulyanovsk":"RU","America/Yellowknife":"CA","America/Recife":"BR","Australia/Sydney":"AU","America/Fort_Nelson":"CA","Pacific/Efate":"VU","Europe/Saratov":"RU","Africa/Banjul":"GM","Asia/Omsk":"RU","Europe/Ljubljana":"SI","Europe/Budapest":"HU","Europe/Astrakhan":"RU","America/Argentina/Buenos_Aires":"AR","Pacific/Chatham":"NZ","America/Argentina/Salta":"AR","Africa/Niamey":"NE","Asia/Pontianak":"ID","Indian/Reunion":"RE","Asia/Hong_Kong":"HK","Antarctica/McMurdo":"AQ","Africa/Malabo":"GQ","America/Los_Angeles":"US","America/Argentina/Cordoba":"AR","Pacific/Pohnpei":"FM","America/Tijuana":"MX","America/Campo_Grande":"BR","America/Dawson_Creek":"CA","Asia/Novosibirsk":"RU","Pacific/Pago_Pago":"AS","Asia/Jerusalem":"IL","Europe/Sarajevo":"BA","Africa/Freetown":"SL","Asia/Yekaterinburg":"RU","America/Juneau":"US","Africa/Ouagadougou":"BF","Africa/Monrovia":"LR","Europe/Kiev":"UA","America/Argentina/San_Luis":"AR","Asia/Tokyo":"JP","Asia/Qatar":"QA","America/La_Paz":"BO","America/Bogota":"CO","America/Thule":"GL","Asia/Manila":"PH","Asia/Hovd":"MN","Asia/Tehran":"IR","Atlantic/Madeira":"PT","America/Metlakatla":"US","Europe/Vatican":"VA","Asia/Bishkek":"KG","Asia/Dili":"TL","Antarctica/Palmer":"AQ","Atlantic/Cape_Verde":"CV","Indian/Chagos":"IO","America/Kentucky/Monticello":"US","Africa/Algiers":"DZ","Africa/Maseru":"LS","Asia/Kuala_Lumpur":"MY","Africa/Khartoum":"SD","America/Argentina/Rio_Gallegos":"AR","America/Blanc-Sablon":"CA","Africa/Maputo":"MZ","America/Tortola":"VG","Atlantic/Bermuda":"BM","America/Argentina/Catamarca":"AR","America/Cayman":"KY","America/Puerto_Rico":"PR","Pacific/Majuro":"MH","Europe/Busingen":"DE","Pacific/Midway":"UM","Indian/Cocos":"CC","Asia/Singapore":"SG","America/Boise":"US","America/Nuuk":"GL","America/Goose_Bay":"CA","Australia/Broken_Hill":"AU","Africa/Dar_es_Salaam":"TZ","Africa/Asmara":"ER","Asia/Samarkand":"UZ","Asia/Tbilisi":"GE","America/Argentina/Jujuy":"AR","America/Indiana/Winamac":"US","America/Porto_Velho":"BR","Asia/Magadan":"RU","Europe/Zaporozhye":"UA","Antarctica/Casey":"AQ","Asia/Shanghai":"CN","Pacific/Norfolk":"NF","Europe/Guernsey":"GG","Australia/Brisbane":"AU","Antarctica/DumontDUrville":"AQ","America/Havana":"CU","America/Atikokan":"CA","America/Mexico_City":"MX","America/Rankin_Inlet":"CA","America/Cuiaba":"BR","America/Resolute":"CA","Africa/Ceuta":"ES","Arctic/Longyearbyen":"SJ","Pacific/Guam":"GU","Asia/Damascus":"SY","Asia/Colombo":"LK","Asia/Yerevan":"AM","America/Montserrat":"MS","America/Belem":"BR","Europe/Kaliningrad":"RU","Atlantic/South_Georgia":"GS","Asia/Tashkent":"UZ","Asia/Kolkata":"IN","America/St_Johns":"CA","Asia/Srednekolymsk":"RU","Asia/Yakutsk":"RU","Europe/Prague":"CZ","Africa/Djibouti":"DJ","Asia/Dubai":"AE","Europe/Uzhgorod":"UA","America/Edmonton":"CA","Asia/Famagusta":"CY","America/Indiana/Knox":"US","Asia/Hebron":"PS","Asia/Taipei":"TW","Europe/London":"GB","Africa/Dakar":"SN","Australia/Darwin":"AU","America/Glace_Bay":"CA","Antarctica/Vostok":"AQ","America/Indiana/Vincennes":"US","America/Nipigon":"CA","Asia/Kuwait":"KW","Pacific/Guadalcanal":"SB","America/Toronto":"CA","Africa/Gaborone":"BW","Africa/Bujumbura":"BI","Africa/Lubumbashi":"CD","America/Merida":"MX","America/Marigot":"MF","Europe/Zagreb":"HR","Pacific/Easter":"CL","America/Santarem":"BR","Pacific/Noumea":"NC","America/Sitka":"US","Atlantic/Stanley":"FK","Pacific/Funafuti":"TV","America/Iqaluit":"CA","America/Rainy_River":"CA","America/Anchorage":"US","America/Lima":"PE","Asia/Baku":"AZ","America/Indiana/Vevay":"US","Asia/Ulaanbaatar":"MN","America/Managua":"NI","Asia/Krasnoyarsk":"RU","Asia/Qyzylorda":"KZ","America/Eirunepe":"BR","Europe/Podgorica":"ME","Europe/Chisinau":"MD","Europe/Mariehamn":"AX","Europe/Volgograd":"RU","Africa/Nairobi":"KE","Europe/Isle_of_Man":"IM","America/Menominee":"US","Africa/Harare":"ZW","Asia/Anadyr":"RU","America/Moncton":"CA","Indian/Maldives":"MV","America/Whitehorse":"CA","Antarctica/Mawson":"AQ","Europe/Madrid":"ES","America/Argentina/Mendoza":"AR","America/Manaus":"BR","Africa/Bangui":"CF","Indian/Mauritius":"MU","Africa/Tunis":"TN","Australia/Lord_Howe":"AU","America/Kentucky/Louisville":"US","America/North_Dakota/Center":"US","Asia/Novokuznetsk":"RU","Asia/Makassar":"ID","America/Port_of_Spain":"TT","America/Bahia_Banderas":"MX","Pacific/Auckland":"NZ","America/Sao_Paulo":"BR","Asia/Dhaka":"BD","America/Pangnirtung":"CA","Europe/Dublin":"IE","Asia/Brunei":"BN","Africa/Brazzaville":"CG","America/Montevideo":"UY","America/Jamaica":"JM","America/Indiana/Indianapolis":"US","America/Kralendijk":"BQ","Europe/Gibraltar":"GI","Pacific/Marquesas":"PF","Pacific/Apia":"WS","Europe/Jersey":"JE","America/Phoenix":"US","Africa/Ndjamena":"TD","Asia/Karachi":"PK","Africa/Kampala":"UG","Asia/Sakhalin":"RU","America/Martinique":"MQ","Europe/Moscow":"RU","Africa/Conakry":"GN","America/Barbados":"BB","Africa/Lome":"TG","America/Ojinaga":"MX","America/Tegucigalpa":"HN","Asia/Bangkok":"TH","Africa/Johannesburg":"ZA","Europe/Vaduz":"LI","Africa/Sao_Tome":"ST","America/Cambridge_Bay":"CA","America/Lower_Princes":"SX","America/Miquelon":"PM","America/St_Kitts":"KN","Australia/Melbourne":"AU","Europe/Minsk":"BY","Asia/Vladivostok":"RU","Europe/Sofia":"BG","Antarctica/Davis":"AQ","Pacific/Galapagos":"EC","America/North_Dakota/New_Salem":"US","Asia/Amman":"JO","Pacific/Wallis":"WF","America/Hermosillo":"MX","Pacific/Kiritimati":"KI","Antarctica/Macquarie":"AU","America/Guyana":"GY","Asia/Riyadh":"SA","Pacific/Tahiti":"PF","America/St_Vincent":"VC","America/Cancun":"MX","America/Grenada":"GD","Pacific/Wake":"UM","America/Dawson":"CA","Europe/Brussels":"BE","Indian/Kerguelen":"TF","America/Yakutat":"US","Indian/Mahe":"SC","Atlantic/Reykjavik":"IS","America/Panama":"PA","America/Guadeloupe":"GP","Europe/Malta":"MT","Antarctica/Troll":"AQ","Asia/Jayapura":"ID","Asia/Bahrain":"BH","Asia/Chita":"RU","Europe/Tallinn":"EE","Asia/Khandyga":"RU","America/Rio_Branco":"BR","Atlantic/St_Helena":"SH","Africa/Juba":"SS","America/Adak":"US","Pacific/Saipan":"MP","America/St_Lucia":"LC","America/Inuvik":"CA","Europe/Luxembourg":"LU","Africa/Bissau":"GW","Asia/Oral":"KZ","America/Boa_Vista":"BR","Europe/Skopje":"MK","America/Port-au-Prince":"HT","Pacific/Port_Moresby":"PG","Europe/Andorra":"AD","America/Indiana/Marengo":"US","Africa/Kigali":"RW","Africa/Bamako":"ML","America/Dominica":"DM","Asia/Aqtobe":"KZ","Europe/Istanbul":"TR","Pacific/Rarotonga":"CK","America/Danmarkshavn":"GL","Europe/Zurich":"CH","Asia/Yangon":"MM","America/Monterrey":"MX","Europe/Lisbon":"PT","Asia/Kuching":"MY","Antarctica/Rothera":"AQ","Australia/Perth":"AU","Asia/Phnom_Penh":"KH","America/Swift_Current":"CA","Asia/Aqtau":"KZ","Asia/Urumqi":"CN","Asia/Calcutta":"IN"},g=["username","user","user_id","userid","password","pass","pin","passcode","token","api_token","email","address","phone","sex","gender","order","order_id","orderid","payment","credit_card"];function h(){return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(+e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>+e/4).toString(16))}function m(e){return!(!e||"string"!=typeof e)&&!(e.length<2||e.length>10240)}function p(e){var i=JSON.stringify(e);return g.forEach(e=>{i=i.replace(new RegExp('("'+e+'"):(".+?"|\\d+)',"gmi"),'$1:"********"')}),i}function f(){return!!("__nightmare"in window||window.navigator.webdriver||"Cypress"in window)}class y{constructor(e,i){void 0===e&&(e="cookie"),this.storageMethod=e,this.domain=i}getSessionIdFromCookie(){var e={};return document.cookie.split(";").forEach(function(i){var[t,a]=i.split("=");e[t.trim()]=a}),e[r]||null}getSessionId(){if(this.storageMethod===u||this.storageMethod===A){var e=this.storageMethod===u?localStorage:sessionStorage,i=e.getItem(r);if(!i)return null;var t=null;try{t=JSON.parse(i)}catch(e){return null}return"object"!=typeof t||null===t?null:(new Date).getTime()>t.expiry?(e.removeItem(r),null):t.value}return this.getSessionIdFromCookie()}setSessionIdFromCookie(e){var i=r+"="+e+"; Max-Age=1800; path=/; secure";this.domain&&(i+="; domain="+this.domain),document.cookie=i}setSessionId(){var e=this.getSessionId()||h();if(this.storageMethod===u||this.storageMethod===A){var i={value:e,expiry:(new Date).getTime()+18e5},t=JSON.stringify(i);(this.storageMethod===u?localStorage:sessionStorage).setItem(r,t)}else this.setSessionIdFromCookie(e);return e}resetSessionId(){this.storageMethod===u||this.storageMethod===A?(this.storageMethod===u?localStorage:sessionStorage).removeItem(r):(document.cookie=r+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;",this.domain&&(document.cookie=r+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain="+this.domain+";"));this.setSessionId()}}class v{constructor(e,i){void 0===e&&(e="localStorage"),this._cachedPersonProperties=null,this.storageMethod=e,this.domain=i,this.userIdentity=this.loadUserIdentity()}getUserIdentity(){return i({},this.userIdentity)}getDistinctId(){return this.userIdentity.distinct_id}getAnonymousId(){return this.userIdentity.anonymous_id||(this.userIdentity.anonymous_id=this.generateAnonymousId(),this.saveUserIdentity()),this.userIdentity.anonymous_id}getUserProperties(){return i({},this.userIdentity.properties)}identify(e,t,a){if("number"==typeof e&&(e=e.toString(),console.warn("The first argument to vTilt.identify was a number, but it should be a string. It has been converted to a string.")),e)if(this.isDistinctIdStringLike(e))console.error('The string "'+e+'" was set in vTilt.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.');else if("COOKIELESS_SENTINEL_VALUE"!==e){var r=this.userIdentity.distinct_id,n=this.userIdentity.anonymous_id,s=this.userIdentity.device_id;if(this.userIdentity.distinct_id=e,!this.userIdentity.device_id){var o=r||this.userIdentity.anonymous_id;this.userIdentity.device_id=o,this.userIdentity.properties=i({},this.userIdentity.properties,{$had_persisted_distinct_id:!0,$device_id:o})}e!==r&&(this.userIdentity.distinct_id=e);var c="anonymous"===this.userIdentity.user_state;e!==r&&c?(this.userIdentity.user_state="identified",t&&(this.userIdentity.properties=i({},this.userIdentity.properties,t)),a&&Object.keys(a).forEach(e=>{e in this.userIdentity.properties||(this.userIdentity.properties[e]=a[e])}),this.saveUserIdentity(),this.sendIdentifyEvent(e,n,s,{$set:t||{},$set_once:a||{}})):t||a?("anonymous"===this.userIdentity.user_state&&(this.userIdentity.user_state="identified"),t&&(this.userIdentity.properties=i({},this.userIdentity.properties,t)),a&&Object.keys(a).forEach(e=>{e in this.userIdentity.properties||(this.userIdentity.properties[e]=a[e])}),this.saveUserIdentity(),this.sendSetEvent(t||{},a||{})):e!==r&&(this.userIdentity.user_state="identified",this.saveUserIdentity())}else console.error('The string "'+e+'" was set in vTilt.identify which indicates an error. This ID is only used as a sentinel value.');else console.error("Unique user id has not been set in vTilt.identify")}setUserProperties(e,t){if(e||t){var a=this.userIdentity.distinct_id||this.userIdentity.anonymous_id,r=this.getPersonPropertiesHash(a,e,t);this._cachedPersonProperties!==r?(e&&(this.userIdentity.properties=i({},this.userIdentity.properties,e)),t&&Object.keys(t).forEach(e=>{e in this.userIdentity.properties||(this.userIdentity.properties[e]=t[e])}),this.saveUserIdentity(),this.sendSetEvent(e||{},t||{}),this._cachedPersonProperties=r):console.info("VTilt: A duplicate setUserProperties call was made with the same properties. It has been ignored.")}}getPersonPropertiesHash(e,i,t){return JSON.stringify({distinct_id:e,userPropertiesToSet:i,userPropertiesToSetOnce:t})}sendSetEvent(e,i){var t=new CustomEvent("vtilt:set",{detail:{$set:e||{},$set_once:i||{}}});window.dispatchEvent(t)}reset(e){var t=this.generateAnonymousId(),a=this.userIdentity.device_id,r=e?this.generateDeviceId():a;this.userIdentity={distinct_id:null,anonymous_id:t,device_id:r,properties:{},user_state:"anonymous"},this._cachedPersonProperties=null,this.saveUserIdentity(),this.userIdentity.properties=i({},this.userIdentity.properties,{$last_posthog_reset:(new Date).toISOString()}),this.saveUserIdentity()}getEffectiveId(){return this.userIdentity.distinct_id||this.getAnonymousId()}getDeviceId(){return this.userIdentity.device_id}getUserState(){return this.userIdentity.user_state}createAlias(e,i){if(this.isValidDistinctId(e))if(void 0===i&&(i=this.getDistinctId()||this.getAnonymousId()),this.isValidDistinctId(i)){if(e===i)return console.warn("alias matches current distinct_id - calling identify instead"),void this.identify(e);var t=new CustomEvent("vtilt:alias",{detail:{distinct_id:e,original:i}});window.dispatchEvent(t)}else console.warn("Invalid original distinct ID");else console.warn("Invalid alias provided")}isValidDistinctId(e){if(!e||"string"!=typeof e)return!1;var i=e.toLowerCase().trim();return!["null","undefined","false","true","anonymous","anon","user","test","guest","visitor","unknown","none"].includes(i)&&0!==e.trim().length}isDistinctIdStringLike(e){if(!e||"string"!=typeof e)return!1;var i=e.toLowerCase().trim();return["null","undefined","false","true","anonymous","anon","user","test","guest","visitor","unknown","none","demo","example","sample","placeholder"].includes(i)}loadUserIdentity(){var e=this.getStoredValue(n)||this.generateAnonymousId(),i=this.getStoredValue(s)||null,t=this.getStoredValue(o)||this.generateDeviceId(),a=this.getStoredUserProperties(),r=this.getStoredValue(d)||"anonymous";return{distinct_id:i,anonymous_id:e||this.generateAnonymousId(),device_id:t,properties:a,user_state:r}}saveUserIdentity(){this.setStoredValue(n,this.userIdentity.anonymous_id),this.setStoredValue(o,this.userIdentity.device_id),this.setStoredValue(d,this.userIdentity.user_state),this.userIdentity.distinct_id?this.setStoredValue(s,this.userIdentity.distinct_id):this.removeStoredValue(s),this.setStoredUserProperties(this.userIdentity.properties)}generateAnonymousId(){return"anon_"+h()}generateDeviceId(){return"device_"+h()}sendIdentifyEvent(e,t,a,r){var n=new CustomEvent("vtilt:identify",{detail:{distinct_id:e,anonymous_id:t,device_id:a,properties:i({$anon_distinct_id:t,$device_id:a},r)}});window.dispatchEvent(n)}getStoredValue(e){try{return this.storageMethod===u?localStorage.getItem(e):this.storageMethod===A?sessionStorage.getItem(e):this.getCookieValue(e)}catch(e){return console.warn("Failed to access storage:",e),null}}setStoredValue(e,i){try{this.storageMethod===u?localStorage.setItem(e,i):this.storageMethod===A?sessionStorage.setItem(e,i):this.setCookieValue(e,i)}catch(e){console.warn("Failed to save to storage:",e)}}removeStoredValue(e){this.storageMethod===u?localStorage.removeItem(e):this.storageMethod===A?sessionStorage.removeItem(e):this.removeCookieValue(e)}getStoredUserProperties(){var e=this.getStoredValue(c);if(!e)return{};try{return JSON.parse(e)}catch(e){return{}}}setStoredUserProperties(e){this.setStoredValue(c,JSON.stringify(e))}getCookieValue(e){var i=document.cookie.split(";");for(var t of i){var[a,r]=t.trim().split("=");if(a===e)return decodeURIComponent(r)}return null}setCookieValue(e,i){var t=e+"="+encodeURIComponent(i)+"; Max-Age=31536000; path=/; secure; SameSite=Lax";this.domain&&(t+="; domain="+this.domain),document.cookie=t}removeCookieValue(e){var i=e+"=; Max-Age=0; path=/";this.domain&&(i+="; domain="+this.domain),document.cookie=i}}function S(){var e,i;try{var t=Intl.DateTimeFormat().resolvedOptions().timeZone;e=l[t],i=navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.userLanguage||navigator.language||navigator.browserLanguage||"en"}catch(e){}return{country:e,locale:i}}class I{constructor(e){this.__request_queue=[],this._hasWarnedAboutConfig=!1,this.config=e,this.config.domain||"undefined"==typeof window||(this.config.domain=this.getCurrentDomain()),this.sessionManager=new y(e.storage||"cookie",this.config.domain),this.userManager=new v(e.persistence||"localStorage",this.config.domain),this.setupIdentifyListener()}getCurrentDomain(){if("undefined"==typeof window)return"";var e=window.location.protocol,i=window.location.hostname,t=window.location.port;return e+"//"+i+(t?":"+t:"")}_isConfigured(){return!(!this.config.projectId||!this.config.token)||(this._hasWarnedAboutConfig||(console.warn("VTilt: projectId and token are required for tracking. Events will be skipped until init() or updateConfig() is called with these fields."),this._hasWarnedAboutConfig=!0),!1)}sendEvent(i,t){var a,r=this;return(a=function*(){if(r.sessionManager.setSessionId(),function(e){return!(e&&"string"==typeof e&&e.length>500)}(window.navigator.userAgent)){var e,a=r.buildUrl();if(!1!==r.config.stringifyPayload){if(e=p(t),e=Object.assign({},JSON.parse(e),r.config.globalAttributes),!m(e=JSON.stringify(e)))return}else{var n=p(e=Object.assign({},t,r.config.globalAttributes));if(!m(n))return;e=JSON.parse(n)}var s=r.sessionManager.getSessionId()||h(),o=r.userManager.getDistinctId(),c=r.userManager.getAnonymousId(),d={timestamp:(new Date).toISOString(),event:i,session_id:s,tenant_id:r.config.projectId||"",domain:r.config.domain||r.getCurrentDomain(),payload:e,distinct_id:o||c};r.sendRequest(a,d,!0)}},function(){var i=this,t=arguments;return new Promise(function(r,n){var s=a.apply(i,t);function o(i){e(s,r,n,o,c,"next",i)}function c(i){e(s,r,n,o,c,"throw",i)}o(void 0)})})()}buildUrl(){var{proxyUrl:e,proxy:i,host:t,token:a}=this.config;return e||(i?i+"/api/tracking?token="+a:t?t.replace(/\/+$/gm,"")+"/api/tracking?token="+a:"/api/tracking?token="+a)}sendRequest(e,i,t){if(this._isConfigured()){if(t&&"undefined"!=typeof window)if(window.__VTILT_ENQUEUE_REQUESTS)return void this.__request_queue.push({url:e,event:i});var a=new XMLHttpRequest;a.open("POST",e,!0),a.setRequestHeader("Content-Type","application/json"),a.send(JSON.stringify(i))}}_send_retriable_request(e){this.sendRequest(e.url,e.event,!1)}trackPageHit(){if(!f()){var{country:e,locale:i}=S();setTimeout(()=>{this.sendEvent("page_hit",{"user-agent":window.navigator.userAgent,locale:i,location:e,referrer:document.referrer,pathname:window.location.pathname,href:window.location.href})},300)}}getSessionId(){return this.sessionManager.getSessionId()}identify(e,i,t){this.userManager.identify(e,i,t)}setUserProperties(e,i){this.userManager.setUserProperties(e,i)}resetUser(e){this.sessionManager.resetSessionId(),this.userManager.reset(e)}getUserIdentity(){return this.userManager.getUserIdentity()}getDeviceId(){return this.userManager.getDeviceId()}getUserState(){return this.userManager.getUserState()}createAlias(e,i){this.userManager.createAlias(e,i)}setupIdentifyListener(){window.addEventListener("vtilt:identify",e=>{var i=e,{distinct_id:t,anonymous_id:a,device_id:r,properties:n}=i.detail;this.sendIdentifyEvent(t,a,r,n)}),window.addEventListener("vtilt:set",e=>{var i=e,{$set:t,$set_once:a}=i.detail;this.sendSetEvent(t||{},a||{})}),window.addEventListener("vtilt:alias",e=>{var i=e.detail;this.sendAliasEvent(i)})}sendIdentifyEvent(e,t,a,r){var n=this.buildUrl(),s=this.sessionManager.getSessionId()||h(),o=i({$anon_distinct_id:t,$device_id:a},r),c={timestamp:(new Date).toISOString(),event:"$identify",session_id:s,tenant_id:this.config.projectId||"",domain:this.config.domain||this.getCurrentDomain(),payload:o,distinct_id:e};this.sendRequest(n,c,!0)}sendSetEvent(e,i){var t=this.buildUrl(),a=this.sessionManager.getSessionId()||h(),r=this.userManager.getDistinctId(),n=this.userManager.getAnonymousId(),s={$set:e||{},$set_once:i||{}},o={timestamp:(new Date).toISOString(),event:"$set",session_id:a,tenant_id:this.config.projectId||"",domain:this.config.domain||this.getCurrentDomain(),payload:s,distinct_id:r||n};this.sendRequest(t,o,!0)}sendAliasEvent(e){var i=this.buildUrl(),t=this.sessionManager.getSessionId()||h(),a={$original_id:e.original,$alias_id:e.distinct_id},r={timestamp:(new Date).toISOString(),event:"$alias",session_id:t,tenant_id:this.config.projectId||"",domain:this.config.domain||this.getCurrentDomain(),payload:a,distinct_id:e.distinct_id};this.sendRequest(i,r,!0)}}class _{constructor(e,i){if(this.trackingManager=i,e.webVitals)try{this.webVitals=require("web-vitals"),this.initializeWebVitals()}catch(e){console.warn("web-vitals library not found. Please install it to enable web vitals tracking.",e)}}initializeWebVitals(){if(this.webVitals){var e=e=>{try{var{country:i,locale:t}=S();this.trackingManager.sendEvent("web_vital",{name:e.name,value:e.value,delta:e.delta,rating:e.rating,id:e.id,navigationType:e.navigationType,pathname:window.location.pathname,href:window.location.href,"user-agent":window.navigator.userAgent,locale:t,location:i,referrer:document.referrer})}catch(e){console.error("Error sending web vital:",e)}};this.webVitals.onCLS&&this.webVitals.onCLS(e),this.webVitals.onFCP&&this.webVitals.onFCP(e),this.webVitals.onLCP&&this.webVitals.onLCP(e),this.webVitals.onTTFB&&this.webVitals.onTTFB(e),this.webVitals.onINP&&this.webVitals.onINP(e)}}}class M{constructor(e){void 0===e&&(e={}),this.initialized=!1,this.configManager=new t(e),this.trackingManager=new I(this.configManager.getConfig()),this.webVitalsManager=new _(this.configManager.getConfig(),this.trackingManager)}init(){this.initialized||(this.setupPageTracking(),this.initialized=!0)}trackEvent(e,i){void 0===i&&(i={}),this.trackingManager.sendEvent(e,i)}identify(e,i,t){this.trackingManager.identify(e,i,t)}setUserProperties(e,i){this.trackingManager.setUserProperties(e,i)}resetUser(e){this.trackingManager.resetUser(e)}getUserIdentity(){return this.trackingManager.getUserIdentity()}getDeviceId(){return this.trackingManager.getDeviceId()}getUserState(){return this.trackingManager.getUserState()}createAlias(e,i){this.trackingManager.createAlias(e,i)}setupPageTracking(){var e=this;this.trackPageHit(),window.addEventListener("hashchange",()=>this.trackPageHit());var i=window.history;if(i.pushState){var t=i.pushState;i.pushState=function(){for(var i=arguments.length,a=new Array(i),r=0;r<i;r++)a[r]=arguments[r];t.apply(e,a),e.trackPageHit()},window.addEventListener("popstate",()=>this.trackPageHit())}this.setupVisibilityTracking()}trackPageHit(){f()||this.trackingManager.trackPageHit()}setupVisibilityTracking(){"prerender"===document.visibilityState&&document.addEventListener("visibilitychange",()=>{"visible"===document.visibilityState&&this.trackPageHit()})}getConfig(){return this.configManager.getConfig()}getSessionId(){return this.trackingManager.getSessionId()}updateConfig(e){this.configManager.updateConfig(e),this.trackingManager=new I(this.configManager.getConfig()),this.webVitalsManager=new _(this.configManager.getConfig(),this.trackingManager)}_execute_array(e){Array.isArray(e)&&e.forEach(e=>{if(e&&Array.isArray(e)&&e.length>0){var i=e[0],t=e.slice(1);if("function"==typeof this[i])try{this[i](...t)}catch(e){console.error("VTilt: Error executing queued call "+i+":",e)}}})}_dom_loaded(){this.trackingManager&&(this.trackingManager.__request_queue.forEach(e=>{this.trackingManager._send_retriable_request(e)}),this.trackingManager.__request_queue=[])}}var w={},E="undefined"!=typeof XMLHttpRequest||"undefined"!=typeof fetch,C="undefined"!=typeof window?null===(a=window.navigator)||void 0===a?void 0:a.userAgent:void 0,U=!E&&-1===(null==C?void 0:C.indexOf("MSIE"))&&-1===(null==C?void 0:C.indexOf("Mozilla"));"undefined"!=typeof window&&(window.__VTILT_ENQUEUE_REQUESTS=U);var k=function(){function e(){e.done||(e.done=!0,U=!1,"undefined"!=typeof window&&(window.__VTILT_ENQUEUE_REQUESTS=!1),function(e,i,t){if(e)if(Array.isArray(e))e.forEach((e,a)=>{i.call(t,e,a)});else for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&i.call(t,e[a],a)}(w,function(e){e._dom_loaded()}))}"undefined"==typeof document||"function"!=typeof document.addEventListener?"undefined"!=typeof window&&console.error("Browser doesn't support `document.addEventListener` so VTilt couldn't be initialized"):"complete"===document.readyState?e():function(e,i,t,a){var{capture:r=!1,passive:n=!0}=null!=a?a:{};null==e||e.addEventListener(i,t,{capture:r,passive:n})}(document,"DOMContentLoaded",e,{capture:!1})};var P,b=(P=w.vTilt=new M,k(),P);export{M as VTilt,b as default,b as vt};
|
|
2
|
+
//# sourceMappingURL=module.no-external.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.no-external.js","sources":["../src/config.ts","../src/constants.ts","../src/utils/index.ts","../src/session.ts","../src/user-manager.ts","../src/geolocation.ts","../src/tracking.ts","../src/web-vitals.ts","../src/vtilt.ts","../src/entrypoints/module.no-external.es.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["ConfigManager","constructor","config","this","parseConfigFromScript","initialConfig","document","currentScript","_extends","projectId","token","script","host","getAttribute","proxy","proxyUrl","domain","storage","stringifyPayload","webVitals","console","error","Error","attr","globalAttributes","Array","from","attributes","name","startsWith","slice","replace","value","getConfig","updateConfig","newConfig","STORAGE_KEY","ANONYMOUS_ID_KEY","DISTINCT_ID_KEY","DEVICE_ID_KEY","USER_PROPERTIES_KEY","USER_STATE_KEY","STORAGE_METHODS","TIMEZONES","ATTRIBUTES_TO_MASK","uuidv4","c","crypto","getRandomValues","Uint8Array","toString","isValidPayload","payloadStr","length","maskSuspiciousAttributes","payload","_payload","JSON","stringify","forEach","RegExp","isTestEnvironment","window","navigator","webdriver","SessionManager","storageMethod","getSessionIdFromCookie","cookie","split","el","key","trim","getSessionId","localStorage","sessionStorage","serializedItem","getItem","item","parse","_a","Date","getTime","expiry","removeItem","setSessionIdFromCookie","sessionId","cookieValue","setSessionId","setItem","resetSessionId","UserManager","_cachedPersonProperties","userIdentity","loadUserIdentity","getUserIdentity","getDistinctId","distinct_id","getAnonymousId","anonymous_id","generateAnonymousId","saveUserIdentity","getUserProperties","properties","identify","newDistinctId","userPropertiesToSet","userPropertiesToSetOnce","warn","isDistinctIdStringLike","previousDistinctId","anonymousId","deviceId","device_id","$had_persisted_distinct_id","$device_id","isKnownAnonymous","user_state","Object","keys","sendIdentifyEvent","$set","$set_once","sendSetEvent","setUserProperties","distinctId","hash","getPersonPropertiesHash","info","setEvent","CustomEvent","detail","dispatchEvent","reset","reset_device_id","newAnonymousId","newDeviceId","generateDeviceId","$last_posthog_reset","toISOString","getEffectiveId","getDeviceId","getUserState","createAlias","alias","original","isValidDistinctId","undefined","customEvent","lower","toLowerCase","includes","getStoredValue","getStoredUserProperties","userState","setStoredValue","removeStoredValue","setStoredUserProperties","propertyOperations","identifyEvent","$anon_distinct_id","getCookieValue","setCookieValue","removeCookieValue","stored","cookies","decodeURIComponent","encodeURIComponent","getCountryAndLocale","country","locale","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","languages","userLanguage","language","browserLanguage","_error","TrackingManager","__request_queue","_hasWarnedAboutConfig","getCurrentDomain","sessionManager","userManager","persistence","setupIdentifyListener","protocol","location","hostname","port","_isConfigured","sendEvent","_this","userAgent","isValidUserAgent","processedPayload","url","buildUrl","assign","maskedStr","session_id","trackingEvent","timestamp","event","tenant_id","sendRequest","shouldEnqueue","__VTILT_ENQUEUE_REQUESTS","push","request","XMLHttpRequest","open","setRequestHeader","send","_send_retriable_request","trackPageHit","setTimeout","referrer","pathname","href","resetUser","addEventListener","aliasEvent","sendAliasEvent","identifyPayload","setEventPayload","aliasPayload","$original_id","$alias_id","WebVitalsManager","trackingManager","require","initializeWebVitals","sendMetric","metric","delta","rating","id","navigationType","onCLS","onFCP","onLCP","onTTFB","onINP","VTilt","initialized","configManager","webVitalsManager","init","setupPageTracking","trackEvent","history","pushState","originalPushState","_len","arguments","args","_key","apply","setupVisibilityTracking","visibilityState","handleVisibilityChange","_execute_array","array","isArray","methodName","_dom_loaded","instances","SUPPORTS_REQUEST","fetch","ENQUEUE_REQUESTS","indexOf","add_dom_loaded_handler","dom_loaded_handler","done","obj","iterator","thisArg","index","call","prototype","hasOwnProperty","each","inst","readyState","element","callback","options","capture","passive","vTiltMain","vt"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { StorageMethod } from "./types";
|
|
2
|
+
export declare class SessionManager {
|
|
3
|
+
private storageMethod;
|
|
4
|
+
private domain?;
|
|
5
|
+
constructor(storageMethod?: StorageMethod, domain?: string);
|
|
6
|
+
/**
|
|
7
|
+
* Get session ID from cookie
|
|
8
|
+
*/
|
|
9
|
+
private getSessionIdFromCookie;
|
|
10
|
+
/**
|
|
11
|
+
* Get session ID from storage
|
|
12
|
+
*/
|
|
13
|
+
getSessionId(): string | null;
|
|
14
|
+
/**
|
|
15
|
+
* Set session ID in cookie
|
|
16
|
+
*/
|
|
17
|
+
private setSessionIdFromCookie;
|
|
18
|
+
/**
|
|
19
|
+
* Set session ID in storage
|
|
20
|
+
*/
|
|
21
|
+
setSessionId(): string;
|
|
22
|
+
/**
|
|
23
|
+
* Reset session ID (PostHog behavior: generates new session on reset)
|
|
24
|
+
*/
|
|
25
|
+
resetSessionId(): void;
|
|
26
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { VTiltConfig, EventPayload } from "./types";
|
|
2
|
+
interface QueuedRequest {
|
|
3
|
+
url: string;
|
|
4
|
+
event: any;
|
|
5
|
+
}
|
|
6
|
+
export declare class TrackingManager {
|
|
7
|
+
private config;
|
|
8
|
+
private sessionManager;
|
|
9
|
+
private userManager;
|
|
10
|
+
__request_queue: QueuedRequest[];
|
|
11
|
+
private _hasWarnedAboutConfig;
|
|
12
|
+
constructor(config: VTiltConfig);
|
|
13
|
+
/**
|
|
14
|
+
* Get current domain from window location
|
|
15
|
+
* Returns full URL format for consistency with dashboard
|
|
16
|
+
*/
|
|
17
|
+
private getCurrentDomain;
|
|
18
|
+
/**
|
|
19
|
+
* Check if tracking is properly configured
|
|
20
|
+
* Returns true if projectId and token are present, false otherwise
|
|
21
|
+
* Logs a warning only once per instance if not configured
|
|
22
|
+
*/
|
|
23
|
+
private _isConfigured;
|
|
24
|
+
/**
|
|
25
|
+
* Send event to endpoint
|
|
26
|
+
*/
|
|
27
|
+
sendEvent(name: string, payload: EventPayload): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Build the tracking URL with token in query parameters (PostHog style)
|
|
30
|
+
*/
|
|
31
|
+
private buildUrl;
|
|
32
|
+
/**
|
|
33
|
+
* Send HTTP request
|
|
34
|
+
* This is the central entry point for all tracking requests
|
|
35
|
+
*/
|
|
36
|
+
private sendRequest;
|
|
37
|
+
/**
|
|
38
|
+
* Send a queued request (called after DOM is loaded)
|
|
39
|
+
*/
|
|
40
|
+
_send_retriable_request(item: QueuedRequest): void;
|
|
41
|
+
/**
|
|
42
|
+
* Track page hit
|
|
43
|
+
*/
|
|
44
|
+
trackPageHit(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Get current session ID
|
|
47
|
+
*/
|
|
48
|
+
getSessionId(): string | null;
|
|
49
|
+
/**
|
|
50
|
+
* Identify a user with PostHog-style property operations
|
|
51
|
+
* Copied from PostHog's identify method signature
|
|
52
|
+
*/
|
|
53
|
+
identify(distinctId?: string, userPropertiesToSet?: Record<string, any>, userPropertiesToSetOnce?: Record<string, any>): void;
|
|
54
|
+
/**
|
|
55
|
+
* Set user properties (PostHog-style)
|
|
56
|
+
*/
|
|
57
|
+
setUserProperties(userPropertiesToSet?: Record<string, any>, userPropertiesToSetOnce?: Record<string, any>): void;
|
|
58
|
+
/**
|
|
59
|
+
* Reset user identity (logout)
|
|
60
|
+
* PostHog behavior: Clears all user data, generates new anonymous ID, resets session
|
|
61
|
+
*
|
|
62
|
+
* @param reset_device_id - If true, also resets device_id. Default: false
|
|
63
|
+
*/
|
|
64
|
+
resetUser(reset_device_id?: boolean): void;
|
|
65
|
+
/**
|
|
66
|
+
* Get current user identity
|
|
67
|
+
*/
|
|
68
|
+
getUserIdentity(): import("./types").UserIdentity;
|
|
69
|
+
/**
|
|
70
|
+
* Get current device ID
|
|
71
|
+
*/
|
|
72
|
+
getDeviceId(): string;
|
|
73
|
+
/**
|
|
74
|
+
* Get current user state
|
|
75
|
+
*/
|
|
76
|
+
getUserState(): "anonymous" | "identified";
|
|
77
|
+
/**
|
|
78
|
+
* Create an alias to link two distinct IDs
|
|
79
|
+
* PostHog behavior: Links anonymous session to account on signup
|
|
80
|
+
*
|
|
81
|
+
* @param alias - A unique identifier that you want to use for this user in the future
|
|
82
|
+
* @param original - The current identifier being used for this user (optional, defaults to current distinct_id)
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // Link anonymous user to account on signup
|
|
86
|
+
* vtilt.createAlias('user_12345')
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* // Explicit alias with original ID
|
|
90
|
+
* vtilt.createAlias('user_12345', 'anonymous_abc123')
|
|
91
|
+
*/
|
|
92
|
+
createAlias(alias: string, original?: string): void;
|
|
93
|
+
/**
|
|
94
|
+
* Setup listener for identify, set, and alias events
|
|
95
|
+
*/
|
|
96
|
+
private setupIdentifyListener;
|
|
97
|
+
/**
|
|
98
|
+
* Send identify event for session merging
|
|
99
|
+
*/
|
|
100
|
+
private sendIdentifyEvent;
|
|
101
|
+
/**
|
|
102
|
+
* Send $set event for property updates (PostHog behavior)
|
|
103
|
+
* This notifies Tinybird when user properties are updated
|
|
104
|
+
*/
|
|
105
|
+
private sendSetEvent;
|
|
106
|
+
/**
|
|
107
|
+
* Send alias event for identity linking
|
|
108
|
+
* PostHog format: { alias: alias, distinct_id: original }
|
|
109
|
+
*/
|
|
110
|
+
private sendAliasEvent;
|
|
111
|
+
}
|
|
112
|
+
export {};
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface VTiltConfig {
|
|
2
|
+
projectId: string;
|
|
3
|
+
token: string;
|
|
4
|
+
host?: string;
|
|
5
|
+
scriptHost?: string;
|
|
6
|
+
proxy?: string;
|
|
7
|
+
proxyUrl?: string;
|
|
8
|
+
domain?: string;
|
|
9
|
+
storage?: "cookie" | "localStorage" | "sessionStorage";
|
|
10
|
+
stringifyPayload?: boolean;
|
|
11
|
+
webVitals?: boolean;
|
|
12
|
+
globalAttributes?: Record<string, string>;
|
|
13
|
+
persistence?: "localStorage" | "cookie";
|
|
14
|
+
crossSubdomainCookie?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface SessionData {
|
|
17
|
+
value: string;
|
|
18
|
+
expiry: number;
|
|
19
|
+
}
|
|
20
|
+
export interface WebVitalMetric {
|
|
21
|
+
name: string;
|
|
22
|
+
value: number;
|
|
23
|
+
delta: number;
|
|
24
|
+
rating: string;
|
|
25
|
+
id: string;
|
|
26
|
+
navigationType: string;
|
|
27
|
+
}
|
|
28
|
+
export interface GeolocationData {
|
|
29
|
+
country?: string;
|
|
30
|
+
locale?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface EventPayload {
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
}
|
|
35
|
+
export interface TrackingEvent {
|
|
36
|
+
timestamp: string;
|
|
37
|
+
event: string;
|
|
38
|
+
session_id: string;
|
|
39
|
+
tenant_id: string;
|
|
40
|
+
domain: string;
|
|
41
|
+
payload: EventPayload;
|
|
42
|
+
distinct_id?: string;
|
|
43
|
+
}
|
|
44
|
+
export type StorageMethod = "cookie" | "localStorage" | "sessionStorage";
|
|
45
|
+
export interface StorageMethods {
|
|
46
|
+
cookie: "cookie";
|
|
47
|
+
localStorage: "localStorage";
|
|
48
|
+
sessionStorage: "sessionStorage";
|
|
49
|
+
}
|
|
50
|
+
export interface UserIdentity {
|
|
51
|
+
distinct_id: string | null;
|
|
52
|
+
anonymous_id: string;
|
|
53
|
+
device_id: string;
|
|
54
|
+
properties: Record<string, any>;
|
|
55
|
+
user_state: "anonymous" | "identified";
|
|
56
|
+
}
|
|
57
|
+
export interface UserProperties {
|
|
58
|
+
[key: string]: any;
|
|
59
|
+
}
|
|
60
|
+
export interface PropertyOperations {
|
|
61
|
+
$set?: Record<string, any>;
|
|
62
|
+
$set_once?: Record<string, any>;
|
|
63
|
+
}
|
|
64
|
+
export interface AliasEvent {
|
|
65
|
+
distinct_id: string;
|
|
66
|
+
original: string;
|
|
67
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { UserIdentity, StorageMethod } from "./types";
|
|
2
|
+
export declare class UserManager {
|
|
3
|
+
private storageMethod;
|
|
4
|
+
private domain?;
|
|
5
|
+
private userIdentity;
|
|
6
|
+
private _cachedPersonProperties;
|
|
7
|
+
constructor(storageMethod?: StorageMethod, domain?: string);
|
|
8
|
+
/**
|
|
9
|
+
* Get current user identity
|
|
10
|
+
*/
|
|
11
|
+
getUserIdentity(): UserIdentity;
|
|
12
|
+
/**
|
|
13
|
+
* Get current distinct ID (identified user ID)
|
|
14
|
+
*/
|
|
15
|
+
getDistinctId(): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Get current anonymous ID
|
|
18
|
+
*/
|
|
19
|
+
getAnonymousId(): string;
|
|
20
|
+
/**
|
|
21
|
+
* Get current user properties
|
|
22
|
+
*/
|
|
23
|
+
getUserProperties(): Record<string, any>;
|
|
24
|
+
/**
|
|
25
|
+
* Identify a user with distinct ID and properties
|
|
26
|
+
* Copied from PostHog's identify method implementation
|
|
27
|
+
*/
|
|
28
|
+
identify(newDistinctId?: string, userPropertiesToSet?: Record<string, any>, userPropertiesToSetOnce?: Record<string, any>): void;
|
|
29
|
+
/**
|
|
30
|
+
* Set user properties without changing distinct ID (PostHog-style)
|
|
31
|
+
* Sets properties on the person profile associated with the current distinct_id
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```js
|
|
35
|
+
* // Set properties that can be updated
|
|
36
|
+
* vt.setUserProperties({ name: 'John Doe', email: 'john@example.com' })
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```js
|
|
41
|
+
* // Set properties with $set and $set_once operations
|
|
42
|
+
* vt.setUserProperties(
|
|
43
|
+
* { name: 'John Doe', last_login: new Date().toISOString() }, // $set properties
|
|
44
|
+
* { first_login: new Date().toISOString() } // $set_once properties
|
|
45
|
+
* )
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @param userPropertiesToSet Optional: Properties to set (can be updated)
|
|
49
|
+
* @param userPropertiesToSetOnce Optional: Properties to set once (preserves first value)
|
|
50
|
+
*/
|
|
51
|
+
setUserProperties(userPropertiesToSet?: Record<string, any>, userPropertiesToSetOnce?: Record<string, any>): void;
|
|
52
|
+
/**
|
|
53
|
+
* Get hash for person properties (PostHog behavior)
|
|
54
|
+
* Used for deduplication of identical setUserProperties calls
|
|
55
|
+
*/
|
|
56
|
+
private getPersonPropertiesHash;
|
|
57
|
+
/**
|
|
58
|
+
* Send $set event for property updates (PostHog behavior)
|
|
59
|
+
* This notifies the server when user properties are updated
|
|
60
|
+
*/
|
|
61
|
+
private sendSetEvent;
|
|
62
|
+
/**
|
|
63
|
+
* Reset user identity (logout)
|
|
64
|
+
* PostHog behavior: Generates new anonymous ID, clears user data, optionally resets device ID
|
|
65
|
+
*
|
|
66
|
+
* @param reset_device_id - If true, also resets device_id. Default: false (preserves device_id)
|
|
67
|
+
*/
|
|
68
|
+
reset(reset_device_id?: boolean): void;
|
|
69
|
+
/**
|
|
70
|
+
* Get the effective ID for event tracking
|
|
71
|
+
*/
|
|
72
|
+
getEffectiveId(): string;
|
|
73
|
+
/**
|
|
74
|
+
* Get current device ID
|
|
75
|
+
*/
|
|
76
|
+
getDeviceId(): string;
|
|
77
|
+
/**
|
|
78
|
+
* Get current user state
|
|
79
|
+
*/
|
|
80
|
+
getUserState(): "anonymous" | "identified";
|
|
81
|
+
/**
|
|
82
|
+
* Create an alias to link two distinct IDs
|
|
83
|
+
* PostHog behavior: If original is not provided, uses current distinct_id
|
|
84
|
+
* If alias matches original, just calls identify instead
|
|
85
|
+
*
|
|
86
|
+
* @param alias - A unique identifier that you want to use for this user in the future
|
|
87
|
+
* @param original - The current identifier being used for this user (optional, defaults to current distinct_id)
|
|
88
|
+
*/
|
|
89
|
+
createAlias(alias: string, original?: string): void;
|
|
90
|
+
/**
|
|
91
|
+
* Validate distinct ID to prevent hardcoded strings
|
|
92
|
+
* Copied from PostHog's validation logic
|
|
93
|
+
*/
|
|
94
|
+
private isValidDistinctId;
|
|
95
|
+
/**
|
|
96
|
+
* Check if distinct ID is string-like (hardcoded string)
|
|
97
|
+
* Copied from PostHog's isDistinctIdStringLike function
|
|
98
|
+
*/
|
|
99
|
+
private isDistinctIdStringLike;
|
|
100
|
+
/**
|
|
101
|
+
* Load user identity from storage
|
|
102
|
+
*/
|
|
103
|
+
private loadUserIdentity;
|
|
104
|
+
/**
|
|
105
|
+
* Save user identity to storage
|
|
106
|
+
*/
|
|
107
|
+
private saveUserIdentity;
|
|
108
|
+
/**
|
|
109
|
+
* Generate a new anonymous ID
|
|
110
|
+
*/
|
|
111
|
+
private generateAnonymousId;
|
|
112
|
+
/**
|
|
113
|
+
* Generate a new device ID
|
|
114
|
+
*/
|
|
115
|
+
private generateDeviceId;
|
|
116
|
+
/**
|
|
117
|
+
* Send identify event for session merging
|
|
118
|
+
*/
|
|
119
|
+
private sendIdentifyEvent;
|
|
120
|
+
/**
|
|
121
|
+
* Get stored value from storage
|
|
122
|
+
*/
|
|
123
|
+
private getStoredValue;
|
|
124
|
+
/**
|
|
125
|
+
* Set stored value in storage
|
|
126
|
+
*/
|
|
127
|
+
private setStoredValue;
|
|
128
|
+
/**
|
|
129
|
+
* Remove stored value from storage
|
|
130
|
+
*/
|
|
131
|
+
private removeStoredValue;
|
|
132
|
+
/**
|
|
133
|
+
* Get user properties from storage
|
|
134
|
+
*/
|
|
135
|
+
private getStoredUserProperties;
|
|
136
|
+
/**
|
|
137
|
+
* Set user properties in storage
|
|
138
|
+
*/
|
|
139
|
+
private setStoredUserProperties;
|
|
140
|
+
/**
|
|
141
|
+
* Get cookie value
|
|
142
|
+
*/
|
|
143
|
+
private getCookieValue;
|
|
144
|
+
/**
|
|
145
|
+
* Set cookie value
|
|
146
|
+
*/
|
|
147
|
+
private setCookieValue;
|
|
148
|
+
/**
|
|
149
|
+
* Remove cookie value
|
|
150
|
+
*/
|
|
151
|
+
private removeCookieValue;
|
|
152
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EventPayload } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Generate uuid to identify the session. Random, not data-derived
|
|
4
|
+
*/
|
|
5
|
+
export declare function uuidv4(): string;
|
|
6
|
+
/**
|
|
7
|
+
* Validate user agent string
|
|
8
|
+
*/
|
|
9
|
+
export declare function isValidUserAgent(userAgent: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Validate payload string
|
|
12
|
+
*/
|
|
13
|
+
export declare function isValidPayload(payloadStr: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Try to mask PPI and potential sensible attributes
|
|
16
|
+
*/
|
|
17
|
+
export declare function maskSuspiciousAttributes(payload: EventPayload): string;
|
|
18
|
+
/**
|
|
19
|
+
* Check if current environment is a test environment
|
|
20
|
+
*/
|
|
21
|
+
export declare function isTestEnvironment(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Iterate over an array or object
|
|
24
|
+
*/
|
|
25
|
+
export declare function each<T>(obj: T[] | Record<string, T> | null | undefined, iterator: (value: T, key: string | number) => void, thisArg?: any): void;
|
|
26
|
+
/**
|
|
27
|
+
* Use this instead of element.addEventListener to avoid eslint errors
|
|
28
|
+
* This properly implements the default options for passive event listeners
|
|
29
|
+
*/
|
|
30
|
+
export declare function addEventListener(element: Window | Document | Element | undefined, event: string, callback: EventListener, options?: AddEventListenerOptions): void;
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EventPayload } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Generate uuid to identify the session. Random, not data-derived
|
|
4
|
+
*/
|
|
5
|
+
export declare function uuidv4(): string;
|
|
6
|
+
/**
|
|
7
|
+
* Validate user agent string
|
|
8
|
+
*/
|
|
9
|
+
export declare function isValidUserAgent(userAgent: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Validate payload string
|
|
12
|
+
*/
|
|
13
|
+
export declare function isValidPayload(payloadStr: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Try to mask PPI and potential sensible attributes
|
|
16
|
+
*/
|
|
17
|
+
export declare function maskSuspiciousAttributes(payload: EventPayload): string;
|
|
18
|
+
/**
|
|
19
|
+
* Check if current environment is a test environment
|
|
20
|
+
*/
|
|
21
|
+
export declare function isTestEnvironment(): boolean;
|