Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@snowplow/tracker-core

Package Overview
Dependencies
Maintainers
3
Versions
76
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@snowplow/tracker-core - npm Package Compare versions

Comparing version 3.4.0 to 3.5.0

165

dist/index.d.ts
declare const version: string;
/**
* Type for a Payload dictionary
*/
type Payload = Record<string, unknown>;
/**
* A tuple which represents the unprocessed JSON to be added to the Payload
*/
type EventJsonWithKeys = {
keyIfEncoded: string;
keyIfNotEncoded: string;
json: Record<string, unknown>;
};
/**
* An array of tuples which represents the unprocessed JSON to be added to the Payload
*/
type EventJson = Array<EventJsonWithKeys>;
/**
* A function which will processor the Json onto the injected PayloadBuilder
*/
type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson) => void;
/**
* Interface for mutable object encapsulating tracker payload
*/
interface PayloadBuilder {
/**
* Adds an entry to the Payload
* @param key - Key for Payload dictionary entry
* @param value - Value for Payload dictionaty entry
*/
add: (key: string, value: unknown) => void;
/**
* Merges a payload into the existing payload
* @param dict - The payload to merge
*/
addDict: (dict: Payload) => void;
/**
* Caches a JSON object to be added to payload on build
* @param keyIfEncoded - key if base64 encoding is enabled
* @param keyIfNotEncoded - key if base64 encoding is disabled
* @param json - The json to be stringified and added to the payload
*/
addJson: (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void;
/**
* Gets the current payload, before cached JSON is processed
*/
getPayload: () => Payload;
/**
* Gets all JSON objects added to payload
*/
getJson: () => EventJson;
/**
* Adds a function which will be executed when building
* the payload to process the JSON which has been added to this payload
* @param jsonProcessor - The JsonProcessor function for this builder
*/
withJsonProcessor: (jsonProcessor: JsonProcessor) => void;
/**
* Builds and returns the Payload
* @param base64Encode - configures if unprocessed, cached json should be encoded
*/
build: () => Payload;
}
declare function payloadBuilder(): PayloadBuilder;
/**
* A helper to build a Snowplow request from a set of name-value pairs, provided using the add methods.
* Will base64 encode JSON, if desired, on build
*
* @returns The request builder, with add and build methods
*/
declare function payloadJsonProcessor(encodeBase64: boolean): JsonProcessor;
/**
* Is property a non-empty JSON?
* @param property - Checks if object is non-empty json
*/
declare function isNonEmptyJson(property?: Record<string, unknown>): boolean;
/**
* Is property a JSON?
* @param property - Checks if object is json
*/
declare function isJson(property?: Record<string, unknown>): boolean;
declare enum LOG_LEVEL {

@@ -891,2 +811,87 @@ none = 0,

/**
* Type for a Payload dictionary
*/
type Payload = Record<string, unknown>;
/**
* A tuple which represents the unprocessed JSON to be added to the Payload
*/
type EventJsonWithKeys = {
keyIfEncoded: string;
keyIfNotEncoded: string;
json: Record<string, unknown>;
};
/**
* An array of tuples which represents the unprocessed JSON to be added to the Payload
*/
type EventJson = Array<EventJsonWithKeys>;
/**
* A function which will processor the Json onto the injected PayloadBuilder
*/
type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson, contextEntitiesForProcessing: SelfDescribingJson[]) => void;
/**
* Interface for mutable object encapsulating tracker payload
*/
interface PayloadBuilder {
/**
* Adds an entry to the Payload
* @param key - Key for Payload dictionary entry
* @param value - Value for Payload dictionaty entry
*/
add: (key: string, value: unknown) => void;
/**
* Merges a payload into the existing payload
* @param dict - The payload to merge
*/
addDict: (dict: Payload) => void;
/**
* Caches a JSON object to be added to payload on build
* @param keyIfEncoded - key if base64 encoding is enabled
* @param keyIfNotEncoded - key if base64 encoding is disabled
* @param json - The json to be stringified and added to the payload
*/
addJson: (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void;
/**
* Caches a context entity to be added to payload on build
* @param entity - Context entity to add to the event
*/
addContextEntity: (entity: SelfDescribingJson) => void;
/**
* Gets the current payload, before cached JSON is processed
*/
getPayload: () => Payload;
/**
* Gets all JSON objects added to payload
*/
getJson: () => EventJson;
/**
* Adds a function which will be executed when building
* the payload to process the JSON which has been added to this payload
* @param jsonProcessor - The JsonProcessor function for this builder
*/
withJsonProcessor: (jsonProcessor: JsonProcessor) => void;
/**
* Builds and returns the Payload
* @param base64Encode - configures if unprocessed, cached json should be encoded
*/
build: () => Payload;
}
declare function payloadBuilder(): PayloadBuilder;
/**
* A helper to build a Snowplow request from a set of name-value pairs, provided using the add methods.
* Will base64 encode JSON, if desired, on build
*
* @returns The request builder, with add and build methods
*/
declare function payloadJsonProcessor(encodeBase64: boolean): JsonProcessor;
/**
* Is property a non-empty JSON?
* @param property - Checks if object is non-empty json
*/
declare function isNonEmptyJson(property?: Record<string, unknown>): boolean;
/**
* Is property a JSON?
* @param property - Checks if object is json
*/
declare function isJson(property?: Record<string, unknown>): boolean;
/**
* Argument for {@link ContextGenerator} and {@link ContextFilter} callback

@@ -893,0 +898,0 @@ */

declare const version: string;
/**
* Type for a Payload dictionary
*/
type Payload = Record<string, unknown>;
/**
* A tuple which represents the unprocessed JSON to be added to the Payload
*/
type EventJsonWithKeys = {
keyIfEncoded: string;
keyIfNotEncoded: string;
json: Record<string, unknown>;
};
/**
* An array of tuples which represents the unprocessed JSON to be added to the Payload
*/
type EventJson = Array<EventJsonWithKeys>;
/**
* A function which will processor the Json onto the injected PayloadBuilder
*/
type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson) => void;
/**
* Interface for mutable object encapsulating tracker payload
*/
interface PayloadBuilder {
/**
* Adds an entry to the Payload
* @param key - Key for Payload dictionary entry
* @param value - Value for Payload dictionaty entry
*/
add: (key: string, value: unknown) => void;
/**
* Merges a payload into the existing payload
* @param dict - The payload to merge
*/
addDict: (dict: Payload) => void;
/**
* Caches a JSON object to be added to payload on build
* @param keyIfEncoded - key if base64 encoding is enabled
* @param keyIfNotEncoded - key if base64 encoding is disabled
* @param json - The json to be stringified and added to the payload
*/
addJson: (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void;
/**
* Gets the current payload, before cached JSON is processed
*/
getPayload: () => Payload;
/**
* Gets all JSON objects added to payload
*/
getJson: () => EventJson;
/**
* Adds a function which will be executed when building
* the payload to process the JSON which has been added to this payload
* @param jsonProcessor - The JsonProcessor function for this builder
*/
withJsonProcessor: (jsonProcessor: JsonProcessor) => void;
/**
* Builds and returns the Payload
* @param base64Encode - configures if unprocessed, cached json should be encoded
*/
build: () => Payload;
}
declare function payloadBuilder(): PayloadBuilder;
/**
* A helper to build a Snowplow request from a set of name-value pairs, provided using the add methods.
* Will base64 encode JSON, if desired, on build
*
* @returns The request builder, with add and build methods
*/
declare function payloadJsonProcessor(encodeBase64: boolean): JsonProcessor;
/**
* Is property a non-empty JSON?
* @param property - Checks if object is non-empty json
*/
declare function isNonEmptyJson(property?: Record<string, unknown>): boolean;
/**
* Is property a JSON?
* @param property - Checks if object is json
*/
declare function isJson(property?: Record<string, unknown>): boolean;
declare enum LOG_LEVEL {

@@ -891,2 +811,87 @@ none = 0,

/**
* Type for a Payload dictionary
*/
type Payload = Record<string, unknown>;
/**
* A tuple which represents the unprocessed JSON to be added to the Payload
*/
type EventJsonWithKeys = {
keyIfEncoded: string;
keyIfNotEncoded: string;
json: Record<string, unknown>;
};
/**
* An array of tuples which represents the unprocessed JSON to be added to the Payload
*/
type EventJson = Array<EventJsonWithKeys>;
/**
* A function which will processor the Json onto the injected PayloadBuilder
*/
type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson, contextEntitiesForProcessing: SelfDescribingJson[]) => void;
/**
* Interface for mutable object encapsulating tracker payload
*/
interface PayloadBuilder {
/**
* Adds an entry to the Payload
* @param key - Key for Payload dictionary entry
* @param value - Value for Payload dictionaty entry
*/
add: (key: string, value: unknown) => void;
/**
* Merges a payload into the existing payload
* @param dict - The payload to merge
*/
addDict: (dict: Payload) => void;
/**
* Caches a JSON object to be added to payload on build
* @param keyIfEncoded - key if base64 encoding is enabled
* @param keyIfNotEncoded - key if base64 encoding is disabled
* @param json - The json to be stringified and added to the payload
*/
addJson: (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void;
/**
* Caches a context entity to be added to payload on build
* @param entity - Context entity to add to the event
*/
addContextEntity: (entity: SelfDescribingJson) => void;
/**
* Gets the current payload, before cached JSON is processed
*/
getPayload: () => Payload;
/**
* Gets all JSON objects added to payload
*/
getJson: () => EventJson;
/**
* Adds a function which will be executed when building
* the payload to process the JSON which has been added to this payload
* @param jsonProcessor - The JsonProcessor function for this builder
*/
withJsonProcessor: (jsonProcessor: JsonProcessor) => void;
/**
* Builds and returns the Payload
* @param base64Encode - configures if unprocessed, cached json should be encoded
*/
build: () => Payload;
}
declare function payloadBuilder(): PayloadBuilder;
/**
* A helper to build a Snowplow request from a set of name-value pairs, provided using the add methods.
* Will base64 encode JSON, if desired, on build
*
* @returns The request builder, with add and build methods
*/
declare function payloadJsonProcessor(encodeBase64: boolean): JsonProcessor;
/**
* Is property a non-empty JSON?
* @param property - Checks if object is non-empty json
*/
declare function isNonEmptyJson(property?: Record<string, unknown>): boolean;
/**
* Is property a JSON?
* @param property - Checks if object is json
*/
declare function isJson(property?: Record<string, unknown>): boolean;
/**
* Argument for {@link ContextGenerator} and {@link ContextFilter} callback

@@ -893,0 +898,0 @@ */

/*!
* Core functionality for Snowplow JavaScript trackers v3.4.0 (http://bit.ly/sp-js)
* Core functionality for Snowplow JavaScript trackers v3.5.0 (http://bit.ly/sp-js)
* Copyright 2022 Snowplow Analytics Ltd, 2010 Anthon Pang

@@ -7,3 +7,3 @@ * Licensed under BSD-3-Clause

"use strict";!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).snowplowTrackerCore={})}(this,(function(e){function n(e,n,t){if(t||2===arguments.length)for(var r,o=0,a=n.length;o<a;o++)!r&&o in n||(r||(r=Array.prototype.slice.call(n,0,o)),r[o]=n[o]);return e.concat(r||Array.prototype.slice.call(n))}function t(){var e,n={},t=[],r=[],a=function(e,t){null!=t&&""!==t&&(n[e]=t)};return{add:a,addDict:function(e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&a(n,e[n])},addJson:function(e,n,a){a&&o(a)&&(e={keyIfEncoded:e,keyIfNotEncoded:n,json:a},r.push(e),t.push(e))},getPayload:function(){return n},getJson:function(){return t},withJsonProcessor:function(n){e=n},build:function(){return null==e||e(this,r),n}}}function r(e){return function(n,t){for(var r=0;r<t.length;r++){var o=t[r],a=JSON.stringify(o.json);if(e){var i=n,c=i.add;if(o=o.keyIfEncoded,a){var s=0,l=0,u=[];if(a){a=unescape(encodeURIComponent(a));do{var d=a.charCodeAt(s++),f=a.charCodeAt(s++),p=a.charCodeAt(s++),m=d<<16|f<<8|p;d=m>>18&63,f=m>>12&63,p=m>>6&63,m&=63,u[l++]=O.charAt(d)+O.charAt(f)+O.charAt(p)+O.charAt(m)}while(s<a.length);s=u.join(""),a=((a=a.length%3)?s.slice(0,a-3):s)+"===".slice(a||3)}a=a.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}c.call(i,o,a)}else n.add(o.keyIfNotEncoded,a)}t.length=0}}function o(e){if(!a(e))return!1;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n))return!0;return!1}function a(e){return null!=e&&(e.constructor==={}.constructor||e.constructor===[].constructor)}function i(){var e=[],n=[];return{getGlobalPrimitives:function(){return e},getConditionalProviders:function(){return n},addGlobalContexts:function(t){for(var r=[],o=[],a=0;a<t.length;a++){var i=t[a];_(i)?r.push(i):h(i)&&o.push(i)}e=e.concat(o),n=n.concat(r)},clearGlobalContexts:function(){n=[],e=[]},removeGlobalContexts:function(t){for(var r=function(t){_(t)?n=n.filter((function(e){return JSON.stringify(e)!==JSON.stringify(t)})):h(t)&&(e=e.filter((function(e){return JSON.stringify(e)!==JSON.stringify(t)})))},o=0;o<t.length;o++)r(t[o])},getApplicableContexts:function(t){e:{for(var r=0,o=t.getJson();r<o.length;r++){var a=o[r];if("ue_px"===a.keyIfEncoded&&"object"==typeof a.json.data&&"string"==typeof(a=a.json.data.schema)){r=a;break e}}r=""}a="string"==typeof(o=t.getPayload().e)?o:"",o=[];var i=P(e,t,a,r);return o.push.apply(o,i),t=function(e,n,t,r){var o;return e=k(e).map((function(e){e:{if(w(e)){var o=e[0],a=!1;try{a=o({event:n.getPayload(),eventType:t,eventSchema:r})}catch(e){a=!1}if(!0===a){e=P(e[1],n,t,r);break e}}else if(b(e)&&C(e[0],r)){e=P(e[1],n,t,r);break e}e=[]}if(e&&0!==e.length)return e})),(o=[]).concat.apply(o,e.filter((function(e){return null!=e&&e.filter(Boolean)})))}(n,t,a,r),o.push.apply(o,t),o}}}function c(e){return{addPluginContexts:function(t){var r=t?n([],t,!0):[];return e.forEach((function(e){try{e.contexts&&r.push.apply(r,e.contexts())}catch(e){S.error("Error adding plugin contexts",e)}})),r}}}function s(e){if(null!==(e=/^iglu:([a-zA-Z0-9-_.]+)\/([a-zA-Z0-9-_]+)\/jsonschema\/([1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)$/.exec(e)))return e.slice(1,6)}function l(e){if("*"===e[0]||"*"===e[1])return!1;if(0<e.slice(2).length){var n=!1,t=0;for(e=e.slice(2);t<e.length;t++)if("*"===e[t])n=!0;else if(n)return!1;return!0}return 2==e.length}function u(e){return!!((e=e.split("."))&&1<e.length)&&l(e)}function d(e){if(null!==(e=/^iglu:((?:(?:[a-zA-Z0-9-_]+|\*).)+(?:[a-zA-Z0-9-_]+|\*))\/([a-zA-Z0-9-_.]+|\*)\/jsonschema\/([1-9][0-9]*|\*)-(0|[1-9][0-9]*|\*)-(0|[1-9][0-9]*|\*)$/.exec(e))&&u(e[1]))return e.slice(1,6)}function f(e){if(e=d(e)){var n=e[0];return 5===e.length&&u(n)}return!1}function p(e){return Array.isArray(e)&&e.every((function(e){return"string"==typeof e}))}function m(e){return p(e)?e.every((function(e){return f(e)})):"string"==typeof e&&f(e)}function y(e){return!!(o(e)&&"schema"in e&&"data"in e)&&("string"==typeof e.schema&&"object"==typeof e.data)}function v(e){var n=0;if(null!=e&&"object"==typeof e&&!Array.isArray(e)){if(Object.prototype.hasOwnProperty.call(e,"accept")){if(!m(e.accept))return!1;n+=1}if(Object.prototype.hasOwnProperty.call(e,"reject")){if(!m(e.reject))return!1;n+=1}return 0<n&&2>=n}return!1}function g(e){return"function"==typeof e&&1>=e.length}function h(e){return g(e)||y(e)}function w(e){return!(!Array.isArray(e)||2!==e.length)&&(Array.isArray(e[1])?g(e[0])&&e[1].every(h):g(e[0])&&h(e[1]))}function b(e){return!(!Array.isArray(e)||2!==e.length)&&(!!v(e[0])&&(Array.isArray(e[1])?e[1].every(h):h(e[1])))}function _(e){return w(e)||b(e)}function C(e,n){var t=0,r=0,o=e.accept;return Array.isArray(o)?e.accept.some((function(e){return A(e,n)}))&&r++:"string"==typeof o&&A(o,n)&&r++,o=e.reject,Array.isArray(o)?e.reject.some((function(e){return A(e,n)}))&&t++:"string"==typeof o&&A(o,n)&&t++,0<r&&0===t}function A(e,n){if(!f(e))return!1;if(e=d(e),n=s(n),e&&n){if(!function(e,n){if(n=n.split("."),e=e.split("."),n&&e){if(n.length!==e.length)return!1;for(var t=0;t<e.length;t++)if(!I(n[t],e[t]))return!1;return!0}return!1}(e[0],n[0]))return!1;for(var t=1;5>t;t++)if(!I(e[t],n[t]))return!1;return!0}return!1}function I(e,n){return e&&n&&"*"===e||e===n}function k(e){return Array.isArray(e)?e:[e]}function P(e,n,t,r){var o;return e=k(e).map((function(e){e:if(y(e))e=[e];else{if(g(e)){n:{var o=void 0;try{if(o=e({event:n.getPayload(),eventType:t,eventSchema:r}),Array.isArray(o)&&o.every(y)||y(o)){var a=o;break n}a=void 0;break n}catch(e){}a=void 0}if(y(a)){e=[a];break e}if(Array.isArray(a)){e=a;break e}}e=void 0}if(e&&0!==e.length)return e})),(o=[]).concat.apply(o,e.filter((function(e){return null!=e&&e.filter(Boolean)})))}function x(e){var n=e.event;return e={schema:"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",data:{schema:e=n.schema,data:n.data}},(n=t()).add("e","ue"),n.addJson("ue_px","ue_pr",e),n}function j(e,n){void 0===n&&(n={});var t,r={};for(t in e)(n[t]||null!==e[t]&&void 0!==e[t])&&(r[t]=e[t]);return r}var E,L=function(){return(L=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e}).apply(this,arguments)},O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.LOG_LEVEL=void 0,(E=e.LOG_LEVEL||(e.LOG_LEVEL={}))[E.none=0]="none",E[E.error=1]="error",E[E.warn=2]="warn",E[E.debug=3]="debug",E[E.info=4]="info";var S=function(t){return void 0===t&&(t=e.LOG_LEVEL.warn),{setLogLevel:function(n){t=e.LOG_LEVEL[n]?n:e.LOG_LEVEL.warn},warn:function(r,o){for(var a=[],i=2;i<arguments.length;i++)a[i-2]=arguments[i];t>=e.LOG_LEVEL.warn&&"undefined"!=typeof console&&(i="Snowplow: "+r,o?console.warn.apply(console,n([i+"\n",o],a,!1)):console.warn.apply(console,n([i],a,!1)))},error:function(r,o){for(var a=[],i=2;i<arguments.length;i++)a[i-2]=arguments[i];t>=e.LOG_LEVEL.error&&"undefined"!=typeof console&&(i="Snowplow: "+r+"\n",o?console.error.apply(console,n([i+"\n",o],a,!1)):console.error.apply(console,n([i],a,!1)))},debug:function(r){for(var o=[],a=1;a<arguments.length;a++)o[a-1]=arguments[a];t>=e.LOG_LEVEL.debug&&"undefined"!=typeof console&&console.debug.apply(console,n(["Snowplow: "+r],o,!1))},info:function(r){for(var o=[],a=1;a<arguments.length;a++)o[a-1]=arguments[a];t>=e.LOG_LEVEL.info&&"undefined"!=typeof console&&console.info.apply(console,n(["Snowplow: "+r],o,!1))}}}(),T={},V="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(V){var N=new Uint8Array(16);T=function(){return V(N),N}}else{var G=Array(16);T=function(){for(var e,n=0;16>n;n++)0==(3&n)&&(e=4294967296*Math.random()),G[n]=e>>>((3&n)<<3)&255;return G}}for(var R=[],J=0;256>J;++J)R[J]=(J+256).toString(16).substr(1);var U,z,D=function(e,n){return n=n||0,[R[e[n++]],R[e[n++]],R[e[n++]],R[e[n++]],"-",R[e[n++]],R[e[n++]],"-",R[e[n++]],R[e[n++]],"-",R[e[n++]],R[e[n++]],"-",R[e[n++]],R[e[n++]],R[e[n++]],R[e[n++]],R[e[n++]],R[e[n++]]].join("")},q=T,M=0,B=0,F=T,Z=function(e,n,t){if(t=n&&t||0,"string"==typeof e&&(n="binary"===e?Array(16):null,e=null),(e=(e=e||{}).random||(e.rng||F)())[6]=15&e[6]|64,e[8]=63&e[8]|128,n)for(var r=0;16>r;++r)n[t+r]=e[r];return n||D(e)};Z.v1=function(e,n,t){t=n&&t||0;var r=n||[],o=(e=e||{}).node||U,a=void 0!==e.clockseq?e.clockseq:z;if(null==o||null==a){var i=q();null==o&&(o=U=[1|i[0],i[1],i[2],i[3],i[4],i[5]]),null==a&&(a=z=16383&(i[6]<<8|i[7]))}i=void 0!==e.msecs?e.msecs:(new Date).getTime();var c=void 0!==e.nsecs?e.nsecs:B+1,s=i-M+(c-B)/1e4;if(0>s&&void 0===e.clockseq&&(a=a+1&16383),(0>s||i>M)&&void 0===e.nsecs&&(c=0),1e4<=c)throw Error("uuid.v1(): Can't create more than 10M uuids/sec");for(M=i,B=c,z=a,e=(1e4*(268435455&(i+=122192928e5))+c)%4294967296,r[t++]=e>>>24&255,r[t++]=e>>>16&255,r[t++]=e>>>8&255,r[t++]=255&e,e=i/4294967296*1e4&268435455,r[t++]=e>>>8&255,r[t++]=255&e,r[t++]=e>>>24&15|16,r[t++]=e>>>16&255,r[t++]=a>>>8|128,r[t++]=255&a,a=0;6>a;++a)r[t+a]=o[a];return n||D(r)},Z.v4=Z,e.LOG=S,e.buildAdClick=function(e){return x({event:e={schema:"iglu:com.snowplowanalytics.snowplow/ad_click/jsonschema/1-0-0",data:j({targetUrl:e.targetUrl,clickId:e.clickId,costModel:e.costModel,cost:e.cost,bannerId:e.bannerId,zoneId:e.zoneId,impressionId:e.impressionId,advertiserId:e.advertiserId,campaignId:e.campaignId})}})},e.buildAdConversion=function(e){return x({event:e={schema:"iglu:com.snowplowanalytics.snowplow/ad_conversion/jsonschema/1-0-0",data:j({conversionId:e.conversionId,costModel:e.costModel,cost:e.cost,category:e.category,action:e.action,property:e.property,initialValue:e.initialValue,advertiserId:e.advertiserId,campaignId:e.campaignId})}})},e.buildAdImpression=function(e){return x({event:e={schema:"iglu:com.snowplowanalytics.snowplow/ad_impression/jsonschema/1-0-0",data:j({impressionId:e.impressionId,costModel:e.costModel,cost:e.cost,targetUrl:e.targetUrl,bannerId:e.bannerId,zoneId:e.zoneId,advertiserId:e.advertiserId,campaignId:e.campaignId})}})},e.buildAddToCart=function(e){return x({event:{schema:"iglu:com.snowplowanalytics.snowplow/add_to_cart/jsonschema/1-0-0",data:j({sku:e.sku,quantity:e.quantity,name:e.name,category:e.category,unitPrice:e.unitPrice,currency:e.currency})}})},e.buildConsentGranted=function(e){var n=e.expiry;return e={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",data:j({id:e.id,version:e.version,name:e.name,description:e.description})},{event:x({event:{schema:"iglu:com.snowplowanalytics.snowplow/consent_granted/jsonschema/1-0-0",data:j({expiry:n})}}),context:[e]}},e.buildConsentWithdrawn=function(e){var n=e.all;return e={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",data:j({id:e.id,version:e.version,name:e.name,description:e.description})},{event:x({event:{schema:"iglu:com.snowplowanalytics.snowplow/consent_withdrawn/jsonschema/1-0-0",data:j({all:n})}}),context:[e]}},e.buildEcommerceTransaction=function(e){var n=e.orderId,r=e.total,o=e.affiliation,a=e.tax,i=e.shipping,c=e.city,s=e.state,l=e.country;e=e.currency;var u=t();return u.add("e","tr"),u.add("tr_id",n),u.add("tr_af",o),u.add("tr_tt",r),u.add("tr_tx",a),u.add("tr_sh",i),u.add("tr_ci",c),u.add("tr_st",s),u.add("tr_co",l),u.add("tr_cu",e),u},e.buildEcommerceTransactionItem=function(e){var n=e.orderId,r=e.sku,o=e.price,a=e.name,i=e.category,c=e.quantity;e=e.currency;var s=t();return s.add("e","ti"),s.add("ti_id",n),s.add("ti_sk",r),s.add("ti_nm",a),s.add("ti_ca",i),s.add("ti_pr",o),s.add("ti_qu",c),s.add("ti_cu",e),s},e.buildFormFocusOrChange=function(e){var n="",t=e.schema,r=e.type;return e={formId:e.formId,elementId:e.elementId,nodeName:e.nodeName,elementClasses:e.elementClasses,value:e.value},"change_form"===t?(n="iglu:com.snowplowanalytics.snowplow/change_form/jsonschema/1-0-0",e.type=r):"focus_form"===t&&(n="iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0",e.elementType=r),x({event:{schema:n,data:j(e,{value:!0})}})},e.buildFormSubmission=function(e){return x({event:{schema:"iglu:com.snowplowanalytics.snowplow/submit_form/jsonschema/1-0-0",data:j({formId:e.formId,formClasses:e.formClasses,elements:e.elements})}})},e.buildLinkClick=function(e){return x({event:e={schema:"iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",data:j({targetUrl:e.targetUrl,elementId:e.elementId,elementClasses:e.elementClasses,elementTarget:e.elementTarget,elementContent:e.elementContent})}})},e.buildPagePing=function(e){var n=e.pageUrl,r=e.pageTitle,o=e.referrer,a=e.minXOffset,i=e.maxXOffset,c=e.minYOffset;e=e.maxYOffset;var s=t();return s.add("e","pp"),s.add("url",n),s.add("page",r),s.add("refr",o),a&&!isNaN(Number(a))&&s.add("pp_mix",a.toString()),i&&!isNaN(Number(i))&&s.add("pp_max",i.toString()),c&&!isNaN(Number(c))&&s.add("pp_miy",c.toString()),e&&!isNaN(Number(e))&&s.add("pp_may",e.toString()),s},e.buildPageView=function(e){var n=e.pageUrl,r=e.pageTitle;e=e.referrer;var o=t();return o.add("e","pv"),o.add("url",n),o.add("page",r),o.add("refr",e),o},e.buildRemoveFromCart=function(e){return x({event:{schema:"iglu:com.snowplowanalytics.snowplow/remove_from_cart/jsonschema/1-0-0",data:j({sku:e.sku,quantity:e.quantity,name:e.name,category:e.category,unitPrice:e.unitPrice,currency:e.currency})}})},e.buildScreenView=function(e){return x({event:{schema:"iglu:com.snowplowanalytics.snowplow/screen_view/jsonschema/1-0-0",data:j({name:e.name,id:e.id})}})},e.buildSelfDescribingEvent=x,e.buildSiteSearch=function(e){return x({event:{schema:"iglu:com.snowplowanalytics.snowplow/site_search/jsonschema/1-0-0",data:j({terms:e.terms,filters:e.filters,totalResults:e.totalResults,pageResults:e.pageResults})}})},e.buildSocialInteraction=function(e){return x({event:e={schema:"iglu:com.snowplowanalytics.snowplow/social_interaction/jsonschema/1-0-0",data:j({action:e.action,network:e.network,target:e.target})}})},e.buildStructEvent=function(e){var n=e.category,r=e.action,o=e.label,a=e.property;e=e.value;var i=t();return i.add("e","se"),i.add("se_ca",n),i.add("se_ac",r),i.add("se_la",o),i.add("se_pr",a),i.add("se_va",null==e?void 0:e.toString()),i},e.getRuleParts=d,e.getSchemaParts=s,e.globalContexts=i,e.isConditionalContextProvider=_,e.isContextCallbackFunction=g,e.isContextPrimitive=h,e.isFilterProvider=w,e.isJson=a,e.isNonEmptyJson=o,e.isRuleSet=v,e.isRuleSetProvider=b,e.isSelfDescribingJson=y,e.isStringArray=p,e.isValidRule=f,e.isValidRuleSetArg=m,e.matchSchemaAgainstRule=A,e.matchSchemaAgainstRuleSet=C,e.payloadBuilder=t,e.payloadJsonProcessor=r,e.pluginContexts=c,e.resolveDynamicContext=function(e){for(var n,t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return null!==(n=null==e?void 0:e.map((function(e){if("function"!=typeof e)return e;try{return e.apply(void 0,t)}catch(e){}})).filter(Boolean))&&void 0!==n?n:[]},e.trackerCore=function(e){void 0===e&&(e={});var n,t,o,s,l,u,d,f=e.base64,p=e.corePlugins,m=null!=p?p:[];n=null==f||f,t=m,o=e.callback,s=c(t),l=i(),u=n,d={};var y=L(L({},e={track:function(e,n,a){e.withJsonProcessor(r(u)),e.add("eid",Z.v4()),e.addDict(d),a=function(e){return null==e?{type:"dtm",value:(new Date).getTime()}:"number"==typeof e?{type:"dtm",value:e}:"ttm"===e.type?{type:"ttm",value:e.value}:{type:"dtm",value:e.value||(new Date).getTime()}}(a),e.add(a.type,a.value.toString()),void 0!==(n=(n=function(e,n){e=l.getApplicableContexts(e);var t=[];return n&&n.length&&t.push.apply(t,n),e&&e.length&&t.push.apply(t,e),t}(e,s.addPluginContexts(n)))&&n.length?{schema:"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",data:n}:void 0)&&e.addJson("cx","co",n),t.forEach((function(n){try{n.beforeTrack&&n.beforeTrack(e)}catch(e){S.error("Plugin beforeTrack",e)}})),"function"==typeof o&&o(e);var i=e.build();return t.forEach((function(e){try{e.afterTrack&&e.afterTrack(i)}catch(e){S.error("Plugin afterTrack",e)}})),i},addPayloadPair:function(e,n){d[e]=n},getBase64Encoding:function(){return u},setBase64Encoding:function(e){u=e},addPayloadDict:function(e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(d[n]=e[n])},resetPayloadPairs:function(e){d=a(e)?e:{}},setTrackerVersion:function(e){d.tv=e},setTrackerNamespace:function(e){d.tna=e},setAppId:function(e){d.aid=e},setPlatform:function(e){d.p=e},setUserId:function(e){d.uid=e},setScreenResolution:function(e,n){d.res=e+"x"+n},setViewport:function(e,n){d.vp=e+"x"+n},setColorDepth:function(e){d.cd=e},setTimezone:function(e){d.tz=e},setLang:function(e){d.lang=e},setIpAddress:function(e){d.ip=e},setUseragent:function(e){d.ua=e},addGlobalContexts:function(e){l.addGlobalContexts(e)},clearGlobalContexts:function(){l.clearGlobalContexts()},removeGlobalContexts:function(e){l.removeGlobalContexts(e)}}),{addPlugin:function(e){var n,t;e=e.plugin,m.push(e),null===(n=e.logger)||void 0===n||n.call(e,S),null===(t=e.activateCorePlugin)||void 0===t||t.call(e,y)}});return null==m||m.forEach((function(e){var n,t;null===(n=e.logger)||void 0===n||n.call(e,S),null===(t=e.activateCorePlugin)||void 0===t||t.call(e,y)})),y},e.validateVendor=u,e.validateVendorParts=l,e.version="3.4.0",Object.defineProperty(e,"__esModule",{value:!0})}));
"use strict";!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).snowplowTrackerCore={})}(this,(function(e){function n(e,n,t){if(t||2===arguments.length)for(var r,o=0,a=n.length;o<a;o++)!r&&o in n||(r||(r=Array.prototype.slice.call(n,0,o)),r[o]=n[o]);return e.concat(r||Array.prototype.slice.call(n))}function t(){var e,n={},t=[],r=[],a=[],i=function(e,t){null!=t&&""!==t&&(n[e]=t)};return{add:i,addDict:function(e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&i(n,e[n])},addJson:function(e,n,a){a&&o(a)&&(e={keyIfEncoded:e,keyIfNotEncoded:n,json:a},r.push(e),t.push(e))},addContextEntity:function(e){a.push(e)},getPayload:function(){return n},getJson:function(){return t},withJsonProcessor:function(n){e=n},build:function(){return null==e||e(this,r,a),n}}}function r(e){return function(t,r,o){for(var a=function(n,r,o){if(n=JSON.stringify(n),e){if(o=t.add,n){var a=0,i=0,c=[];if(n){n=unescape(encodeURIComponent(n));do{var l=n.charCodeAt(a++),s=n.charCodeAt(a++),u=n.charCodeAt(a++),d=l<<16|s<<8|u;l=d>>18&63,s=d>>12&63,u=d>>6&63,d&=63,c[i++]=S.charAt(l)+S.charAt(s)+S.charAt(u)+S.charAt(d)}while(a<n.length);a=c.join(""),n=((n=n.length%3)?a.slice(0,n-3):a)+"===".slice(n||3)}n=n.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}o.call(t,r,n)}else t.add(o,n)},i=function(n,r){if(!n){var o=t.getPayload();if(e?o.cx:o.co){var a=(n=JSON).parse;if(e){if(o=o.cx){switch(4-o.length%4){case 2:o+="==";break;case 3:o+="="}o=function(e){var n,t=0,r=0,o="",a=[];if(!e)return e;e+="";do{var i=S.indexOf(e.charAt(t++)),c=S.indexOf(e.charAt(t++));o=S.indexOf(e.charAt(t++));var l=S.indexOf(e.charAt(t++)),s=i<<18|c<<12|o<<6|l;i=s>>16&255,c=s>>8&255,s&=255,a[r++]=64===o?String.fromCharCode(i):64===l?String.fromCharCode(i,c):String.fromCharCode(i,c,s)}while(t<e.length);return o=a.join(""),n=o.replace(/\0+$/,""),decodeURIComponent(n.split("").map((function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join(""))}(o=o.replace(/-/g,"+").replace(/_/g,"/"))}}else o=o.co;n=a.call(n,o)}else n=void 0}return n?n.data=n.data.concat(r.data):n=r,n},c=void 0,l=0;l<r.length;l++){var s=r[l];"cx"===s.keyIfEncoded?c=i(c,s.json):a(s.json,s.keyIfEncoded,s.keyIfNotEncoded)}r.length=0,o.length&&(c=i(c,r={schema:"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",data:n([],o,!0)}),o.length=0),c&&a(c,"cx","co")}}function o(e){if(!a(e))return!1;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n))return!0;return!1}function a(e){return null!=e&&(e.constructor==={}.constructor||e.constructor===[].constructor)}function i(){var e=[],n=[];return{getGlobalPrimitives:function(){return e},getConditionalProviders:function(){return n},addGlobalContexts:function(t){for(var r=[],o=[],a=0;a<t.length;a++){var i=t[a];_(i)?r.push(i):h(i)&&o.push(i)}e=e.concat(o),n=n.concat(r)},clearGlobalContexts:function(){n=[],e=[]},removeGlobalContexts:function(t){for(var r=function(t){_(t)?n=n.filter((function(e){return JSON.stringify(e)!==JSON.stringify(t)})):h(t)&&(e=e.filter((function(e){return JSON.stringify(e)!==JSON.stringify(t)})))},o=0;o<t.length;o++)r(t[o])},getApplicableContexts:function(t){e:{for(var r=0,o=t.getJson();r<o.length;r++){var a=o[r];if("ue_px"===a.keyIfEncoded&&"object"==typeof a.json.data&&"string"==typeof(a=a.json.data.schema)){r=a;break e}}r=""}a="string"==typeof(o=t.getPayload().e)?o:"",o=[];var i=j(e,t,a,r);return o.push.apply(o,i),t=function(e,n,t,r){var o;return e=I(e).map((function(e){e:{if(w(e)){var o=e[0],a=!1;try{a=o({event:n.getPayload(),eventType:t,eventSchema:r})}catch(e){a=!1}if(!0===a){e=j(e[1],n,t,r);break e}}else if(b(e)&&C(e[0],r)){e=j(e[1],n,t,r);break e}e=[]}if(e&&0!==e.length)return e})),(o=[]).concat.apply(o,e.filter((function(e){return null!=e&&e.filter(Boolean)})))}(n,t,a,r),o.push.apply(o,t),o}}}function c(e){return{addPluginContexts:function(t){var r=t?n([],t,!0):[];return e.forEach((function(e){try{e.contexts&&r.push.apply(r,e.contexts())}catch(e){L.error("Error adding plugin contexts",e)}})),r}}}function l(e){if(null!==(e=/^iglu:([a-zA-Z0-9-_.]+)\/([a-zA-Z0-9-_]+)\/jsonschema\/([1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)$/.exec(e)))return e.slice(1,6)}function s(e){if("*"===e[0]||"*"===e[1])return!1;if(0<e.slice(2).length){var n=!1,t=0;for(e=e.slice(2);t<e.length;t++)if("*"===e[t])n=!0;else if(n)return!1;return!0}return 2==e.length}function u(e){return!!((e=e.split("."))&&1<e.length)&&s(e)}function d(e){if(null!==(e=/^iglu:((?:(?:[a-zA-Z0-9-_]+|\*).)+(?:[a-zA-Z0-9-_]+|\*))\/([a-zA-Z0-9-_.]+|\*)\/jsonschema\/([1-9][0-9]*|\*)-(0|[1-9][0-9]*|\*)-(0|[1-9][0-9]*|\*)$/.exec(e))&&u(e[1]))return e.slice(1,6)}function f(e){if(e=d(e)){var n=e[0];return 5===e.length&&u(n)}return!1}function p(e){return Array.isArray(e)&&e.every((function(e){return"string"==typeof e}))}function m(e){return p(e)?e.every((function(e){return f(e)})):"string"==typeof e&&f(e)}function y(e){return!!(o(e)&&"schema"in e&&"data"in e)&&("string"==typeof e.schema&&"object"==typeof e.data)}function g(e){var n=0;if(null!=e&&"object"==typeof e&&!Array.isArray(e)){if(Object.prototype.hasOwnProperty.call(e,"accept")){if(!m(e.accept))return!1;n+=1}if(Object.prototype.hasOwnProperty.call(e,"reject")){if(!m(e.reject))return!1;n+=1}return 0<n&&2>=n}return!1}function v(e){return"function"==typeof e&&1>=e.length}function h(e){return v(e)||y(e)}function w(e){return!(!Array.isArray(e)||2!==e.length)&&(Array.isArray(e[1])?v(e[0])&&e[1].every(h):v(e[0])&&h(e[1]))}function b(e){return!(!Array.isArray(e)||2!==e.length)&&(!!g(e[0])&&(Array.isArray(e[1])?e[1].every(h):h(e[1])))}function _(e){return w(e)||b(e)}function C(e,n){var t=0,r=0,o=e.accept;return Array.isArray(o)?e.accept.some((function(e){return A(e,n)}))&&r++:"string"==typeof o&&A(o,n)&&r++,o=e.reject,Array.isArray(o)?e.reject.some((function(e){return A(e,n)}))&&t++:"string"==typeof o&&A(o,n)&&t++,0<r&&0===t}function A(e,n){if(!f(e))return!1;if(e=d(e),n=l(n),e&&n){if(!function(e,n){if(n=n.split("."),e=e.split("."),n&&e){if(n.length!==e.length)return!1;for(var t=0;t<e.length;t++)if(!x(n[t],e[t]))return!1;return!0}return!1}(e[0],n[0]))return!1;for(var t=1;5>t;t++)if(!x(e[t],n[t]))return!1;return!0}return!1}function x(e,n){return e&&n&&"*"===e||e===n}function I(e){return Array.isArray(e)?e:[e]}function j(e,n,t,r){var o;return e=I(e).map((function(e){e:if(y(e))e=[e];else{if(v(e)){n:{var o=void 0;try{if(o=e({event:n.getPayload(),eventType:t,eventSchema:r}),Array.isArray(o)&&o.every(y)||y(o)){var a=o;break n}a=void 0;break n}catch(e){}a=void 0}if(y(a)){e=[a];break e}if(Array.isArray(a)){e=a;break e}}e=void 0}if(e&&0!==e.length)return e})),(o=[]).concat.apply(o,e.filter((function(e){return null!=e&&e.filter(Boolean)})))}function k(e){var n=e.event;return e={schema:"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",data:{schema:e=n.schema,data:n.data}},(n=t()).add("e","ue"),n.addJson("ue_px","ue_pr",e),n}function P(e,n){void 0===n&&(n={});var t,r={};for(t in e)(n[t]||null!==e[t]&&void 0!==e[t])&&(r[t]=e[t]);return r}var E,O=function(){return(O=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e}).apply(this,arguments)},S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.LOG_LEVEL=void 0,(E=e.LOG_LEVEL||(e.LOG_LEVEL={}))[E.none=0]="none",E[E.error=1]="error",E[E.warn=2]="warn",E[E.debug=3]="debug",E[E.info=4]="info";var L=function(t){return void 0===t&&(t=e.LOG_LEVEL.warn),{setLogLevel:function(n){t=e.LOG_LEVEL[n]?n:e.LOG_LEVEL.warn},warn:function(r,o){for(var a=[],i=2;i<arguments.length;i++)a[i-2]=arguments[i];t>=e.LOG_LEVEL.warn&&"undefined"!=typeof console&&(i="Snowplow: "+r,o?console.warn.apply(console,n([i+"\n",o],a,!1)):console.warn.apply(console,n([i],a,!1)))},error:function(r,o){for(var a=[],i=2;i<arguments.length;i++)a[i-2]=arguments[i];t>=e.LOG_LEVEL.error&&"undefined"!=typeof console&&(i="Snowplow: "+r+"\n",o?console.error.apply(console,n([i+"\n",o],a,!1)):console.error.apply(console,n([i],a,!1)))},debug:function(r){for(var o=[],a=1;a<arguments.length;a++)o[a-1]=arguments[a];t>=e.LOG_LEVEL.debug&&"undefined"!=typeof console&&console.debug.apply(console,n(["Snowplow: "+r],o,!1))},info:function(r){for(var o=[],a=1;a<arguments.length;a++)o[a-1]=arguments[a];t>=e.LOG_LEVEL.info&&"undefined"!=typeof console&&console.info.apply(console,n(["Snowplow: "+r],o,!1))}}}(),T={},N="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(N){var V=new Uint8Array(16);T=function(){return N(V),V}}else{var G=Array(16);T=function(){for(var e,n=0;16>n;n++)0==(3&n)&&(e=4294967296*Math.random()),G[n]=e>>>((3&n)<<3)&255;return G}}for(var R=[],J=0;256>J;++J)R[J]=(J+256).toString(16).substr(1);var U,z,D=function(e,n){return n=n||0,[R[e[n++]],R[e[n++]],R[e[n++]],R[e[n++]],"-",R[e[n++]],R[e[n++]],"-",R[e[n++]],R[e[n++]],"-",R[e[n++]],R[e[n++]],"-",R[e[n++]],R[e[n++]],R[e[n++]],R[e[n++]],R[e[n++]],R[e[n++]]].join("")},q=T,M=0,B=0,F=T,Z=function(e,n,t){if(t=n&&t||0,"string"==typeof e&&(n="binary"===e?Array(16):null,e=null),(e=(e=e||{}).random||(e.rng||F)())[6]=15&e[6]|64,e[8]=63&e[8]|128,n)for(var r=0;16>r;++r)n[t+r]=e[r];return n||D(e)};Z.v1=function(e,n,t){t=n&&t||0;var r=n||[],o=(e=e||{}).node||U,a=void 0!==e.clockseq?e.clockseq:z;if(null==o||null==a){var i=q();null==o&&(o=U=[1|i[0],i[1],i[2],i[3],i[4],i[5]]),null==a&&(a=z=16383&(i[6]<<8|i[7]))}i=void 0!==e.msecs?e.msecs:(new Date).getTime();var c=void 0!==e.nsecs?e.nsecs:B+1,l=i-M+(c-B)/1e4;if(0>l&&void 0===e.clockseq&&(a=a+1&16383),(0>l||i>M)&&void 0===e.nsecs&&(c=0),1e4<=c)throw Error("uuid.v1(): Can't create more than 10M uuids/sec");for(M=i,B=c,z=a,e=(1e4*(268435455&(i+=122192928e5))+c)%4294967296,r[t++]=e>>>24&255,r[t++]=e>>>16&255,r[t++]=e>>>8&255,r[t++]=255&e,e=i/4294967296*1e4&268435455,r[t++]=e>>>8&255,r[t++]=255&e,r[t++]=e>>>24&15|16,r[t++]=e>>>16&255,r[t++]=a>>>8|128,r[t++]=255&a,a=0;6>a;++a)r[t+a]=o[a];return n||D(r)},Z.v4=Z,e.LOG=L,e.buildAdClick=function(e){return k({event:e={schema:"iglu:com.snowplowanalytics.snowplow/ad_click/jsonschema/1-0-0",data:P({targetUrl:e.targetUrl,clickId:e.clickId,costModel:e.costModel,cost:e.cost,bannerId:e.bannerId,zoneId:e.zoneId,impressionId:e.impressionId,advertiserId:e.advertiserId,campaignId:e.campaignId})}})},e.buildAdConversion=function(e){return k({event:e={schema:"iglu:com.snowplowanalytics.snowplow/ad_conversion/jsonschema/1-0-0",data:P({conversionId:e.conversionId,costModel:e.costModel,cost:e.cost,category:e.category,action:e.action,property:e.property,initialValue:e.initialValue,advertiserId:e.advertiserId,campaignId:e.campaignId})}})},e.buildAdImpression=function(e){return k({event:e={schema:"iglu:com.snowplowanalytics.snowplow/ad_impression/jsonschema/1-0-0",data:P({impressionId:e.impressionId,costModel:e.costModel,cost:e.cost,targetUrl:e.targetUrl,bannerId:e.bannerId,zoneId:e.zoneId,advertiserId:e.advertiserId,campaignId:e.campaignId})}})},e.buildAddToCart=function(e){return k({event:{schema:"iglu:com.snowplowanalytics.snowplow/add_to_cart/jsonschema/1-0-0",data:P({sku:e.sku,quantity:e.quantity,name:e.name,category:e.category,unitPrice:e.unitPrice,currency:e.currency})}})},e.buildConsentGranted=function(e){var n=e.expiry;return e={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",data:P({id:e.id,version:e.version,name:e.name,description:e.description})},{event:k({event:{schema:"iglu:com.snowplowanalytics.snowplow/consent_granted/jsonschema/1-0-0",data:P({expiry:n})}}),context:[e]}},e.buildConsentWithdrawn=function(e){var n=e.all;return e={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",data:P({id:e.id,version:e.version,name:e.name,description:e.description})},{event:k({event:{schema:"iglu:com.snowplowanalytics.snowplow/consent_withdrawn/jsonschema/1-0-0",data:P({all:n})}}),context:[e]}},e.buildEcommerceTransaction=function(e){var n=e.orderId,r=e.total,o=e.affiliation,a=e.tax,i=e.shipping,c=e.city,l=e.state,s=e.country;e=e.currency;var u=t();return u.add("e","tr"),u.add("tr_id",n),u.add("tr_af",o),u.add("tr_tt",r),u.add("tr_tx",a),u.add("tr_sh",i),u.add("tr_ci",c),u.add("tr_st",l),u.add("tr_co",s),u.add("tr_cu",e),u},e.buildEcommerceTransactionItem=function(e){var n=e.orderId,r=e.sku,o=e.price,a=e.name,i=e.category,c=e.quantity;e=e.currency;var l=t();return l.add("e","ti"),l.add("ti_id",n),l.add("ti_sk",r),l.add("ti_nm",a),l.add("ti_ca",i),l.add("ti_pr",o),l.add("ti_qu",c),l.add("ti_cu",e),l},e.buildFormFocusOrChange=function(e){var n="",t=e.schema,r=e.type;return e={formId:e.formId,elementId:e.elementId,nodeName:e.nodeName,elementClasses:e.elementClasses,value:e.value},"change_form"===t?(n="iglu:com.snowplowanalytics.snowplow/change_form/jsonschema/1-0-0",e.type=r):"focus_form"===t&&(n="iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0",e.elementType=r),k({event:{schema:n,data:P(e,{value:!0})}})},e.buildFormSubmission=function(e){return k({event:{schema:"iglu:com.snowplowanalytics.snowplow/submit_form/jsonschema/1-0-0",data:P({formId:e.formId,formClasses:e.formClasses,elements:e.elements})}})},e.buildLinkClick=function(e){return k({event:e={schema:"iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",data:P({targetUrl:e.targetUrl,elementId:e.elementId,elementClasses:e.elementClasses,elementTarget:e.elementTarget,elementContent:e.elementContent})}})},e.buildPagePing=function(e){var n=e.pageUrl,r=e.pageTitle,o=e.referrer,a=e.minXOffset,i=e.maxXOffset,c=e.minYOffset;e=e.maxYOffset;var l=t();return l.add("e","pp"),l.add("url",n),l.add("page",r),l.add("refr",o),a&&!isNaN(Number(a))&&l.add("pp_mix",a.toString()),i&&!isNaN(Number(i))&&l.add("pp_max",i.toString()),c&&!isNaN(Number(c))&&l.add("pp_miy",c.toString()),e&&!isNaN(Number(e))&&l.add("pp_may",e.toString()),l},e.buildPageView=function(e){var n=e.pageUrl,r=e.pageTitle;e=e.referrer;var o=t();return o.add("e","pv"),o.add("url",n),o.add("page",r),o.add("refr",e),o},e.buildRemoveFromCart=function(e){return k({event:{schema:"iglu:com.snowplowanalytics.snowplow/remove_from_cart/jsonschema/1-0-0",data:P({sku:e.sku,quantity:e.quantity,name:e.name,category:e.category,unitPrice:e.unitPrice,currency:e.currency})}})},e.buildScreenView=function(e){return k({event:{schema:"iglu:com.snowplowanalytics.snowplow/screen_view/jsonschema/1-0-0",data:P({name:e.name,id:e.id})}})},e.buildSelfDescribingEvent=k,e.buildSiteSearch=function(e){return k({event:{schema:"iglu:com.snowplowanalytics.snowplow/site_search/jsonschema/1-0-0",data:P({terms:e.terms,filters:e.filters,totalResults:e.totalResults,pageResults:e.pageResults})}})},e.buildSocialInteraction=function(e){return k({event:e={schema:"iglu:com.snowplowanalytics.snowplow/social_interaction/jsonschema/1-0-0",data:P({action:e.action,network:e.network,target:e.target})}})},e.buildStructEvent=function(e){var n=e.category,r=e.action,o=e.label,a=e.property;e=e.value;var i=t();return i.add("e","se"),i.add("se_ca",n),i.add("se_ac",r),i.add("se_la",o),i.add("se_pr",a),i.add("se_va",null==e?void 0:e.toString()),i},e.getRuleParts=d,e.getSchemaParts=l,e.globalContexts=i,e.isConditionalContextProvider=_,e.isContextCallbackFunction=v,e.isContextPrimitive=h,e.isFilterProvider=w,e.isJson=a,e.isNonEmptyJson=o,e.isRuleSet=g,e.isRuleSetProvider=b,e.isSelfDescribingJson=y,e.isStringArray=p,e.isValidRule=f,e.isValidRuleSetArg=m,e.matchSchemaAgainstRule=A,e.matchSchemaAgainstRuleSet=C,e.payloadBuilder=t,e.payloadJsonProcessor=r,e.pluginContexts=c,e.resolveDynamicContext=function(e){for(var n,t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return null!==(n=null==e?void 0:e.map((function(e){if("function"!=typeof e)return e;try{return e.apply(void 0,t)}catch(e){}})).filter(Boolean))&&void 0!==n?n:[]},e.trackerCore=function(e){void 0===e&&(e={});var n,t,o,l,s,u,d,f=e.base64,p=e.corePlugins,m=null!=p?p:[];n=null==f||f,t=m,o=e.callback,l=c(t),s=i(),u=n,d={};var y=O(O({},e={track:function(e,n,a){e.withJsonProcessor(r(u)),e.add("eid",Z.v4()),e.addDict(d),a=function(e){return null==e?{type:"dtm",value:(new Date).getTime()}:"number"==typeof e?{type:"dtm",value:e}:"ttm"===e.type?{type:"ttm",value:e.value}:{type:"dtm",value:e.value||(new Date).getTime()}}(a),e.add(a.type,a.value.toString()),void 0!==(n=(n=function(e,n){e=s.getApplicableContexts(e);var t=[];return n&&n.length&&t.push.apply(t,n),e&&e.length&&t.push.apply(t,e),t}(e,l.addPluginContexts(n)))&&n.length?{schema:"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",data:n}:void 0)&&e.addJson("cx","co",n),t.forEach((function(n){try{n.beforeTrack&&n.beforeTrack(e)}catch(e){L.error("Plugin beforeTrack",e)}})),"function"==typeof o&&o(e);var i=e.build();return t.forEach((function(e){try{e.afterTrack&&e.afterTrack(i)}catch(e){L.error("Plugin afterTrack",e)}})),i},addPayloadPair:function(e,n){d[e]=n},getBase64Encoding:function(){return u},setBase64Encoding:function(e){u=e},addPayloadDict:function(e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(d[n]=e[n])},resetPayloadPairs:function(e){d=a(e)?e:{}},setTrackerVersion:function(e){d.tv=e},setTrackerNamespace:function(e){d.tna=e},setAppId:function(e){d.aid=e},setPlatform:function(e){d.p=e},setUserId:function(e){d.uid=e},setScreenResolution:function(e,n){d.res=e+"x"+n},setViewport:function(e,n){d.vp=e+"x"+n},setColorDepth:function(e){d.cd=e},setTimezone:function(e){d.tz=e},setLang:function(e){d.lang=e},setIpAddress:function(e){d.ip=e},setUseragent:function(e){d.ua=e},addGlobalContexts:function(e){s.addGlobalContexts(e)},clearGlobalContexts:function(){s.clearGlobalContexts()},removeGlobalContexts:function(e){s.removeGlobalContexts(e)}}),{addPlugin:function(e){var n,t;e=e.plugin,m.push(e),null===(n=e.logger)||void 0===n||n.call(e,L),null===(t=e.activateCorePlugin)||void 0===t||t.call(e,y)}});return null==m||m.forEach((function(e){var n,t;null===(n=e.logger)||void 0===n||n.call(e,L),null===(t=e.activateCorePlugin)||void 0===t||t.call(e,y)})),y},e.validateVendor=u,e.validateVendorParts=s,e.version="3.5.0",Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=index.min.js.map
declare const version: string;
/**
* Type for a Payload dictionary
*/
type Payload = Record<string, unknown>;
/**
* A tuple which represents the unprocessed JSON to be added to the Payload
*/
type EventJsonWithKeys = {
keyIfEncoded: string;
keyIfNotEncoded: string;
json: Record<string, unknown>;
};
/**
* An array of tuples which represents the unprocessed JSON to be added to the Payload
*/
type EventJson = Array<EventJsonWithKeys>;
/**
* A function which will processor the Json onto the injected PayloadBuilder
*/
type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson) => void;
/**
* Interface for mutable object encapsulating tracker payload
*/
interface PayloadBuilder {
/**
* Adds an entry to the Payload
* @param key - Key for Payload dictionary entry
* @param value - Value for Payload dictionaty entry
*/
add: (key: string, value: unknown) => void;
/**
* Merges a payload into the existing payload
* @param dict - The payload to merge
*/
addDict: (dict: Payload) => void;
/**
* Caches a JSON object to be added to payload on build
* @param keyIfEncoded - key if base64 encoding is enabled
* @param keyIfNotEncoded - key if base64 encoding is disabled
* @param json - The json to be stringified and added to the payload
*/
addJson: (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void;
/**
* Gets the current payload, before cached JSON is processed
*/
getPayload: () => Payload;
/**
* Gets all JSON objects added to payload
*/
getJson: () => EventJson;
/**
* Adds a function which will be executed when building
* the payload to process the JSON which has been added to this payload
* @param jsonProcessor - The JsonProcessor function for this builder
*/
withJsonProcessor: (jsonProcessor: JsonProcessor) => void;
/**
* Builds and returns the Payload
* @param base64Encode - configures if unprocessed, cached json should be encoded
*/
build: () => Payload;
}
declare function payloadBuilder(): PayloadBuilder;
/**
* A helper to build a Snowplow request from a set of name-value pairs, provided using the add methods.
* Will base64 encode JSON, if desired, on build
*
* @returns The request builder, with add and build methods
*/
declare function payloadJsonProcessor(encodeBase64: boolean): JsonProcessor;
/**
* Is property a non-empty JSON?
* @param property - Checks if object is non-empty json
*/
declare function isNonEmptyJson(property?: Record<string, unknown>): boolean;
/**
* Is property a JSON?
* @param property - Checks if object is json
*/
declare function isJson(property?: Record<string, unknown>): boolean;
declare enum LOG_LEVEL {

@@ -891,2 +811,87 @@ none = 0,

/**
* Type for a Payload dictionary
*/
type Payload = Record<string, unknown>;
/**
* A tuple which represents the unprocessed JSON to be added to the Payload
*/
type EventJsonWithKeys = {
keyIfEncoded: string;
keyIfNotEncoded: string;
json: Record<string, unknown>;
};
/**
* An array of tuples which represents the unprocessed JSON to be added to the Payload
*/
type EventJson = Array<EventJsonWithKeys>;
/**
* A function which will processor the Json onto the injected PayloadBuilder
*/
type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson, contextEntitiesForProcessing: SelfDescribingJson[]) => void;
/**
* Interface for mutable object encapsulating tracker payload
*/
interface PayloadBuilder {
/**
* Adds an entry to the Payload
* @param key - Key for Payload dictionary entry
* @param value - Value for Payload dictionaty entry
*/
add: (key: string, value: unknown) => void;
/**
* Merges a payload into the existing payload
* @param dict - The payload to merge
*/
addDict: (dict: Payload) => void;
/**
* Caches a JSON object to be added to payload on build
* @param keyIfEncoded - key if base64 encoding is enabled
* @param keyIfNotEncoded - key if base64 encoding is disabled
* @param json - The json to be stringified and added to the payload
*/
addJson: (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void;
/**
* Caches a context entity to be added to payload on build
* @param entity - Context entity to add to the event
*/
addContextEntity: (entity: SelfDescribingJson) => void;
/**
* Gets the current payload, before cached JSON is processed
*/
getPayload: () => Payload;
/**
* Gets all JSON objects added to payload
*/
getJson: () => EventJson;
/**
* Adds a function which will be executed when building
* the payload to process the JSON which has been added to this payload
* @param jsonProcessor - The JsonProcessor function for this builder
*/
withJsonProcessor: (jsonProcessor: JsonProcessor) => void;
/**
* Builds and returns the Payload
* @param base64Encode - configures if unprocessed, cached json should be encoded
*/
build: () => Payload;
}
declare function payloadBuilder(): PayloadBuilder;
/**
* A helper to build a Snowplow request from a set of name-value pairs, provided using the add methods.
* Will base64 encode JSON, if desired, on build
*
* @returns The request builder, with add and build methods
*/
declare function payloadJsonProcessor(encodeBase64: boolean): JsonProcessor;
/**
* Is property a non-empty JSON?
* @param property - Checks if object is non-empty json
*/
declare function isNonEmptyJson(property?: Record<string, unknown>): boolean;
/**
* Is property a JSON?
* @param property - Checks if object is json
*/
declare function isJson(property?: Record<string, unknown>): boolean;
/**
* Argument for {@link ContextGenerator} and {@link ContextFilter} callback

@@ -893,0 +898,0 @@ */

{
"name": "@snowplow/tracker-core",
"version": "3.4.0",
"version": "3.5.0",
"description": "Core functionality for Snowplow JavaScript trackers",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc