coveo.analytics 2.28.21 → 2.28.23
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/browser.mjs +16 -7
- package/dist/coveoua.browser.js +1 -1
- package/dist/coveoua.browser.js.map +1 -1
- package/dist/coveoua.debug.js +16 -8
- package/dist/coveoua.debug.js.map +1 -1
- package/dist/coveoua.js +1 -1
- package/dist/coveoua.js.map +1 -1
- package/dist/definitions/events.d.ts +7 -7
- package/dist/definitions/insight/insightClient.d.ts +2 -1
- package/dist/definitions/insight/insightEvents.d.ts +6 -1
- package/dist/definitions/version.d.ts +1 -1
- package/dist/library.cjs +16 -8
- package/dist/library.es.js +16 -7
- package/dist/library.js +16 -8
- package/dist/library.mjs +16 -8
- package/dist/react-native.es.js +16 -7
- package/package.json +1 -1
- package/src/client/analytics.spec.ts +66 -2
- package/src/client/analytics.ts +5 -0
- package/src/coveoua/simpleanalytics.ts +0 -1
- package/src/events.ts +7 -7
- package/src/insight/insightClient.spec.ts +22 -0
- package/src/insight/insightClient.ts +8 -0
- package/src/insight/insightEvents.ts +9 -0
- package/src/searchPage/searchPageEvents.ts +7 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coveoua.debug.js","sources":["../src/events.ts","../src/detector.ts","../src/hook/addDefaultValues.ts","../src/cookieutils.ts","../src/storage.ts","../src/history.ts","../src/hook/enhanceViewEvent.ts","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/parse.js","../node_modules/uuid/dist/esm-browser/v35.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/uuid/dist/esm-browser/sha1.js","../node_modules/uuid/dist/esm-browser/v5.js","../src/version.ts","../src/client/location.ts","../src/plugins/BasePlugin.ts","../src/plugins/link.ts","../src/client/utils.ts","../src/client/measurementProtocolMapping/serviceMeasurementProtocolMapper.ts","../src/client/measurementProtocolMapping/commerceMeasurementProtocolMapper.ts","../src/client/measurementProtocolMapping/baseMeasurementProtocolMapper.ts","../src/client/measurementProtocolMapper.ts","../src/client/analyticsBeaconClient.ts","../src/client/analyticsRequestClient.ts","../bundle/browser-fetch.ts","../src/client/analyticsFetchClient.ts","../src/client/runtimeEnvironment.ts","../src/client/token.ts","../src/react-native/react-native-utils.ts","../src/donottrack.ts","../src/client/analytics.ts","../src/plugins/ec.ts","../src/plugins/svc.ts","../src/coveoua/plugins.ts","../src/coveoua/simpleanalytics.ts","../src/insight/insightEvents.ts","../src/searchPage/searchPageEvents.ts","../src/client/noopAnalytics.ts","../src/formatting/format-array-for-coveo-custom-data.ts","../src/formatting/format-omnibox-metadata.ts","../src/searchPage/searchPageClient.ts","../src/caseAssist/caseAssistActions.ts","../src/caseAssist/caseAssistClient.ts","../src/insight/insightClient.ts","../src/coveoua/browser.ts"],"sourcesContent":["export type IRequestPayload = Record<string, any>;\n\nexport enum EventType {\n search = 'search',\n click = 'click',\n custom = 'custom',\n view = 'view',\n collect = 'collect',\n}\n\nexport interface SearchDocument {\n documentUri: string;\n documentUriHash: string;\n}\n\nexport type SendEventArguments = [EventType, ...any[]];\n\nexport type VariableArgumentsPayload =\n | []\n | [any]\n | [string, any]\n | [string, string, any]\n | [string, string, string, any]\n | [string, string, string, string, any];\n\nexport interface EventBaseRequest {\n language?: string;\n userAgent?: string;\n customData?: Record<string, any>;\n anonymous?: boolean;\n username?: string;\n userDisplayName?: any;\n splitTestRunName?: string;\n splitTestRunVersion?: string;\n clientId?: string;\n originContext?: string;\n originLevel1?: string;\n originLevel2?: string;\n originLevel3?: string;\n}\n\nexport interface FacetStateRequest {\n field: string;\n id: string;\n value: string;\n valuePosition: number;\n displayValue: string;\n facetType: 'specific' | 'dateRange' | 'numericalRange' | 'hierarchical';\n state: 'selected' | 'idle' | 'excluded';\n facetPosition: number;\n title: string;\n start?: string;\n end?: string;\n endInclusive?: boolean;\n}\n\nexport interface SearchEventRequest extends EventBaseRequest {\n searchQueryUid: string;\n queryText: string;\n actionCause: string;\n responseTime: number;\n advancedQuery?: string;\n numberOfResults?: number;\n contextual?: boolean;\n results?: SearchDocument[];\n queryPipeline?: string;\n userGroups?: string[];\n facetState?: FacetStateRequest[];\n}\n\nexport interface PreparedSearchEventRequest extends Omit<SearchEventRequest, 'searchQueryUid'> {}\n\nexport interface DocumentInformation {\n documentUri: string;\n documentUriHash: string;\n collectionName: string;\n sourceName: string;\n documentPosition: number;\n actionCause: string;\n\n searchQueryUid: string;\n documentTitle: string;\n documentUrl: string;\n documentAuthor: string;\n queryPipeline: string;\n rankingModifier: string;\n}\n\nexport interface ClickEventRequest extends EventBaseRequest, DocumentInformation {}\n\nexport interface PreparedClickEventRequest extends Omit<ClickEventRequest, 'searchQueryUid'> {}\n\nexport interface CustomEventRequest extends EventBaseRequest {\n eventType: string;\n eventValue: string;\n lastSearchQueryUid?: string;\n}\n\nexport interface PreparedCustomEventRequest extends Omit<CustomEventRequest, 'lastSearchQueryUid'> {}\n\nexport interface ViewEventRequest extends EventBaseRequest {\n location?: string;\n referrer?: string;\n title?: string;\n contentIdKey: string;\n contentIdValue: string;\n contentType?: string;\n}\n\nexport interface PreparedViewEventRequest extends ViewEventRequest {}\n\nexport interface DefaultEventResponse {\n visitId: string;\n visitorId: string;\n}\n\nexport interface SearchEventResponse extends DefaultEventResponse {}\nexport interface ClickEventResponse extends DefaultEventResponse {}\nexport interface CustomEventResponse extends DefaultEventResponse {}\nexport interface ViewEventResponse extends DefaultEventResponse {}\n\nexport type AnyEventResponse = SearchEventResponse | ClickEventResponse | CustomEventResponse | ViewEventResponse;\n\nexport interface VisitResponse {\n id: string;\n visitorId: string;\n}\nexport interface HealthResponse {\n status: string;\n}\n","export function hasWindow(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function hasNavigator(): boolean {\n return typeof navigator !== 'undefined';\n}\n\nexport function hasDocument(): boolean {\n return typeof document !== 'undefined';\n}\n\nexport function hasLocalStorage(): boolean {\n try {\n return typeof localStorage !== 'undefined';\n } catch (error) {\n return false;\n }\n}\n\nexport function hasSessionStorage(): boolean {\n try {\n return typeof sessionStorage !== 'undefined';\n } catch (error) {\n return false;\n }\n}\n\nexport function hasCookieStorage(): boolean {\n return hasNavigator() && navigator.cookieEnabled;\n}\n\nexport function hasCrypto(): boolean {\n return typeof crypto !== 'undefined';\n}\n\nexport function hasCryptoRandomValues(): boolean {\n return hasCrypto() && typeof crypto.getRandomValues !== 'undefined';\n}\n\nexport function hasLocation(): boolean {\n return typeof location !== 'undefined';\n}\n","import {AnalyticsClientSendEventHook} from '../client/analytics';\nimport {hasDocument, hasNavigator} from '../detector';\nimport {EventType} from '../events';\n\nconst eventTypesForDefaultValues: string[] = [EventType.click, EventType.custom, EventType.search, EventType.view];\n\nexport const addDefaultValues: AnalyticsClientSendEventHook = (eventType, payload) => {\n return eventTypesForDefaultValues.indexOf(eventType) !== -1\n ? {\n language: hasDocument() ? document.documentElement.lang : 'unknown',\n userAgent: hasNavigator() ? navigator.userAgent : 'unknown',\n ...payload,\n }\n : payload;\n};\n","interface CookieDetails {\n name: string;\n value: string;\n expirationDate?: Date;\n domain?: string;\n}\n\n// Code originally modified from : https://developers.livechatinc.com/blog/setting-cookies-to-subdomains-in-javascript/\nexport class Cookie {\n static set(name: string, value: string, expire?: number) {\n var domain: string, expirationDate: Date | undefined, domainParts: string[], host: string;\n if (expire) {\n expirationDate = new Date();\n expirationDate.setTime(expirationDate.getTime() + expire);\n }\n host = window.location.hostname;\n if (host.indexOf('.') === -1) {\n // no \".\" in a domain - single domain name, it's localhost or something similar\n writeCookie(name, value, expirationDate);\n } else {\n domainParts = host.split('.');\n // we always have at least 2 domain parts\n domain = domainParts[domainParts.length - 2] + '.' + domainParts[domainParts.length - 1];\n writeCookie(name, value, expirationDate, domain);\n }\n }\n\n static get(name: string) {\n var cookiePrefix = name + '=';\n var cookieArray = document.cookie.split(';');\n for (var i = 0; i < cookieArray.length; i++) {\n var cookie = cookieArray[i];\n cookie = cookie.replace(/^\\s+/, ''); //strip whitespace from front of cookie only\n if (cookie.lastIndexOf(cookiePrefix, 0) === 0) {\n return cookie.substring(cookiePrefix.length, cookie.length);\n }\n }\n return null;\n }\n\n static erase(name: string) {\n Cookie.set(name, '', -1);\n }\n}\n\nfunction writeCookie(name: string, value: string, expirationDate?: Date, domain?: string) {\n document.cookie =\n `${name}=${value}` +\n (expirationDate ? `;expires=${expirationDate.toUTCString()}` : '') +\n (domain ? `;domain=${domain}` : '') +\n ';path=/;SameSite=Lax';\n}\n","import * as detector from './detector';\nimport {Cookie} from './cookieutils';\n\nexport let preferredStorage: WebStorage | null = null;\n\nexport interface WebStorage {\n getItem(key: string): string | null | Promise<string | null>;\n removeItem(key: string): void;\n setItem(key: string, data: string): void | Promise<void>;\n}\n\nexport function getAvailableStorage(): WebStorage {\n if (preferredStorage) {\n return preferredStorage;\n }\n if (detector.hasLocalStorage()) {\n return localStorage;\n }\n if (detector.hasCookieStorage()) {\n return new CookieStorage();\n }\n if (detector.hasSessionStorage()) {\n return sessionStorage;\n }\n return new NullStorage();\n}\n\nexport class CookieStorage implements WebStorage {\n static prefix = 'coveo_';\n getItem(key: string): string | null {\n return Cookie.get(`${CookieStorage.prefix}${key}`);\n }\n removeItem(key: string) {\n Cookie.erase(`${CookieStorage.prefix}${key}`);\n }\n setItem(key: string, data: string, expire?: number): void {\n Cookie.set(`${CookieStorage.prefix}${key}`, data, expire);\n }\n}\n\nexport class CookieAndLocalStorage implements WebStorage {\n private cookieStorage = new CookieStorage();\n\n getItem(key: string): string | null {\n return localStorage.getItem(key) || this.cookieStorage.getItem(key);\n }\n\n removeItem(key: string): void {\n this.cookieStorage.removeItem(key);\n localStorage.removeItem(key);\n }\n\n setItem(key: string, data: string): void {\n localStorage.setItem(key, data);\n this.cookieStorage.setItem(key, data, 31556926000); // 1 year first party cookie\n }\n}\n\nexport class NullStorage implements WebStorage {\n getItem(key: string): string | null {\n return null;\n }\n removeItem(key: string) {\n /**/\n }\n setItem(key: string, data: string): void {\n /**/\n }\n}\n","import {getAvailableStorage, WebStorage} from './storage';\n\nexport const STORE_KEY: string = '__coveo.analytics.history';\nexport const MAX_NUMBER_OF_HISTORY_ELEMENTS: number = 20;\nexport const MIN_THRESHOLD_FOR_DUPLICATE_VALUE: number = 1000 * 60;\nexport const MAX_VALUE_SIZE = 75;\n\nexport class HistoryStore {\n private store: WebStorage;\n constructor(store?: WebStorage) {\n this.store = store || getAvailableStorage();\n }\n\n /**\n * @deprecated Synchronous method is deprecated, use addElementAsync instead. This method will NOT work with react-native.\n */\n addElement(elem: HistoryElement) {\n elem.internalTime = new Date().getTime();\n elem = this.cropQueryElement(this.stripEmptyQuery(elem));\n let currentHistory = this.getHistoryWithInternalTime();\n if (currentHistory != null) {\n if (this.isValidEntry(elem)) {\n this.setHistory([elem].concat(currentHistory));\n }\n } else {\n this.setHistory([elem]);\n }\n }\n\n async addElementAsync(elem: HistoryElement) {\n elem.internalTime = new Date().getTime();\n elem = this.cropQueryElement(this.stripEmptyQuery(elem));\n let currentHistory = await this.getHistoryWithInternalTimeAsync();\n if (currentHistory != null) {\n if (this.isValidEntry(elem)) {\n this.setHistory([elem].concat(currentHistory));\n }\n } else {\n this.setHistory([elem]);\n }\n }\n\n /**\n * @deprecated Synchronous method is deprecated, use getHistoryAsync instead. This method will NOT work with react-native.\n */\n getHistory(): HistoryElement[] {\n const history = this.getHistoryWithInternalTime();\n return this.stripEmptyQueries(this.stripInternalTime(history));\n }\n\n async getHistoryAsync(): Promise<HistoryElement[]> {\n const history = await this.getHistoryWithInternalTimeAsync();\n return this.stripEmptyQueries(this.stripInternalTime(history));\n }\n\n private getHistoryWithInternalTime(): HistoryElement[] {\n try {\n const elements = this.store.getItem(STORE_KEY);\n if (elements && typeof elements === 'string') {\n return JSON.parse(elements) as HistoryElement[];\n } else {\n return [];\n }\n } catch (e) {\n // When using the Storage APIs (localStorage/sessionStorage)\n // Safari says that those APIs are available but throws when making\n // a call to them.\n return [];\n }\n }\n\n private async getHistoryWithInternalTimeAsync(): Promise<HistoryElement[]> {\n try {\n const elements = await this.store.getItem(STORE_KEY);\n if (elements) {\n return JSON.parse(elements) as HistoryElement[];\n } else {\n return [];\n }\n } catch (e) {\n // When using the Storage APIs (localStorage/sessionStorage)\n // Safari says that those APIs are available but throws when making\n // a call to them.\n return [];\n }\n }\n\n setHistory(history: HistoryElement[]) {\n try {\n this.store.setItem(STORE_KEY, JSON.stringify(history.slice(0, MAX_NUMBER_OF_HISTORY_ELEMENTS)));\n } catch (e) {\n /* refer to this.getHistory() */\n }\n }\n\n clear() {\n try {\n this.store.removeItem(STORE_KEY);\n } catch (e) {\n /* refer to this.getHistory() */\n }\n }\n\n getMostRecentElement(): HistoryElement | null {\n let currentHistory = this.getHistoryWithInternalTime();\n if (Array.isArray(currentHistory)) {\n const sorted = currentHistory.sort((first: HistoryElement, second: HistoryElement) => {\n // Internal time might not be set for all history element (on upgrade).\n // Ensure to return the most recent element for which we have a value for internalTime.\n return (second.internalTime || 0) - (first.internalTime || 0);\n });\n return sorted[0];\n }\n return null;\n }\n\n private cropQueryElement(part: HistoryElement) {\n if (part.name && part.value && part.name.toLowerCase() === 'query') {\n part.value = part.value.slice(0, MAX_VALUE_SIZE);\n }\n\n return part;\n }\n\n private isValidEntry(elem: HistoryElement): boolean {\n let lastEntry = this.getMostRecentElement();\n\n if (lastEntry && lastEntry.value == elem.value) {\n return (elem.internalTime || 0) - (lastEntry.internalTime || 0) > MIN_THRESHOLD_FOR_DUPLICATE_VALUE;\n }\n return true;\n }\n\n private stripInternalTime(history: HistoryElement[]): HistoryElement[] {\n if (Array.isArray(history)) {\n return history.map((part) => {\n const {name, time, value} = part;\n return {name, time, value};\n });\n }\n return [];\n }\n\n private stripEmptyQuery(part: HistoryElement) {\n const {name, time, value} = part;\n if (name && typeof value === 'string' && name.toLowerCase() === 'query' && value.trim() === '') {\n return {name, time};\n }\n\n return part;\n }\n\n private stripEmptyQueries(history: HistoryElement[]): HistoryElement[] {\n return history.map((part) => this.stripEmptyQuery(part));\n }\n}\n\nexport interface HistoryElement {\n name: string;\n value?: string;\n time: string;\n internalTime?: number;\n}\n\nexport interface HistoryViewElement extends HistoryElement {\n title?: string;\n}\n\nexport default HistoryStore;\n","import {AnalyticsClientSendEventHook} from '../client/analytics';\nimport {ViewEventRequest, EventType} from '../events';\nimport {HistoryStore, STORE_KEY} from '../history';\n\nexport const enhanceViewEvent: AnalyticsClientSendEventHook = async (eventType, payload) => {\n if (eventType === EventType.view) {\n await addPageViewToHistory(payload.contentIdValue);\n return {\n location: window.location.toString(),\n referrer: document.referrer,\n title: document.title,\n ...payload,\n } as ViewEventRequest;\n }\n\n return payload;\n};\n\nconst addPageViewToHistory = async (pageViewValue: string) => {\n const store = new HistoryStore();\n const historyElement = {\n name: 'PageView',\n value: pageViewValue,\n time: new Date().toISOString(),\n };\n await store.addElementAsync(historyElement);\n};\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;","export const libVersion = process.env.PKG_VERSION || 'local'; // processed by @rollup/plugin-replace\n","export const getFormattedLocation = (location: Location) =>\n `${location.protocol}//${location.hostname}${\n location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`\n }${location.search}`;\n","import {AnalyticsClient} from '../client/analytics';\nimport {v4 as uuidv4} from 'uuid';\nimport {getFormattedLocation} from '../client/location';\nimport {hasDocument} from '../detector';\n\ntype PluginWithId = {\n readonly Id: string;\n};\n\nexport type PluginClass = typeof Plugin & PluginWithId;\nexport const BasePluginEventTypes = {\n pageview: 'pageview',\n event: 'event',\n};\n\nexport type PluginOptions = {client: AnalyticsClient; uuidGenerator?: typeof uuidv4};\n\nexport abstract class Plugin {\n protected client: AnalyticsClient;\n protected uuidGenerator: typeof uuidv4;\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n this.client = client;\n this.uuidGenerator = uuidGenerator;\n }\n public abstract getApi(name: string): any;\n}\n\nexport abstract class BasePlugin extends Plugin {\n protected action?: string;\n protected actionData: {[name: string]: string} = {};\n private pageViewId: string;\n private nextPageViewId: string;\n private hasSentFirstPageView?: boolean;\n private currentLocation: string;\n private lastReferrer: string;\n\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n super({client, uuidGenerator});\n this.pageViewId = uuidGenerator();\n this.nextPageViewId = this.pageViewId;\n this.currentLocation = getFormattedLocation(window.location);\n this.lastReferrer = hasDocument() ? document.referrer : '';\n\n this.addHooks();\n }\n protected abstract addHooks(): void;\n protected abstract clearPluginData(): void;\n\n public getApi(name: string): Function | null {\n switch (name) {\n case 'setAction':\n return this.setAction;\n default:\n return null;\n }\n }\n\n public setAction(action: string, options?: any) {\n this.action = action;\n this.actionData = options;\n }\n\n public clearData() {\n this.clearPluginData();\n this.action = undefined;\n this.actionData = {};\n }\n\n public getLocationInformation(eventType: string, payload: any) {\n return {\n hitType: eventType,\n ...this.getNextValues(eventType, payload),\n };\n }\n\n protected updateLocationInformation(eventType: string, payload: any) {\n this.updateLocationForNextPageView(eventType, payload);\n }\n\n public getDefaultContextInformation(eventType: string) {\n const documentContext = {\n title: hasDocument() ? document.title : '',\n encoding: hasDocument() ? document.characterSet : 'UTF-8',\n };\n const screenContext = {\n screenResolution: `${screen.width}x${screen.height}`,\n screenColor: `${screen.colorDepth}-bit`,\n };\n const navigatorContext = {\n language: navigator.language,\n userAgent: navigator.userAgent,\n };\n const eventContext = {\n time: Date.now(),\n eventId: this.uuidGenerator(),\n };\n return {\n ...eventContext,\n ...screenContext,\n ...navigatorContext,\n ...documentContext,\n };\n }\n\n private updateLocationForNextPageView(eventType: string, payload: any) {\n const {pageViewId, referrer, location} = this.getNextValues(eventType, payload);\n\n this.lastReferrer = referrer;\n this.pageViewId = pageViewId;\n this.currentLocation = location;\n\n if (eventType === BasePluginEventTypes.pageview) {\n this.nextPageViewId = this.uuidGenerator();\n this.hasSentFirstPageView = true;\n }\n }\n\n /*\n When calling getPayload or getParameters, we need to return what would be sent by the API without updating our internal reference.\n For instance, if you getPayload(\"pageview\"), we want to return the same payload as if you did coveoua(\"send\", \"pageview\").\n */\n private getNextValues(eventType: string, payload: any) {\n /*\n When sending a pageview, we need to generate a new pageview ID.\n For instance, with the following sequence: 1. pageview, 2. event, 3. pageview, 4. event, 1 and 2 will have the pageviewid, whereas 3 and 4 will have a different pageviewid.\n We pre-generate the \"nextPageViewId\" in case you send the following sequence: 1. pageview, 2. event, 3. getPayload, 4. pageview. This ensures that 3 and 4 have the same pageviewid.\n We applied the same logic to the referrer and the location.\n */\n return {\n pageViewId: eventType === BasePluginEventTypes.pageview ? this.nextPageViewId : this.pageViewId,\n referrer:\n eventType === BasePluginEventTypes.pageview && this.hasSentFirstPageView\n ? this.currentLocation\n : this.lastReferrer,\n location:\n eventType === BasePluginEventTypes.pageview\n ? this.getCurrentLocationFromPayload(payload)\n : this.currentLocation,\n };\n }\n\n private getCurrentLocationFromPayload(payload: any) {\n if (!!payload.page) {\n const removeStartingSlash = (page: string) => page.replace(/^\\/?(.*)$/, '/$1');\n const extractHostnamePart = (location: string) => location.split('/').slice(0, 3).join('/');\n return `${extractHostnamePart(this.currentLocation)}${removeStartingSlash(payload.page)}`;\n } else {\n return getFormattedLocation(window.location);\n }\n }\n}\n","import {validate as uuidvalidate, v4 as uuidv4} from 'uuid';\nimport {Plugin, PluginOptions, PluginClass} from './BasePlugin';\n\nexport class CoveoLinkParam {\n public static readonly cvo_cid: string = 'cvo_cid'; // name of the url parameter\n private static readonly expirationTime: number = 120; // expirationTime in secs\n public readonly clientId: string; //uuid\n public readonly creationDate: number; //seconds since epoch to save space in serialized param\n\n constructor(clientId: string, timestamp: number) {\n if (!uuidvalidate(clientId)) throw Error('Not a valid uuid');\n this.clientId = clientId;\n this.creationDate = Math.floor(timestamp / 1000);\n }\n\n public toString(): string {\n // strips the dashes and uses second granularity to save on url length.\n return this.clientId.replace(/-/g, '') + '.' + this.creationDate.toString();\n }\n\n public get expired(): boolean {\n const age = Math.floor(Date.now() / 1000) - this.creationDate;\n return age < 0 || age > CoveoLinkParam.expirationTime;\n }\n\n public validate(referrerString: string, referrerList: string[]): boolean {\n return !this.expired && this.matchReferrer(referrerString, referrerList);\n }\n\n private matchReferrer(referrerString: string, referrerList: string[]): boolean {\n try {\n const url: URL = new URL(referrerString);\n return referrerList.some((value: string) => {\n const hostRegExp: RegExp = new RegExp(\n value.replace(/\\\\/g, '\\\\\\\\').replace(/\\./g, '\\\\.').replace(/\\*/g, '.*') + '$'\n );\n return hostRegExp.test(url.host);\n });\n } catch (error) {\n return false;\n }\n }\n\n public static fromString(input: string): CoveoLinkParam | null {\n const parts = input.split('.');\n if (parts.length !== 2) {\n return null;\n }\n const [clientIdPart, creationDate] = parts;\n if (clientIdPart.length !== 32 || isNaN(parseInt(creationDate))) {\n return null;\n }\n const clientId =\n clientIdPart.substring(0, 8) +\n '-' +\n clientIdPart.substring(8, 12) +\n '-' +\n clientIdPart.substring(12, 16) +\n '-' +\n clientIdPart.substring(16, 20) +\n '-' +\n clientIdPart.substring(20, 32);\n if (uuidvalidate(clientId)) {\n return new CoveoLinkParam(clientId, Number.parseInt(creationDate) * 1000);\n } else {\n return null;\n }\n }\n}\n\nexport class LinkPlugin extends Plugin {\n public static readonly Id = 'link';\n\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n super({client, uuidGenerator});\n }\n\n public getApi(name: string): Function | null {\n switch (name) {\n case 'decorate':\n return this.decorate;\n case 'acceptFrom':\n return this.acceptFrom;\n default:\n return null;\n }\n }\n\n public async decorate(urlString: string): Promise<string> {\n // Note: clientId retrieval function is marked as optional\n if (!this.client.getCurrentVisitorId) {\n throw new Error('Could not retrieve current clientId');\n }\n try {\n const url = new URL(urlString);\n const clientId: string = await this.client.getCurrentVisitorId!();\n url.searchParams.set(CoveoLinkParam.cvo_cid, new CoveoLinkParam(clientId, Date.now()).toString());\n return url.toString();\n } catch (error) {\n throw new Error('Invalid URL provided');\n }\n }\n\n public acceptFrom(acceptedReferrers: string[]) {\n this.client.setAcceptedLinkReferrers!(acceptedReferrers);\n }\n}\n\nexport const Link: PluginClass = LinkPlugin;\n","// Object.keys returns `string[]` this adds types\n// see https://github.com/microsoft/TypeScript/pull/12253#issuecomment-393954723\nexport const keysOf = Object.keys as <T>(o: T) => Extract<keyof T, string>[];\nexport function isObject(o: any): boolean {\n return o !== null && typeof o === 'object' && !Array.isArray(o);\n}\n\n/**\n * Attempt to coerce strings to number values.\n * Any non-number characters will fail parsing, in which case the input string is returned.\n *\n * @param input The input to possibly coerce to a number, if it is a string and parses to a number.\n * @returns The input, possibly coerced to a number.\n */\nexport function coerceToNumber(input: any): any {\n return typeof input === 'string' && input != '' && !Number.isNaN(+input) ? +input : input;\n}\n","import {Ticket} from '../../plugins/svc';\nimport {keysOf} from '../utils';\n\nconst ticketKeysMapping: {[key in keyof Ticket]: string} = {\n id: 'svc_ticket_id',\n subject: 'svc_ticket_subject',\n description: 'svc_ticket_description',\n category: 'svc_ticket_category',\n productId: 'svc_ticket_product_id',\n custom: 'svc_ticket_custom',\n};\nconst ticketKeysMappingValues = keysOf(ticketKeysMapping).map((key) => ticketKeysMapping[key]);\nconst ticketSubKeysMatchGroup = [...ticketKeysMappingValues].join('|');\nconst ticketKeyRegex = new RegExp(`^(${ticketSubKeysMatchGroup}$)`);\n\nexport const serviceActionsKeysMapping: {[name: string]: string} = {\n svcAction: 'svc_action',\n svcActionData: 'svc_action_data',\n};\n\nexport const convertTicketToMeasurementProtocol = (ticket: Ticket) => {\n return keysOf(ticket)\n .filter((key) => ticket[key] !== undefined)\n .reduce((mappedTicket, key) => {\n const newKey = ticketKeysMapping[key] || key;\n return {\n ...mappedTicket,\n [newKey]: ticket[key],\n };\n }, {});\n};\n\nconst isTicketKey = (key: string) => ticketKeyRegex.test(key);\n\nexport const isServiceKey = [isTicketKey];\n","import {Product, ImpressionList, BaseImpression} from '../../plugins/ec';\nimport {keysOf} from '../utils';\n\n// Based off: https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#enhanced-ecomm\nconst productKeysMapping: {[key in keyof Product]: string} = {\n id: 'id',\n name: 'nm',\n brand: 'br',\n category: 'ca',\n variant: 'va',\n price: 'pr',\n quantity: 'qt',\n coupon: 'cc',\n position: 'ps',\n // Below are keys that were extended for Coveo\n group: 'group',\n};\n\nconst impressionKeysMapping: {[key in keyof BaseImpression]: string} = {\n id: 'id',\n name: 'nm',\n brand: 'br',\n category: 'ca',\n variant: 'va',\n position: 'ps',\n price: 'pr',\n // Below are keys that were extended for Coveo\n group: 'group',\n};\n\nconst productActionsKeysMapping: {[name: string]: string} = {\n action: 'pa',\n list: 'pal',\n listSource: 'pls',\n};\n\nconst transactionActionsKeysMapping: {[name: string]: string} = {\n id: 'ti',\n revenue: 'tr',\n tax: 'tt',\n shipping: 'ts',\n coupon: 'tcc',\n affiliation: 'ta',\n step: 'cos',\n option: 'col',\n};\n\n// These extension keys do not have direct mappings, we are sending them as-is, thus only requiring an array.\nconst coveoCommerceExtensionKeys: string[] = [\n 'loyaltyCardId',\n 'loyaltyTier',\n 'thirdPartyPersona',\n 'companyName',\n 'favoriteStore',\n 'storeName',\n 'userIndustry',\n 'userRole',\n 'userDepartment',\n 'businessUnit',\n];\n\nconst quoteActionsKeysMapping: {[name: string]: string} = {\n id: 'quoteId',\n affiliation: 'quoteAffiliation',\n};\n\nconst reviewActionsKeysMapping: {[name: string]: string} = {\n id: 'reviewId',\n rating: 'reviewRating',\n comment: 'reviewComment',\n};\n\nexport const commerceActionKeysMappingPerAction: Record<string, {[name: string]: string}> = {\n add: productActionsKeysMapping,\n bookmark_add: productActionsKeysMapping,\n bookmark_remove: productActionsKeysMapping,\n click: productActionsKeysMapping,\n checkout: productActionsKeysMapping,\n checkout_option: productActionsKeysMapping,\n detail: productActionsKeysMapping,\n impression: productActionsKeysMapping,\n remove: productActionsKeysMapping,\n refund: {\n ...productActionsKeysMapping,\n ...transactionActionsKeysMapping,\n },\n purchase: {\n ...productActionsKeysMapping,\n ...transactionActionsKeysMapping,\n },\n quickview: productActionsKeysMapping,\n quote: {\n ...productActionsKeysMapping,\n ...quoteActionsKeysMapping,\n },\n review: {\n ...productActionsKeysMapping,\n ...reviewActionsKeysMapping,\n },\n};\n\nexport const convertProductToMeasurementProtocol = (product: Product, index: number) => {\n return keysOf(product).reduce((mappedProduct, key) => {\n const newKey = `pr${index + 1}${productKeysMapping[key] || key}`;\n return {\n ...mappedProduct,\n [newKey]: product[key],\n };\n }, {});\n};\n\nexport const convertImpressionListToMeasurementProtocol = (\n impressionList: ImpressionList,\n listIndex: number,\n prefix: string\n) => {\n const payload: {[name: string]: any} = impressionList.impressions.reduce(\n (mappedImpressions, impression, productIndex) => {\n return {\n ...mappedImpressions,\n ...convertImpressionToMeasurementProtocol(impression, listIndex, productIndex, prefix),\n };\n },\n {}\n );\n\n if (impressionList.listName) {\n const listNameKey = `il${listIndex + 1}nm`;\n payload[listNameKey] = impressionList.listName;\n }\n return payload;\n};\n\nconst convertImpressionToMeasurementProtocol = (\n impression: BaseImpression,\n listIndex: number,\n productIndex: number,\n prefix: string\n) => {\n return keysOf(impression).reduce((mappedImpression, key) => {\n const newKey = `il${listIndex + 1}${prefix}${productIndex + 1}${impressionKeysMapping[key] || key}`;\n return {\n ...mappedImpression,\n [newKey]: impression[key],\n };\n }, {});\n};\n\nconst productKeysMappingValues = keysOf(productKeysMapping).map((key) => productKeysMapping[key]);\nconst impressionKeysMappingValues = keysOf(impressionKeysMapping).map((key) => impressionKeysMapping[key]);\nconst productActionsKeysMappingValues = keysOf(productActionsKeysMapping).map((key) => productActionsKeysMapping[key]);\nconst transactionActionsKeysMappingValues = keysOf(transactionActionsKeysMapping).map(\n (key) => transactionActionsKeysMapping[key]\n);\nconst reviewKeysMappingValues = keysOf(reviewActionsKeysMapping).map((key) => reviewActionsKeysMapping[key]);\nconst quoteKeysMappingValues = keysOf(quoteActionsKeysMapping).map((key) => quoteActionsKeysMapping[key]);\n\nconst productSubKeysMatchGroup = [...productKeysMappingValues, 'custom'].join('|');\nconst impressionSubKeysMatchGroup = [...impressionKeysMappingValues, 'custom'].join('|');\nconst productPrefixMatchGroup = '(pr[0-9]+)';\nconst impressionPrefixMatchGroup = '(il[0-9]+pi[0-9]+)';\nconst productKeyRegex = new RegExp(`^${productPrefixMatchGroup}(${productSubKeysMatchGroup})$`);\nconst impressionKeyRegex = new RegExp(`^(${impressionPrefixMatchGroup}(${impressionSubKeysMatchGroup}))|(il[0-9]+nm)$`);\nconst productActionsKeyRegex = new RegExp(`^(${productActionsKeysMappingValues.join('|')})$`);\nconst transactionActionsKeyRegex = new RegExp(`^(${transactionActionsKeysMappingValues.join('|')})$`);\nconst customProductKeyRegex = new RegExp(`^${productPrefixMatchGroup}custom$`);\nconst customImpressionKeyRegex = new RegExp(`^${impressionPrefixMatchGroup}custom$`);\nconst coveoCommerceExtensionKeysRegex = new RegExp(\n `^(${[...coveoCommerceExtensionKeys, ...reviewKeysMappingValues, ...quoteKeysMappingValues].join('|')})$`\n);\n\nconst isProductKey = (key: string) => productKeyRegex.test(key);\nconst isImpressionKey = (key: string) => impressionKeyRegex.test(key);\nconst isProductActionsKey = (key: string) => productActionsKeyRegex.test(key);\nconst isTransactionActionsKeyRegex = (key: string) => transactionActionsKeyRegex.test(key);\nconst isCoveoCommerceExtensionKey = (key: string) => coveoCommerceExtensionKeysRegex.test(key);\n\nexport const isCommerceKey = [\n isImpressionKey,\n isProductKey,\n isProductActionsKey,\n isTransactionActionsKeyRegex,\n isCoveoCommerceExtensionKey,\n];\nexport const isCustomCommerceKey = [customProductKeyRegex, customImpressionKeyRegex];\n","import {BasePlugin} from '../../plugins/BasePlugin';\n\ntype DefaultContextInformation = ReturnType<typeof BasePlugin.prototype.getDefaultContextInformation> &\n ReturnType<typeof BasePlugin.prototype.getLocationInformation>;\n\nconst globalParamKeysMapping: {[name: string]: string} = {\n anonymizeIp: 'aip',\n};\n\nconst eventKeysMapping: {[name: string]: string} = {\n eventCategory: 'ec',\n eventAction: 'ea',\n eventLabel: 'el',\n eventValue: 'ev',\n page: 'dp',\n visitorId: 'cid',\n clientId: 'cid',\n userId: 'uid',\n currencyCode: 'cu',\n};\n\nconst contextInformationMapping: {[key in keyof DefaultContextInformation]: string} = {\n hitType: 't',\n pageViewId: 'pid',\n encoding: 'de',\n location: 'dl',\n referrer: 'dr',\n screenColor: 'sd',\n screenResolution: 'sr',\n title: 'dt',\n userAgent: 'ua',\n language: 'ul',\n eventId: 'z',\n time: 'tm',\n};\n\n/* Those are extension keys that are supported by the Coveo collect protocol (but not Google's protocol). They will be forwarded as-is. */\nconst coveoExtensionsKeys = [\n 'contentId',\n 'contentIdKey',\n 'contentType',\n 'searchHub',\n 'tab',\n 'searchUid',\n 'permanentId',\n 'contentLocale',\n 'trackingId',\n];\n\nexport const baseMeasurementProtocolKeysMapping: {[name: string]: string} = {\n ...globalParamKeysMapping,\n ...eventKeysMapping,\n ...contextInformationMapping,\n ...coveoExtensionsKeys.reduce(\n (all, key) => ({\n ...all,\n [key]: key,\n }),\n {}\n ),\n};\n","import {isServiceKey, serviceActionsKeysMapping} from './measurementProtocolMapping/serviceMeasurementProtocolMapper';\nimport {\n commerceActionKeysMappingPerAction,\n isCommerceKey,\n isCustomCommerceKey,\n} from './measurementProtocolMapping/commerceMeasurementProtocolMapper';\nimport {keysOf} from './utils';\nimport {baseMeasurementProtocolKeysMapping} from './measurementProtocolMapping/baseMeasurementProtocolMapper';\n\nconst measurementProtocolKeysMapping: {[name: string]: string} = {\n ...baseMeasurementProtocolKeysMapping,\n ...serviceActionsKeysMapping,\n};\n\nexport const convertKeysToMeasurementProtocol = (params: any) => {\n const keysMappingForAction = (!!params.action && commerceActionKeysMappingPerAction[params.action]) || {};\n return keysOf(params).reduce((mappedKeys, key) => {\n const newKey = keysMappingForAction[key] || measurementProtocolKeysMapping[key] || key;\n return {\n ...mappedKeys,\n [newKey]: params[key],\n };\n }, {});\n};\n\nconst measurementProtocolKeysMappingValues = keysOf(measurementProtocolKeysMapping).map(\n (key) => measurementProtocolKeysMapping[key]\n);\n\nconst isKnownMeasurementProtocolKey = (key: string) => measurementProtocolKeysMappingValues.indexOf(key) !== -1;\nconst isCustomKey = (key: string) => key === 'custom';\n\nexport const isMeasurementProtocolKey = (key: string): boolean => {\n return [...isCommerceKey, ...isServiceKey, isKnownMeasurementProtocolKey, isCustomKey].some((test) => test(key));\n};\n\nexport const convertCustomMeasurementProtocolKeys = (data: {[name: string]: string | {[name: string]: string}}) => {\n return keysOf(data).reduce((all, current) => {\n const match = getFirstCustomMeasurementProtocolKeyMatch(current);\n if (match) {\n return {\n ...all,\n ...convertCustomObject(match, data[current] as {[name: string]: string}),\n };\n } else {\n return {\n ...all,\n [current]: data[current],\n };\n }\n }, {});\n};\n\nconst getFirstCustomMeasurementProtocolKeyMatch = (key: string): string | undefined => {\n let matchedKey: string | undefined = undefined;\n [...isCustomCommerceKey].every((regex) => {\n matchedKey = regex.exec(key)?.[1];\n return !Boolean(matchedKey);\n });\n return matchedKey;\n};\n\nconst convertCustomObject = (prefix: string, customData: {[name: string]: string}) => {\n return keysOf(customData).reduce(\n (allCustom, currentCustomKey) => ({\n ...allCustom,\n [`${prefix}${currentCustomKey}`]: customData[currentCustomKey],\n }),\n {}\n );\n};\n","import {AnalyticsRequestClient, IAnalyticsClientOptions, PreprocessAnalyticsRequest} from './analyticsRequestClient';\nimport {EventType, IRequestPayload} from '../events';\n\nexport class AnalyticsBeaconClient implements AnalyticsRequestClient {\n constructor(private opts: IAnalyticsClientOptions) {}\n\n public async sendEvent(eventType: EventType, originalPayload: IRequestPayload): Promise<void> {\n if (!this.isAvailable()) {\n throw new Error(\n `navigator.sendBeacon is not supported in this browser. Consider adding a polyfill like \"sendbeacon-polyfill\".`\n );\n }\n\n const {baseUrl, preprocessRequest} = this.opts;\n\n const paramsFragments = await this.getQueryParamsForEventType(eventType);\n\n const {url, payload} = await this.preProcessRequestAsPotentialJSONString(\n `${baseUrl}/analytics/${eventType}?${paramsFragments}`,\n originalPayload,\n preprocessRequest\n );\n\n const parsedRequestData = this.encodeForEventType(eventType, payload);\n const body = new Blob([parsedRequestData], {\n type: 'application/x-www-form-urlencoded',\n });\n\n navigator.sendBeacon(url, body as any); // https://github.com/microsoft/TypeScript/issues/38715\n return;\n }\n\n public isAvailable() {\n return 'sendBeacon' in navigator;\n }\n\n public deleteHttpCookieVisitorId() {\n return Promise.resolve();\n }\n\n private async preProcessRequestAsPotentialJSONString(\n originalURL: string,\n originalPayload: IRequestPayload,\n preprocessRequest?: PreprocessAnalyticsRequest\n ): Promise<{url: string; payload: IRequestPayload}> {\n let returnedUrl = originalURL;\n let returnedPayload = originalPayload;\n\n if (preprocessRequest) {\n const processedRequest = await preprocessRequest(\n {url: originalURL, body: JSON.stringify(originalPayload)},\n 'analyticsBeacon'\n );\n const {url: processedURL, body: processedBody} = processedRequest;\n returnedUrl = processedURL || originalURL;\n try {\n returnedPayload = JSON.parse(processedBody as string);\n } catch (e) {\n console.error('Unable to process the request body as a JSON string', e);\n }\n }\n\n return {\n payload: returnedPayload,\n url: returnedUrl,\n };\n }\n\n private encodeForEventType(eventType: EventType, payload: IRequestPayload): string {\n return this.isEventTypeLegacy(eventType)\n ? this.encodeForLegacyType(eventType, payload)\n : this.encodeForFormUrlEncoded({\n access_token: this.opts.token,\n ...payload,\n });\n }\n\n private async getQueryParamsForEventType(eventType: EventType): Promise<string> {\n const {token, visitorIdProvider} = this.opts;\n const visitorId = await visitorIdProvider.getCurrentVisitorId();\n return [\n token && this.isEventTypeLegacy(eventType) ? `access_token=${token}` : '',\n visitorId ? `visitorId=${visitorId}` : '',\n 'discardVisitInfo=true',\n ]\n .filter((p) => !!p)\n .join('&');\n }\n\n private isEventTypeLegacy(eventType: EventType) {\n return [EventType.click, EventType.custom, EventType.search, EventType.view].indexOf(eventType) !== -1;\n }\n\n private encodeForLegacyType(eventType: EventType, payload: IRequestPayload): string {\n return `${eventType}Event=${encodeURIComponent(JSON.stringify(payload))}`;\n }\n\n private encodeForFormUrlEncoded(payload: IRequestPayload): string {\n return Object.keys(payload)\n .filter((key) => !!payload[key])\n .map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(this.encodeValue(payload[key]))}`)\n .join('&');\n }\n\n private encodeValue(value: any) {\n return typeof value === 'number' || typeof value === 'string' || typeof value === 'boolean'\n ? value\n : JSON.stringify(value);\n }\n}\n","import {AnyEventResponse, EventType, IRequestPayload} from '../events';\n\nexport interface VisitorIdProvider {\n getCurrentVisitorId: () => Promise<string>;\n setCurrentVisitorId: (visitorId: string) => void;\n}\n\nexport interface AnalyticsRequestClient {\n sendEvent(eventType: string, payload: IRequestPayload): Promise<AnyEventResponse | void>;\n deleteHttpCookieVisitorId: () => Promise<void>;\n}\n\nexport interface IAnalyticsClientOptions {\n baseUrl: string;\n token?: string;\n visitorIdProvider: VisitorIdProvider;\n preprocessRequest?: PreprocessAnalyticsRequest;\n}\n\nexport type AnalyticsClientOrigin = 'analyticsFetch' | 'analyticsBeacon';\n\nexport type PreprocessAnalyticsRequest = (\n request: IAnalyticsRequestOptions,\n clientOrigin: AnalyticsClientOrigin\n) => IAnalyticsRequestOptions | Promise<IAnalyticsRequestOptions>;\n\nexport interface IAnalyticsRequestOptions extends RequestInit {\n url: string;\n}\n\nexport class NoopAnalyticsClient implements AnalyticsRequestClient {\n public async sendEvent(_: EventType, __: IRequestPayload): Promise<void> {\n return Promise.resolve();\n }\n\n public async deleteHttpCookieVisitorId() {\n return Promise.resolve();\n }\n}\n","// This file is to prevent including a fetch polyfill from the \"cross-fetch\" dependency when building for a browser target.\n// Major browsers today provide fetch on the window object, so including a polyfill would needlessly increase the size of the bundle.\nexport const fetch = window.fetch;\n","import {AnalyticsRequestClient, IAnalyticsRequestOptions, IAnalyticsClientOptions} from './analyticsRequestClient';\nimport {AnyEventResponse, EventType, IRequestPayload} from '../events';\nimport {fetch} from 'cross-fetch';\n\nexport class AnalyticsFetchClient implements AnalyticsRequestClient {\n constructor(private opts: IAnalyticsClientOptions) {}\n\n public async sendEvent(eventType: EventType, payload: IRequestPayload): Promise<AnyEventResponse> {\n const {baseUrl, visitorIdProvider, preprocessRequest} = this.opts;\n\n const visitorIdParam = this.shouldAppendVisitorId(eventType) ? await this.getVisitorIdParam() : '';\n const defaultOptions: IAnalyticsRequestOptions = {\n url: `${baseUrl}/analytics/${eventType}${visitorIdParam}`,\n credentials: 'include',\n mode: 'cors',\n headers: this.getHeaders(),\n method: 'POST',\n body: JSON.stringify(payload),\n };\n const {url, ...fetchData}: IAnalyticsRequestOptions = {\n ...defaultOptions,\n ...(preprocessRequest ? await preprocessRequest(defaultOptions, 'analyticsFetch') : {}),\n };\n\n const response = await fetch(url, fetchData);\n if (response.ok) {\n const visit = (await response.json()) as AnyEventResponse;\n\n if (visit.visitorId) {\n visitorIdProvider.setCurrentVisitorId(visit.visitorId);\n }\n\n return visit;\n } else {\n try {\n response.json();\n } catch {\n /* If you don't parse the response, it won't appear in the network tab. */\n }\n console.error(`An error has occured when sending the \"${eventType}\" event.`, response, payload);\n throw new Error(\n `An error has occurred when sending the \"${eventType}\" event. Check the console logs for more details.`\n );\n }\n }\n\n public async deleteHttpCookieVisitorId() {\n const {baseUrl} = this.opts;\n const url = `${baseUrl}/analytics/visit`;\n await fetch(url, {headers: this.getHeaders(), method: 'DELETE'});\n }\n\n private shouldAppendVisitorId(eventType: EventType) {\n return [EventType.click, EventType.custom, EventType.search, EventType.view].indexOf(eventType) !== -1;\n }\n\n private async getVisitorIdParam() {\n const {visitorIdProvider} = this.opts;\n const visitorId = await visitorIdProvider.getCurrentVisitorId();\n return visitorId ? `?visitor=${visitorId}` : '';\n }\n\n private getHeaders(): Record<string, string> {\n const {token} = this.opts;\n return {\n ...(token ? {Authorization: `Bearer ${token}`} : {}),\n 'Content-Type': `application/json`,\n };\n }\n}\n","import {WebStorage, NullStorage, CookieAndLocalStorage} from '../storage';\nimport {AnalyticsBeaconClient} from './analyticsBeaconClient';\nimport {hasLocalStorage, hasCookieStorage} from '../detector';\nimport {AnalyticsRequestClient, IAnalyticsClientOptions, NoopAnalyticsClient} from './analyticsRequestClient';\nimport {AnalyticsFetchClient} from './analyticsFetchClient';\nimport {BufferedRequest} from './analytics';\nimport {EventType} from '../events';\n\nexport interface IRuntimeEnvironment {\n storage: WebStorage;\n client: AnalyticsRequestClient;\n getClientDependingOnEventType(eventType: EventType): AnalyticsRequestClient;\n}\n\nexport class BrowserRuntime implements IRuntimeEnvironment {\n public storage: WebStorage;\n public client: AnalyticsFetchClient;\n private beaconClient: AnalyticsBeaconClient;\n\n constructor(clientOptions: IAnalyticsClientOptions, getUnprocessedRequests: () => Array<BufferedRequest>) {\n if (hasLocalStorage() && hasCookieStorage()) {\n this.storage = new CookieAndLocalStorage();\n } else if (hasLocalStorage()) {\n this.storage = localStorage;\n } else {\n console.warn('BrowserRuntime detected no valid storage available.', this);\n this.storage = new NullStorage();\n }\n this.client = new AnalyticsFetchClient(clientOptions);\n this.beaconClient = new AnalyticsBeaconClient(clientOptions);\n window.addEventListener('beforeunload', () => {\n const requests = getUnprocessedRequests();\n for (let {eventType, payload} of requests) {\n this.beaconClient.sendEvent(eventType, payload);\n }\n });\n }\n\n public getClientDependingOnEventType(eventType: EventType) {\n return eventType === 'click' && this.beaconClient.isAvailable() ? this.beaconClient : this.client;\n }\n}\n\nexport class NodeJSRuntime implements IRuntimeEnvironment {\n public storage: WebStorage;\n public client: AnalyticsFetchClient;\n\n constructor(clientOptions: IAnalyticsClientOptions, storage?: WebStorage) {\n this.storage = storage || new NullStorage();\n this.client = new AnalyticsFetchClient(clientOptions);\n }\n\n getClientDependingOnEventType(eventType: EventType): AnalyticsRequestClient {\n return this.client;\n }\n}\n\nexport class NoopRuntime implements IRuntimeEnvironment {\n public storage = new NullStorage();\n public client = new NoopAnalyticsClient();\n\n getClientDependingOnEventType(eventType: EventType): AnalyticsRequestClient {\n return this.client;\n }\n}\n","const API_KEY_PREFIX = 'xx';\n\nexport const isApiKey = (token?: string) => token?.startsWith(API_KEY_PREFIX) || false;\n","export const ReactNativeRuntimeWarning = `\n We've detected you're using React Native but have not provided the corresponding runtime, \n for an optimal experience please use the \"coveo.analytics/react-native\" subpackage.\n Follow the Readme on how to set it up: https://github.com/coveo/coveo.analytics.js#using-react-native\n `;\n\nexport function isReactNative() {\n return typeof navigator != 'undefined' && navigator.product == 'ReactNative';\n}\n","// Read the Mozilla Do Not Track Field Guide\n// (https://developer.mozilla.org/en-US/docs/Web/Security/Do_not_track_field_guide),\n// for information on how to use the donottrack\n// gathering data of actions of an user as long as it is not associated to the\n// identity of that user, doNotTrack is not enabled here.\n\nimport {hasNavigator} from './detector';\n\nconst doNotTrackValues = ['1', 1, 'yes', true];\n\nexport function doNotTrack(): boolean {\n return (\n hasNavigator() &&\n [\n (<any>navigator).globalPrivacyControl,\n (<any>navigator).doNotTrack,\n (<any>navigator).msDoNotTrack,\n (<any>window).doNotTrack,\n ].some((value) => doNotTrackValues.indexOf(value) !== -1)\n );\n}\n\nexport default doNotTrack;\n","import {\n AnyEventResponse,\n ClickEventRequest,\n ClickEventResponse,\n CustomEventRequest,\n CustomEventResponse,\n EventType,\n HealthResponse,\n SearchEventRequest,\n SearchEventResponse,\n ViewEventRequest,\n ViewEventResponse,\n VisitResponse,\n IRequestPayload,\n VariableArgumentsPayload,\n PreparedClickEventRequest,\n PreparedCustomEventRequest,\n PreparedViewEventRequest,\n PreparedSearchEventRequest,\n} from '../events';\nimport {IAnalyticsClientOptions, PreprocessAnalyticsRequest, VisitorIdProvider} from './analyticsRequestClient';\nimport {hasWindow, hasDocument} from '../detector';\nimport {addDefaultValues} from '../hook/addDefaultValues';\nimport {enhanceViewEvent} from '../hook/enhanceViewEvent';\nimport {v4 as uuidv4, v5 as uuidv5, validate as uuidValidate} from 'uuid';\nimport {libVersion} from '../version';\nimport {CoveoLinkParam} from '../plugins/link';\nimport {\n convertKeysToMeasurementProtocol,\n isMeasurementProtocolKey,\n convertCustomMeasurementProtocolKeys,\n} from './measurementProtocolMapper';\nimport {IRuntimeEnvironment, BrowserRuntime, NodeJSRuntime, NoopRuntime} from './runtimeEnvironment';\nimport HistoryStore from '../history';\nimport {isApiKey} from './token';\nimport {isReactNative, ReactNativeRuntimeWarning} from '../react-native/react-native-utils';\nimport {doNotTrack} from '../donottrack';\nimport {NullStorage} from '../storage';\nimport {isObject} from './utils';\n\nexport const Version = 'v15';\n\nexport const Endpoints = {\n default: 'https://analytics.cloud.coveo.com/rest/ua',\n production: 'https://analytics.cloud.coveo.com/rest/ua',\n hipaa: 'https://analyticshipaa.cloud.coveo.com/rest/ua',\n};\n\nexport interface ClientOptions {\n token?: string;\n endpoint: string;\n isCustomEndpoint?: boolean;\n version: string;\n runtimeEnvironment?: IRuntimeEnvironment;\n beforeSendHooks: AnalyticsClientSendEventHook[];\n afterSendHooks: AnalyticsClientSendEventHook[];\n preprocessRequest?: PreprocessAnalyticsRequest;\n}\n\nexport type AnalyticsClientSendEventHook = <TResult>(eventType: string, payload: any) => TResult | Promise<TResult>;\nexport type EventTypeConfig = {\n newEventType: EventType;\n variableLengthArgumentsNames?: string[];\n addVisitorIdParameter?: boolean;\n addClientIdParameter?: boolean;\n usesMeasurementProtocol?: boolean;\n};\n\nexport interface PreparedEvent<TPreparedRequest, TCompleteRequest, TResponse extends AnyEventResponse>\n extends BufferedRequest {\n log(remainingPayload: Omit<TCompleteRequest, keyof TPreparedRequest>): Promise<TResponse | void>;\n}\n\nexport interface AnalyticsClient {\n getPayload(eventType: string, ...payload: VariableArgumentsPayload): Promise<any>;\n getParameters(eventType: string, ...payload: VariableArgumentsPayload): Promise<any>;\n makeEvent<TPreparedRequest, TCompleteRequest, TResponse extends AnyEventResponse>(\n eventType: string,\n ...payload: VariableArgumentsPayload\n ): Promise<PreparedEvent<TPreparedRequest, TCompleteRequest, TResponse>>;\n sendEvent(eventType: string, ...payload: VariableArgumentsPayload): Promise<AnyEventResponse | void>;\n makeSearchEvent(\n request: PreparedSearchEventRequest\n ): Promise<PreparedEvent<PreparedSearchEventRequest, SearchEventRequest, SearchEventResponse>>;\n sendSearchEvent(request: SearchEventRequest): Promise<SearchEventResponse | void>;\n makeClickEvent(\n request: PreparedClickEventRequest\n ): Promise<PreparedEvent<PreparedClickEventRequest, ClickEventRequest, ClickEventResponse>>;\n sendClickEvent(request: ClickEventRequest): Promise<ClickEventResponse | void>;\n makeCustomEvent(\n request: PreparedCustomEventRequest\n ): Promise<PreparedEvent<PreparedCustomEventRequest, CustomEventRequest, CustomEventResponse>>;\n sendCustomEvent(request: CustomEventRequest): Promise<CustomEventResponse | void>;\n makeViewEvent(\n request: PreparedViewEventRequest\n ): Promise<PreparedEvent<PreparedViewEventRequest, ViewEventRequest, ViewEventResponse>>;\n sendViewEvent(request: ViewEventRequest): Promise<ViewEventResponse | void>;\n getVisit(): Promise<VisitResponse>;\n getHealth(): Promise<HealthResponse>;\n registerBeforeSendEventHook(hook: AnalyticsClientSendEventHook): void;\n registerAfterSendEventHook(hook: AnalyticsClientSendEventHook): void;\n addEventTypeMapping(eventType: string, eventConfig: EventTypeConfig): void;\n runtime: IRuntimeEnvironment;\n version: string;\n /**\n * @deprecated\n */\n readonly currentVisitorId: string;\n getCurrentVisitorId?(): Promise<string>; // TODO: v3 make required\n setAcceptedLinkReferrers?(hosts: string[]): void;\n}\n\nexport interface BufferedRequest {\n eventType: EventType;\n payload: any;\n}\n\ntype ProcessPayloadStep = (currentPayload: any) => any;\ntype AsyncProcessPayloadStep = (currentPayload: any) => Promise<any>;\n\nexport function buildBaseUrl(endpoint = Endpoints.default, apiVersion = Version, isCustomEndpoint = false) {\n endpoint = endpoint.replace(/\\/$/, ''); // Remove trailing slash in endpoint.\n\n if (isCustomEndpoint) {\n return `${endpoint}/${apiVersion}`;\n }\n\n const hasUARestEndpoint = endpoint.endsWith('/rest') || endpoint.endsWith('/rest/ua');\n\n return `${endpoint}${hasUARestEndpoint ? '' : '/rest'}/${apiVersion}`;\n}\n\n// Note: Changing this value will destroy the mapping from tracking string to clientId for all customers\n// using the setClientId() api. It will have the same effect as every visitor for those customers clearing\n// their cookie store at the same time, with corresponding downstream effects.\nconst COVEO_NAMESPACE = '38824e1f-37f5-42d3-8372-a4b8fa9df946';\n\nexport class CoveoAnalyticsClient implements AnalyticsClient, VisitorIdProvider {\n private get defaultOptions(): ClientOptions {\n return {\n endpoint: Endpoints.default,\n isCustomEndpoint: false,\n token: '',\n version: Version,\n beforeSendHooks: [],\n afterSendHooks: [],\n };\n }\n\n public runtime: IRuntimeEnvironment;\n public get version(): string {\n return libVersion;\n }\n private visitorId: string;\n private bufferedRequests: BufferedRequest[];\n private beforeSendHooks: AnalyticsClientSendEventHook[];\n private afterSendHooks: AnalyticsClientSendEventHook[];\n private eventTypeMapping: {[name: string]: EventTypeConfig};\n private options: ClientOptions;\n private acceptedLinkReferrers: string[] = [];\n\n constructor(opts: Partial<ClientOptions>) {\n if (!opts) {\n throw new Error('You have to pass options to this constructor');\n }\n\n this.options = {\n ...this.defaultOptions,\n ...opts,\n };\n\n this.visitorId = '';\n this.bufferedRequests = [];\n this.beforeSendHooks = [enhanceViewEvent, addDefaultValues].concat(this.options.beforeSendHooks);\n this.afterSendHooks = this.options.afterSendHooks;\n this.eventTypeMapping = {};\n\n const clientsOptions: IAnalyticsClientOptions = {\n baseUrl: this.baseUrl,\n token: this.options.token,\n visitorIdProvider: this,\n preprocessRequest: this.options.preprocessRequest,\n };\n\n this.runtime = this.options.runtimeEnvironment || this.initRuntime(clientsOptions);\n if (doNotTrack()) {\n this.clear();\n this.runtime.storage = new NullStorage();\n }\n }\n\n private initRuntime(clientsOptions: IAnalyticsClientOptions) {\n if (hasWindow() && hasDocument()) {\n return new BrowserRuntime(clientsOptions, () => {\n const copy = [...this.bufferedRequests];\n this.bufferedRequests = [];\n return copy;\n });\n } else if (isReactNative()) {\n console.warn(ReactNativeRuntimeWarning);\n }\n return new NodeJSRuntime(clientsOptions);\n }\n\n private get storage() {\n return this.runtime.storage;\n }\n\n private async determineVisitorId() {\n try {\n return (\n this.extractClientIdFromLink(window.location.href) ||\n (await this.storage.getItem('visitorId')) ||\n uuidv4()\n );\n } catch (err) {\n console.log(\n 'Could not get visitor ID from the current runtime environment storage. Using a random ID instead.',\n err\n );\n return uuidv4();\n }\n }\n\n async getCurrentVisitorId() {\n if (!this.visitorId) {\n const id = await this.determineVisitorId();\n await this.setCurrentVisitorId(id);\n }\n return this.visitorId;\n }\n\n async setCurrentVisitorId(visitorId: string) {\n this.visitorId = visitorId;\n await this.storage.setItem('visitorId', visitorId);\n }\n\n async setClientId(value: string, namespace?: string) {\n if (uuidValidate(value)) {\n this.setCurrentVisitorId(value.toLowerCase());\n } else {\n if (!namespace) {\n throw Error('Cannot generate uuid client id without a specific namespace string.');\n }\n this.setCurrentVisitorId(uuidv5(value, uuidv5(namespace, COVEO_NAMESPACE)));\n }\n }\n\n async getParameters(eventType: EventType | string, ...payload: VariableArgumentsPayload) {\n return await this.resolveParameters(eventType, ...payload);\n }\n\n async getPayload(eventType: EventType | string, ...payload: VariableArgumentsPayload) {\n const parametersToSend = await this.resolveParameters(eventType, ...payload);\n return await this.resolvePayloadForParameters(eventType, parametersToSend);\n }\n\n /**\n * @deprecated Synchronous method is deprecated, use getCurrentVisitorId instead. This method will NOT work with react-native.\n */\n get currentVisitorId() {\n const visitorId = this.visitorId || this.storage.getItem('visitorId');\n if (typeof visitorId !== 'string') {\n this.setCurrentVisitorId(uuidv4());\n }\n return this.visitorId;\n }\n\n /**\n * @deprecated Synchronous method is deprecated, use setCurrentVisitorId instead. This method will NOT work with react-native.\n */\n set currentVisitorId(visitorId: string) {\n this.visitorId = visitorId;\n this.storage.setItem('visitorId', visitorId);\n }\n\n private extractClientIdFromLink(urlString: string): string | null {\n if (doNotTrack()) {\n return null;\n }\n try {\n const linkParam: string | null = new URL(urlString).searchParams.get(CoveoLinkParam.cvo_cid);\n if (linkParam == null) {\n return null;\n }\n const linker: CoveoLinkParam | null = CoveoLinkParam.fromString(linkParam);\n if (!linker || !hasDocument() || !linker.validate(document.referrer, this.acceptedLinkReferrers)) {\n return null;\n }\n return linker.clientId;\n } catch (error) {\n // Ignore any parsing errors\n }\n return null;\n }\n\n async resolveParameters(eventType: EventType | string, ...payload: VariableArgumentsPayload) {\n const {\n variableLengthArgumentsNames = [],\n addVisitorIdParameter = false,\n usesMeasurementProtocol = false,\n addClientIdParameter = false,\n } = this.eventTypeMapping[eventType] || {};\n\n const processVariableArgumentNamesStep: ProcessPayloadStep = (currentPayload) =>\n variableLengthArgumentsNames.length > 0\n ? this.parseVariableArgumentsPayload(variableLengthArgumentsNames, currentPayload)\n : currentPayload[0];\n const addVisitorIdStep: AsyncProcessPayloadStep = async (currentPayload) => ({\n ...currentPayload,\n visitorId: addVisitorIdParameter ? await this.getCurrentVisitorId() : '',\n });\n const addClientIdStep: AsyncProcessPayloadStep = async (currentPayload) => {\n if (addClientIdParameter) {\n return {\n ...currentPayload,\n clientId: await this.getCurrentVisitorId(),\n };\n }\n return currentPayload;\n };\n const setAnonymousUserStep: ProcessPayloadStep = (currentPayload) =>\n usesMeasurementProtocol ? this.ensureAnonymousUserWhenUsingApiKey(currentPayload) : currentPayload;\n const processBeforeSendHooksStep: AsyncProcessPayloadStep = (currentPayload) =>\n this.beforeSendHooks.reduce(async (promisePayload, current) => {\n const payload = await promisePayload;\n return await current(eventType, payload);\n }, currentPayload);\n\n const parametersToSend = await [\n processVariableArgumentNamesStep,\n addVisitorIdStep,\n addClientIdStep,\n setAnonymousUserStep,\n processBeforeSendHooksStep,\n ].reduce(async (payloadPromise, step) => {\n const payload = await payloadPromise;\n return await step(payload);\n }, Promise.resolve(payload));\n\n return parametersToSend;\n }\n\n async resolvePayloadForParameters(eventType: EventType | string, parameters: any) {\n const {usesMeasurementProtocol = false} = this.eventTypeMapping[eventType] || {};\n\n const addTrackingIdStep: ProcessPayloadStep = (currentPayload) =>\n this.setTrackingIdIfTrackingIdNotPresent(currentPayload);\n const cleanPayloadStep: ProcessPayloadStep = (currentPayload) =>\n this.removeEmptyPayloadValues(currentPayload, eventType);\n const validateParams: ProcessPayloadStep = (currentPayload) => this.validateParams(currentPayload, eventType);\n const processMeasurementProtocolConversionStep: ProcessPayloadStep = (currentPayload) =>\n usesMeasurementProtocol ? convertKeysToMeasurementProtocol(currentPayload) : currentPayload;\n const removeUnknownParameters: ProcessPayloadStep = (currentPayload) =>\n usesMeasurementProtocol ? this.removeUnknownParameters(currentPayload) : currentPayload;\n const processCustomParameters: ProcessPayloadStep = (currentPayload) =>\n usesMeasurementProtocol\n ? this.processCustomParameters(currentPayload)\n : this.mapCustomParametersToCustomData(currentPayload);\n\n const payloadToSend = await [\n addTrackingIdStep,\n cleanPayloadStep,\n validateParams,\n processMeasurementProtocolConversionStep,\n removeUnknownParameters,\n processCustomParameters,\n ].reduce(async (payloadPromise, step) => {\n const payload = await payloadPromise;\n return await step(payload);\n }, Promise.resolve(parameters));\n\n return payloadToSend;\n }\n\n async makeEvent<TPreparedRequest, TCompleteRequest, TResponse extends AnyEventResponse>(\n eventType: EventType | string,\n ...payload: VariableArgumentsPayload\n ): Promise<PreparedEvent<TPreparedRequest, TCompleteRequest, TResponse>> {\n const {newEventType: eventTypeToSend = eventType as EventType} = this.eventTypeMapping[eventType] || {};\n\n const parametersToSend = await this.resolveParameters(eventType, ...payload);\n const payloadToSend = await this.resolvePayloadForParameters(eventType, parametersToSend);\n return {\n eventType: eventTypeToSend,\n payload: payloadToSend,\n log: async (remainingPayload) => {\n this.bufferedRequests.push(<BufferedRequest>{\n eventType: eventTypeToSend,\n payload: {...payloadToSend, ...remainingPayload},\n });\n await Promise.all(\n this.afterSendHooks.map((hook) => hook(eventType, {...parametersToSend, ...remainingPayload}))\n );\n await this.deferExecution();\n return (await this.sendFromBuffer()) as TResponse | void;\n },\n };\n }\n\n async sendEvent(eventType: EventType | string, ...payload: VariableArgumentsPayload) {\n return (await this.makeEvent<any, any, AnyEventResponse>(eventType, ...payload)).log({});\n }\n\n private deferExecution(): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, 0));\n }\n\n private async sendFromBuffer(): Promise<AnyEventResponse | void> {\n const popped = this.bufferedRequests.shift();\n if (popped) {\n const {eventType, payload} = popped;\n return this.runtime.getClientDependingOnEventType(eventType).sendEvent(eventType, payload);\n }\n }\n\n public clear() {\n this.storage.removeItem('visitorId');\n const store = new HistoryStore();\n store.clear();\n }\n\n public deleteHttpOnlyVisitorId() {\n this.runtime.client.deleteHttpCookieVisitorId();\n }\n\n async makeSearchEvent(request: PreparedSearchEventRequest) {\n return this.makeEvent<PreparedSearchEventRequest, SearchEventRequest, SearchEventResponse>(\n EventType.search,\n request\n );\n }\n\n async sendSearchEvent({searchQueryUid, ...preparedRequest}: SearchEventRequest) {\n return (await this.makeSearchEvent(preparedRequest)).log({searchQueryUid});\n }\n\n async makeClickEvent(request: PreparedClickEventRequest) {\n return this.makeEvent<PreparedClickEventRequest, ClickEventRequest, ClickEventResponse>(\n EventType.click,\n request\n );\n }\n\n async sendClickEvent({searchQueryUid, ...preparedRequest}: ClickEventRequest) {\n return (await this.makeClickEvent(preparedRequest)).log({searchQueryUid});\n }\n\n async makeCustomEvent(request: PreparedCustomEventRequest) {\n return this.makeEvent<PreparedCustomEventRequest, CustomEventRequest, CustomEventResponse>(\n EventType.custom,\n request\n );\n }\n\n async sendCustomEvent({lastSearchQueryUid, ...preparedRequest}: CustomEventRequest) {\n return (await this.makeCustomEvent(preparedRequest)).log({lastSearchQueryUid});\n }\n\n async makeViewEvent(request: PreparedViewEventRequest) {\n return this.makeEvent<PreparedViewEventRequest, ViewEventRequest, ViewEventResponse>(EventType.view, request);\n }\n\n async sendViewEvent(request: ViewEventRequest): Promise<ViewEventResponse | void> {\n return (await this.makeViewEvent(request)).log({});\n }\n\n async getVisit(): Promise<VisitResponse> {\n // deepcode ignore Ssrf: url is supplied by script owner\n const response = await fetch(`${this.baseUrl}/analytics/visit`);\n const visit = (await response.json()) as VisitResponse;\n this.visitorId = visit.visitorId;\n return visit;\n }\n\n async getHealth(): Promise<HealthResponse> {\n // deepcode ignore Ssrf: url is supplied by script owner\n const response = await fetch(`${this.baseUrl}/analytics/monitoring/health`);\n return (await response.json()) as HealthResponse;\n }\n\n registerBeforeSendEventHook(hook: AnalyticsClientSendEventHook): void {\n this.beforeSendHooks.push(hook);\n }\n\n registerAfterSendEventHook(hook: AnalyticsClientSendEventHook): void {\n this.afterSendHooks.push(hook);\n }\n\n addEventTypeMapping(eventType: string, eventConfig: EventTypeConfig): void {\n this.eventTypeMapping[eventType] = eventConfig;\n }\n\n setAcceptedLinkReferrers(hosts: string[]): void {\n if (Array.isArray(hosts) && hosts.every((host) => typeof host == 'string')) this.acceptedLinkReferrers = hosts;\n else throw Error('Parameter should be an array of domain strings');\n }\n\n private parseVariableArgumentsPayload(fieldsOrder: string[], payload: VariableArgumentsPayload) {\n const parsedArguments: {[name: string]: any} = {};\n for (let i = 0, length = payload.length; i < length; i++) {\n const currentArgument = payload[i];\n if (typeof currentArgument === 'string') {\n parsedArguments[fieldsOrder[i]] = currentArgument;\n } else if (typeof currentArgument === 'object') {\n // If the argument is an object, it is considered the last argument of the chain. Its values should be returned as-is.\n return {\n ...parsedArguments,\n ...currentArgument,\n };\n }\n }\n return parsedArguments;\n }\n\n private isKeyAllowedEmpty(evtType: string, key: string) {\n const keysThatCanBeEmpty: Record<string, string[]> = {\n [EventType.search]: ['queryText'],\n };\n\n const match = keysThatCanBeEmpty[evtType] || [];\n return match.indexOf(key) !== -1;\n }\n\n private removeEmptyPayloadValues(payload: IRequestPayload, eventType: string): IRequestPayload {\n const isNotEmptyValue = (value: any) => typeof value !== 'undefined' && value !== null && value !== '';\n return Object.keys(payload)\n .filter((key) => this.isKeyAllowedEmpty(eventType, key) || isNotEmptyValue(payload[key]))\n .reduce(\n (newPayload, key) => ({\n ...newPayload,\n [key]: payload[key],\n }),\n {}\n );\n }\n\n private removeUnknownParameters(payload: IRequestPayload): IRequestPayload {\n const newPayload = Object.keys(payload)\n .filter((key) => {\n if (isMeasurementProtocolKey(key)) {\n return true;\n } else {\n console.log(key, 'is not processed by coveoua');\n }\n })\n .reduce(\n (newPayload, key) => ({\n ...newPayload,\n [key]: payload[key],\n }),\n {}\n );\n return newPayload;\n }\n\n private processCustomParameters(payload: IRequestPayload): IRequestPayload {\n const {custom, ...rest} = payload;\n let lowercasedCustom = {};\n if (custom && isObject(custom)) {\n lowercasedCustom = this.lowercaseKeys(custom);\n }\n\n const newPayload = convertCustomMeasurementProtocolKeys(rest);\n\n return {\n ...lowercasedCustom,\n ...newPayload,\n };\n }\n\n private mapCustomParametersToCustomData(payload: IRequestPayload): IRequestPayload {\n const {custom, ...rest} = payload;\n if (custom && isObject(custom)) {\n const lowercasedCustom = this.lowercaseKeys(custom);\n return {...rest, customData: {...lowercasedCustom, ...payload.customData}};\n } else {\n return payload;\n }\n }\n\n private lowercaseKeys(custom: Record<string, unknown>) {\n const keys = Object.keys(custom);\n let result: Record<string, unknown> = {};\n keys.forEach((key) => {\n result[key.toLowerCase() as string] = custom[key];\n });\n return result;\n }\n\n private validateParams(payload: IRequestPayload, eventType: EventType | string): IRequestPayload {\n const {anonymizeIp, ...rest} = payload;\n if (anonymizeIp !== undefined) {\n if (['0', 'false', 'undefined', 'null', '{}', '[]', ''].indexOf(`${anonymizeIp}`.toLowerCase()) == -1) {\n rest.anonymizeIp = 1;\n }\n }\n\n if (\n eventType == EventType.view ||\n eventType == EventType.click ||\n eventType == EventType.search ||\n eventType == EventType.custom\n ) {\n rest.originLevel3 = this.limit(rest.originLevel3, 128);\n }\n if (eventType == EventType.view) {\n rest.location = this.limit(rest.location, 128);\n }\n if (eventType == 'pageview' || eventType == 'event') {\n rest.referrer = this.limit(rest.referrer, 2048);\n rest.location = this.limit(rest.location, 2048);\n rest.page = this.limit(rest.page, 2048);\n }\n return rest;\n }\n\n private ensureAnonymousUserWhenUsingApiKey(payload: IRequestPayload): IRequestPayload {\n const {userId, ...rest} = payload;\n if (isApiKey(this.options.token) && !userId) {\n rest['userId'] = 'anonymous';\n return rest;\n } else {\n return payload;\n }\n }\n\n private setTrackingIdIfTrackingIdNotPresent(payload: IRequestPayload): IRequestPayload {\n const {trackingId, ...rest} = payload;\n if (trackingId) {\n return payload;\n }\n\n if (rest.hasOwnProperty('custom') && isObject(rest.custom)) {\n if (rest.custom.hasOwnProperty('context_website') || rest.custom.hasOwnProperty('siteName')) {\n rest['trackingId'] = rest.custom.context_website || rest.custom.siteName;\n }\n }\n\n if (rest.hasOwnProperty('customData') && isObject(rest.customData)) {\n if (rest.customData.hasOwnProperty('context_website') || rest.customData.hasOwnProperty('siteName')) {\n rest['trackingId'] = rest.customData.context_website || rest.customData.siteName;\n }\n }\n\n return rest;\n }\n\n private limit(input: string, length: number): string | undefined | null {\n if (typeof input !== 'string') {\n return input;\n }\n return input.substring(0, length);\n }\n\n private get baseUrl(): string {\n return buildBaseUrl(this.options.endpoint, this.options.version, this.options.isCustomEndpoint);\n }\n}\n\nexport default CoveoAnalyticsClient;\n","import {EventType} from '../events';\nimport {v4 as uuidv4} from 'uuid';\nimport {\n convertProductToMeasurementProtocol,\n convertImpressionListToMeasurementProtocol,\n} from '../client/measurementProtocolMapping/commerceMeasurementProtocolMapper';\nimport {BasePlugin, BasePluginEventTypes, PluginClass, PluginOptions} from './BasePlugin';\nimport {coerceToNumber} from '../client/utils';\n\nexport const ECPluginEventTypes = {\n ...BasePluginEventTypes,\n};\n\nconst allECEventTypes = Object.keys(ECPluginEventTypes).map(\n (key) => ECPluginEventTypes[key as keyof typeof ECPluginEventTypes]\n);\n\n// From https://stackoverflow.com/a/49725198/497731\ntype RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> &\n {\n [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;\n }[Keys];\n\nexport type CustomValues = {\n [key: string]: string | number | boolean;\n};\n\nexport interface CoveoExtensionProperties {\n group?: string;\n}\n\nexport interface ProductProperties extends CoveoExtensionProperties {\n id?: string;\n name?: string;\n brand?: string;\n category?: string;\n variant?: string;\n price?: number;\n quantity?: number;\n coupon?: string;\n position?: number;\n custom?: CustomValues;\n}\n\nexport type Product = RequireAtLeastOne<ProductProperties, 'id' | 'name'>;\n\nexport interface ImpressionProperties extends CoveoExtensionProperties {\n id?: string;\n name?: string;\n list?: string;\n brand?: string;\n category?: string;\n variant?: string;\n position?: number;\n price?: number;\n custom?: CustomValues;\n}\n\nexport type Impression = RequireAtLeastOne<ImpressionProperties, 'id' | 'name'>;\nexport type BaseImpression = Omit<Impression, 'list'>;\nexport interface ImpressionList {\n listName?: string;\n impressions: BaseImpression[];\n}\n\nexport class ECPlugin extends BasePlugin {\n public static readonly Id = 'ec';\n private products: Product[] = [];\n private impressions: Impression[] = [];\n\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n super({client, uuidGenerator});\n }\n\n public getApi(name: string): Function | null {\n const superCall: Function | null = super.getApi(name);\n if (superCall !== null) return superCall;\n switch (name) {\n case 'addProduct':\n return this.addProduct;\n case 'addImpression':\n return this.addImpression;\n default:\n return null;\n }\n }\n\n protected addHooks(): void {\n this.addHooksForPageView();\n this.addHooksForEvent();\n this.addHooksForECEvents();\n }\n\n addProduct(product: Product) {\n this.products.push(product);\n }\n\n addImpression(impression: Impression) {\n this.impressions.push(impression);\n }\n\n protected clearPluginData() {\n this.products = [];\n this.impressions = [];\n }\n\n private addHooksForECEvents() {\n this.client.registerBeforeSendEventHook((eventType, ...[payload]) => {\n return allECEventTypes.indexOf(eventType) !== -1 ? this.addECDataToPayload(eventType, payload) : payload;\n });\n this.client.registerAfterSendEventHook((eventType, ...[payload]) => {\n if (allECEventTypes.indexOf(eventType) !== -1) {\n this.updateLocationInformation(eventType, payload);\n }\n return payload;\n });\n }\n\n private addHooksForPageView() {\n this.client.addEventTypeMapping(ECPluginEventTypes.pageview, {\n newEventType: EventType.collect,\n variableLengthArgumentsNames: ['page'],\n addVisitorIdParameter: true,\n usesMeasurementProtocol: true,\n });\n }\n\n private addHooksForEvent() {\n this.client.addEventTypeMapping(ECPluginEventTypes.event, {\n newEventType: EventType.collect,\n variableLengthArgumentsNames: ['eventCategory', 'eventAction', 'eventLabel', 'eventValue'],\n addVisitorIdParameter: true,\n usesMeasurementProtocol: true,\n });\n }\n\n private addECDataToPayload(eventType: string, payload: any) {\n const ecPayload = {\n ...this.getLocationInformation(eventType, payload),\n ...this.getDefaultContextInformation(eventType),\n ...(this.action ? {action: this.action} : {}),\n ...(this.actionData || {}),\n };\n\n const productPayload = this.getProductPayload();\n const impressionPayload = this.getImpressionPayload();\n\n this.clearData();\n\n return {\n ...impressionPayload,\n ...productPayload,\n ...ecPayload,\n ...payload,\n };\n }\n\n private getProductPayload() {\n return this.products\n .map((product) => this.assureProductValidity(product))\n .reduce((newPayload, product, index) => {\n return {\n ...newPayload,\n ...convertProductToMeasurementProtocol(this.convertNumberTypes(product), index),\n };\n }, {});\n }\n\n private convertNumberTypes(product: Product): Product {\n let updatedProduct: Product = {...product};\n if ('quantity' in updatedProduct) {\n updatedProduct.quantity = coerceToNumber(updatedProduct.quantity);\n }\n if ('position' in updatedProduct) {\n updatedProduct.position = coerceToNumber(updatedProduct.position);\n }\n return updatedProduct;\n }\n\n private getImpressionPayload() {\n const impressionsByList = this.getImpressionsByList();\n return impressionsByList\n .map(\n ({impressions, ...rest}) =>\n ({\n ...rest,\n impressions: impressions.map((baseImpression) =>\n this.assureBaseImpressionValidity(baseImpression)\n ),\n } as ImpressionList)\n )\n .reduce((newPayload, impressionList, index) => {\n return {\n ...newPayload,\n ...convertImpressionListToMeasurementProtocol(impressionList, index, 'pi'),\n };\n }, {});\n }\n\n private assureProductValidity(product: Product) {\n const {position, ...productRest} = product;\n if (position !== undefined && position < 1) {\n console.warn(\n `The position for product '${product.name || product.id}' must be greater ` + `than 0 when provided.`\n );\n\n return productRest;\n }\n\n return product;\n }\n\n private assureBaseImpressionValidity(baseImpression: BaseImpression) {\n const {position, ...baseImpressionRest} = baseImpression;\n if (position !== undefined && position < 1) {\n console.warn(\n `The position for impression '${baseImpression.name || baseImpression.id}'` +\n ` must be greater than 0 when provided.`\n );\n\n return baseImpressionRest;\n }\n\n return baseImpression;\n }\n\n private getImpressionsByList() {\n return this.impressions.reduce((lists, impression) => {\n const {list: listName, ...baseImpression} = impression;\n const list = lists.find((list) => list.listName === listName);\n if (list) {\n list.impressions.push(baseImpression);\n } else {\n lists.push({listName: listName, impressions: [baseImpression]});\n }\n return lists;\n }, [] as ImpressionList[]);\n }\n}\n\nexport const EC: PluginClass = ECPlugin;\n","import {EventType} from '../events';\nimport {v4 as uuidv4} from 'uuid';\nimport {convertTicketToMeasurementProtocol} from '../client/measurementProtocolMapping/serviceMeasurementProtocolMapper';\nimport {BasePlugin, BasePluginEventTypes, PluginClass, PluginOptions} from './BasePlugin';\n\nexport const SVCPluginEventTypes = {\n ...BasePluginEventTypes,\n};\n\nconst allSVCEventTypes = Object.keys(SVCPluginEventTypes).map(\n (key) => SVCPluginEventTypes[key as keyof typeof SVCPluginEventTypes]\n);\n\nexport type CustomValues = {\n [key: string]: string | number | boolean;\n};\n\nexport interface TicketProperties {\n id?: string;\n subject?: string;\n description?: string;\n category?: string;\n productId?: string;\n custom?: CustomValues;\n}\n\nexport type Ticket = TicketProperties;\n\nexport class SVCPlugin extends BasePlugin {\n public static readonly Id = 'svc';\n private ticket: Ticket = {};\n\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n super({client, uuidGenerator});\n }\n\n public getApi(name: string): Function | null {\n const superCall: Function | null = super.getApi(name);\n if (superCall !== null) return superCall;\n switch (name) {\n case 'setTicket':\n return this.setTicket;\n default:\n return null;\n }\n }\n\n protected addHooks(): void {\n this.addHooksForEvent();\n this.addHooksForPageView();\n this.addHooksForSVCEvents();\n }\n\n setTicket(ticket: Ticket) {\n this.ticket = ticket;\n }\n\n protected clearPluginData() {\n this.ticket = {};\n }\n\n private addHooksForSVCEvents() {\n this.client.registerBeforeSendEventHook((eventType, ...[payload]) => {\n return allSVCEventTypes.indexOf(eventType) !== -1 ? this.addSVCDataToPayload(eventType, payload) : payload;\n });\n this.client.registerAfterSendEventHook((eventType, ...[payload]) => {\n if (allSVCEventTypes.indexOf(eventType) !== -1) {\n this.updateLocationInformation(eventType, payload);\n }\n return payload;\n });\n }\n\n private addHooksForPageView() {\n this.client.addEventTypeMapping(SVCPluginEventTypes.pageview, {\n newEventType: EventType.collect,\n variableLengthArgumentsNames: ['page'],\n addVisitorIdParameter: true,\n usesMeasurementProtocol: true,\n });\n }\n\n private addHooksForEvent() {\n this.client.addEventTypeMapping(SVCPluginEventTypes.event, {\n newEventType: EventType.collect,\n variableLengthArgumentsNames: ['eventCategory', 'eventAction', 'eventLabel', 'eventValue'],\n addVisitorIdParameter: true,\n usesMeasurementProtocol: true,\n });\n }\n\n private addSVCDataToPayload(eventType: string, payload: any) {\n const svcPayload = {\n ...this.getLocationInformation(eventType, payload),\n ...this.getDefaultContextInformation(eventType),\n ...(this.action ? {svcAction: this.action} : {}),\n ...(Object.keys(this.actionData ?? {}).length > 0 ? {svcActionData: this.actionData} : {}),\n };\n\n const ticketPayload = this.getTicketPayload();\n this.clearData();\n\n return {\n ...ticketPayload,\n ...svcPayload,\n ...payload,\n };\n }\n\n private getTicketPayload() {\n return convertTicketToMeasurementProtocol(this.ticket);\n }\n}\n\nexport const SVC: PluginClass = SVCPlugin;\n","import {PluginClass, PluginOptions, BasePlugin, Plugin} from '../plugins/BasePlugin';\nimport {EC} from '../plugins/ec';\nimport {Link} from '../plugins/link';\nimport {SVC} from '../plugins/svc';\n\nexport class Plugins {\n public static readonly DefaultPlugins: string[] = [EC.Id, SVC.Id, Link.Id];\n private registeredPluginsMap: Record<string, PluginClass> = {\n [EC.Id]: EC,\n [SVC.Id]: SVC,\n [Link.Id]: Link,\n };\n private requiredPlugins: Record<string, BasePlugin> = {};\n\n require(name: string, options: PluginOptions): void {\n const pluginClass = this.registeredPluginsMap[name];\n if (!pluginClass) {\n throw new Error(\n `No plugin named \"${name}\" is currently registered. If you use a custom plugin, use 'provide' first.`\n );\n }\n this.requiredPlugins[name] = new (pluginClass as any)(options);\n }\n\n provide(name: string, plugin: PluginClass) {\n this.registeredPluginsMap[name] = plugin;\n }\n\n clearRequired(): void {\n this.requiredPlugins = {};\n }\n\n execute(name: string, fn: string, ...args: any[]): any {\n const plugin = this.requiredPlugins[name] as Plugin;\n if (!plugin) {\n throw new Error(`The plugin \"${name}\" is not required. Check that you required it on initialization.`);\n }\n const actionFunction = plugin.getApi(fn);\n if (!actionFunction) {\n throw new Error(`The function \"${fn}\" does not exist on the plugin \"${name}\".`);\n }\n if (typeof actionFunction !== 'function') {\n throw new Error(`\"${fn}\" of the plugin \"${name}\" is not a function.`);\n }\n return actionFunction.apply(plugin, args);\n }\n}\n","import {AnyEventResponse, EventType, SendEventArguments, VariableArgumentsPayload} from '../events';\nimport {AnalyticsClient, CoveoAnalyticsClient, Endpoints} from '../client/analytics';\nimport {Plugins} from './plugins';\nimport {PluginOptions} from '../plugins/BasePlugin';\nimport {PluginClass} from '../plugins/BasePlugin';\nimport {libVersion} from '../version';\n\nexport type AvailableActions = keyof CoveoUA;\n\nexport interface CoveoUAOptions {\n endpoint?: string;\n isCustomEndpoint?: boolean;\n plugins?: string[];\n}\n\n// CoveoUA mimics the GoogleAnalytics API.\nexport class CoveoUA {\n public client?: AnalyticsClient;\n private plugins: Plugins = new Plugins();\n private params: {[name: string]: string} = {};\n\n // init initializes a new SimpleAPI client.\n // @param token is your coveo access_token / api_key / ...\n // @param endpoint is the endpoint you want to target defaults to the\n // usage analytics production endpoint\n init(token: string | AnalyticsClient, optionsOrEndpoint: string | CoveoUAOptions): void {\n if (!token) {\n throw new Error(`You must pass your token when you call 'init'`);\n }\n\n if (typeof token === 'string') {\n this.client = new CoveoAnalyticsClient({\n token: token,\n endpoint: this.getEndpoint(optionsOrEndpoint),\n isCustomEndpoint: this.getIsCustomEndpoint(optionsOrEndpoint),\n });\n } else if (this.isAnalyticsClient(token)) {\n this.client = token;\n }\n\n if (this.client) {\n const pluginOptions: PluginOptions = {client: this.client};\n this.plugins.clearRequired();\n this.getPluginKeys(optionsOrEndpoint).forEach((pluginKey) =>\n this.plugins.require(pluginKey, pluginOptions)\n );\n this.client.registerBeforeSendEventHook((eventType, payload) => ({\n ...payload,\n ...this.params,\n }));\n this.client.addEventTypeMapping(EventType.view, {newEventType: EventType.view, addClientIdParameter: true});\n } else {\n throw new Error(`You must pass either your token or a valid object when you call 'init'`);\n }\n }\n\n private isAnalyticsClient(token: AnalyticsClient): token is AnalyticsClient {\n return typeof token === 'object' && typeof token.sendEvent !== 'undefined';\n }\n\n private getPluginKeys(optionsOrEndpoint: string | CoveoUAOptions): string[] {\n if (typeof optionsOrEndpoint === 'string') {\n return Plugins.DefaultPlugins;\n }\n return Array.isArray(optionsOrEndpoint?.plugins) ? optionsOrEndpoint.plugins : Plugins.DefaultPlugins;\n }\n\n private getEndpoint(optionsOrEndpoint: string | CoveoUAOptions) {\n if (typeof optionsOrEndpoint === 'string') {\n return optionsOrEndpoint || Endpoints.default;\n } else if (optionsOrEndpoint?.endpoint) {\n return optionsOrEndpoint.endpoint;\n }\n return Endpoints.default;\n }\n\n private getIsCustomEndpoint(optionsOrEndpoint: string | CoveoUAOptions) {\n if (typeof optionsOrEndpoint === 'string') {\n return false;\n } else if (optionsOrEndpoint?.isCustomEndpoint) {\n return optionsOrEndpoint.isCustomEndpoint;\n }\n return false;\n }\n\n // init initializes a new client intended to be used with a proxy that injects the access token.\n // @param endpoint is the endpoint of your proxy.\n initForProxy(endpoint: string, isCustomEndpoint = false): void {\n if (!endpoint) {\n throw new Error(`You must pass your endpoint when you call 'initForProxy'`);\n }\n\n if (typeof endpoint !== 'string') {\n throw new Error(`You must pass a string as the endpoint parameter when you call 'initForProxy'`);\n }\n\n this.client = new CoveoAnalyticsClient({\n endpoint: endpoint,\n isCustomEndpoint: isCustomEndpoint,\n });\n }\n\n set(keyOrObject: string | any, value: string): void {\n if (typeof keyOrObject === 'string') {\n this.params[keyOrObject] = value;\n } else {\n Object.keys(keyOrObject).map((key) => {\n this.params[key] = keyOrObject[key];\n });\n }\n }\n\n send(...[event, ...payload]: SendEventArguments): Promise<AnyEventResponse | void> {\n if (typeof this.client == 'undefined') {\n throw new Error(`You must call init before sending an event`);\n }\n\n if (!event) {\n throw new Error(`You must provide an event type when calling \"send\".`);\n }\n\n return this.client.sendEvent(event.toLowerCase(), ...(payload as VariableArgumentsPayload));\n }\n\n onLoad(callback: Function) {\n if (typeof callback == 'undefined') {\n throw new Error(`You must pass a function when you call 'onLoad'`);\n }\n\n callback();\n }\n\n provide(name: string, plugin: PluginClass) {\n this.plugins.provide(name, plugin);\n }\n\n require(name: string, options: Omit<PluginOptions, 'client'>) {\n if (!this.client) {\n throw new Error(`You must call init before requiring a plugin`);\n }\n this.plugins.require(name, {...options, client: this.client});\n }\n\n callPlugin(pluginName: string, fn: string, ...args: any): any {\n if (!this.client) {\n throw new Error(`You must call init before calling a plugin function`);\n }\n return this.plugins.execute(pluginName, fn, ...args);\n }\n\n reset() {\n this.client = undefined;\n this.plugins = new Plugins();\n this.params = {};\n }\n\n version(): string {\n return libVersion;\n }\n}\n\nexport const coveoua = new CoveoUA();\nexport const getCurrentClient = () => coveoua.client;\n\nexport const handleOneAnalyticsEvent = (command: string, ...params: any[]) => {\n const [, trackerName, pluginName, fn] = /^(?:(\\w+)\\.)?(?:(\\w+):)?(\\w+)$/.exec(command)!;\n\n const actionFunction = (<any>coveoua)[fn];\n if (pluginName && fn) {\n return coveoua.callPlugin(pluginName as string, fn, ...params);\n } else if (actionFunction) {\n return actionFunction.apply(coveoua, params);\n } else {\n const actions: AvailableActions[] = [\n 'init',\n 'set',\n 'send',\n 'onLoad',\n 'callPlugin',\n 'reset',\n 'require',\n 'provide',\n 'version',\n ];\n throw new Error(`The action \"${command}\" does not exist. Available actions: ${actions.join(', ')}.`);\n }\n};\n\nexport default handleOneAnalyticsEvent;\n","import {\n CategoryFacetMetadata,\n FacetBaseMeta,\n FacetMetadata,\n FacetRangeMetadata,\n FacetSortMeta,\n InterfaceChangeMetadata,\n PagerMetadata,\n QueryErrorMeta,\n ResultsSortMetadata,\n StaticFilterToggleValueMetadata,\n} from '../searchPage/searchPageEvents';\n\nexport enum InsightEvents {\n /**\n * Identifies the search event that gets logged when the query context is updated as a result of updating one of the case context fields.\n */\n contextChanged = 'contextChanged',\n /**\n * Identifies the event that gets logged when the user opens the full search page from the insight panel.\n */\n expandToFullUI = 'expandToFullUI',\n /**\n * Identifies the event that gets logged when the user opens the user actions section.\n */\n openUserActions = 'openUserActions',\n /**\n * Identifies the event that gets logged when the user clicks to view user action sessions preceding the ticket creation.\n */\n showPrecedingSessions = 'showPrecedingSessions',\n /**\n * Identifies the event that gets logged when the user clicks to view user action sessions following the ticket creation.\n */\n showFollowingSessions = 'showFollowingSessions',\n /**\n * Identifies the event that gets logged when the user clicks a viewed document link on the user actions timeline.\n */\n clickViewedDocument = 'clickViewedDocument',\n /**\n * Identifies the event that gets logged when the user clicks a viewed page link on the user actions timeline.\n */\n clickPageView = 'clickPageView',\n}\n\nexport interface CaseMetadata {\n caseId?: string;\n caseNumber?: string;\n caseContext?: Record<string, string>;\n}\n\nexport interface ExpandToFullUIMetadata extends CaseMetadata {\n fullSearchComponentName: string;\n triggeredBy: string;\n}\n\nexport interface UserActionsDocumentMetadata {\n title: string;\n uri: string;\n uriHash?: string;\n permanentId?: string;\n}\n\nexport interface UserActionsPageViewMetadata {\n title: string;\n contentIdKey: string;\n contentIdValue: string;\n}\n\nexport interface InsightInterfaceChangeMetadata extends InterfaceChangeMetadata, CaseMetadata {}\n\nexport interface InsightFacetMetadata extends FacetMetadata, CaseMetadata {}\n\nexport interface InsightStaticFilterToggleValueMetadata extends StaticFilterToggleValueMetadata, CaseMetadata {}\n\nexport interface InsightFacetRangeMetadata extends FacetRangeMetadata, CaseMetadata {}\n\nexport interface InsightCategoryFacetMetadata extends CategoryFacetMetadata, CaseMetadata {}\n\nexport interface InsightFacetSortMeta extends FacetSortMeta, CaseMetadata {}\n\nexport interface InsightFacetBaseMeta extends FacetBaseMeta, CaseMetadata {}\n\nexport interface InsightQueryErrorMeta extends QueryErrorMeta, CaseMetadata {}\n\nexport interface InsightPagerMetadata extends PagerMetadata, CaseMetadata {}\n\nexport interface InsightResultsSortMetadata extends ResultsSortMetadata, CaseMetadata {}\n","import {DocumentInformation, FacetStateRequest} from '../events';\nimport {InsightEvents} from '../insight/insightEvents';\n\nexport enum SearchPageEvents {\n /**\n * Identifies the search event that gets logged when the initial query is performed as a result of loading a search interface.\n */\n interfaceLoad = 'interfaceLoad',\n /**\n * Identifies the search event that gets logged when a new tab is selected in the search interface.\n */\n interfaceChange = 'interfaceChange',\n /**\n * Identifies the search event that gets logged when `enableAutoCorrection: true` and the query is automatically corrected.\n */\n didyoumeanAutomatic = 'didyoumeanAutomatic',\n /**\n * Identifies the search event that gets logged when the query suggestion with the corrected term is selected and successfully updates the query.\n */\n didyoumeanClick = 'didyoumeanClick',\n /**\n * Identifies the search event that gets logged when a sorting method is selected.\n */\n resultsSort = 'resultsSort',\n /**\n * Identifies the search event that gets logged when a submit button is selected on a search box.\n */\n searchboxSubmit = 'searchboxSubmit',\n /**\n * Identifies the search event that gets logged when a clear button is selected on a search box.\n */\n searchboxClear = 'searchboxClear',\n /**\n * The search-as-you-type event that gets logged when a query is automatically generated, and results are displayed while a user is entering text in the search box before they voluntarily submit the query.\n */\n searchboxAsYouType = 'searchboxAsYouType',\n /**\n * The event that gets logged when a breadcrumb facet is selected and the query is updated.\n */\n breadcrumbFacet = 'breadcrumbFacet',\n /**\n * Identifies the search event that gets logged when the event to clear the current breadcrumbs is triggered.\n */\n breadcrumbResetAll = 'breadcrumbResetAll',\n /**\n * Identifies the click event that gets logged when the Quick View element is selected and a Quick View modal of the document is displayed.\n */\n documentQuickview = 'documentQuickview',\n /**\n * Identifies the click event that gets logged when a user clicks on a search result to open an item.\n */\n documentOpen = 'documentOpen',\n /**\n * Identifies the search event that gets logged when a user clicks a query suggestion based on the usage analytics recorded queries.\n */\n omniboxAnalytics = 'omniboxAnalytics',\n /**\n * Identifies the search event that gets logged when a suggested search query is selected from a standalone searchbox.\n */\n omniboxFromLink = 'omniboxFromLink',\n /**\n * Identifies the search event that gets logged when the search page loads with a query, such as when a user clicks a link pointing to a search results page with a query or enters a query in a standalone search box that points to a search page.\n */\n searchFromLink = 'searchFromLink',\n /**\n * Identifies the custom event that gets logged when a user action triggers a notification set in the effective query pipeline on the search page.\n */\n triggerNotify = 'notify',\n /**\n * Identifies the custom event that gets logged when a user action executes a JavaScript function set in the effective query pipeline on the search page.\n */\n triggerExecute = 'execute',\n /**\n * Identifies the custom event that gets logged when a user action triggers a new query set in the effective query pipeline on the search page.\n */\n triggerQuery = 'query',\n /**\n * Identifies the custom event that gets logged when a user undoes a query set in the effective query pipeline on the search page.\n */\n undoTriggerQuery = 'undoQuery',\n /**\n * Identifies the custom event that gets logged when a user action redirects them to a URL set in the effective query pipeline on the search page.\n */\n triggerRedirect = 'redirect',\n /**\n * Identifies the custom event that gets logged when the Results per page component is selected.\n */\n pagerResize = 'pagerResize',\n /**\n * Identifies the custom event that gets logged when a page number is selected and more items are loaded.\n */\n pagerNumber = 'pagerNumber',\n /**\n * Identifies the custom event that gets logged when the Next Page link is selected and more items are loaded.\n */\n pagerNext = 'pagerNext',\n /**\n * Identifies the custom event that gets logged when the Previous Page link is selected and more items are loaded.\n */\n pagerPrevious = 'pagerPrevious',\n /**\n * Identifies the custom event that gets logged when the user scrolls to the bottom of the item page and more results are loaded.\n */\n pagerScrolling = 'pagerScrolling',\n /**\n * Identifies the search event that gets logged when the clearing all selected values of a static filter.\n */\n staticFilterClearAll = 'staticFilterClearAll',\n /**\n * Identifies the search event that gets logged when a static filter check box is selected and the query is updated.\n */\n staticFilterSelect = 'staticFilterSelect',\n /**\n * Identifies the search event that gets logged when a static filter check box is deselected and the query is updated.\n */\n staticFilterDeselect = 'staticFilterDeselect',\n /**\n * Identifies the search event that gets logged when the Clear Facet button is selected.\n */\n facetClearAll = 'facetClearAll',\n /**\n * Identifies the custom event that gets logged when a query is being typed into the facet search box.\n */\n facetSearch = 'facetSearch',\n /**\n * Identifies the search event that gets logged when a facet check box is selected and the query is updated.\n */\n facetSelect = 'facetSelect',\n /**\n * Identifies the search event that gets logged when all filters on a facet are selected.\n */\n facetSelectAll = 'facetSelectAll',\n /**\n * Identifies the search event that gets logged when a facet check box is deselected and the query is updated.\n */\n facetDeselect = 'facetDeselect',\n /**\n * Identifies the search event that gets logged when a user clicks a facet value to filter out results containing the facet value.\n */\n facetExclude = 'facetExclude',\n /**\n * Identifies the search event that gets logged when a user clicks a facet value to not filter out results containing the facet value.\n */\n facetUnexclude = 'facetUnexclude',\n /**\n * Identifies the search event that gets logged when the sort criteria on a facet is updated.\n */\n facetUpdateSort = 'facetUpdateSort',\n /**\n * The custom event that gets logged when an end-user expands a facet to see additional values.\n */\n facetShowMore = 'showMoreFacetResults',\n /**\n * The custom event that gets logged when an end-user collapses a facet to see less values.\n */\n facetShowLess = 'showLessFacetResults',\n /**\n * Identifies the custom event that gets logged when a user query encounters an error during execution.\n */\n queryError = 'query',\n /**\n * Identifies the search and custom event that gets logged when a user clicks the Go Back link after an error page.\n */\n queryErrorBack = 'errorBack',\n /**\n * Identifies the search and custom event that gets logged when a user clears the query box after an error page.\n */\n queryErrorClear = 'errorClearQuery',\n /**\n * Identifies the search and custom event that gets logged when a user clicks the Retry link after an error page.\n */\n queryErrorRetry = 'errorRetry',\n /**\n * Identifies the custom event that gets logged when a user performs a query that returns recommendations in the Recommendations panel.\n */\n recommendation = 'recommendation',\n /**\n * Identifies the search event that gets logged when a user action (that is not a query) reloads the Recommendations panel with new recommendations.\n */\n recommendationInterfaceLoad = 'recommendationInterfaceLoad',\n /**\n * Identifies the click event that gets logged when a user clicks a recommendation in the Recommendations panel.\n */\n recommendationOpen = 'recommendationOpen',\n /**\n * Identifies the custom event that gets logged when a user identifies a smart snippet answer as relevant.\n */\n likeSmartSnippet = 'likeSmartSnippet',\n /**\n * Identifies the custom event that gets logged when a user identifies a smart snippet answer as irrelevant.\n */\n dislikeSmartSnippet = 'dislikeSmartSnippet',\n /**\n * Identifies the custom event that gets logged when a user expand a smart snippet answer.\n */\n expandSmartSnippet = 'expandSmartSnippet',\n /**\n * Identifies the custom event that gets logged when a user collapse a smart snippet answer.\n */\n collapseSmartSnippet = 'collapseSmartSnippet',\n /**\n * Identifies the custom event that gets logged when a user open a smart snippet explanation modal for feedback.\n */\n openSmartSnippetFeedbackModal = 'openSmartSnippetFeedbackModal',\n /**\n * Identifies the custom event that gets logged when a user close a smart snippet explanation modal for feedback.\n */\n closeSmartSnippetFeedbackModal = 'closeSmartSnippetFeedbackModal',\n /**\n * Identifies the custom event that gets logged when a user sends an explanation for a smart snippet irrelevant answer.\n */\n sendSmartSnippetReason = 'sendSmartSnippetReason',\n /**\n * Identifies the custom event that gets logged when a snippet suggestion for a related question is expanded.\n */\n expandSmartSnippetSuggestion = 'expandSmartSnippetSuggestion',\n /**\n * Identifies the custom event that gets logged when a snippet suggestion for a related question is collapsed.\n */\n collapseSmartSnippetSuggestion = 'collapseSmartSnippetSuggestion',\n /**\n * Identifies the custom event that gets logged when the user presses \"show more\" on a snippet suggestion for a related question.\n *\n * @deprecated\n */\n showMoreSmartSnippetSuggestion = 'showMoreSmartSnippetSuggestion',\n /**\n * Identifies the custom event that gets logged when the user presses \"show less\" on a snippet suggestion for a related question.\n *\n * @deprecated\n */\n showLessSmartSnippetSuggestion = 'showLessSmartSnippetSuggestion',\n /**\n * Identifies the custom event that gets logged when a user clicks on the source of an answer in a smart snippet.\n */\n openSmartSnippetSource = 'openSmartSnippetSource',\n /**\n * Identifies the custom event that gets logged when a user clicks on the source of a snippet suggestion for a related question.\n */\n openSmartSnippetSuggestionSource = 'openSmartSnippetSuggestionSource',\n /**\n * Identifies the custom event that gets logged when a user clicks on a link in the answer of a smart snippet.\n */\n openSmartSnippetInlineLink = 'openSmartSnippetInlineLink',\n /**\n * Identifies the custom event that gets logged when a user clicks on a link in the snippet suggestion for a related question.\n */\n openSmartSnippetSuggestionInlineLink = 'openSmartSnippetSuggestionInlineLink',\n /**\n * Identifies the search event that gets logged when a recent queries list item gets clicked.\n */\n recentQueryClick = 'recentQueriesClick',\n /**\n * Identifies the custom event that gets logged when a recent queries list gets cleared.\n */\n clearRecentQueries = 'clearRecentQueries',\n /**\n * Identifies the custom event that gets logged when a recently clicked results list item gets clicked.\n */\n recentResultClick = 'recentResultClick',\n /**\n * Identifies the custom event that gets logged when a recently clicked results list gets cleared.\n */\n clearRecentResults = 'clearRecentResults',\n /**\n * Identifies the search event that gets logged when a user clicks the Cancel last action link when no results are returned following their last action.\n */\n noResultsBack = 'noResultsBack',\n /**\n * Identifies the click event that gets logged when a user clicks the Show More link under a search result that support the folding component.\n */\n showMoreFoldedResults = 'showMoreFoldedResults',\n /**\n * Identifies the custom event that gets logged when a user clicks the Show Less link under a search result that support the folding component.\n */\n showLessFoldedResults = 'showLessFoldedResults',\n /**\n * Identifies the click event that gets logged when a user clicks the Copy To Clipboard result action.\n */\n copyToClipboard = 'copyToClipboard',\n /**\n * Identifies the click event that gets logged when a user clicks the Send As Email result action.\n */\n caseSendEmail = 'Case.SendEmail',\n /**\n * Identifies the click event that gets logged when a user clicks the Post To Feed result action.\n */\n feedItemTextPost = 'FeedItem.TextPost',\n /**\n * Identifies the click event that gets logged when a user clicks the Attach To Case result action.\n */\n caseAttach = 'caseAttach',\n /**\n * Identifies the custom event that gets logged when a user clicks the Detach From Case result action.\n */\n caseDetach = 'caseDetach',\n /**\n * Identifies the cause of a search request being retried in order to regenerate an answer stream that failed.\n */\n retryGeneratedAnswer = 'retryGeneratedAnswer',\n /**\n * Identifies the custom event that gets logged when a user identifies a generated answer as relevant.\n */\n likeGeneratedAnswer = 'likeGeneratedAnswer',\n /**\n * Identifies the custom event that gets logged when a user identifies a generated answer as irrelevant.\n */\n dislikeGeneratedAnswer = 'dislikeGeneratedAnswer',\n /**\n * Identifies the custom event that gets logged when a user opens a generated answer citation.\n */\n openGeneratedAnswerSource = 'openGeneratedAnswerSource',\n /**\n * Identified the custom event that gets logged when a generated answer stream is completed.\n */\n generatedAnswerStreamEnd = 'generatedAnswerStreamEnd',\n /**\n * Identifies the custom event that gets logged when a user hovers over a generated answer citation.\n */\n generatedAnswerSourceHover = 'generatedAnswerSourceHover',\n /**\n * Identifies the custom event that gets logged when a user clicks the copy to clip board button of a generated answer.\n */\n generatedAnswerCopyToClipboard = 'generatedAnswerCopyToClipboard',\n /**\n * Identifies the custom event that gets logged when a user deactivates the genQA feature.\n */\n generatedAnswerHideAnswers = 'generatedAnswerHideAnswers',\n /**\n * Identifies the custom event that gets logged when a user activates the genQA feature.\n */\n generatedAnswerShowAnswers = 'generatedAnswerShowAnswers',\n /**\n * Identifies the custom event that gets logged when a user submits a feedback of a generated answer.\n */\n generatedAnswerFeedbackSubmit = 'generatedAnswerFeedbackSubmit',\n /**\n * Identifies the search event that gets logged when a user clicks the rephrase button in a generated answer.\n */\n rephraseGeneratedAnswer = 'rephraseGeneratedAnswer',\n}\n\nexport const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents, string>> = {\n [SearchPageEvents.triggerNotify]: 'queryPipelineTriggers',\n [SearchPageEvents.triggerExecute]: 'queryPipelineTriggers',\n [SearchPageEvents.triggerQuery]: 'queryPipelineTriggers',\n [SearchPageEvents.triggerRedirect]: 'queryPipelineTriggers',\n [SearchPageEvents.queryError]: 'errors',\n [SearchPageEvents.queryErrorBack]: 'errors',\n [SearchPageEvents.queryErrorClear]: 'errors',\n [SearchPageEvents.queryErrorRetry]: 'errors',\n [SearchPageEvents.pagerNext]: 'getMoreResults',\n [SearchPageEvents.pagerPrevious]: 'getMoreResults',\n [SearchPageEvents.pagerNumber]: 'getMoreResults',\n [SearchPageEvents.pagerResize]: 'getMoreResults',\n [SearchPageEvents.pagerScrolling]: 'getMoreResults',\n [SearchPageEvents.facetSearch]: 'facet',\n [SearchPageEvents.facetShowLess]: 'facet',\n [SearchPageEvents.facetShowMore]: 'facet',\n [SearchPageEvents.recommendation]: 'recommendation',\n [SearchPageEvents.likeSmartSnippet]: 'smartSnippet',\n [SearchPageEvents.dislikeSmartSnippet]: 'smartSnippet',\n [SearchPageEvents.expandSmartSnippet]: 'smartSnippet',\n [SearchPageEvents.collapseSmartSnippet]: 'smartSnippet',\n [SearchPageEvents.openSmartSnippetFeedbackModal]: 'smartSnippet',\n [SearchPageEvents.closeSmartSnippetFeedbackModal]: 'smartSnippet',\n [SearchPageEvents.sendSmartSnippetReason]: 'smartSnippet',\n [SearchPageEvents.expandSmartSnippetSuggestion]: 'smartSnippetSuggestions',\n [SearchPageEvents.collapseSmartSnippetSuggestion]: 'smartSnippetSuggestions',\n [SearchPageEvents.showMoreSmartSnippetSuggestion]: 'smartSnippetSuggestions',\n [SearchPageEvents.showLessSmartSnippetSuggestion]: 'smartSnippetSuggestions',\n [SearchPageEvents.clearRecentQueries]: 'recentQueries',\n [SearchPageEvents.recentResultClick]: 'recentlyClickedDocuments',\n [SearchPageEvents.clearRecentResults]: 'recentlyClickedDocuments',\n [SearchPageEvents.showLessFoldedResults]: 'folding',\n [InsightEvents.expandToFullUI]: 'interface',\n [InsightEvents.openUserActions]: 'User Actions',\n [InsightEvents.showPrecedingSessions]: 'User Actions',\n [InsightEvents.showFollowingSessions]: 'User Actions',\n [InsightEvents.clickViewedDocument]: 'User Actions',\n [InsightEvents.clickPageView]: 'User Actions',\n [SearchPageEvents.caseDetach]: 'case',\n [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',\n [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',\n [SearchPageEvents.openGeneratedAnswerSource]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerStreamEnd]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerSourceHover]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerCopyToClipboard]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerHideAnswers]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerShowAnswers]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerFeedbackSubmit]: 'generatedAnswer',\n};\n\nexport interface StaticFilterMetadata {\n staticFilterId: string;\n}\n\nexport interface StaticFilterToggleValueMetadata extends StaticFilterMetadata {\n staticFilterValue: StaticFilterValueMetadata;\n}\n\ninterface StaticFilterValueMetadata {\n caption: string;\n expression: string;\n}\n\nexport interface FacetMetadata {\n facetId: string;\n facetField: string;\n facetValue: string;\n facetTitle: string;\n}\n\nexport type FacetStateMetadata = FacetStateRequest;\nexport interface FacetRangeMetadata extends Omit<FacetMetadata, 'facetValue'> {\n facetRangeStart: string;\n facetRangeEnd: string;\n facetRangeEndInclusive: boolean;\n}\n\nexport interface CategoryFacetMetadata {\n categoryFacetId: string;\n categoryFacetField: string;\n categoryFacetPath: string[];\n categoryFacetTitle: string;\n}\n\nexport interface OmniboxSuggestionsMetadata {\n suggestionRanking: number;\n partialQueries: string | string[];\n suggestions: string | string[];\n partialQuery: string;\n querySuggestResponseId: string;\n}\n\nexport interface DocumentIdentifier {\n contentIDKey: string;\n contentIDValue: string;\n}\n\nexport interface InterfaceChangeMetadata {\n interfaceChangeTo: string;\n}\n\nexport interface ResultsSortMetadata {\n resultsSortBy: string;\n}\n\nexport interface TriggerNotifyMetadata {\n notifications: string[];\n}\n\nexport interface TriggerExecution {\n functionName: string;\n params: (string | number | boolean)[];\n}\n\nexport interface TriggerExecuteMetadata {\n executions: TriggerExecution[];\n}\n\nexport interface UndoTriggerRedirectMetadata {\n undoneQuery: string;\n}\n\nexport interface TriggerRedirectMetadata {\n redirectedTo: string;\n}\n\nexport interface PagerResizeMetadata {\n currentResultsPerPage: number;\n}\n\nexport interface PagerMetadata {\n pagerNumber: number;\n}\n\nexport interface FacetBaseMeta {\n facetId: string;\n facetField: string;\n facetTitle: string;\n}\n\nexport interface FacetMetadata extends FacetBaseMeta {\n facetValue: string;\n}\n\nexport interface FacetRangeMetadata extends FacetBaseMeta {\n facetRangeStart: string;\n facetRangeEnd: string;\n}\n\nexport interface FacetSortMeta extends FacetBaseMeta {\n criteria: string;\n}\n\nexport interface QueryErrorMeta {\n query: string;\n aq: string;\n cq: string;\n dq: string;\n errorType: string;\n errorMessage: string;\n}\n\nexport type SmartSnippetFeedbackReason = 'does_not_answer' | 'partially_answers' | 'was_not_a_question' | 'other';\n\nexport interface SmartSnippetSuggestionMeta {\n question: string;\n answerSnippet: string;\n documentId: SmartSnippetDocumentIdentifier;\n}\n\nexport interface SmartSnippetLinkMeta {\n linkText: string;\n linkURL: string;\n}\n\nexport interface SmartSnippetDocumentIdentifier {\n contentIdKey: string;\n contentIdValue: string;\n}\n\nexport type PartialDocumentInformation = Omit<DocumentInformation, 'actionCause' | 'searchQueryUid'>;\n\nexport interface GeneratedAnswerBaseMeta {\n generativeQuestionAnsweringId: string;\n}\n\nexport interface GeneratedAnswerStreamEndMeta extends GeneratedAnswerBaseMeta {\n answerGenerated: boolean;\n}\n\nexport interface GeneratedAnswerCitationMeta {\n generativeQuestionAnsweringId: string;\n permanentId: string;\n citationId: string;\n}\n\nexport type GeneratedAnswerFeedbackReason = 'irrelevant' | 'notAccurate' | 'outOfDate' | 'harmful' | 'other';\n\nexport type GeneratedAnswerRephraseFormat = 'step' | 'bullet' | 'concise' | 'default';\n\nexport interface GeneratedAnswerSourceHoverMeta extends GeneratedAnswerCitationMeta {\n citationHoverTimeMs: number;\n}\n\nexport interface GeneratedAnswerRephraseMeta extends GeneratedAnswerBaseMeta {\n rephraseFormat: GeneratedAnswerRephraseFormat;\n}\n\nexport interface GeneratedAnswerFeedbackMeta extends GeneratedAnswerBaseMeta {\n reason: GeneratedAnswerFeedbackReason;\n details?: string;\n}\n","import {AnalyticsClient, PreparedEvent} from './analytics';\nimport {\n AnyEventResponse,\n SearchEventResponse,\n ClickEventResponse,\n CustomEventResponse,\n VisitResponse,\n HealthResponse,\n ViewEventResponse,\n EventType,\n PreparedSearchEventRequest,\n SearchEventRequest,\n ClickEventRequest,\n CustomEventRequest,\n PreparedClickEventRequest,\n PreparedCustomEventRequest,\n PreparedViewEventRequest,\n ViewEventRequest,\n} from '../events';\nimport {libVersion} from '../version';\nimport {NoopRuntime} from './runtimeEnvironment';\n\nexport class NoopAnalytics implements AnalyticsClient {\n getPayload(): Promise<any> {\n return Promise.resolve();\n }\n getParameters(): Promise<any> {\n return Promise.resolve();\n }\n makeEvent<TPreparedRequest, TCompleteRequest, TResponse extends AnyEventResponse>(\n eventType: EventType | string\n ): Promise<PreparedEvent<TPreparedRequest, TCompleteRequest, TResponse>> {\n return Promise.resolve({eventType: eventType as EventType, payload: null, log: () => Promise.resolve()});\n }\n sendEvent(): Promise<AnyEventResponse | void> {\n return Promise.resolve();\n }\n makeSearchEvent() {\n return this.makeEvent<PreparedSearchEventRequest, SearchEventRequest, SearchEventResponse>(EventType.search);\n }\n sendSearchEvent(): Promise<SearchEventResponse | void> {\n return Promise.resolve();\n }\n makeClickEvent() {\n return this.makeEvent<PreparedClickEventRequest, ClickEventRequest, ClickEventResponse>(EventType.click);\n }\n sendClickEvent(): Promise<ClickEventResponse | void> {\n return Promise.resolve();\n }\n makeCustomEvent() {\n return this.makeEvent<PreparedCustomEventRequest, CustomEventRequest, CustomEventResponse>(EventType.custom);\n }\n sendCustomEvent(): Promise<CustomEventResponse | void> {\n return Promise.resolve();\n }\n makeViewEvent() {\n return this.makeEvent<PreparedViewEventRequest, ViewEventRequest, ViewEventResponse>(EventType.view);\n }\n sendViewEvent(): Promise<ViewEventResponse | void> {\n return Promise.resolve();\n }\n getVisit(): Promise<VisitResponse> {\n return Promise.resolve({id: '', visitorId: ''});\n }\n getHealth(): Promise<HealthResponse> {\n return Promise.resolve({status: ''});\n }\n registerBeforeSendEventHook(): void {}\n registerAfterSendEventHook(): void {}\n addEventTypeMapping(): void {}\n runtime = new NoopRuntime();\n public get version(): string {\n return libVersion;\n }\n currentVisitorId = '';\n}\n","function filterConsecutiveRepeatedValues(rawData: string[]) {\n let prev = '';\n return rawData.filter((value) => {\n const isDifferent = value !== prev;\n prev = value;\n return isDifferent;\n });\n}\n\nfunction removeSemicolons(rawData: string[]) {\n return rawData.map((value) => {\n return value.replace(/;/g, '');\n });\n}\n\nfunction getDataString(data: string[]): string {\n const ANALYTICS_LENGTH_LIMIT = 256;\n\n const formattedData = data.join(';');\n if (formattedData.length <= ANALYTICS_LENGTH_LIMIT) {\n return formattedData;\n }\n return getDataString(data.slice(1));\n}\n\nexport const formatArrayForCoveoCustomData = (rawData: string[]): string => {\n const dataWithoutSemicolons = removeSemicolons(rawData);\n const dataWithoutRepeatedValues = filterConsecutiveRepeatedValues(dataWithoutSemicolons);\n\n return getDataString(dataWithoutRepeatedValues);\n};\n","import {OmniboxSuggestionsMetadata} from '../searchPage/searchPageEvents';\nimport {formatArrayForCoveoCustomData} from './format-array-for-coveo-custom-data';\n\nexport function formatOmniboxMetadata(meta: OmniboxSuggestionsMetadata): OmniboxSuggestionsMetadata {\n const partialQueries =\n typeof meta.partialQueries === 'string'\n ? meta.partialQueries\n : formatArrayForCoveoCustomData(meta.partialQueries);\n const suggestions =\n typeof meta.suggestions === 'string' ? meta.suggestions : formatArrayForCoveoCustomData(meta.suggestions);\n\n return {\n ...meta,\n partialQueries,\n suggestions,\n };\n}\n","import CoveoAnalyticsClient, {ClientOptions, AnalyticsClient, PreparedEvent} from '../client/analytics';\nimport {\n SearchEventRequest,\n CustomEventRequest,\n SearchEventResponse,\n AnyEventResponse,\n ClickEventResponse,\n CustomEventResponse,\n PreparedClickEventRequest,\n PreparedSearchEventRequest,\n} from '../events';\nimport {\n SearchPageEvents,\n OmniboxSuggestionsMetadata,\n FacetMetadata,\n FacetRangeMetadata,\n CategoryFacetMetadata,\n DocumentIdentifier,\n InterfaceChangeMetadata,\n ResultsSortMetadata,\n PartialDocumentInformation,\n CustomEventsTypes,\n TriggerNotifyMetadata,\n TriggerExecuteMetadata,\n TriggerRedirectMetadata,\n PagerResizeMetadata,\n PagerMetadata,\n FacetBaseMeta,\n FacetSortMeta,\n QueryErrorMeta,\n FacetStateMetadata,\n SmartSnippetFeedbackReason,\n SmartSnippetSuggestionMeta,\n SmartSnippetDocumentIdentifier,\n StaticFilterMetadata,\n StaticFilterToggleValueMetadata,\n UndoTriggerRedirectMetadata,\n SmartSnippetLinkMeta,\n GeneratedAnswerFeedbackMeta,\n GeneratedAnswerCitationMeta,\n GeneratedAnswerStreamEndMeta,\n GeneratedAnswerSourceHoverMeta,\n GeneratedAnswerBaseMeta,\n GeneratedAnswerRephraseMeta,\n} from './searchPageEvents';\nimport {NoopAnalytics} from '../client/noopAnalytics';\nimport {formatOmniboxMetadata} from '../formatting/format-omnibox-metadata';\nimport doNotTrack from '../donottrack';\n\nexport interface SearchPageClientProvider {\n getBaseMetadata: () => Record<string, any>;\n getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;\n getSearchUID: () => string;\n getPipeline: () => string;\n getOriginContext?: () => string;\n getOriginLevel1: () => string;\n getOriginLevel2: () => string;\n getOriginLevel3: () => string;\n getLanguage: () => string;\n getIsAnonymous: () => boolean;\n getFacetState?: () => FacetStateMetadata[];\n getSplitTestRunName?: () => string | undefined;\n getSplitTestRunVersion?: () => string | undefined;\n getGeneratedAnswerMetadata?: () => Record<string, any>;\n}\n\nexport interface SearchPageClientOptions extends ClientOptions {\n enableAnalytics: boolean;\n}\n\nexport type EventDescription = Pick<SearchEventRequest, 'actionCause' | 'customData'>;\n\nexport interface EventBuilder<T extends AnyEventResponse = AnyEventResponse> {\n description: EventDescription;\n log(metadata: {searchUID: string}): Promise<T | void>;\n}\n\nexport class CoveoSearchPageClient {\n public coveoAnalyticsClient: AnalyticsClient;\n\n constructor(private opts: Partial<SearchPageClientOptions>, private provider: SearchPageClientProvider) {\n const shouldDisableAnalytics = opts.enableAnalytics === false || doNotTrack();\n this.coveoAnalyticsClient = shouldDisableAnalytics ? new NoopAnalytics() : new CoveoAnalyticsClient(opts);\n }\n\n public disable() {\n if (this.coveoAnalyticsClient instanceof CoveoAnalyticsClient) {\n this.coveoAnalyticsClient.clear();\n }\n\n this.coveoAnalyticsClient = new NoopAnalytics();\n }\n\n public enable() {\n this.coveoAnalyticsClient = new CoveoAnalyticsClient(this.opts);\n }\n\n public makeInterfaceLoad() {\n return this.makeSearchEvent(SearchPageEvents.interfaceLoad);\n }\n\n public async logInterfaceLoad() {\n return (await this.makeInterfaceLoad()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRecommendationInterfaceLoad() {\n return this.makeSearchEvent(SearchPageEvents.recommendationInterfaceLoad);\n }\n\n public async logRecommendationInterfaceLoad() {\n return (await this.makeRecommendationInterfaceLoad()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRecommendation() {\n return this.makeCustomEvent(SearchPageEvents.recommendation);\n }\n\n public async logRecommendation() {\n return (await this.makeRecommendation()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRecommendationOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.recommendationOpen, info, identifier);\n }\n\n public async logRecommendationOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeRecommendationOpen(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeStaticFilterClearAll(meta: StaticFilterMetadata) {\n return this.makeSearchEvent(SearchPageEvents.staticFilterClearAll, meta);\n }\n\n public async logStaticFilterClearAll(meta: StaticFilterMetadata) {\n return (await this.makeStaticFilterClearAll(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeStaticFilterSelect(meta: StaticFilterToggleValueMetadata) {\n return this.makeSearchEvent(SearchPageEvents.staticFilterSelect, meta);\n }\n\n public async logStaticFilterSelect(meta: StaticFilterToggleValueMetadata) {\n return (await this.makeStaticFilterSelect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeStaticFilterDeselect(meta: StaticFilterToggleValueMetadata) {\n return this.makeSearchEvent(SearchPageEvents.staticFilterDeselect, meta);\n }\n\n public async logStaticFilterDeselect(meta: StaticFilterToggleValueMetadata) {\n return (await this.makeStaticFilterDeselect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFetchMoreResults() {\n return this.makeCustomEvent(SearchPageEvents.pagerScrolling, {type: 'getMoreResults'});\n }\n\n public async logFetchMoreResults() {\n return (await this.makeFetchMoreResults()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeInterfaceChange(metadata: InterfaceChangeMetadata) {\n return this.makeSearchEvent(SearchPageEvents.interfaceChange, metadata);\n }\n\n public async logInterfaceChange(metadata: InterfaceChangeMetadata) {\n return (await this.makeInterfaceChange(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDidYouMeanAutomatic() {\n return this.makeSearchEvent(SearchPageEvents.didyoumeanAutomatic);\n }\n\n public async logDidYouMeanAutomatic() {\n return (await this.makeDidYouMeanAutomatic()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDidYouMeanClick() {\n return this.makeSearchEvent(SearchPageEvents.didyoumeanClick);\n }\n\n public async logDidYouMeanClick() {\n return (await this.makeDidYouMeanClick()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeResultsSort(metadata: ResultsSortMetadata) {\n return this.makeSearchEvent(SearchPageEvents.resultsSort, metadata);\n }\n\n public async logResultsSort(metadata: ResultsSortMetadata) {\n return (await this.makeResultsSort(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSearchboxSubmit() {\n return this.makeSearchEvent(SearchPageEvents.searchboxSubmit);\n }\n\n public async logSearchboxSubmit() {\n return (await this.makeSearchboxSubmit()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSearchboxClear() {\n return this.makeSearchEvent(SearchPageEvents.searchboxClear);\n }\n\n public async logSearchboxClear() {\n return (await this.makeSearchboxClear()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSearchboxAsYouType() {\n return this.makeSearchEvent(SearchPageEvents.searchboxAsYouType);\n }\n\n public async logSearchboxAsYouType() {\n return (await this.makeSearchboxAsYouType()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeBreadcrumbFacet(metadata: FacetMetadata | FacetRangeMetadata | CategoryFacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.breadcrumbFacet, metadata);\n }\n\n public async logBreadcrumbFacet(metadata: FacetMetadata | FacetRangeMetadata | CategoryFacetMetadata) {\n return (await this.makeBreadcrumbFacet(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeBreadcrumbResetAll() {\n return this.makeSearchEvent(SearchPageEvents.breadcrumbResetAll);\n }\n\n public async logBreadcrumbResetAll() {\n return (await this.makeBreadcrumbResetAll()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDocumentQuickview(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.documentQuickview, info, identifier);\n }\n\n public async logDocumentQuickview(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeDocumentQuickview(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.documentOpen, info, identifier);\n }\n\n public async logDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeDocumentOpen(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOmniboxAnalytics(meta: OmniboxSuggestionsMetadata) {\n return this.makeSearchEvent(SearchPageEvents.omniboxAnalytics, formatOmniboxMetadata(meta));\n }\n\n public async logOmniboxAnalytics(meta: OmniboxSuggestionsMetadata) {\n return (await this.makeOmniboxAnalytics(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOmniboxFromLink(meta: OmniboxSuggestionsMetadata) {\n return this.makeSearchEvent(SearchPageEvents.omniboxFromLink, formatOmniboxMetadata(meta));\n }\n\n public async logOmniboxFromLink(meta: OmniboxSuggestionsMetadata) {\n return (await this.makeOmniboxFromLink(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSearchFromLink() {\n return this.makeSearchEvent(SearchPageEvents.searchFromLink);\n }\n\n public async logSearchFromLink() {\n return (await this.makeSearchFromLink()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeTriggerNotify(meta: TriggerNotifyMetadata) {\n return this.makeCustomEvent(SearchPageEvents.triggerNotify, meta);\n }\n\n public async logTriggerNotify(meta: TriggerNotifyMetadata) {\n return (await this.makeTriggerNotify(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeTriggerExecute(meta: TriggerExecuteMetadata) {\n return this.makeCustomEvent(SearchPageEvents.triggerExecute, meta);\n }\n\n public async logTriggerExecute(meta: TriggerExecuteMetadata) {\n return (await this.makeTriggerExecute(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeTriggerQuery() {\n return this.makeCustomEvent(\n SearchPageEvents.triggerQuery,\n {query: this.provider.getSearchEventRequestPayload().queryText},\n 'queryPipelineTriggers'\n );\n }\n\n public async logTriggerQuery() {\n return (await this.makeTriggerQuery()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeUndoTriggerQuery(meta: UndoTriggerRedirectMetadata) {\n return this.makeSearchEvent(SearchPageEvents.undoTriggerQuery, meta);\n }\n\n public async logUndoTriggerQuery(meta: UndoTriggerRedirectMetadata) {\n return (await this.makeUndoTriggerQuery(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeTriggerRedirect(meta: TriggerRedirectMetadata) {\n return this.makeCustomEvent(SearchPageEvents.triggerRedirect, {\n ...meta,\n query: this.provider.getSearchEventRequestPayload().queryText,\n });\n }\n\n public async logTriggerRedirect(meta: TriggerRedirectMetadata) {\n return (await this.makeTriggerRedirect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerResize(meta: PagerResizeMetadata) {\n return this.makeCustomEvent(SearchPageEvents.pagerResize, meta);\n }\n\n public async logPagerResize(meta: PagerResizeMetadata) {\n return (await this.makePagerResize(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerNumber(meta: PagerMetadata) {\n return this.makeCustomEvent(SearchPageEvents.pagerNumber, meta);\n }\n\n public async logPagerNumber(meta: PagerMetadata) {\n return (await this.makePagerNumber(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerNext(meta: PagerMetadata) {\n return this.makeCustomEvent(SearchPageEvents.pagerNext, meta);\n }\n\n public async logPagerNext(meta: PagerMetadata) {\n return (await this.makePagerNext(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerPrevious(meta: PagerMetadata) {\n return this.makeCustomEvent(SearchPageEvents.pagerPrevious, meta);\n }\n\n public async logPagerPrevious(meta: PagerMetadata) {\n return (await this.makePagerPrevious(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerScrolling() {\n return this.makeCustomEvent(SearchPageEvents.pagerScrolling);\n }\n\n public async logPagerScrolling() {\n return (await this.makePagerScrolling()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetClearAll(meta: FacetBaseMeta) {\n return this.makeSearchEvent(SearchPageEvents.facetClearAll, meta);\n }\n\n public async logFacetClearAll(meta: FacetBaseMeta) {\n return (await this.makeFacetClearAll(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetSearch(meta: FacetBaseMeta) {\n return this.makeSearchEvent(SearchPageEvents.facetSearch, meta);\n }\n\n public async logFacetSearch(meta: FacetBaseMeta) {\n return (await this.makeFacetSearch(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetSelect(meta: FacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.facetSelect, meta);\n }\n\n public async logFacetSelect(meta: FacetMetadata) {\n return (await this.makeFacetSelect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetDeselect(meta: FacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.facetDeselect, meta);\n }\n\n public async logFacetDeselect(meta: FacetMetadata) {\n return (await this.makeFacetDeselect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetExclude(meta: FacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.facetExclude, meta);\n }\n\n public async logFacetExclude(meta: FacetMetadata) {\n return (await this.makeFacetExclude(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetUnexclude(meta: FacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.facetUnexclude, meta);\n }\n\n public async logFacetUnexclude(meta: FacetMetadata) {\n return (await this.makeFacetUnexclude(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetSelectAll(meta: FacetBaseMeta) {\n return this.makeSearchEvent(SearchPageEvents.facetSelectAll, meta);\n }\n\n public async logFacetSelectAll(meta: FacetBaseMeta) {\n return (await this.makeFacetSelectAll(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetUpdateSort(meta: FacetSortMeta) {\n return this.makeSearchEvent(SearchPageEvents.facetUpdateSort, meta);\n }\n\n public async logFacetUpdateSort(meta: FacetSortMeta) {\n return (await this.makeFacetUpdateSort(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetShowMore(meta: FacetBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.facetShowMore, meta);\n }\n\n public async logFacetShowMore(meta: FacetBaseMeta) {\n return (await this.makeFacetShowMore(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetShowLess(meta: FacetBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.facetShowLess, meta);\n }\n\n public async logFacetShowLess(meta: FacetBaseMeta) {\n return (await this.makeFacetShowLess(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeQueryError(meta: QueryErrorMeta) {\n return this.makeCustomEvent(SearchPageEvents.queryError, meta);\n }\n\n public async logQueryError(meta: QueryErrorMeta) {\n return (await this.makeQueryError(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeQueryErrorBack(): Promise<EventBuilder<SearchEventResponse>> {\n const customEventBuilder = await this.makeCustomEvent(SearchPageEvents.queryErrorBack);\n return {\n description: customEventBuilder.description,\n log: async () => {\n await customEventBuilder.log({searchUID: this.provider.getSearchUID()});\n return this.logSearchEvent(SearchPageEvents.queryErrorBack);\n },\n };\n }\n\n public async logQueryErrorBack() {\n return (await this.makeQueryErrorBack()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeQueryErrorRetry(): Promise<EventBuilder<SearchEventResponse>> {\n const customEventBuilder = await this.makeCustomEvent(SearchPageEvents.queryErrorRetry);\n return {\n description: customEventBuilder.description,\n log: async () => {\n await customEventBuilder.log({searchUID: this.provider.getSearchUID()});\n return this.logSearchEvent(SearchPageEvents.queryErrorRetry);\n },\n };\n }\n\n public async logQueryErrorRetry() {\n return (await this.makeQueryErrorRetry()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeQueryErrorClear(): Promise<EventBuilder<SearchEventResponse>> {\n const customEventBuilder = await this.makeCustomEvent(SearchPageEvents.queryErrorClear);\n return {\n description: customEventBuilder.description,\n log: async () => {\n await customEventBuilder.log({searchUID: this.provider.getSearchUID()});\n return this.logSearchEvent(SearchPageEvents.queryErrorClear);\n },\n };\n }\n\n public async logQueryErrorClear() {\n return (await this.makeQueryErrorClear()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeLikeSmartSnippet() {\n return this.makeCustomEvent(SearchPageEvents.likeSmartSnippet);\n }\n\n public async logLikeSmartSnippet() {\n return (await this.makeLikeSmartSnippet()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDislikeSmartSnippet() {\n return this.makeCustomEvent(SearchPageEvents.dislikeSmartSnippet);\n }\n\n public async logDislikeSmartSnippet() {\n return (await this.makeDislikeSmartSnippet()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeExpandSmartSnippet() {\n return this.makeCustomEvent(SearchPageEvents.expandSmartSnippet);\n }\n\n public async logExpandSmartSnippet() {\n return (await this.makeExpandSmartSnippet()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeCollapseSmartSnippet() {\n return this.makeCustomEvent(SearchPageEvents.collapseSmartSnippet);\n }\n\n public async logCollapseSmartSnippet() {\n return (await this.makeCollapseSmartSnippet()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOpenSmartSnippetFeedbackModal() {\n return this.makeCustomEvent(SearchPageEvents.openSmartSnippetFeedbackModal);\n }\n\n public async logOpenSmartSnippetFeedbackModal() {\n return (await this.makeOpenSmartSnippetFeedbackModal()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeCloseSmartSnippetFeedbackModal() {\n return this.makeCustomEvent(SearchPageEvents.closeSmartSnippetFeedbackModal);\n }\n\n public async logCloseSmartSnippetFeedbackModal() {\n return (await this.makeCloseSmartSnippetFeedbackModal()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSmartSnippetFeedbackReason(reason: SmartSnippetFeedbackReason, details?: string) {\n return this.makeCustomEvent(SearchPageEvents.sendSmartSnippetReason, {reason, details});\n }\n\n public async logSmartSnippetFeedbackReason(reason: SmartSnippetFeedbackReason, details?: string) {\n return (await this.makeSmartSnippetFeedbackReason(reason, details)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeExpandSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier) {\n return this.makeCustomEvent(\n SearchPageEvents.expandSmartSnippetSuggestion,\n 'documentId' in snippet ? snippet : {documentId: snippet}\n );\n }\n\n public async logExpandSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier) {\n return (await this.makeExpandSmartSnippetSuggestion(snippet)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeCollapseSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier) {\n return this.makeCustomEvent(\n SearchPageEvents.collapseSmartSnippetSuggestion,\n 'documentId' in snippet ? snippet : {documentId: snippet}\n );\n }\n\n public async logCollapseSmartSnippetSuggestion(\n snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier\n ) {\n return (await this.makeCollapseSmartSnippetSuggestion(snippet)).log({searchUID: this.provider.getSearchUID()});\n }\n\n /**\n * @deprecated\n */\n private makeShowMoreSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta) {\n return this.makeCustomEvent(SearchPageEvents.showMoreSmartSnippetSuggestion, snippet);\n }\n\n /**\n * @deprecated\n */\n public async logShowMoreSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta) {\n return (await this.makeShowMoreSmartSnippetSuggestion(snippet)).log({searchUID: this.provider.getSearchUID()});\n }\n\n /**\n * @deprecated\n */\n private makeShowLessSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta) {\n return this.makeCustomEvent(SearchPageEvents.showLessSmartSnippetSuggestion, snippet);\n }\n\n /**\n * @deprecated\n */\n public async logShowLessSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta) {\n return (await this.makeShowLessSmartSnippetSuggestion(snippet)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOpenSmartSnippetSource(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.openSmartSnippetSource, info, identifier);\n }\n\n public async logOpenSmartSnippetSource(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeOpenSmartSnippetSource(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOpenSmartSnippetSuggestionSource(info: PartialDocumentInformation, snippet: SmartSnippetSuggestionMeta) {\n return this.makeClickEvent(\n SearchPageEvents.openSmartSnippetSuggestionSource,\n info,\n {contentIDKey: snippet.documentId.contentIdKey, contentIDValue: snippet.documentId.contentIdValue},\n snippet\n );\n }\n\n public makeCopyToClipboard(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.copyToClipboard, info, identifier);\n }\n\n public async logCopyToClipboard(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeCopyToClipboard(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async logOpenSmartSnippetSuggestionSource(\n info: PartialDocumentInformation,\n snippet: SmartSnippetSuggestionMeta\n ) {\n return (await this.makeOpenSmartSnippetSuggestionSource(info, snippet)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeOpenSmartSnippetInlineLink(\n info: PartialDocumentInformation,\n identifierAndLink: DocumentIdentifier & SmartSnippetLinkMeta\n ) {\n return this.makeClickEvent(\n SearchPageEvents.openSmartSnippetInlineLink,\n info,\n {contentIDKey: identifierAndLink.contentIDKey, contentIDValue: identifierAndLink.contentIDValue},\n identifierAndLink\n );\n }\n\n public async logOpenSmartSnippetInlineLink(\n info: PartialDocumentInformation,\n identifierAndLink: DocumentIdentifier & SmartSnippetLinkMeta\n ) {\n return (await this.makeOpenSmartSnippetInlineLink(info, identifierAndLink)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeOpenSmartSnippetSuggestionInlineLink(\n info: PartialDocumentInformation,\n snippetAndLink: SmartSnippetSuggestionMeta & SmartSnippetLinkMeta\n ) {\n return this.makeClickEvent(\n SearchPageEvents.openSmartSnippetSuggestionInlineLink,\n info,\n {\n contentIDKey: snippetAndLink.documentId.contentIdKey,\n contentIDValue: snippetAndLink.documentId.contentIdValue,\n },\n snippetAndLink\n );\n }\n\n public async logOpenSmartSnippetSuggestionInlineLink(\n info: PartialDocumentInformation,\n snippetAndLink: SmartSnippetSuggestionMeta & SmartSnippetLinkMeta\n ) {\n return (await this.makeOpenSmartSnippetSuggestionInlineLink(info, snippetAndLink)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeRecentQueryClick() {\n return this.makeSearchEvent(SearchPageEvents.recentQueryClick);\n }\n\n public async logRecentQueryClick() {\n return (await this.makeRecentQueryClick()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeClearRecentQueries() {\n return this.makeCustomEvent(SearchPageEvents.clearRecentQueries);\n }\n\n public async logClearRecentQueries() {\n return (await this.makeClearRecentQueries()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRecentResultClick(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeCustomEvent(SearchPageEvents.recentResultClick, {info, identifier});\n }\n\n public async logRecentResultClick(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeRecentResultClick(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeClearRecentResults() {\n return this.makeCustomEvent(SearchPageEvents.clearRecentResults);\n }\n\n public async logClearRecentResults() {\n return (await this.makeClearRecentResults()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeNoResultsBack() {\n return this.makeSearchEvent(SearchPageEvents.noResultsBack);\n }\n\n public async logNoResultsBack() {\n return (await this.makeNoResultsBack()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeShowMoreFoldedResults(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.showMoreFoldedResults, info, identifier);\n }\n\n public async logShowMoreFoldedResults(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeShowMoreFoldedResults(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeShowLessFoldedResults() {\n return this.makeCustomEvent(SearchPageEvents.showLessFoldedResults);\n }\n\n public async logShowLessFoldedResults() {\n return (await this.makeShowLessFoldedResults()).log({searchUID: this.provider.getSearchUID()});\n }\n\n private makeEventDescription(\n preparedEvent: PreparedEvent<unknown, unknown, AnyEventResponse>,\n actionCause: SearchPageEvents\n ): EventDescription {\n return {actionCause, customData: preparedEvent.payload?.customData};\n }\n\n public async makeCustomEvent(\n event: SearchPageEvents,\n metadata?: Record<string, any>,\n eventType: string = CustomEventsTypes[event]!\n ): Promise<EventBuilder<CustomEventResponse>> {\n this.coveoAnalyticsClient.getParameters;\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n const request: CustomEventRequest = {\n ...(await this.getBaseEventRequest(customData)),\n eventType,\n eventValue: event,\n };\n const preparedEvent = await this.coveoAnalyticsClient.makeCustomEvent(request);\n return {\n description: this.makeEventDescription(preparedEvent, event),\n log: ({searchUID}) => preparedEvent.log({lastSearchQueryUid: searchUID}),\n };\n }\n\n public async logCustomEvent(\n event: SearchPageEvents,\n metadata?: Record<string, any>,\n eventType: string = CustomEventsTypes[event]!\n ) {\n return (await this.makeCustomEvent(event, metadata, eventType)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeCustomEventWithType(\n eventValue: string,\n eventType: string,\n metadata?: Record<string, any>\n ): Promise<EventBuilder<CustomEventResponse>> {\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n const payload: CustomEventRequest = {\n ...(await this.getBaseEventRequest(customData)),\n eventType,\n eventValue,\n };\n const preparedEvent = await this.coveoAnalyticsClient.makeCustomEvent(payload);\n return {\n description: this.makeEventDescription(preparedEvent, eventValue as SearchPageEvents),\n log: ({searchUID}) => preparedEvent.log({lastSearchQueryUid: searchUID}),\n };\n }\n\n public async logCustomEventWithType(eventValue: string, eventType: string, metadata?: Record<string, any>) {\n return (await this.makeCustomEventWithType(eventValue, eventType, metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public async logSearchEvent(event: SearchPageEvents, metadata?: Record<string, any>) {\n return (await this.makeSearchEvent(event, metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeSearchEvent(\n event: SearchPageEvents,\n metadata?: Record<string, any>\n ): Promise<EventBuilder<SearchEventResponse>> {\n const request = await this.getBaseSearchEventRequest(event, metadata);\n const preparedEvent = await this.coveoAnalyticsClient.makeSearchEvent(request);\n return {\n description: this.makeEventDescription(preparedEvent, event),\n log: ({searchUID}) => preparedEvent.log({searchQueryUid: searchUID}),\n };\n }\n\n public async makeClickEvent(\n event: SearchPageEvents,\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: Record<string, any>\n ): Promise<EventBuilder<ClickEventResponse>> {\n const request: PreparedClickEventRequest = {\n ...info,\n ...(await this.getBaseEventRequest({...identifier, ...metadata})),\n queryPipeline: this.provider.getPipeline(),\n actionCause: event,\n };\n const preparedEvent = await this.coveoAnalyticsClient.makeClickEvent(request);\n return {\n description: this.makeEventDescription(preparedEvent, event),\n log: ({searchUID}) => preparedEvent.log({searchQueryUid: searchUID}),\n };\n }\n\n public async logClickEvent(\n event: SearchPageEvents,\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: Record<string, any>\n ) {\n return (await this.makeClickEvent(event, info, identifier, metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n private async getBaseSearchEventRequest(\n event: SearchPageEvents,\n metadata?: Record<string, any>\n ): Promise<PreparedSearchEventRequest> {\n return {\n ...(await this.getBaseEventRequest({...metadata, ...this.provider.getGeneratedAnswerMetadata?.()})),\n ...this.provider.getSearchEventRequestPayload(),\n queryPipeline: this.provider.getPipeline(),\n actionCause: event,\n };\n }\n\n private async getBaseEventRequest(metadata?: Record<string, any>) {\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n return {\n ...this.getOrigins(),\n ...this.getSplitTestRun(),\n customData,\n language: this.provider.getLanguage(),\n facetState: this.provider.getFacetState ? this.provider.getFacetState() : [],\n anonymous: this.provider.getIsAnonymous(),\n clientId: await this.getClientId(),\n };\n }\n\n private getOrigins() {\n return {\n originContext: this.provider.getOriginContext?.(),\n originLevel1: this.provider.getOriginLevel1(),\n originLevel2: this.provider.getOriginLevel2(),\n originLevel3: this.provider.getOriginLevel3(),\n };\n }\n\n private getClientId() {\n return this.coveoAnalyticsClient instanceof CoveoAnalyticsClient\n ? this.coveoAnalyticsClient.getCurrentVisitorId()\n : undefined;\n }\n\n private getSplitTestRun() {\n const splitTestRunName = this.provider.getSplitTestRunName ? this.provider.getSplitTestRunName() : '';\n const splitTestRunVersion = this.provider.getSplitTestRunVersion ? this.provider.getSplitTestRunVersion() : '';\n return {\n ...(splitTestRunName && {splitTestRunName}),\n ...(splitTestRunVersion && {splitTestRunVersion}),\n };\n }\n\n public makeLikeGeneratedAnswer(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.likeGeneratedAnswer, metadata);\n }\n\n public async logLikeGeneratedAnswer(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeLikeGeneratedAnswer(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDislikeGeneratedAnswer(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.dislikeGeneratedAnswer, metadata);\n }\n\n public async logDislikeGeneratedAnswer(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeDislikeGeneratedAnswer(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta) {\n return this.makeCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata);\n }\n\n public async logOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta) {\n return (await this.makeOpenGeneratedAnswerSource(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerSourceHover(metadata: GeneratedAnswerSourceHoverMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerSourceHover, metadata);\n }\n\n public async logGeneratedAnswerSourceHover(metadata: GeneratedAnswerSourceHoverMeta) {\n return (await this.makeGeneratedAnswerSourceHover(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerCopyToClipboard(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerCopyToClipboard, metadata);\n }\n\n public async logGeneratedAnswerCopyToClipboard(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeGeneratedAnswerCopyToClipboard(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerHideAnswers(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerHideAnswers, metadata);\n }\n\n public async logGeneratedAnswerHideAnswers(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeGeneratedAnswerHideAnswers(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerShowAnswers(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerShowAnswers, metadata);\n }\n\n public async logGeneratedAnswerShowAnswers(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeGeneratedAnswerShowAnswers(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerFeedbackSubmit(meta: GeneratedAnswerFeedbackMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerFeedbackSubmit, meta);\n }\n\n public async logGeneratedAnswerFeedbackSubmit(meta: GeneratedAnswerFeedbackMeta) {\n return (await this.makeGeneratedAnswerFeedbackSubmit(meta)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeRephraseGeneratedAnswer(meta: GeneratedAnswerRephraseMeta) {\n return this.makeSearchEvent(SearchPageEvents.rephraseGeneratedAnswer, meta);\n }\n\n public async logRephraseGeneratedAnswer(meta: GeneratedAnswerRephraseMeta) {\n return (await this.makeRephraseGeneratedAnswer(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRetryGeneratedAnswer() {\n return this.makeSearchEvent(SearchPageEvents.retryGeneratedAnswer);\n }\n\n public async logRetryGeneratedAnswer() {\n return (await this.makeRetryGeneratedAnswer()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeGeneratedAnswerStreamEnd(metadata: GeneratedAnswerStreamEndMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerStreamEnd, metadata);\n }\n\n public async logGeneratedAnswerStreamEnd(metadata: GeneratedAnswerStreamEndMeta) {\n return (await this.makeGeneratedAnswerStreamEnd(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n}\n","import {TicketProperties} from '../plugins/svc';\n\nexport enum CaseAssistEvents {\n click = 'click',\n flowStart = 'flowStart',\n}\n\nexport enum CaseAssistActions {\n enterInterface = 'ticket_create_start',\n fieldUpdate = 'ticket_field_update',\n fieldSuggestionClick = 'ticket_classification_click',\n suggestionClick = 'suggestion_click',\n suggestionRate = 'suggestion_rate',\n nextCaseStep = 'ticket_next_stage',\n caseCancelled = 'ticket_cancel',\n caseSolved = 'ticket_cancel',\n caseCreated = 'ticket_create',\n}\n\nexport enum CaseCancelledReasons {\n quit = 'Quit',\n solved = 'Solved',\n}\n\nexport interface EnterInterfaceMetadata {\n ticket: TicketProperties;\n}\n\nexport interface UpdateCaseFieldMetadata {\n fieldName: string;\n ticket: TicketProperties;\n}\n\nexport interface SelectFieldSuggestionMetadata {\n suggestion: FieldSuggestion;\n ticket: TicketProperties;\n}\n\nexport interface SelectDocumentSuggestionMetadata {\n suggestion: DocumentSuggestion;\n ticket: TicketProperties;\n}\n\nexport interface RateDocumentSuggestionMetadata {\n rating: number;\n suggestion: DocumentSuggestion;\n ticket: TicketProperties;\n}\n\nexport interface MoveToNextCaseStepMetadata {\n ticket: TicketProperties;\n stage?: string;\n}\n\nexport interface CaseCancelledMetadata {\n ticket: TicketProperties;\n}\n\nexport interface CaseSolvedMetadata {\n ticket: TicketProperties;\n}\n\nexport interface CaseCreatedMetadata {\n ticket: TicketProperties;\n}\n\nexport interface FieldSuggestion {\n classificationId: string;\n responseId: string;\n fieldName: string;\n classification: {\n value: string;\n confidence: number;\n };\n autoSelection?: boolean;\n}\n\nexport interface DocumentSuggestion {\n suggestionId: string;\n responseId: string;\n suggestion: {\n documentUri: string;\n documentUriHash: string;\n documentTitle: string;\n documentUrl: string;\n documentPosition: number;\n };\n fromQuickview?: boolean;\n openDocument?: boolean;\n}\n","import CoveoAnalyticsClient, {AnalyticsClient, ClientOptions} from '../client/analytics';\nimport {NoopAnalytics} from '../client/noopAnalytics';\nimport doNotTrack from '../donottrack';\nimport {SVCPlugin} from '../plugins/svc';\nimport {\n CaseAssistActions,\n CaseAssistEvents,\n CaseCancelledMetadata,\n CaseCancelledReasons,\n CaseCreatedMetadata,\n CaseSolvedMetadata,\n EnterInterfaceMetadata,\n MoveToNextCaseStepMetadata,\n RateDocumentSuggestionMetadata,\n SelectDocumentSuggestionMetadata,\n SelectFieldSuggestionMetadata,\n UpdateCaseFieldMetadata,\n} from './caseAssistActions';\n\nexport interface CaseAssistClientProvider {\n getOriginLevel1: () => string;\n}\n\nexport interface CaseAssistClientOptions extends ClientOptions {\n enableAnalytics?: boolean;\n}\n\nexport class CaseAssistClient {\n public coveoAnalyticsClient: AnalyticsClient;\n private svc: SVCPlugin;\n\n constructor(private options: Partial<CaseAssistClientOptions>, private provider?: CaseAssistClientProvider) {\n const analyticsEnabled = (options.enableAnalytics ?? true) && !doNotTrack();\n\n this.coveoAnalyticsClient = analyticsEnabled ? new CoveoAnalyticsClient(options) : new NoopAnalytics();\n this.svc = new SVCPlugin({client: this.coveoAnalyticsClient});\n }\n\n public disable() {\n if (this.coveoAnalyticsClient instanceof CoveoAnalyticsClient) {\n this.coveoAnalyticsClient.clear();\n }\n this.coveoAnalyticsClient = new NoopAnalytics();\n this.svc = new SVCPlugin({client: this.coveoAnalyticsClient});\n }\n\n public enable() {\n this.coveoAnalyticsClient = new CoveoAnalyticsClient(this.options);\n this.svc = new SVCPlugin({client: this.coveoAnalyticsClient});\n }\n\n public logEnterInterface(meta: EnterInterfaceMetadata) {\n this.svc.setAction(CaseAssistActions.enterInterface);\n this.svc.setTicket(meta.ticket);\n return this.sendFlowStartEvent();\n }\n\n public logUpdateCaseField(meta: UpdateCaseFieldMetadata) {\n this.svc.setAction(CaseAssistActions.fieldUpdate, {\n fieldName: meta.fieldName,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logSelectFieldSuggestion(meta: SelectFieldSuggestionMetadata) {\n this.svc.setAction(CaseAssistActions.fieldSuggestionClick, meta.suggestion);\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logSelectDocumentSuggestion(meta: SelectDocumentSuggestionMetadata) {\n this.svc.setAction(CaseAssistActions.suggestionClick, meta.suggestion);\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logRateDocumentSuggestion(meta: RateDocumentSuggestionMetadata) {\n this.svc.setAction(CaseAssistActions.suggestionRate, {\n rate: meta.rating,\n ...meta.suggestion,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logMoveToNextCaseStep(meta: MoveToNextCaseStepMetadata) {\n this.svc.setAction(CaseAssistActions.nextCaseStep, {\n stage: meta?.stage,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logCaseCancelled(meta: CaseCancelledMetadata) {\n this.svc.setAction(CaseAssistActions.caseCancelled, {\n reason: CaseCancelledReasons.quit,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logCaseSolved(meta: CaseSolvedMetadata) {\n this.svc.setAction(CaseAssistActions.caseSolved, {\n reason: CaseCancelledReasons.solved,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logCaseCreated(meta: CaseCreatedMetadata) {\n this.svc.setAction(CaseAssistActions.caseCreated);\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n private sendFlowStartEvent() {\n return this.coveoAnalyticsClient.sendEvent(\n 'event',\n 'svc',\n CaseAssistEvents.flowStart,\n this.provider\n ? {\n searchHub: this.provider.getOriginLevel1(),\n }\n : null\n );\n }\n\n private sendClickEvent() {\n return this.coveoAnalyticsClient.sendEvent(\n 'event',\n 'svc',\n CaseAssistEvents.click,\n this.provider\n ? {\n searchHub: this.provider.getOriginLevel1(),\n }\n : null\n );\n }\n}\n","import CoveoAnalyticsClient, {AnalyticsClient, ClientOptions} from '../client/analytics';\nimport {NoopAnalytics} from '../client/noopAnalytics';\nimport doNotTrack from '../donottrack';\nimport {ClickEventRequest, CustomEventRequest, SearchEventRequest} from '../events';\nimport {\n CustomEventsTypes,\n DocumentIdentifier,\n FacetStateMetadata,\n GeneratedAnswerBaseMeta,\n GeneratedAnswerCitationMeta,\n GeneratedAnswerFeedbackMeta,\n GeneratedAnswerRephraseMeta,\n GeneratedAnswerSourceHoverMeta,\n GeneratedAnswerStreamEndMeta,\n PartialDocumentInformation,\n SearchPageEvents,\n SmartSnippetDocumentIdentifier,\n SmartSnippetFeedbackReason,\n SmartSnippetLinkMeta,\n SmartSnippetSuggestionMeta,\n} from '../searchPage/searchPageEvents';\nimport {\n ExpandToFullUIMetadata,\n InsightEvents,\n InsightFacetMetadata,\n InsightInterfaceChangeMetadata,\n InsightStaticFilterToggleValueMetadata,\n InsightFacetRangeMetadata,\n InsightCategoryFacetMetadata,\n CaseMetadata,\n InsightFacetSortMeta,\n InsightFacetBaseMeta,\n InsightQueryErrorMeta,\n InsightPagerMetadata,\n InsightResultsSortMetadata,\n UserActionsDocumentMetadata,\n UserActionsPageViewMetadata,\n} from './insightEvents';\n\nexport interface InsightClientProvider {\n getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;\n getSearchUID: () => string;\n getBaseMetadata: () => Record<string, any>;\n getPipeline: () => string;\n getOriginContext?: () => string;\n getOriginLevel1: () => string;\n getOriginLevel2: () => string;\n getOriginLevel3: () => string;\n getLanguage: () => string;\n getIsAnonymous: () => boolean;\n getFacetState?: () => FacetStateMetadata[];\n getGeneratedAnswerMetadata?: () => Record<string, any>;\n}\n\nexport interface InsightClientOptions extends ClientOptions {\n enableAnalytics: boolean;\n}\n\nconst extractContextFromMetadata = (meta: {caseContext?: Record<string, string>}) => {\n const context: Record<string, string> = {};\n if (meta.caseContext) {\n Object.keys(meta.caseContext).forEach((contextKey) => {\n const value = meta.caseContext?.[contextKey];\n if (value) {\n const keyToBeSent = `context_${contextKey}`;\n context[keyToBeSent] = value;\n }\n });\n }\n return context;\n};\n\nconst generateMetadataToSend = (metadata: CaseMetadata, includeContext = true) => {\n const {caseContext, caseId, caseNumber, ...metadataWithoutContext} = metadata;\n const context = extractContextFromMetadata(metadata);\n\n return {\n CaseId: caseId,\n CaseNumber: caseNumber,\n ...metadataWithoutContext,\n ...(!!context.context_Case_Subject && {CaseSubject: context.context_Case_Subject}),\n ...(includeContext && context),\n };\n};\n\nexport class CoveoInsightClient {\n public coveoAnalyticsClient: AnalyticsClient;\n\n constructor(private opts: Partial<InsightClientOptions>, private provider: InsightClientProvider) {\n const shouldDisableAnalytics = opts.enableAnalytics === false || doNotTrack();\n this.coveoAnalyticsClient = shouldDisableAnalytics ? new NoopAnalytics() : new CoveoAnalyticsClient(opts);\n }\n\n public disable() {\n if (this.coveoAnalyticsClient instanceof CoveoAnalyticsClient) {\n this.coveoAnalyticsClient.clear();\n }\n this.coveoAnalyticsClient = new NoopAnalytics();\n }\n\n public enable() {\n this.coveoAnalyticsClient = new CoveoAnalyticsClient(this.opts);\n }\n\n public logInterfaceLoad(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.interfaceLoad, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.interfaceLoad);\n }\n\n public logInterfaceChange(metadata: InsightInterfaceChangeMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.interfaceChange, metadataToSend);\n }\n\n public logStaticFilterDeselect(metadata: InsightStaticFilterToggleValueMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.staticFilterDeselect, metadataToSend);\n }\n\n public logFetchMoreResults(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logCustomEvent(SearchPageEvents.pagerScrolling, {...metadataToSend, type: 'getMoreResults'});\n }\n return this.logCustomEvent(SearchPageEvents.pagerScrolling, {type: 'getMoreResults'});\n }\n\n public logBreadcrumbFacet(\n metadata: InsightFacetMetadata | InsightFacetRangeMetadata | InsightCategoryFacetMetadata\n ) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.breadcrumbFacet, metadataToSend);\n }\n\n public logBreadcrumbResetAll(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.breadcrumbResetAll, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.breadcrumbResetAll);\n }\n\n public logFacetSelect(metadata: InsightFacetMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetSelect, metadataToSend);\n }\n\n public logFacetExclude(metadata: InsightFacetMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetExclude, metadataToSend);\n }\n\n public logFacetDeselect(metadata: InsightFacetMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetDeselect, metadataToSend);\n }\n\n public logFacetUpdateSort(metadata: InsightFacetSortMeta) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetUpdateSort, metadataToSend);\n }\n\n public logFacetClearAll(metadata: InsightFacetBaseMeta) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetClearAll, metadataToSend);\n }\n\n public logFacetShowMore(metadata: InsightFacetBaseMeta) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.facetShowMore, metadataToSend);\n }\n\n public logFacetShowLess(metadata: InsightFacetBaseMeta) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.facetShowLess, metadataToSend);\n }\n\n public logQueryError(metadata: InsightQueryErrorMeta) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.queryError, metadataToSend);\n }\n\n public logPagerNumber(metadata: InsightPagerMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.pagerNumber, metadataToSend);\n }\n\n public logPagerNext(metadata: InsightPagerMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.pagerNext, metadataToSend);\n }\n\n public logPagerPrevious(metadata: InsightPagerMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.pagerPrevious, metadataToSend);\n }\n\n public logDidYouMeanAutomatic(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.didyoumeanAutomatic, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.didyoumeanAutomatic);\n }\n\n public logDidYouMeanClick(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.didyoumeanClick, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.didyoumeanClick);\n }\n\n public logResultsSort(metadata: InsightResultsSortMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.resultsSort, metadataToSend);\n }\n\n public logSearchboxSubmit(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.searchboxSubmit, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.searchboxSubmit);\n }\n\n public logContextChanged(metadata: CaseMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(InsightEvents.contextChanged, metadataToSend);\n }\n\n public logExpandToFullUI(metadata: ExpandToFullUIMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logCustomEvent(InsightEvents.expandToFullUI, metadataToSend);\n }\n\n public logOpenUserActions(metadata: CaseMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(InsightEvents.openUserActions, metadataToSend);\n }\n\n public logShowPrecedingSessions(metadata: CaseMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(InsightEvents.showPrecedingSessions, metadataToSend);\n }\n\n public logShowFollowingSessions(metadata: CaseMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(InsightEvents.showFollowingSessions, metadataToSend);\n }\n\n public logViewedDocumentClick(document: UserActionsDocumentMetadata, metadata: CaseMetadata) {\n return this.logCustomEvent(InsightEvents.clickViewedDocument, {\n ...generateMetadataToSend(metadata, false),\n document,\n });\n }\n\n public logPageViewClick(pageView: UserActionsPageViewMetadata, metadata: CaseMetadata) {\n return this.logCustomEvent(InsightEvents.clickPageView, {\n ...generateMetadataToSend(metadata, false),\n pageView,\n });\n }\n\n public logDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata) {\n return this.logClickEvent(\n SearchPageEvents.documentOpen,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logCopyToClipboard(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.copyToClipboard,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logCaseSendEmail(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata) {\n return this.logClickEvent(\n SearchPageEvents.caseSendEmail,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logFeedItemTextPost(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.feedItemTextPost,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logDocumentQuickview(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n caseMetadata?: CaseMetadata\n ) {\n const metadata = {\n documentTitle: info.documentTitle,\n documentURL: info.documentUrl,\n };\n return this.logClickEvent(\n SearchPageEvents.documentQuickview,\n info,\n identifier,\n caseMetadata ? {...generateMetadataToSend(caseMetadata, false), ...metadata} : metadata\n );\n }\n\n public logCaseAttach(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n caseMetadata?: CaseMetadata\n ) {\n const metadata = {\n documentTitle: info.documentTitle,\n documentURL: info.documentUrl,\n resultUriHash: info.documentUriHash,\n };\n\n return this.logClickEvent(\n SearchPageEvents.caseAttach,\n info,\n identifier,\n caseMetadata ? {...generateMetadataToSend(caseMetadata, false), ...metadata} : metadata\n );\n }\n\n public logCaseDetach(resultUriHash: string, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.caseDetach,\n metadata ? {...generateMetadataToSend(metadata, false), resultUriHash} : {resultUriHash}\n );\n }\n\n public logLikeSmartSnippet(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.likeSmartSnippet,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logDislikeSmartSnippet(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.dislikeSmartSnippet,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logExpandSmartSnippet(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.expandSmartSnippet,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logCollapseSmartSnippet(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.collapseSmartSnippet,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logOpenSmartSnippetFeedbackModal(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.openSmartSnippetFeedbackModal,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logCloseSmartSnippetFeedbackModal(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.closeSmartSnippetFeedbackModal,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logSmartSnippetFeedbackReason(\n reason: SmartSnippetFeedbackReason,\n details?: string,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.sendSmartSnippetReason,\n metadata ? {...generateMetadataToSend(metadata, false), reason, details} : {reason, details}\n );\n }\n\n public logExpandSmartSnippetSuggestion(\n snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n const snippetMetadata = 'documentId' in snippet ? snippet : {documentId: snippet};\n return this.logCustomEvent(\n SearchPageEvents.expandSmartSnippetSuggestion,\n metadata ? {...generateMetadataToSend(metadata, false), ...snippetMetadata} : snippetMetadata\n );\n }\n\n public logCollapseSmartSnippetSuggestion(\n snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n const snippetMetadata = 'documentId' in snippet ? snippet : {documentId: snippet};\n return this.logCustomEvent(\n SearchPageEvents.collapseSmartSnippetSuggestion,\n metadata ? {...generateMetadataToSend(metadata, false), ...snippetMetadata} : snippetMetadata\n );\n }\n\n public logOpenSmartSnippetSource(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.openSmartSnippetSource,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logOpenSmartSnippetSuggestionSource(\n info: PartialDocumentInformation,\n snippet: SmartSnippetSuggestionMeta,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.openSmartSnippetSuggestionSource,\n info,\n {contentIDKey: snippet.documentId.contentIdKey, contentIDValue: snippet.documentId.contentIdValue},\n metadata ? {...generateMetadataToSend(metadata, false), ...snippet} : snippet\n );\n }\n\n public logOpenSmartSnippetInlineLink(\n info: PartialDocumentInformation,\n identifierAndLink: DocumentIdentifier & SmartSnippetLinkMeta,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.openSmartSnippetInlineLink,\n info,\n {contentIDKey: identifierAndLink.contentIDKey, contentIDValue: identifierAndLink.contentIDValue},\n metadata ? {...generateMetadataToSend(metadata, false), ...identifierAndLink} : identifierAndLink\n );\n }\n\n public logOpenSmartSnippetSuggestionInlineLink(\n info: PartialDocumentInformation,\n snippetAndLink: SmartSnippetSuggestionMeta & SmartSnippetLinkMeta,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.openSmartSnippetSuggestionInlineLink,\n info,\n {\n contentIDKey: snippetAndLink.documentId.contentIdKey,\n contentIDValue: snippetAndLink.documentId.contentIdValue,\n },\n metadata ? {...generateMetadataToSend(metadata, false), ...snippetAndLink} : snippetAndLink\n );\n }\n\n public logLikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.likeGeneratedAnswer,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logDislikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.dislikeGeneratedAnswer,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logOpenGeneratedAnswerSource(\n generatedAnswerSourceMetadata: GeneratedAnswerCitationMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.openGeneratedAnswerSource,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerSourceMetadata}\n : generatedAnswerSourceMetadata\n );\n }\n\n public logGeneratedAnswerSourceHover(\n generatedAnswerSourceMetadata: GeneratedAnswerSourceHoverMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerSourceHover,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerSourceMetadata}\n : generatedAnswerSourceMetadata\n );\n }\n\n public logGeneratedAnswerCopyToClipboard(\n generatedAnswerMetadata: GeneratedAnswerBaseMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerCopyToClipboard,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logGeneratedAnswerHideAnswers(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerHideAnswers,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logGeneratedAnswerShowAnswers(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerShowAnswers,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logGeneratedAnswerFeedbackSubmit(\n generatedAnswerFeedbackMetadata: GeneratedAnswerFeedbackMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerFeedbackSubmit,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerFeedbackMetadata}\n : generatedAnswerFeedbackMetadata\n );\n }\n\n public logRephraseGeneratedAnswer(\n generatedAnswerRephraseMetadata: GeneratedAnswerRephraseMeta,\n metadata?: CaseMetadata\n ) {\n return this.logSearchEvent(\n SearchPageEvents.rephraseGeneratedAnswer,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerRephraseMetadata}\n : generatedAnswerRephraseMetadata\n );\n }\n\n public logRetryGeneratedAnswer(metadata?: CaseMetadata) {\n return this.logSearchEvent(\n SearchPageEvents.retryGeneratedAnswer,\n metadata ? {...generateMetadataToSend(metadata, false)} : {}\n );\n }\n\n public logGeneratedAnswerStreamEnd(\n generatedAnswerStreamEndMetadata: GeneratedAnswerStreamEndMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerStreamEnd,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerStreamEndMetadata}\n : generatedAnswerStreamEndMetadata\n );\n }\n\n public async logCustomEvent(event: SearchPageEvents | InsightEvents, metadata?: Record<string, any>) {\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n\n const payload: CustomEventRequest = {\n ...(await this.getBaseCustomEventRequest(customData)),\n eventType: CustomEventsTypes[event]!,\n eventValue: event,\n };\n\n return this.coveoAnalyticsClient.sendCustomEvent(payload);\n }\n\n public async logSearchEvent(event: SearchPageEvents | InsightEvents, metadata?: Record<string, any>) {\n return this.coveoAnalyticsClient.sendSearchEvent(await this.getBaseSearchEventRequest(event, metadata));\n }\n\n public async logClickEvent(\n event: SearchPageEvents,\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: Record<string, any>\n ) {\n const payload: ClickEventRequest = {\n ...info,\n ...(await this.getBaseEventRequest({...identifier, ...metadata})),\n searchQueryUid: this.provider.getSearchUID(),\n queryPipeline: this.provider.getPipeline(),\n actionCause: event,\n };\n\n return this.coveoAnalyticsClient.sendClickEvent(payload);\n }\n\n public async logShowMoreFoldedResults(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.showMoreFoldedResults,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public async logShowLessFoldedResults(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.showLessFoldedResults,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n private async getBaseCustomEventRequest(metadata?: Record<string, any>) {\n return {\n ...(await this.getBaseEventRequest(metadata)),\n lastSearchQueryUid: this.provider.getSearchUID(),\n };\n }\n\n private async getBaseSearchEventRequest(\n event: SearchPageEvents | InsightEvents,\n metadata?: Record<string, any>\n ): Promise<SearchEventRequest> {\n return {\n ...(await this.getBaseEventRequest({...metadata, ...this.provider.getGeneratedAnswerMetadata?.()})),\n ...this.provider.getSearchEventRequestPayload(),\n searchQueryUid: this.provider.getSearchUID(),\n queryPipeline: this.provider.getPipeline(),\n actionCause: event,\n };\n }\n\n private async getBaseEventRequest(metadata?: Record<string, any>) {\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n return {\n ...this.getOrigins(),\n customData,\n language: this.provider.getLanguage(),\n facetState: this.provider.getFacetState ? this.provider.getFacetState() : [],\n anonymous: this.provider.getIsAnonymous(),\n clientId: await this.getClientId(),\n };\n }\n\n private getOrigins() {\n return {\n originContext: this.provider.getOriginContext?.(),\n originLevel1: this.provider.getOriginLevel1(),\n originLevel2: this.provider.getOriginLevel2(),\n originLevel3: this.provider.getOriginLevel3(),\n };\n }\n\n private getClientId() {\n return this.coveoAnalyticsClient instanceof CoveoAnalyticsClient\n ? this.coveoAnalyticsClient.getCurrentVisitorId()\n : undefined;\n }\n}\n","import * as analytics from './library';\nimport handleOneAnalyticsEvent from './simpleanalytics';\n\ndeclare const self: any;\n\nconst promise = (window as any)['Promise'];\nif (!(promise instanceof Function) && !global) {\n console.error(\n `This script uses window.Promise which is not supported in your browser. Consider adding a polyfill like \"es6-promise\".`\n );\n}\nconst fetch = (window as any)['fetch'];\nif (!(fetch instanceof Function) && !global) {\n console.error(\n `This script uses window.fetch which is not supported in your browser. Consider adding a polyfill like \"fetch\".`\n );\n}\n\n// CoveoUAGlobal is the interface for the global function which also has a\n// queue `q` of unexecuted parameters\nexport interface CoveoUAGlobal {\n (action: string, ...params: any[]): void;\n // CoveoAnalytics.q is the queue of last called actions before lib was included\n q?: [string, any[]][];\n}\n\n// On load of this script we get the global object `coveoua` (which would be)\n// on `window` in a browser\nconst coveoua: CoveoUAGlobal = self.coveoua || handleOneAnalyticsEvent;\n\n// Replace the quick shim with the real thing.\nself.coveoua = handleOneAnalyticsEvent;\n\nself.coveoanalytics = analytics;\n\n// On normal execution this library should be loaded after the snippet execution\n// so we will execute the actions in the `q` array\nif (coveoua.q) {\n const initEvents = coveoua.q.filter((args: [string, any[]]) => args[0] === 'init');\n const otherEvents = coveoua.q.filter((args: [string, any[]]) => args[0] !== 'init');\n [...initEvents, ...otherEvents].forEach((args: [string, any[]]) => handleOneAnalyticsEvent.apply(void 0, args));\n}\n\nexport default self.coveoua;\n"],"names":["detector.hasLocalStorage","detector.hasCookieStorage","detector.hasSessionStorage","URL","uuidv4","uuidvalidate","fetch","uuidValidate","coveoua"],"mappings":"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","x_google_ignoreList":[7,8,9,10,11,12,13,14,15,16]}
|
|
1
|
+
{"version":3,"file":"coveoua.debug.js","sources":["../src/events.ts","../src/detector.ts","../src/hook/addDefaultValues.ts","../src/cookieutils.ts","../src/storage.ts","../src/history.ts","../src/hook/enhanceViewEvent.ts","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/parse.js","../node_modules/uuid/dist/esm-browser/v35.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/uuid/dist/esm-browser/sha1.js","../node_modules/uuid/dist/esm-browser/v5.js","../src/version.ts","../src/client/location.ts","../src/plugins/BasePlugin.ts","../src/plugins/link.ts","../src/client/utils.ts","../src/client/measurementProtocolMapping/serviceMeasurementProtocolMapper.ts","../src/client/measurementProtocolMapping/commerceMeasurementProtocolMapper.ts","../src/client/measurementProtocolMapping/baseMeasurementProtocolMapper.ts","../src/client/measurementProtocolMapper.ts","../src/client/analyticsBeaconClient.ts","../src/client/analyticsRequestClient.ts","../bundle/browser-fetch.ts","../src/client/analyticsFetchClient.ts","../src/client/runtimeEnvironment.ts","../src/client/token.ts","../src/react-native/react-native-utils.ts","../src/donottrack.ts","../src/client/analytics.ts","../src/plugins/ec.ts","../src/plugins/svc.ts","../src/coveoua/plugins.ts","../src/coveoua/simpleanalytics.ts","../src/insight/insightEvents.ts","../src/searchPage/searchPageEvents.ts","../src/client/noopAnalytics.ts","../src/formatting/format-array-for-coveo-custom-data.ts","../src/formatting/format-omnibox-metadata.ts","../src/searchPage/searchPageClient.ts","../src/caseAssist/caseAssistActions.ts","../src/caseAssist/caseAssistClient.ts","../src/insight/insightClient.ts","../src/coveoua/browser.ts"],"sourcesContent":["export type IRequestPayload = Record<string, any>;\n\nexport enum EventType {\n search = 'search',\n click = 'click',\n custom = 'custom',\n view = 'view',\n collect = 'collect',\n}\n\nexport interface SearchDocument {\n documentUri: string;\n documentUriHash: string;\n}\n\nexport type SendEventArguments = [EventType, ...any[]];\n\nexport type VariableArgumentsPayload =\n | []\n | [any]\n | [string, any]\n | [string, string, any]\n | [string, string, string, any]\n | [string, string, string, string, any];\n\nexport interface EventBaseRequest {\n language?: string;\n userAgent?: string;\n customData?: Record<string, any>;\n anonymous?: boolean;\n username?: string;\n userDisplayName?: any;\n splitTestRunName?: string;\n splitTestRunVersion?: string;\n clientId?: string;\n originContext?: string;\n originLevel1?: string;\n originLevel2?: string;\n originLevel3?: string;\n}\n\nexport interface FacetStateRequest {\n field: string;\n id: string;\n value: string;\n valuePosition: number;\n displayValue: string;\n facetType: 'specific' | 'dateRange' | 'numericalRange' | 'hierarchical';\n state: 'selected' | 'idle' | 'excluded';\n facetPosition: number;\n title: string;\n start?: string;\n end?: string;\n endInclusive?: boolean;\n}\n\nexport interface SearchEventRequest extends EventBaseRequest {\n searchQueryUid: string;\n queryText: string;\n actionCause: string;\n responseTime: number;\n advancedQuery?: string;\n numberOfResults?: number;\n contextual?: boolean;\n results?: SearchDocument[];\n queryPipeline?: string;\n userGroups?: string[];\n facetState?: FacetStateRequest[];\n}\n\nexport interface PreparedSearchEventRequest extends Omit<SearchEventRequest, 'searchQueryUid'> {}\n\nexport interface DocumentInformation {\n documentUri?: string;\n documentUriHash: string;\n collectionName?: string;\n sourceName: string;\n documentPosition: number;\n actionCause: string;\n\n searchQueryUid: string;\n documentTitle?: string;\n documentUrl?: string;\n documentAuthor?: string;\n queryPipeline?: string;\n rankingModifier?: string;\n}\n\nexport interface ClickEventRequest extends EventBaseRequest, DocumentInformation {}\n\nexport interface PreparedClickEventRequest extends Omit<ClickEventRequest, 'searchQueryUid'> {}\n\nexport interface CustomEventRequest extends EventBaseRequest {\n eventType: string;\n eventValue: string;\n lastSearchQueryUid?: string;\n}\n\nexport interface PreparedCustomEventRequest extends Omit<CustomEventRequest, 'lastSearchQueryUid'> {}\n\nexport interface ViewEventRequest extends EventBaseRequest {\n location?: string;\n referrer?: string;\n title?: string;\n contentIdKey: string;\n contentIdValue: string;\n contentType?: string;\n}\n\nexport interface PreparedViewEventRequest extends ViewEventRequest {}\n\nexport interface DefaultEventResponse {\n visitId: string;\n visitorId: string;\n}\n\nexport interface SearchEventResponse extends DefaultEventResponse {}\nexport interface ClickEventResponse extends DefaultEventResponse {}\nexport interface CustomEventResponse extends DefaultEventResponse {}\nexport interface ViewEventResponse extends DefaultEventResponse {}\n\nexport type AnyEventResponse = SearchEventResponse | ClickEventResponse | CustomEventResponse | ViewEventResponse;\n\nexport interface VisitResponse {\n id: string;\n visitorId: string;\n}\nexport interface HealthResponse {\n status: string;\n}\n","export function hasWindow(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function hasNavigator(): boolean {\n return typeof navigator !== 'undefined';\n}\n\nexport function hasDocument(): boolean {\n return typeof document !== 'undefined';\n}\n\nexport function hasLocalStorage(): boolean {\n try {\n return typeof localStorage !== 'undefined';\n } catch (error) {\n return false;\n }\n}\n\nexport function hasSessionStorage(): boolean {\n try {\n return typeof sessionStorage !== 'undefined';\n } catch (error) {\n return false;\n }\n}\n\nexport function hasCookieStorage(): boolean {\n return hasNavigator() && navigator.cookieEnabled;\n}\n\nexport function hasCrypto(): boolean {\n return typeof crypto !== 'undefined';\n}\n\nexport function hasCryptoRandomValues(): boolean {\n return hasCrypto() && typeof crypto.getRandomValues !== 'undefined';\n}\n\nexport function hasLocation(): boolean {\n return typeof location !== 'undefined';\n}\n","import {AnalyticsClientSendEventHook} from '../client/analytics';\nimport {hasDocument, hasNavigator} from '../detector';\nimport {EventType} from '../events';\n\nconst eventTypesForDefaultValues: string[] = [EventType.click, EventType.custom, EventType.search, EventType.view];\n\nexport const addDefaultValues: AnalyticsClientSendEventHook = (eventType, payload) => {\n return eventTypesForDefaultValues.indexOf(eventType) !== -1\n ? {\n language: hasDocument() ? document.documentElement.lang : 'unknown',\n userAgent: hasNavigator() ? navigator.userAgent : 'unknown',\n ...payload,\n }\n : payload;\n};\n","interface CookieDetails {\n name: string;\n value: string;\n expirationDate?: Date;\n domain?: string;\n}\n\n// Code originally modified from : https://developers.livechatinc.com/blog/setting-cookies-to-subdomains-in-javascript/\nexport class Cookie {\n static set(name: string, value: string, expire?: number) {\n var domain: string, expirationDate: Date | undefined, domainParts: string[], host: string;\n if (expire) {\n expirationDate = new Date();\n expirationDate.setTime(expirationDate.getTime() + expire);\n }\n host = window.location.hostname;\n if (host.indexOf('.') === -1) {\n // no \".\" in a domain - single domain name, it's localhost or something similar\n writeCookie(name, value, expirationDate);\n } else {\n domainParts = host.split('.');\n // we always have at least 2 domain parts\n domain = domainParts[domainParts.length - 2] + '.' + domainParts[domainParts.length - 1];\n writeCookie(name, value, expirationDate, domain);\n }\n }\n\n static get(name: string) {\n var cookiePrefix = name + '=';\n var cookieArray = document.cookie.split(';');\n for (var i = 0; i < cookieArray.length; i++) {\n var cookie = cookieArray[i];\n cookie = cookie.replace(/^\\s+/, ''); //strip whitespace from front of cookie only\n if (cookie.lastIndexOf(cookiePrefix, 0) === 0) {\n return cookie.substring(cookiePrefix.length, cookie.length);\n }\n }\n return null;\n }\n\n static erase(name: string) {\n Cookie.set(name, '', -1);\n }\n}\n\nfunction writeCookie(name: string, value: string, expirationDate?: Date, domain?: string) {\n document.cookie =\n `${name}=${value}` +\n (expirationDate ? `;expires=${expirationDate.toUTCString()}` : '') +\n (domain ? `;domain=${domain}` : '') +\n ';path=/;SameSite=Lax';\n}\n","import * as detector from './detector';\nimport {Cookie} from './cookieutils';\n\nexport let preferredStorage: WebStorage | null = null;\n\nexport interface WebStorage {\n getItem(key: string): string | null | Promise<string | null>;\n removeItem(key: string): void;\n setItem(key: string, data: string): void | Promise<void>;\n}\n\nexport function getAvailableStorage(): WebStorage {\n if (preferredStorage) {\n return preferredStorage;\n }\n if (detector.hasLocalStorage()) {\n return localStorage;\n }\n if (detector.hasCookieStorage()) {\n return new CookieStorage();\n }\n if (detector.hasSessionStorage()) {\n return sessionStorage;\n }\n return new NullStorage();\n}\n\nexport class CookieStorage implements WebStorage {\n static prefix = 'coveo_';\n getItem(key: string): string | null {\n return Cookie.get(`${CookieStorage.prefix}${key}`);\n }\n removeItem(key: string) {\n Cookie.erase(`${CookieStorage.prefix}${key}`);\n }\n setItem(key: string, data: string, expire?: number): void {\n Cookie.set(`${CookieStorage.prefix}${key}`, data, expire);\n }\n}\n\nexport class CookieAndLocalStorage implements WebStorage {\n private cookieStorage = new CookieStorage();\n\n getItem(key: string): string | null {\n return localStorage.getItem(key) || this.cookieStorage.getItem(key);\n }\n\n removeItem(key: string): void {\n this.cookieStorage.removeItem(key);\n localStorage.removeItem(key);\n }\n\n setItem(key: string, data: string): void {\n localStorage.setItem(key, data);\n this.cookieStorage.setItem(key, data, 31556926000); // 1 year first party cookie\n }\n}\n\nexport class NullStorage implements WebStorage {\n getItem(key: string): string | null {\n return null;\n }\n removeItem(key: string) {\n /**/\n }\n setItem(key: string, data: string): void {\n /**/\n }\n}\n","import {getAvailableStorage, WebStorage} from './storage';\n\nexport const STORE_KEY: string = '__coveo.analytics.history';\nexport const MAX_NUMBER_OF_HISTORY_ELEMENTS: number = 20;\nexport const MIN_THRESHOLD_FOR_DUPLICATE_VALUE: number = 1000 * 60;\nexport const MAX_VALUE_SIZE = 75;\n\nexport class HistoryStore {\n private store: WebStorage;\n constructor(store?: WebStorage) {\n this.store = store || getAvailableStorage();\n }\n\n /**\n * @deprecated Synchronous method is deprecated, use addElementAsync instead. This method will NOT work with react-native.\n */\n addElement(elem: HistoryElement) {\n elem.internalTime = new Date().getTime();\n elem = this.cropQueryElement(this.stripEmptyQuery(elem));\n let currentHistory = this.getHistoryWithInternalTime();\n if (currentHistory != null) {\n if (this.isValidEntry(elem)) {\n this.setHistory([elem].concat(currentHistory));\n }\n } else {\n this.setHistory([elem]);\n }\n }\n\n async addElementAsync(elem: HistoryElement) {\n elem.internalTime = new Date().getTime();\n elem = this.cropQueryElement(this.stripEmptyQuery(elem));\n let currentHistory = await this.getHistoryWithInternalTimeAsync();\n if (currentHistory != null) {\n if (this.isValidEntry(elem)) {\n this.setHistory([elem].concat(currentHistory));\n }\n } else {\n this.setHistory([elem]);\n }\n }\n\n /**\n * @deprecated Synchronous method is deprecated, use getHistoryAsync instead. This method will NOT work with react-native.\n */\n getHistory(): HistoryElement[] {\n const history = this.getHistoryWithInternalTime();\n return this.stripEmptyQueries(this.stripInternalTime(history));\n }\n\n async getHistoryAsync(): Promise<HistoryElement[]> {\n const history = await this.getHistoryWithInternalTimeAsync();\n return this.stripEmptyQueries(this.stripInternalTime(history));\n }\n\n private getHistoryWithInternalTime(): HistoryElement[] {\n try {\n const elements = this.store.getItem(STORE_KEY);\n if (elements && typeof elements === 'string') {\n return JSON.parse(elements) as HistoryElement[];\n } else {\n return [];\n }\n } catch (e) {\n // When using the Storage APIs (localStorage/sessionStorage)\n // Safari says that those APIs are available but throws when making\n // a call to them.\n return [];\n }\n }\n\n private async getHistoryWithInternalTimeAsync(): Promise<HistoryElement[]> {\n try {\n const elements = await this.store.getItem(STORE_KEY);\n if (elements) {\n return JSON.parse(elements) as HistoryElement[];\n } else {\n return [];\n }\n } catch (e) {\n // When using the Storage APIs (localStorage/sessionStorage)\n // Safari says that those APIs are available but throws when making\n // a call to them.\n return [];\n }\n }\n\n setHistory(history: HistoryElement[]) {\n try {\n this.store.setItem(STORE_KEY, JSON.stringify(history.slice(0, MAX_NUMBER_OF_HISTORY_ELEMENTS)));\n } catch (e) {\n /* refer to this.getHistory() */\n }\n }\n\n clear() {\n try {\n this.store.removeItem(STORE_KEY);\n } catch (e) {\n /* refer to this.getHistory() */\n }\n }\n\n getMostRecentElement(): HistoryElement | null {\n let currentHistory = this.getHistoryWithInternalTime();\n if (Array.isArray(currentHistory)) {\n const sorted = currentHistory.sort((first: HistoryElement, second: HistoryElement) => {\n // Internal time might not be set for all history element (on upgrade).\n // Ensure to return the most recent element for which we have a value for internalTime.\n return (second.internalTime || 0) - (first.internalTime || 0);\n });\n return sorted[0];\n }\n return null;\n }\n\n private cropQueryElement(part: HistoryElement) {\n if (part.name && part.value && part.name.toLowerCase() === 'query') {\n part.value = part.value.slice(0, MAX_VALUE_SIZE);\n }\n\n return part;\n }\n\n private isValidEntry(elem: HistoryElement): boolean {\n let lastEntry = this.getMostRecentElement();\n\n if (lastEntry && lastEntry.value == elem.value) {\n return (elem.internalTime || 0) - (lastEntry.internalTime || 0) > MIN_THRESHOLD_FOR_DUPLICATE_VALUE;\n }\n return true;\n }\n\n private stripInternalTime(history: HistoryElement[]): HistoryElement[] {\n if (Array.isArray(history)) {\n return history.map((part) => {\n const {name, time, value} = part;\n return {name, time, value};\n });\n }\n return [];\n }\n\n private stripEmptyQuery(part: HistoryElement) {\n const {name, time, value} = part;\n if (name && typeof value === 'string' && name.toLowerCase() === 'query' && value.trim() === '') {\n return {name, time};\n }\n\n return part;\n }\n\n private stripEmptyQueries(history: HistoryElement[]): HistoryElement[] {\n return history.map((part) => this.stripEmptyQuery(part));\n }\n}\n\nexport interface HistoryElement {\n name: string;\n value?: string;\n time: string;\n internalTime?: number;\n}\n\nexport interface HistoryViewElement extends HistoryElement {\n title?: string;\n}\n\nexport default HistoryStore;\n","import {AnalyticsClientSendEventHook} from '../client/analytics';\nimport {ViewEventRequest, EventType} from '../events';\nimport {HistoryStore, STORE_KEY} from '../history';\n\nexport const enhanceViewEvent: AnalyticsClientSendEventHook = async (eventType, payload) => {\n if (eventType === EventType.view) {\n await addPageViewToHistory(payload.contentIdValue);\n return {\n location: window.location.toString(),\n referrer: document.referrer,\n title: document.title,\n ...payload,\n } as ViewEventRequest;\n }\n\n return payload;\n};\n\nconst addPageViewToHistory = async (pageViewValue: string) => {\n const store = new HistoryStore();\n const historyElement = {\n name: 'PageView',\n value: pageViewValue,\n time: new Date().toISOString(),\n };\n await store.addElementAsync(historyElement);\n};\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;","export const libVersion = process.env.PKG_VERSION || 'local'; // processed by @rollup/plugin-replace\n","export const getFormattedLocation = (location: Location) =>\n `${location.protocol}//${location.hostname}${\n location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`\n }${location.search}`;\n","import {AnalyticsClient} from '../client/analytics';\nimport {v4 as uuidv4} from 'uuid';\nimport {getFormattedLocation} from '../client/location';\nimport {hasDocument} from '../detector';\n\ntype PluginWithId = {\n readonly Id: string;\n};\n\nexport type PluginClass = typeof Plugin & PluginWithId;\nexport const BasePluginEventTypes = {\n pageview: 'pageview',\n event: 'event',\n};\n\nexport type PluginOptions = {client: AnalyticsClient; uuidGenerator?: typeof uuidv4};\n\nexport abstract class Plugin {\n protected client: AnalyticsClient;\n protected uuidGenerator: typeof uuidv4;\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n this.client = client;\n this.uuidGenerator = uuidGenerator;\n }\n public abstract getApi(name: string): any;\n}\n\nexport abstract class BasePlugin extends Plugin {\n protected action?: string;\n protected actionData: {[name: string]: string} = {};\n private pageViewId: string;\n private nextPageViewId: string;\n private hasSentFirstPageView?: boolean;\n private currentLocation: string;\n private lastReferrer: string;\n\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n super({client, uuidGenerator});\n this.pageViewId = uuidGenerator();\n this.nextPageViewId = this.pageViewId;\n this.currentLocation = getFormattedLocation(window.location);\n this.lastReferrer = hasDocument() ? document.referrer : '';\n\n this.addHooks();\n }\n protected abstract addHooks(): void;\n protected abstract clearPluginData(): void;\n\n public getApi(name: string): Function | null {\n switch (name) {\n case 'setAction':\n return this.setAction;\n default:\n return null;\n }\n }\n\n public setAction(action: string, options?: any) {\n this.action = action;\n this.actionData = options;\n }\n\n public clearData() {\n this.clearPluginData();\n this.action = undefined;\n this.actionData = {};\n }\n\n public getLocationInformation(eventType: string, payload: any) {\n return {\n hitType: eventType,\n ...this.getNextValues(eventType, payload),\n };\n }\n\n protected updateLocationInformation(eventType: string, payload: any) {\n this.updateLocationForNextPageView(eventType, payload);\n }\n\n public getDefaultContextInformation(eventType: string) {\n const documentContext = {\n title: hasDocument() ? document.title : '',\n encoding: hasDocument() ? document.characterSet : 'UTF-8',\n };\n const screenContext = {\n screenResolution: `${screen.width}x${screen.height}`,\n screenColor: `${screen.colorDepth}-bit`,\n };\n const navigatorContext = {\n language: navigator.language,\n userAgent: navigator.userAgent,\n };\n const eventContext = {\n time: Date.now(),\n eventId: this.uuidGenerator(),\n };\n return {\n ...eventContext,\n ...screenContext,\n ...navigatorContext,\n ...documentContext,\n };\n }\n\n private updateLocationForNextPageView(eventType: string, payload: any) {\n const {pageViewId, referrer, location} = this.getNextValues(eventType, payload);\n\n this.lastReferrer = referrer;\n this.pageViewId = pageViewId;\n this.currentLocation = location;\n\n if (eventType === BasePluginEventTypes.pageview) {\n this.nextPageViewId = this.uuidGenerator();\n this.hasSentFirstPageView = true;\n }\n }\n\n /*\n When calling getPayload or getParameters, we need to return what would be sent by the API without updating our internal reference.\n For instance, if you getPayload(\"pageview\"), we want to return the same payload as if you did coveoua(\"send\", \"pageview\").\n */\n private getNextValues(eventType: string, payload: any) {\n /*\n When sending a pageview, we need to generate a new pageview ID.\n For instance, with the following sequence: 1. pageview, 2. event, 3. pageview, 4. event, 1 and 2 will have the pageviewid, whereas 3 and 4 will have a different pageviewid.\n We pre-generate the \"nextPageViewId\" in case you send the following sequence: 1. pageview, 2. event, 3. getPayload, 4. pageview. This ensures that 3 and 4 have the same pageviewid.\n We applied the same logic to the referrer and the location.\n */\n return {\n pageViewId: eventType === BasePluginEventTypes.pageview ? this.nextPageViewId : this.pageViewId,\n referrer:\n eventType === BasePluginEventTypes.pageview && this.hasSentFirstPageView\n ? this.currentLocation\n : this.lastReferrer,\n location:\n eventType === BasePluginEventTypes.pageview\n ? this.getCurrentLocationFromPayload(payload)\n : this.currentLocation,\n };\n }\n\n private getCurrentLocationFromPayload(payload: any) {\n if (!!payload.page) {\n const removeStartingSlash = (page: string) => page.replace(/^\\/?(.*)$/, '/$1');\n const extractHostnamePart = (location: string) => location.split('/').slice(0, 3).join('/');\n return `${extractHostnamePart(this.currentLocation)}${removeStartingSlash(payload.page)}`;\n } else {\n return getFormattedLocation(window.location);\n }\n }\n}\n","import {validate as uuidvalidate, v4 as uuidv4} from 'uuid';\nimport {Plugin, PluginOptions, PluginClass} from './BasePlugin';\n\nexport class CoveoLinkParam {\n public static readonly cvo_cid: string = 'cvo_cid'; // name of the url parameter\n private static readonly expirationTime: number = 120; // expirationTime in secs\n public readonly clientId: string; //uuid\n public readonly creationDate: number; //seconds since epoch to save space in serialized param\n\n constructor(clientId: string, timestamp: number) {\n if (!uuidvalidate(clientId)) throw Error('Not a valid uuid');\n this.clientId = clientId;\n this.creationDate = Math.floor(timestamp / 1000);\n }\n\n public toString(): string {\n // strips the dashes and uses second granularity to save on url length.\n return this.clientId.replace(/-/g, '') + '.' + this.creationDate.toString();\n }\n\n public get expired(): boolean {\n const age = Math.floor(Date.now() / 1000) - this.creationDate;\n return age < 0 || age > CoveoLinkParam.expirationTime;\n }\n\n public validate(referrerString: string, referrerList: string[]): boolean {\n return !this.expired && this.matchReferrer(referrerString, referrerList);\n }\n\n private matchReferrer(referrerString: string, referrerList: string[]): boolean {\n try {\n const url: URL = new URL(referrerString);\n return referrerList.some((value: string) => {\n const hostRegExp: RegExp = new RegExp(\n value.replace(/\\\\/g, '\\\\\\\\').replace(/\\./g, '\\\\.').replace(/\\*/g, '.*') + '$'\n );\n return hostRegExp.test(url.host);\n });\n } catch (error) {\n return false;\n }\n }\n\n public static fromString(input: string): CoveoLinkParam | null {\n const parts = input.split('.');\n if (parts.length !== 2) {\n return null;\n }\n const [clientIdPart, creationDate] = parts;\n if (clientIdPart.length !== 32 || isNaN(parseInt(creationDate))) {\n return null;\n }\n const clientId =\n clientIdPart.substring(0, 8) +\n '-' +\n clientIdPart.substring(8, 12) +\n '-' +\n clientIdPart.substring(12, 16) +\n '-' +\n clientIdPart.substring(16, 20) +\n '-' +\n clientIdPart.substring(20, 32);\n if (uuidvalidate(clientId)) {\n return new CoveoLinkParam(clientId, Number.parseInt(creationDate) * 1000);\n } else {\n return null;\n }\n }\n}\n\nexport class LinkPlugin extends Plugin {\n public static readonly Id = 'link';\n\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n super({client, uuidGenerator});\n }\n\n public getApi(name: string): Function | null {\n switch (name) {\n case 'decorate':\n return this.decorate;\n case 'acceptFrom':\n return this.acceptFrom;\n default:\n return null;\n }\n }\n\n public async decorate(urlString: string): Promise<string> {\n // Note: clientId retrieval function is marked as optional\n if (!this.client.getCurrentVisitorId) {\n throw new Error('Could not retrieve current clientId');\n }\n try {\n const url = new URL(urlString);\n const clientId: string = await this.client.getCurrentVisitorId!();\n url.searchParams.set(CoveoLinkParam.cvo_cid, new CoveoLinkParam(clientId, Date.now()).toString());\n return url.toString();\n } catch (error) {\n throw new Error('Invalid URL provided');\n }\n }\n\n public acceptFrom(acceptedReferrers: string[]) {\n this.client.setAcceptedLinkReferrers!(acceptedReferrers);\n }\n}\n\nexport const Link: PluginClass = LinkPlugin;\n","// Object.keys returns `string[]` this adds types\n// see https://github.com/microsoft/TypeScript/pull/12253#issuecomment-393954723\nexport const keysOf = Object.keys as <T>(o: T) => Extract<keyof T, string>[];\nexport function isObject(o: any): boolean {\n return o !== null && typeof o === 'object' && !Array.isArray(o);\n}\n\n/**\n * Attempt to coerce strings to number values.\n * Any non-number characters will fail parsing, in which case the input string is returned.\n *\n * @param input The input to possibly coerce to a number, if it is a string and parses to a number.\n * @returns The input, possibly coerced to a number.\n */\nexport function coerceToNumber(input: any): any {\n return typeof input === 'string' && input != '' && !Number.isNaN(+input) ? +input : input;\n}\n","import {Ticket} from '../../plugins/svc';\nimport {keysOf} from '../utils';\n\nconst ticketKeysMapping: {[key in keyof Ticket]: string} = {\n id: 'svc_ticket_id',\n subject: 'svc_ticket_subject',\n description: 'svc_ticket_description',\n category: 'svc_ticket_category',\n productId: 'svc_ticket_product_id',\n custom: 'svc_ticket_custom',\n};\nconst ticketKeysMappingValues = keysOf(ticketKeysMapping).map((key) => ticketKeysMapping[key]);\nconst ticketSubKeysMatchGroup = [...ticketKeysMappingValues].join('|');\nconst ticketKeyRegex = new RegExp(`^(${ticketSubKeysMatchGroup}$)`);\n\nexport const serviceActionsKeysMapping: {[name: string]: string} = {\n svcAction: 'svc_action',\n svcActionData: 'svc_action_data',\n};\n\nexport const convertTicketToMeasurementProtocol = (ticket: Ticket) => {\n return keysOf(ticket)\n .filter((key) => ticket[key] !== undefined)\n .reduce((mappedTicket, key) => {\n const newKey = ticketKeysMapping[key] || key;\n return {\n ...mappedTicket,\n [newKey]: ticket[key],\n };\n }, {});\n};\n\nconst isTicketKey = (key: string) => ticketKeyRegex.test(key);\n\nexport const isServiceKey = [isTicketKey];\n","import {Product, ImpressionList, BaseImpression} from '../../plugins/ec';\nimport {keysOf} from '../utils';\n\n// Based off: https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#enhanced-ecomm\nconst productKeysMapping: {[key in keyof Product]: string} = {\n id: 'id',\n name: 'nm',\n brand: 'br',\n category: 'ca',\n variant: 'va',\n price: 'pr',\n quantity: 'qt',\n coupon: 'cc',\n position: 'ps',\n // Below are keys that were extended for Coveo\n group: 'group',\n};\n\nconst impressionKeysMapping: {[key in keyof BaseImpression]: string} = {\n id: 'id',\n name: 'nm',\n brand: 'br',\n category: 'ca',\n variant: 'va',\n position: 'ps',\n price: 'pr',\n // Below are keys that were extended for Coveo\n group: 'group',\n};\n\nconst productActionsKeysMapping: {[name: string]: string} = {\n action: 'pa',\n list: 'pal',\n listSource: 'pls',\n};\n\nconst transactionActionsKeysMapping: {[name: string]: string} = {\n id: 'ti',\n revenue: 'tr',\n tax: 'tt',\n shipping: 'ts',\n coupon: 'tcc',\n affiliation: 'ta',\n step: 'cos',\n option: 'col',\n};\n\n// These extension keys do not have direct mappings, we are sending them as-is, thus only requiring an array.\nconst coveoCommerceExtensionKeys: string[] = [\n 'loyaltyCardId',\n 'loyaltyTier',\n 'thirdPartyPersona',\n 'companyName',\n 'favoriteStore',\n 'storeName',\n 'userIndustry',\n 'userRole',\n 'userDepartment',\n 'businessUnit',\n];\n\nconst quoteActionsKeysMapping: {[name: string]: string} = {\n id: 'quoteId',\n affiliation: 'quoteAffiliation',\n};\n\nconst reviewActionsKeysMapping: {[name: string]: string} = {\n id: 'reviewId',\n rating: 'reviewRating',\n comment: 'reviewComment',\n};\n\nexport const commerceActionKeysMappingPerAction: Record<string, {[name: string]: string}> = {\n add: productActionsKeysMapping,\n bookmark_add: productActionsKeysMapping,\n bookmark_remove: productActionsKeysMapping,\n click: productActionsKeysMapping,\n checkout: productActionsKeysMapping,\n checkout_option: productActionsKeysMapping,\n detail: productActionsKeysMapping,\n impression: productActionsKeysMapping,\n remove: productActionsKeysMapping,\n refund: {\n ...productActionsKeysMapping,\n ...transactionActionsKeysMapping,\n },\n purchase: {\n ...productActionsKeysMapping,\n ...transactionActionsKeysMapping,\n },\n quickview: productActionsKeysMapping,\n quote: {\n ...productActionsKeysMapping,\n ...quoteActionsKeysMapping,\n },\n review: {\n ...productActionsKeysMapping,\n ...reviewActionsKeysMapping,\n },\n};\n\nexport const convertProductToMeasurementProtocol = (product: Product, index: number) => {\n return keysOf(product).reduce((mappedProduct, key) => {\n const newKey = `pr${index + 1}${productKeysMapping[key] || key}`;\n return {\n ...mappedProduct,\n [newKey]: product[key],\n };\n }, {});\n};\n\nexport const convertImpressionListToMeasurementProtocol = (\n impressionList: ImpressionList,\n listIndex: number,\n prefix: string\n) => {\n const payload: {[name: string]: any} = impressionList.impressions.reduce(\n (mappedImpressions, impression, productIndex) => {\n return {\n ...mappedImpressions,\n ...convertImpressionToMeasurementProtocol(impression, listIndex, productIndex, prefix),\n };\n },\n {}\n );\n\n if (impressionList.listName) {\n const listNameKey = `il${listIndex + 1}nm`;\n payload[listNameKey] = impressionList.listName;\n }\n return payload;\n};\n\nconst convertImpressionToMeasurementProtocol = (\n impression: BaseImpression,\n listIndex: number,\n productIndex: number,\n prefix: string\n) => {\n return keysOf(impression).reduce((mappedImpression, key) => {\n const newKey = `il${listIndex + 1}${prefix}${productIndex + 1}${impressionKeysMapping[key] || key}`;\n return {\n ...mappedImpression,\n [newKey]: impression[key],\n };\n }, {});\n};\n\nconst productKeysMappingValues = keysOf(productKeysMapping).map((key) => productKeysMapping[key]);\nconst impressionKeysMappingValues = keysOf(impressionKeysMapping).map((key) => impressionKeysMapping[key]);\nconst productActionsKeysMappingValues = keysOf(productActionsKeysMapping).map((key) => productActionsKeysMapping[key]);\nconst transactionActionsKeysMappingValues = keysOf(transactionActionsKeysMapping).map(\n (key) => transactionActionsKeysMapping[key]\n);\nconst reviewKeysMappingValues = keysOf(reviewActionsKeysMapping).map((key) => reviewActionsKeysMapping[key]);\nconst quoteKeysMappingValues = keysOf(quoteActionsKeysMapping).map((key) => quoteActionsKeysMapping[key]);\n\nconst productSubKeysMatchGroup = [...productKeysMappingValues, 'custom'].join('|');\nconst impressionSubKeysMatchGroup = [...impressionKeysMappingValues, 'custom'].join('|');\nconst productPrefixMatchGroup = '(pr[0-9]+)';\nconst impressionPrefixMatchGroup = '(il[0-9]+pi[0-9]+)';\nconst productKeyRegex = new RegExp(`^${productPrefixMatchGroup}(${productSubKeysMatchGroup})$`);\nconst impressionKeyRegex = new RegExp(`^(${impressionPrefixMatchGroup}(${impressionSubKeysMatchGroup}))|(il[0-9]+nm)$`);\nconst productActionsKeyRegex = new RegExp(`^(${productActionsKeysMappingValues.join('|')})$`);\nconst transactionActionsKeyRegex = new RegExp(`^(${transactionActionsKeysMappingValues.join('|')})$`);\nconst customProductKeyRegex = new RegExp(`^${productPrefixMatchGroup}custom$`);\nconst customImpressionKeyRegex = new RegExp(`^${impressionPrefixMatchGroup}custom$`);\nconst coveoCommerceExtensionKeysRegex = new RegExp(\n `^(${[...coveoCommerceExtensionKeys, ...reviewKeysMappingValues, ...quoteKeysMappingValues].join('|')})$`\n);\n\nconst isProductKey = (key: string) => productKeyRegex.test(key);\nconst isImpressionKey = (key: string) => impressionKeyRegex.test(key);\nconst isProductActionsKey = (key: string) => productActionsKeyRegex.test(key);\nconst isTransactionActionsKeyRegex = (key: string) => transactionActionsKeyRegex.test(key);\nconst isCoveoCommerceExtensionKey = (key: string) => coveoCommerceExtensionKeysRegex.test(key);\n\nexport const isCommerceKey = [\n isImpressionKey,\n isProductKey,\n isProductActionsKey,\n isTransactionActionsKeyRegex,\n isCoveoCommerceExtensionKey,\n];\nexport const isCustomCommerceKey = [customProductKeyRegex, customImpressionKeyRegex];\n","import {BasePlugin} from '../../plugins/BasePlugin';\n\ntype DefaultContextInformation = ReturnType<typeof BasePlugin.prototype.getDefaultContextInformation> &\n ReturnType<typeof BasePlugin.prototype.getLocationInformation>;\n\nconst globalParamKeysMapping: {[name: string]: string} = {\n anonymizeIp: 'aip',\n};\n\nconst eventKeysMapping: {[name: string]: string} = {\n eventCategory: 'ec',\n eventAction: 'ea',\n eventLabel: 'el',\n eventValue: 'ev',\n page: 'dp',\n visitorId: 'cid',\n clientId: 'cid',\n userId: 'uid',\n currencyCode: 'cu',\n};\n\nconst contextInformationMapping: {[key in keyof DefaultContextInformation]: string} = {\n hitType: 't',\n pageViewId: 'pid',\n encoding: 'de',\n location: 'dl',\n referrer: 'dr',\n screenColor: 'sd',\n screenResolution: 'sr',\n title: 'dt',\n userAgent: 'ua',\n language: 'ul',\n eventId: 'z',\n time: 'tm',\n};\n\n/* Those are extension keys that are supported by the Coveo collect protocol (but not Google's protocol). They will be forwarded as-is. */\nconst coveoExtensionsKeys = [\n 'contentId',\n 'contentIdKey',\n 'contentType',\n 'searchHub',\n 'tab',\n 'searchUid',\n 'permanentId',\n 'contentLocale',\n 'trackingId',\n];\n\nexport const baseMeasurementProtocolKeysMapping: {[name: string]: string} = {\n ...globalParamKeysMapping,\n ...eventKeysMapping,\n ...contextInformationMapping,\n ...coveoExtensionsKeys.reduce(\n (all, key) => ({\n ...all,\n [key]: key,\n }),\n {}\n ),\n};\n","import {isServiceKey, serviceActionsKeysMapping} from './measurementProtocolMapping/serviceMeasurementProtocolMapper';\nimport {\n commerceActionKeysMappingPerAction,\n isCommerceKey,\n isCustomCommerceKey,\n} from './measurementProtocolMapping/commerceMeasurementProtocolMapper';\nimport {keysOf} from './utils';\nimport {baseMeasurementProtocolKeysMapping} from './measurementProtocolMapping/baseMeasurementProtocolMapper';\n\nconst measurementProtocolKeysMapping: {[name: string]: string} = {\n ...baseMeasurementProtocolKeysMapping,\n ...serviceActionsKeysMapping,\n};\n\nexport const convertKeysToMeasurementProtocol = (params: any) => {\n const keysMappingForAction = (!!params.action && commerceActionKeysMappingPerAction[params.action]) || {};\n return keysOf(params).reduce((mappedKeys, key) => {\n const newKey = keysMappingForAction[key] || measurementProtocolKeysMapping[key] || key;\n return {\n ...mappedKeys,\n [newKey]: params[key],\n };\n }, {});\n};\n\nconst measurementProtocolKeysMappingValues = keysOf(measurementProtocolKeysMapping).map(\n (key) => measurementProtocolKeysMapping[key]\n);\n\nconst isKnownMeasurementProtocolKey = (key: string) => measurementProtocolKeysMappingValues.indexOf(key) !== -1;\nconst isCustomKey = (key: string) => key === 'custom';\n\nexport const isMeasurementProtocolKey = (key: string): boolean => {\n return [...isCommerceKey, ...isServiceKey, isKnownMeasurementProtocolKey, isCustomKey].some((test) => test(key));\n};\n\nexport const convertCustomMeasurementProtocolKeys = (data: {[name: string]: string | {[name: string]: string}}) => {\n return keysOf(data).reduce((all, current) => {\n const match = getFirstCustomMeasurementProtocolKeyMatch(current);\n if (match) {\n return {\n ...all,\n ...convertCustomObject(match, data[current] as {[name: string]: string}),\n };\n } else {\n return {\n ...all,\n [current]: data[current],\n };\n }\n }, {});\n};\n\nconst getFirstCustomMeasurementProtocolKeyMatch = (key: string): string | undefined => {\n let matchedKey: string | undefined = undefined;\n [...isCustomCommerceKey].every((regex) => {\n matchedKey = regex.exec(key)?.[1];\n return !Boolean(matchedKey);\n });\n return matchedKey;\n};\n\nconst convertCustomObject = (prefix: string, customData: {[name: string]: string}) => {\n return keysOf(customData).reduce(\n (allCustom, currentCustomKey) => ({\n ...allCustom,\n [`${prefix}${currentCustomKey}`]: customData[currentCustomKey],\n }),\n {}\n );\n};\n","import {AnalyticsRequestClient, IAnalyticsClientOptions, PreprocessAnalyticsRequest} from './analyticsRequestClient';\nimport {EventType, IRequestPayload} from '../events';\n\nexport class AnalyticsBeaconClient implements AnalyticsRequestClient {\n constructor(private opts: IAnalyticsClientOptions) {}\n\n public async sendEvent(eventType: EventType, originalPayload: IRequestPayload): Promise<void> {\n if (!this.isAvailable()) {\n throw new Error(\n `navigator.sendBeacon is not supported in this browser. Consider adding a polyfill like \"sendbeacon-polyfill\".`\n );\n }\n\n const {baseUrl, preprocessRequest} = this.opts;\n\n const paramsFragments = await this.getQueryParamsForEventType(eventType);\n\n const {url, payload} = await this.preProcessRequestAsPotentialJSONString(\n `${baseUrl}/analytics/${eventType}?${paramsFragments}`,\n originalPayload,\n preprocessRequest\n );\n\n const parsedRequestData = this.encodeForEventType(eventType, payload);\n const body = new Blob([parsedRequestData], {\n type: 'application/x-www-form-urlencoded',\n });\n\n navigator.sendBeacon(url, body as any); // https://github.com/microsoft/TypeScript/issues/38715\n return;\n }\n\n public isAvailable() {\n return 'sendBeacon' in navigator;\n }\n\n public deleteHttpCookieVisitorId() {\n return Promise.resolve();\n }\n\n private async preProcessRequestAsPotentialJSONString(\n originalURL: string,\n originalPayload: IRequestPayload,\n preprocessRequest?: PreprocessAnalyticsRequest\n ): Promise<{url: string; payload: IRequestPayload}> {\n let returnedUrl = originalURL;\n let returnedPayload = originalPayload;\n\n if (preprocessRequest) {\n const processedRequest = await preprocessRequest(\n {url: originalURL, body: JSON.stringify(originalPayload)},\n 'analyticsBeacon'\n );\n const {url: processedURL, body: processedBody} = processedRequest;\n returnedUrl = processedURL || originalURL;\n try {\n returnedPayload = JSON.parse(processedBody as string);\n } catch (e) {\n console.error('Unable to process the request body as a JSON string', e);\n }\n }\n\n return {\n payload: returnedPayload,\n url: returnedUrl,\n };\n }\n\n private encodeForEventType(eventType: EventType, payload: IRequestPayload): string {\n return this.isEventTypeLegacy(eventType)\n ? this.encodeForLegacyType(eventType, payload)\n : this.encodeForFormUrlEncoded({\n access_token: this.opts.token,\n ...payload,\n });\n }\n\n private async getQueryParamsForEventType(eventType: EventType): Promise<string> {\n const {token, visitorIdProvider} = this.opts;\n const visitorId = await visitorIdProvider.getCurrentVisitorId();\n return [\n token && this.isEventTypeLegacy(eventType) ? `access_token=${token}` : '',\n visitorId ? `visitorId=${visitorId}` : '',\n 'discardVisitInfo=true',\n ]\n .filter((p) => !!p)\n .join('&');\n }\n\n private isEventTypeLegacy(eventType: EventType) {\n return [EventType.click, EventType.custom, EventType.search, EventType.view].indexOf(eventType) !== -1;\n }\n\n private encodeForLegacyType(eventType: EventType, payload: IRequestPayload): string {\n return `${eventType}Event=${encodeURIComponent(JSON.stringify(payload))}`;\n }\n\n private encodeForFormUrlEncoded(payload: IRequestPayload): string {\n return Object.keys(payload)\n .filter((key) => !!payload[key])\n .map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(this.encodeValue(payload[key]))}`)\n .join('&');\n }\n\n private encodeValue(value: any) {\n return typeof value === 'number' || typeof value === 'string' || typeof value === 'boolean'\n ? value\n : JSON.stringify(value);\n }\n}\n","import {AnyEventResponse, EventType, IRequestPayload} from '../events';\n\nexport interface VisitorIdProvider {\n getCurrentVisitorId: () => Promise<string>;\n setCurrentVisitorId: (visitorId: string) => void;\n}\n\nexport interface AnalyticsRequestClient {\n sendEvent(eventType: string, payload: IRequestPayload): Promise<AnyEventResponse | void>;\n deleteHttpCookieVisitorId: () => Promise<void>;\n}\n\nexport interface IAnalyticsClientOptions {\n baseUrl: string;\n token?: string;\n visitorIdProvider: VisitorIdProvider;\n preprocessRequest?: PreprocessAnalyticsRequest;\n}\n\nexport type AnalyticsClientOrigin = 'analyticsFetch' | 'analyticsBeacon';\n\nexport type PreprocessAnalyticsRequest = (\n request: IAnalyticsRequestOptions,\n clientOrigin: AnalyticsClientOrigin\n) => IAnalyticsRequestOptions | Promise<IAnalyticsRequestOptions>;\n\nexport interface IAnalyticsRequestOptions extends RequestInit {\n url: string;\n}\n\nexport class NoopAnalyticsClient implements AnalyticsRequestClient {\n public async sendEvent(_: EventType, __: IRequestPayload): Promise<void> {\n return Promise.resolve();\n }\n\n public async deleteHttpCookieVisitorId() {\n return Promise.resolve();\n }\n}\n","// This file is to prevent including a fetch polyfill from the \"cross-fetch\" dependency when building for a browser target.\n// Major browsers today provide fetch on the window object, so including a polyfill would needlessly increase the size of the bundle.\nexport const fetch = window.fetch;\n","import {AnalyticsRequestClient, IAnalyticsRequestOptions, IAnalyticsClientOptions} from './analyticsRequestClient';\nimport {AnyEventResponse, EventType, IRequestPayload} from '../events';\nimport {fetch} from 'cross-fetch';\n\nexport class AnalyticsFetchClient implements AnalyticsRequestClient {\n constructor(private opts: IAnalyticsClientOptions) {}\n\n public async sendEvent(eventType: EventType, payload: IRequestPayload): Promise<AnyEventResponse> {\n const {baseUrl, visitorIdProvider, preprocessRequest} = this.opts;\n\n const visitorIdParam = this.shouldAppendVisitorId(eventType) ? await this.getVisitorIdParam() : '';\n const defaultOptions: IAnalyticsRequestOptions = {\n url: `${baseUrl}/analytics/${eventType}${visitorIdParam}`,\n credentials: 'include',\n mode: 'cors',\n headers: this.getHeaders(),\n method: 'POST',\n body: JSON.stringify(payload),\n };\n const {url, ...fetchData}: IAnalyticsRequestOptions = {\n ...defaultOptions,\n ...(preprocessRequest ? await preprocessRequest(defaultOptions, 'analyticsFetch') : {}),\n };\n\n const response = await fetch(url, fetchData);\n if (response.ok) {\n const visit = (await response.json()) as AnyEventResponse;\n\n if (visit.visitorId) {\n visitorIdProvider.setCurrentVisitorId(visit.visitorId);\n }\n\n return visit;\n } else {\n try {\n response.json();\n } catch {\n /* If you don't parse the response, it won't appear in the network tab. */\n }\n console.error(`An error has occured when sending the \"${eventType}\" event.`, response, payload);\n throw new Error(\n `An error has occurred when sending the \"${eventType}\" event. Check the console logs for more details.`\n );\n }\n }\n\n public async deleteHttpCookieVisitorId() {\n const {baseUrl} = this.opts;\n const url = `${baseUrl}/analytics/visit`;\n await fetch(url, {headers: this.getHeaders(), method: 'DELETE'});\n }\n\n private shouldAppendVisitorId(eventType: EventType) {\n return [EventType.click, EventType.custom, EventType.search, EventType.view].indexOf(eventType) !== -1;\n }\n\n private async getVisitorIdParam() {\n const {visitorIdProvider} = this.opts;\n const visitorId = await visitorIdProvider.getCurrentVisitorId();\n return visitorId ? `?visitor=${visitorId}` : '';\n }\n\n private getHeaders(): Record<string, string> {\n const {token} = this.opts;\n return {\n ...(token ? {Authorization: `Bearer ${token}`} : {}),\n 'Content-Type': `application/json`,\n };\n }\n}\n","import {WebStorage, NullStorage, CookieAndLocalStorage} from '../storage';\nimport {AnalyticsBeaconClient} from './analyticsBeaconClient';\nimport {hasLocalStorage, hasCookieStorage} from '../detector';\nimport {AnalyticsRequestClient, IAnalyticsClientOptions, NoopAnalyticsClient} from './analyticsRequestClient';\nimport {AnalyticsFetchClient} from './analyticsFetchClient';\nimport {BufferedRequest} from './analytics';\nimport {EventType} from '../events';\n\nexport interface IRuntimeEnvironment {\n storage: WebStorage;\n client: AnalyticsRequestClient;\n getClientDependingOnEventType(eventType: EventType): AnalyticsRequestClient;\n}\n\nexport class BrowserRuntime implements IRuntimeEnvironment {\n public storage: WebStorage;\n public client: AnalyticsFetchClient;\n private beaconClient: AnalyticsBeaconClient;\n\n constructor(clientOptions: IAnalyticsClientOptions, getUnprocessedRequests: () => Array<BufferedRequest>) {\n if (hasLocalStorage() && hasCookieStorage()) {\n this.storage = new CookieAndLocalStorage();\n } else if (hasLocalStorage()) {\n this.storage = localStorage;\n } else {\n console.warn('BrowserRuntime detected no valid storage available.', this);\n this.storage = new NullStorage();\n }\n this.client = new AnalyticsFetchClient(clientOptions);\n this.beaconClient = new AnalyticsBeaconClient(clientOptions);\n window.addEventListener('beforeunload', () => {\n const requests = getUnprocessedRequests();\n for (let {eventType, payload} of requests) {\n this.beaconClient.sendEvent(eventType, payload);\n }\n });\n }\n\n public getClientDependingOnEventType(eventType: EventType) {\n return eventType === 'click' && this.beaconClient.isAvailable() ? this.beaconClient : this.client;\n }\n}\n\nexport class NodeJSRuntime implements IRuntimeEnvironment {\n public storage: WebStorage;\n public client: AnalyticsFetchClient;\n\n constructor(clientOptions: IAnalyticsClientOptions, storage?: WebStorage) {\n this.storage = storage || new NullStorage();\n this.client = new AnalyticsFetchClient(clientOptions);\n }\n\n getClientDependingOnEventType(eventType: EventType): AnalyticsRequestClient {\n return this.client;\n }\n}\n\nexport class NoopRuntime implements IRuntimeEnvironment {\n public storage = new NullStorage();\n public client = new NoopAnalyticsClient();\n\n getClientDependingOnEventType(eventType: EventType): AnalyticsRequestClient {\n return this.client;\n }\n}\n","const API_KEY_PREFIX = 'xx';\n\nexport const isApiKey = (token?: string) => token?.startsWith(API_KEY_PREFIX) || false;\n","export const ReactNativeRuntimeWarning = `\n We've detected you're using React Native but have not provided the corresponding runtime, \n for an optimal experience please use the \"coveo.analytics/react-native\" subpackage.\n Follow the Readme on how to set it up: https://github.com/coveo/coveo.analytics.js#using-react-native\n `;\n\nexport function isReactNative() {\n return typeof navigator != 'undefined' && navigator.product == 'ReactNative';\n}\n","// Read the Mozilla Do Not Track Field Guide\n// (https://developer.mozilla.org/en-US/docs/Web/Security/Do_not_track_field_guide),\n// for information on how to use the donottrack\n// gathering data of actions of an user as long as it is not associated to the\n// identity of that user, doNotTrack is not enabled here.\n\nimport {hasNavigator} from './detector';\n\nconst doNotTrackValues = ['1', 1, 'yes', true];\n\nexport function doNotTrack(): boolean {\n return (\n hasNavigator() &&\n [\n (<any>navigator).globalPrivacyControl,\n (<any>navigator).doNotTrack,\n (<any>navigator).msDoNotTrack,\n (<any>window).doNotTrack,\n ].some((value) => doNotTrackValues.indexOf(value) !== -1)\n );\n}\n\nexport default doNotTrack;\n","import {\n AnyEventResponse,\n ClickEventRequest,\n ClickEventResponse,\n CustomEventRequest,\n CustomEventResponse,\n EventType,\n HealthResponse,\n SearchEventRequest,\n SearchEventResponse,\n ViewEventRequest,\n ViewEventResponse,\n VisitResponse,\n IRequestPayload,\n VariableArgumentsPayload,\n PreparedClickEventRequest,\n PreparedCustomEventRequest,\n PreparedViewEventRequest,\n PreparedSearchEventRequest,\n} from '../events';\nimport {IAnalyticsClientOptions, PreprocessAnalyticsRequest, VisitorIdProvider} from './analyticsRequestClient';\nimport {hasWindow, hasDocument} from '../detector';\nimport {addDefaultValues} from '../hook/addDefaultValues';\nimport {enhanceViewEvent} from '../hook/enhanceViewEvent';\nimport {v4 as uuidv4, v5 as uuidv5, validate as uuidValidate} from 'uuid';\nimport {libVersion} from '../version';\nimport {CoveoLinkParam} from '../plugins/link';\nimport {\n convertKeysToMeasurementProtocol,\n isMeasurementProtocolKey,\n convertCustomMeasurementProtocolKeys,\n} from './measurementProtocolMapper';\nimport {IRuntimeEnvironment, BrowserRuntime, NodeJSRuntime, NoopRuntime} from './runtimeEnvironment';\nimport HistoryStore from '../history';\nimport {isApiKey} from './token';\nimport {isReactNative, ReactNativeRuntimeWarning} from '../react-native/react-native-utils';\nimport {doNotTrack} from '../donottrack';\nimport {NullStorage} from '../storage';\nimport {isObject} from './utils';\n\nexport const Version = 'v15';\n\nexport const Endpoints = {\n default: 'https://analytics.cloud.coveo.com/rest/ua',\n production: 'https://analytics.cloud.coveo.com/rest/ua',\n hipaa: 'https://analyticshipaa.cloud.coveo.com/rest/ua',\n};\n\nexport interface ClientOptions {\n token?: string;\n endpoint: string;\n isCustomEndpoint?: boolean;\n version: string;\n runtimeEnvironment?: IRuntimeEnvironment;\n beforeSendHooks: AnalyticsClientSendEventHook[];\n afterSendHooks: AnalyticsClientSendEventHook[];\n preprocessRequest?: PreprocessAnalyticsRequest;\n}\n\nexport type AnalyticsClientSendEventHook = <TResult>(eventType: string, payload: any) => TResult | Promise<TResult>;\nexport type EventTypeConfig = {\n newEventType: EventType;\n variableLengthArgumentsNames?: string[];\n addVisitorIdParameter?: boolean;\n addClientIdParameter?: boolean;\n usesMeasurementProtocol?: boolean;\n};\n\nexport interface PreparedEvent<TPreparedRequest, TCompleteRequest, TResponse extends AnyEventResponse>\n extends BufferedRequest {\n log(remainingPayload: Omit<TCompleteRequest, keyof TPreparedRequest>): Promise<TResponse | void>;\n}\n\nexport interface AnalyticsClient {\n getPayload(eventType: string, ...payload: VariableArgumentsPayload): Promise<any>;\n getParameters(eventType: string, ...payload: VariableArgumentsPayload): Promise<any>;\n makeEvent<TPreparedRequest, TCompleteRequest, TResponse extends AnyEventResponse>(\n eventType: string,\n ...payload: VariableArgumentsPayload\n ): Promise<PreparedEvent<TPreparedRequest, TCompleteRequest, TResponse>>;\n sendEvent(eventType: string, ...payload: VariableArgumentsPayload): Promise<AnyEventResponse | void>;\n makeSearchEvent(\n request: PreparedSearchEventRequest\n ): Promise<PreparedEvent<PreparedSearchEventRequest, SearchEventRequest, SearchEventResponse>>;\n sendSearchEvent(request: SearchEventRequest): Promise<SearchEventResponse | void>;\n makeClickEvent(\n request: PreparedClickEventRequest\n ): Promise<PreparedEvent<PreparedClickEventRequest, ClickEventRequest, ClickEventResponse>>;\n sendClickEvent(request: ClickEventRequest): Promise<ClickEventResponse | void>;\n makeCustomEvent(\n request: PreparedCustomEventRequest\n ): Promise<PreparedEvent<PreparedCustomEventRequest, CustomEventRequest, CustomEventResponse>>;\n sendCustomEvent(request: CustomEventRequest): Promise<CustomEventResponse | void>;\n makeViewEvent(\n request: PreparedViewEventRequest\n ): Promise<PreparedEvent<PreparedViewEventRequest, ViewEventRequest, ViewEventResponse>>;\n sendViewEvent(request: ViewEventRequest): Promise<ViewEventResponse | void>;\n getVisit(): Promise<VisitResponse>;\n getHealth(): Promise<HealthResponse>;\n registerBeforeSendEventHook(hook: AnalyticsClientSendEventHook): void;\n registerAfterSendEventHook(hook: AnalyticsClientSendEventHook): void;\n addEventTypeMapping(eventType: string, eventConfig: EventTypeConfig): void;\n runtime: IRuntimeEnvironment;\n version: string;\n /**\n * @deprecated\n */\n readonly currentVisitorId: string;\n getCurrentVisitorId?(): Promise<string>; // TODO: v3 make required\n setAcceptedLinkReferrers?(hosts: string[]): void;\n}\n\nexport interface BufferedRequest {\n eventType: EventType;\n payload: any;\n}\n\ntype ProcessPayloadStep = (currentPayload: any) => any;\ntype AsyncProcessPayloadStep = (currentPayload: any) => Promise<any>;\n\nexport function buildBaseUrl(endpoint = Endpoints.default, apiVersion = Version, isCustomEndpoint = false) {\n endpoint = endpoint.replace(/\\/$/, ''); // Remove trailing slash in endpoint.\n\n if (isCustomEndpoint) {\n return `${endpoint}/${apiVersion}`;\n }\n\n const hasUARestEndpoint = endpoint.endsWith('/rest') || endpoint.endsWith('/rest/ua');\n\n return `${endpoint}${hasUARestEndpoint ? '' : '/rest'}/${apiVersion}`;\n}\n\n// Note: Changing this value will destroy the mapping from tracking string to clientId for all customers\n// using the setClientId() api. It will have the same effect as every visitor for those customers clearing\n// their cookie store at the same time, with corresponding downstream effects.\nconst COVEO_NAMESPACE = '38824e1f-37f5-42d3-8372-a4b8fa9df946';\n\nexport class CoveoAnalyticsClient implements AnalyticsClient, VisitorIdProvider {\n private get defaultOptions(): ClientOptions {\n return {\n endpoint: Endpoints.default,\n isCustomEndpoint: false,\n token: '',\n version: Version,\n beforeSendHooks: [],\n afterSendHooks: [],\n };\n }\n\n public runtime: IRuntimeEnvironment;\n public get version(): string {\n return libVersion;\n }\n private visitorId: string;\n private bufferedRequests: BufferedRequest[];\n private beforeSendHooks: AnalyticsClientSendEventHook[];\n private afterSendHooks: AnalyticsClientSendEventHook[];\n private eventTypeMapping: {[name: string]: EventTypeConfig};\n private options: ClientOptions;\n private acceptedLinkReferrers: string[] = [];\n\n constructor(opts: Partial<ClientOptions>) {\n if (!opts) {\n throw new Error('You have to pass options to this constructor');\n }\n\n this.options = {\n ...this.defaultOptions,\n ...opts,\n };\n\n this.visitorId = '';\n this.bufferedRequests = [];\n this.beforeSendHooks = [enhanceViewEvent, addDefaultValues].concat(this.options.beforeSendHooks);\n this.afterSendHooks = this.options.afterSendHooks;\n this.eventTypeMapping = {};\n\n const clientsOptions: IAnalyticsClientOptions = {\n baseUrl: this.baseUrl,\n token: this.options.token,\n visitorIdProvider: this,\n preprocessRequest: this.options.preprocessRequest,\n };\n\n this.runtime = this.options.runtimeEnvironment || this.initRuntime(clientsOptions);\n if (doNotTrack()) {\n this.clear();\n this.runtime.storage = new NullStorage();\n }\n\n this.addEventTypeMapping(EventType.view, {newEventType: EventType.view, addClientIdParameter: true});\n this.addEventTypeMapping(EventType.click, {newEventType: EventType.click, addClientIdParameter: true});\n this.addEventTypeMapping(EventType.custom, {newEventType: EventType.custom, addClientIdParameter: true});\n this.addEventTypeMapping(EventType.search, {newEventType: EventType.search, addClientIdParameter: true});\n }\n\n private initRuntime(clientsOptions: IAnalyticsClientOptions) {\n if (hasWindow() && hasDocument()) {\n return new BrowserRuntime(clientsOptions, () => {\n const copy = [...this.bufferedRequests];\n this.bufferedRequests = [];\n return copy;\n });\n } else if (isReactNative()) {\n console.warn(ReactNativeRuntimeWarning);\n }\n return new NodeJSRuntime(clientsOptions);\n }\n\n private get storage() {\n return this.runtime.storage;\n }\n\n private async determineVisitorId() {\n try {\n return (\n this.extractClientIdFromLink(window.location.href) ||\n (await this.storage.getItem('visitorId')) ||\n uuidv4()\n );\n } catch (err) {\n console.log(\n 'Could not get visitor ID from the current runtime environment storage. Using a random ID instead.',\n err\n );\n return uuidv4();\n }\n }\n\n async getCurrentVisitorId() {\n if (!this.visitorId) {\n const id = await this.determineVisitorId();\n await this.setCurrentVisitorId(id);\n }\n return this.visitorId;\n }\n\n async setCurrentVisitorId(visitorId: string) {\n this.visitorId = visitorId;\n await this.storage.setItem('visitorId', visitorId);\n }\n\n async setClientId(value: string, namespace?: string) {\n if (uuidValidate(value)) {\n this.setCurrentVisitorId(value.toLowerCase());\n } else {\n if (!namespace) {\n throw Error('Cannot generate uuid client id without a specific namespace string.');\n }\n this.setCurrentVisitorId(uuidv5(value, uuidv5(namespace, COVEO_NAMESPACE)));\n }\n }\n\n async getParameters(eventType: EventType | string, ...payload: VariableArgumentsPayload) {\n return await this.resolveParameters(eventType, ...payload);\n }\n\n async getPayload(eventType: EventType | string, ...payload: VariableArgumentsPayload) {\n const parametersToSend = await this.resolveParameters(eventType, ...payload);\n return await this.resolvePayloadForParameters(eventType, parametersToSend);\n }\n\n /**\n * @deprecated Synchronous method is deprecated, use getCurrentVisitorId instead. This method will NOT work with react-native.\n */\n get currentVisitorId() {\n const visitorId = this.visitorId || this.storage.getItem('visitorId');\n if (typeof visitorId !== 'string') {\n this.setCurrentVisitorId(uuidv4());\n }\n return this.visitorId;\n }\n\n /**\n * @deprecated Synchronous method is deprecated, use setCurrentVisitorId instead. This method will NOT work with react-native.\n */\n set currentVisitorId(visitorId: string) {\n this.visitorId = visitorId;\n this.storage.setItem('visitorId', visitorId);\n }\n\n private extractClientIdFromLink(urlString: string): string | null {\n if (doNotTrack()) {\n return null;\n }\n try {\n const linkParam: string | null = new URL(urlString).searchParams.get(CoveoLinkParam.cvo_cid);\n if (linkParam == null) {\n return null;\n }\n const linker: CoveoLinkParam | null = CoveoLinkParam.fromString(linkParam);\n if (!linker || !hasDocument() || !linker.validate(document.referrer, this.acceptedLinkReferrers)) {\n return null;\n }\n return linker.clientId;\n } catch (error) {\n // Ignore any parsing errors\n }\n return null;\n }\n\n async resolveParameters(eventType: EventType | string, ...payload: VariableArgumentsPayload) {\n const {\n variableLengthArgumentsNames = [],\n addVisitorIdParameter = false,\n usesMeasurementProtocol = false,\n addClientIdParameter = false,\n } = this.eventTypeMapping[eventType] || {};\n\n const processVariableArgumentNamesStep: ProcessPayloadStep = (currentPayload) =>\n variableLengthArgumentsNames.length > 0\n ? this.parseVariableArgumentsPayload(variableLengthArgumentsNames, currentPayload)\n : currentPayload[0];\n const addVisitorIdStep: AsyncProcessPayloadStep = async (currentPayload) => ({\n ...currentPayload,\n visitorId: addVisitorIdParameter ? await this.getCurrentVisitorId() : '',\n });\n const addClientIdStep: AsyncProcessPayloadStep = async (currentPayload) => {\n if (addClientIdParameter) {\n return {\n ...currentPayload,\n clientId: await this.getCurrentVisitorId(),\n };\n }\n return currentPayload;\n };\n const setAnonymousUserStep: ProcessPayloadStep = (currentPayload) =>\n usesMeasurementProtocol ? this.ensureAnonymousUserWhenUsingApiKey(currentPayload) : currentPayload;\n const processBeforeSendHooksStep: AsyncProcessPayloadStep = (currentPayload) =>\n this.beforeSendHooks.reduce(async (promisePayload, current) => {\n const payload = await promisePayload;\n return await current(eventType, payload);\n }, currentPayload);\n\n const parametersToSend = await [\n processVariableArgumentNamesStep,\n addVisitorIdStep,\n addClientIdStep,\n setAnonymousUserStep,\n processBeforeSendHooksStep,\n ].reduce(async (payloadPromise, step) => {\n const payload = await payloadPromise;\n return await step(payload);\n }, Promise.resolve(payload));\n\n return parametersToSend;\n }\n\n async resolvePayloadForParameters(eventType: EventType | string, parameters: any) {\n const {usesMeasurementProtocol = false} = this.eventTypeMapping[eventType] || {};\n\n const addTrackingIdStep: ProcessPayloadStep = (currentPayload) =>\n this.setTrackingIdIfTrackingIdNotPresent(currentPayload);\n const cleanPayloadStep: ProcessPayloadStep = (currentPayload) =>\n this.removeEmptyPayloadValues(currentPayload, eventType);\n const validateParams: ProcessPayloadStep = (currentPayload) => this.validateParams(currentPayload, eventType);\n const processMeasurementProtocolConversionStep: ProcessPayloadStep = (currentPayload) =>\n usesMeasurementProtocol ? convertKeysToMeasurementProtocol(currentPayload) : currentPayload;\n const removeUnknownParameters: ProcessPayloadStep = (currentPayload) =>\n usesMeasurementProtocol ? this.removeUnknownParameters(currentPayload) : currentPayload;\n const processCustomParameters: ProcessPayloadStep = (currentPayload) =>\n usesMeasurementProtocol\n ? this.processCustomParameters(currentPayload)\n : this.mapCustomParametersToCustomData(currentPayload);\n\n const payloadToSend = await [\n addTrackingIdStep,\n cleanPayloadStep,\n validateParams,\n processMeasurementProtocolConversionStep,\n removeUnknownParameters,\n processCustomParameters,\n ].reduce(async (payloadPromise, step) => {\n const payload = await payloadPromise;\n return await step(payload);\n }, Promise.resolve(parameters));\n\n return payloadToSend;\n }\n\n async makeEvent<TPreparedRequest, TCompleteRequest, TResponse extends AnyEventResponse>(\n eventType: EventType | string,\n ...payload: VariableArgumentsPayload\n ): Promise<PreparedEvent<TPreparedRequest, TCompleteRequest, TResponse>> {\n const {newEventType: eventTypeToSend = eventType as EventType} = this.eventTypeMapping[eventType] || {};\n\n const parametersToSend = await this.resolveParameters(eventType, ...payload);\n const payloadToSend = await this.resolvePayloadForParameters(eventType, parametersToSend);\n return {\n eventType: eventTypeToSend,\n payload: payloadToSend,\n log: async (remainingPayload) => {\n this.bufferedRequests.push(<BufferedRequest>{\n eventType: eventTypeToSend,\n payload: {...payloadToSend, ...remainingPayload},\n });\n await Promise.all(\n this.afterSendHooks.map((hook) => hook(eventType, {...parametersToSend, ...remainingPayload}))\n );\n await this.deferExecution();\n return (await this.sendFromBuffer()) as TResponse | void;\n },\n };\n }\n\n async sendEvent(eventType: EventType | string, ...payload: VariableArgumentsPayload) {\n return (await this.makeEvent<any, any, AnyEventResponse>(eventType, ...payload)).log({});\n }\n\n private deferExecution(): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, 0));\n }\n\n private async sendFromBuffer(): Promise<AnyEventResponse | void> {\n const popped = this.bufferedRequests.shift();\n if (popped) {\n const {eventType, payload} = popped;\n return this.runtime.getClientDependingOnEventType(eventType).sendEvent(eventType, payload);\n }\n }\n\n public clear() {\n this.storage.removeItem('visitorId');\n const store = new HistoryStore();\n store.clear();\n }\n\n public deleteHttpOnlyVisitorId() {\n this.runtime.client.deleteHttpCookieVisitorId();\n }\n\n async makeSearchEvent(request: PreparedSearchEventRequest) {\n return this.makeEvent<PreparedSearchEventRequest, SearchEventRequest, SearchEventResponse>(\n EventType.search,\n request\n );\n }\n\n async sendSearchEvent({searchQueryUid, ...preparedRequest}: SearchEventRequest) {\n return (await this.makeSearchEvent(preparedRequest)).log({searchQueryUid});\n }\n\n async makeClickEvent(request: PreparedClickEventRequest) {\n return this.makeEvent<PreparedClickEventRequest, ClickEventRequest, ClickEventResponse>(\n EventType.click,\n request\n );\n }\n\n async sendClickEvent({searchQueryUid, ...preparedRequest}: ClickEventRequest) {\n return (await this.makeClickEvent(preparedRequest)).log({searchQueryUid});\n }\n\n async makeCustomEvent(request: PreparedCustomEventRequest) {\n return this.makeEvent<PreparedCustomEventRequest, CustomEventRequest, CustomEventResponse>(\n EventType.custom,\n request\n );\n }\n\n async sendCustomEvent({lastSearchQueryUid, ...preparedRequest}: CustomEventRequest) {\n return (await this.makeCustomEvent(preparedRequest)).log({lastSearchQueryUid});\n }\n\n async makeViewEvent(request: PreparedViewEventRequest) {\n return this.makeEvent<PreparedViewEventRequest, ViewEventRequest, ViewEventResponse>(EventType.view, request);\n }\n\n async sendViewEvent(request: ViewEventRequest): Promise<ViewEventResponse | void> {\n return (await this.makeViewEvent(request)).log({});\n }\n\n async getVisit(): Promise<VisitResponse> {\n // deepcode ignore Ssrf: url is supplied by script owner\n const response = await fetch(`${this.baseUrl}/analytics/visit`);\n const visit = (await response.json()) as VisitResponse;\n this.visitorId = visit.visitorId;\n return visit;\n }\n\n async getHealth(): Promise<HealthResponse> {\n // deepcode ignore Ssrf: url is supplied by script owner\n const response = await fetch(`${this.baseUrl}/analytics/monitoring/health`);\n return (await response.json()) as HealthResponse;\n }\n\n registerBeforeSendEventHook(hook: AnalyticsClientSendEventHook): void {\n this.beforeSendHooks.push(hook);\n }\n\n registerAfterSendEventHook(hook: AnalyticsClientSendEventHook): void {\n this.afterSendHooks.push(hook);\n }\n\n addEventTypeMapping(eventType: string, eventConfig: EventTypeConfig): void {\n this.eventTypeMapping[eventType] = eventConfig;\n }\n\n setAcceptedLinkReferrers(hosts: string[]): void {\n if (Array.isArray(hosts) && hosts.every((host) => typeof host == 'string')) this.acceptedLinkReferrers = hosts;\n else throw Error('Parameter should be an array of domain strings');\n }\n\n private parseVariableArgumentsPayload(fieldsOrder: string[], payload: VariableArgumentsPayload) {\n const parsedArguments: {[name: string]: any} = {};\n for (let i = 0, length = payload.length; i < length; i++) {\n const currentArgument = payload[i];\n if (typeof currentArgument === 'string') {\n parsedArguments[fieldsOrder[i]] = currentArgument;\n } else if (typeof currentArgument === 'object') {\n // If the argument is an object, it is considered the last argument of the chain. Its values should be returned as-is.\n return {\n ...parsedArguments,\n ...currentArgument,\n };\n }\n }\n return parsedArguments;\n }\n\n private isKeyAllowedEmpty(evtType: string, key: string) {\n const keysThatCanBeEmpty: Record<string, string[]> = {\n [EventType.search]: ['queryText'],\n };\n\n const match = keysThatCanBeEmpty[evtType] || [];\n return match.indexOf(key) !== -1;\n }\n\n private removeEmptyPayloadValues(payload: IRequestPayload, eventType: string): IRequestPayload {\n const isNotEmptyValue = (value: any) => typeof value !== 'undefined' && value !== null && value !== '';\n return Object.keys(payload)\n .filter((key) => this.isKeyAllowedEmpty(eventType, key) || isNotEmptyValue(payload[key]))\n .reduce(\n (newPayload, key) => ({\n ...newPayload,\n [key]: payload[key],\n }),\n {}\n );\n }\n\n private removeUnknownParameters(payload: IRequestPayload): IRequestPayload {\n const newPayload = Object.keys(payload)\n .filter((key) => {\n if (isMeasurementProtocolKey(key)) {\n return true;\n } else {\n console.log(key, 'is not processed by coveoua');\n }\n })\n .reduce(\n (newPayload, key) => ({\n ...newPayload,\n [key]: payload[key],\n }),\n {}\n );\n return newPayload;\n }\n\n private processCustomParameters(payload: IRequestPayload): IRequestPayload {\n const {custom, ...rest} = payload;\n let lowercasedCustom = {};\n if (custom && isObject(custom)) {\n lowercasedCustom = this.lowercaseKeys(custom);\n }\n\n const newPayload = convertCustomMeasurementProtocolKeys(rest);\n\n return {\n ...lowercasedCustom,\n ...newPayload,\n };\n }\n\n private mapCustomParametersToCustomData(payload: IRequestPayload): IRequestPayload {\n const {custom, ...rest} = payload;\n if (custom && isObject(custom)) {\n const lowercasedCustom = this.lowercaseKeys(custom);\n return {...rest, customData: {...lowercasedCustom, ...payload.customData}};\n } else {\n return payload;\n }\n }\n\n private lowercaseKeys(custom: Record<string, unknown>) {\n const keys = Object.keys(custom);\n let result: Record<string, unknown> = {};\n keys.forEach((key) => {\n result[key.toLowerCase() as string] = custom[key];\n });\n return result;\n }\n\n private validateParams(payload: IRequestPayload, eventType: EventType | string): IRequestPayload {\n const {anonymizeIp, ...rest} = payload;\n if (anonymizeIp !== undefined) {\n if (['0', 'false', 'undefined', 'null', '{}', '[]', ''].indexOf(`${anonymizeIp}`.toLowerCase()) == -1) {\n rest.anonymizeIp = 1;\n }\n }\n\n if (\n eventType == EventType.view ||\n eventType == EventType.click ||\n eventType == EventType.search ||\n eventType == EventType.custom\n ) {\n rest.originLevel3 = this.limit(rest.originLevel3, 128);\n }\n if (eventType == EventType.view) {\n rest.location = this.limit(rest.location, 128);\n }\n if (eventType == 'pageview' || eventType == 'event') {\n rest.referrer = this.limit(rest.referrer, 2048);\n rest.location = this.limit(rest.location, 2048);\n rest.page = this.limit(rest.page, 2048);\n }\n return rest;\n }\n\n private ensureAnonymousUserWhenUsingApiKey(payload: IRequestPayload): IRequestPayload {\n const {userId, ...rest} = payload;\n if (isApiKey(this.options.token) && !userId) {\n rest['userId'] = 'anonymous';\n return rest;\n } else {\n return payload;\n }\n }\n\n private setTrackingIdIfTrackingIdNotPresent(payload: IRequestPayload): IRequestPayload {\n const {trackingId, ...rest} = payload;\n if (trackingId) {\n return payload;\n }\n\n if (rest.hasOwnProperty('custom') && isObject(rest.custom)) {\n if (rest.custom.hasOwnProperty('context_website') || rest.custom.hasOwnProperty('siteName')) {\n rest['trackingId'] = rest.custom.context_website || rest.custom.siteName;\n }\n }\n\n if (rest.hasOwnProperty('customData') && isObject(rest.customData)) {\n if (rest.customData.hasOwnProperty('context_website') || rest.customData.hasOwnProperty('siteName')) {\n rest['trackingId'] = rest.customData.context_website || rest.customData.siteName;\n }\n }\n\n return rest;\n }\n\n private limit(input: string, length: number): string | undefined | null {\n if (typeof input !== 'string') {\n return input;\n }\n return input.substring(0, length);\n }\n\n private get baseUrl(): string {\n return buildBaseUrl(this.options.endpoint, this.options.version, this.options.isCustomEndpoint);\n }\n}\n\nexport default CoveoAnalyticsClient;\n","import {EventType} from '../events';\nimport {v4 as uuidv4} from 'uuid';\nimport {\n convertProductToMeasurementProtocol,\n convertImpressionListToMeasurementProtocol,\n} from '../client/measurementProtocolMapping/commerceMeasurementProtocolMapper';\nimport {BasePlugin, BasePluginEventTypes, PluginClass, PluginOptions} from './BasePlugin';\nimport {coerceToNumber} from '../client/utils';\n\nexport const ECPluginEventTypes = {\n ...BasePluginEventTypes,\n};\n\nconst allECEventTypes = Object.keys(ECPluginEventTypes).map(\n (key) => ECPluginEventTypes[key as keyof typeof ECPluginEventTypes]\n);\n\n// From https://stackoverflow.com/a/49725198/497731\ntype RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> &\n {\n [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;\n }[Keys];\n\nexport type CustomValues = {\n [key: string]: string | number | boolean;\n};\n\nexport interface CoveoExtensionProperties {\n group?: string;\n}\n\nexport interface ProductProperties extends CoveoExtensionProperties {\n id?: string;\n name?: string;\n brand?: string;\n category?: string;\n variant?: string;\n price?: number;\n quantity?: number;\n coupon?: string;\n position?: number;\n custom?: CustomValues;\n}\n\nexport type Product = RequireAtLeastOne<ProductProperties, 'id' | 'name'>;\n\nexport interface ImpressionProperties extends CoveoExtensionProperties {\n id?: string;\n name?: string;\n list?: string;\n brand?: string;\n category?: string;\n variant?: string;\n position?: number;\n price?: number;\n custom?: CustomValues;\n}\n\nexport type Impression = RequireAtLeastOne<ImpressionProperties, 'id' | 'name'>;\nexport type BaseImpression = Omit<Impression, 'list'>;\nexport interface ImpressionList {\n listName?: string;\n impressions: BaseImpression[];\n}\n\nexport class ECPlugin extends BasePlugin {\n public static readonly Id = 'ec';\n private products: Product[] = [];\n private impressions: Impression[] = [];\n\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n super({client, uuidGenerator});\n }\n\n public getApi(name: string): Function | null {\n const superCall: Function | null = super.getApi(name);\n if (superCall !== null) return superCall;\n switch (name) {\n case 'addProduct':\n return this.addProduct;\n case 'addImpression':\n return this.addImpression;\n default:\n return null;\n }\n }\n\n protected addHooks(): void {\n this.addHooksForPageView();\n this.addHooksForEvent();\n this.addHooksForECEvents();\n }\n\n addProduct(product: Product) {\n this.products.push(product);\n }\n\n addImpression(impression: Impression) {\n this.impressions.push(impression);\n }\n\n protected clearPluginData() {\n this.products = [];\n this.impressions = [];\n }\n\n private addHooksForECEvents() {\n this.client.registerBeforeSendEventHook((eventType, ...[payload]) => {\n return allECEventTypes.indexOf(eventType) !== -1 ? this.addECDataToPayload(eventType, payload) : payload;\n });\n this.client.registerAfterSendEventHook((eventType, ...[payload]) => {\n if (allECEventTypes.indexOf(eventType) !== -1) {\n this.updateLocationInformation(eventType, payload);\n }\n return payload;\n });\n }\n\n private addHooksForPageView() {\n this.client.addEventTypeMapping(ECPluginEventTypes.pageview, {\n newEventType: EventType.collect,\n variableLengthArgumentsNames: ['page'],\n addVisitorIdParameter: true,\n usesMeasurementProtocol: true,\n });\n }\n\n private addHooksForEvent() {\n this.client.addEventTypeMapping(ECPluginEventTypes.event, {\n newEventType: EventType.collect,\n variableLengthArgumentsNames: ['eventCategory', 'eventAction', 'eventLabel', 'eventValue'],\n addVisitorIdParameter: true,\n usesMeasurementProtocol: true,\n });\n }\n\n private addECDataToPayload(eventType: string, payload: any) {\n const ecPayload = {\n ...this.getLocationInformation(eventType, payload),\n ...this.getDefaultContextInformation(eventType),\n ...(this.action ? {action: this.action} : {}),\n ...(this.actionData || {}),\n };\n\n const productPayload = this.getProductPayload();\n const impressionPayload = this.getImpressionPayload();\n\n this.clearData();\n\n return {\n ...impressionPayload,\n ...productPayload,\n ...ecPayload,\n ...payload,\n };\n }\n\n private getProductPayload() {\n return this.products\n .map((product) => this.assureProductValidity(product))\n .reduce((newPayload, product, index) => {\n return {\n ...newPayload,\n ...convertProductToMeasurementProtocol(this.convertNumberTypes(product), index),\n };\n }, {});\n }\n\n private convertNumberTypes(product: Product): Product {\n let updatedProduct: Product = {...product};\n if ('quantity' in updatedProduct) {\n updatedProduct.quantity = coerceToNumber(updatedProduct.quantity);\n }\n if ('position' in updatedProduct) {\n updatedProduct.position = coerceToNumber(updatedProduct.position);\n }\n return updatedProduct;\n }\n\n private getImpressionPayload() {\n const impressionsByList = this.getImpressionsByList();\n return impressionsByList\n .map(\n ({impressions, ...rest}) =>\n ({\n ...rest,\n impressions: impressions.map((baseImpression) =>\n this.assureBaseImpressionValidity(baseImpression)\n ),\n } as ImpressionList)\n )\n .reduce((newPayload, impressionList, index) => {\n return {\n ...newPayload,\n ...convertImpressionListToMeasurementProtocol(impressionList, index, 'pi'),\n };\n }, {});\n }\n\n private assureProductValidity(product: Product) {\n const {position, ...productRest} = product;\n if (position !== undefined && position < 1) {\n console.warn(\n `The position for product '${product.name || product.id}' must be greater ` + `than 0 when provided.`\n );\n\n return productRest;\n }\n\n return product;\n }\n\n private assureBaseImpressionValidity(baseImpression: BaseImpression) {\n const {position, ...baseImpressionRest} = baseImpression;\n if (position !== undefined && position < 1) {\n console.warn(\n `The position for impression '${baseImpression.name || baseImpression.id}'` +\n ` must be greater than 0 when provided.`\n );\n\n return baseImpressionRest;\n }\n\n return baseImpression;\n }\n\n private getImpressionsByList() {\n return this.impressions.reduce((lists, impression) => {\n const {list: listName, ...baseImpression} = impression;\n const list = lists.find((list) => list.listName === listName);\n if (list) {\n list.impressions.push(baseImpression);\n } else {\n lists.push({listName: listName, impressions: [baseImpression]});\n }\n return lists;\n }, [] as ImpressionList[]);\n }\n}\n\nexport const EC: PluginClass = ECPlugin;\n","import {EventType} from '../events';\nimport {v4 as uuidv4} from 'uuid';\nimport {convertTicketToMeasurementProtocol} from '../client/measurementProtocolMapping/serviceMeasurementProtocolMapper';\nimport {BasePlugin, BasePluginEventTypes, PluginClass, PluginOptions} from './BasePlugin';\n\nexport const SVCPluginEventTypes = {\n ...BasePluginEventTypes,\n};\n\nconst allSVCEventTypes = Object.keys(SVCPluginEventTypes).map(\n (key) => SVCPluginEventTypes[key as keyof typeof SVCPluginEventTypes]\n);\n\nexport type CustomValues = {\n [key: string]: string | number | boolean;\n};\n\nexport interface TicketProperties {\n id?: string;\n subject?: string;\n description?: string;\n category?: string;\n productId?: string;\n custom?: CustomValues;\n}\n\nexport type Ticket = TicketProperties;\n\nexport class SVCPlugin extends BasePlugin {\n public static readonly Id = 'svc';\n private ticket: Ticket = {};\n\n constructor({client, uuidGenerator = uuidv4}: PluginOptions) {\n super({client, uuidGenerator});\n }\n\n public getApi(name: string): Function | null {\n const superCall: Function | null = super.getApi(name);\n if (superCall !== null) return superCall;\n switch (name) {\n case 'setTicket':\n return this.setTicket;\n default:\n return null;\n }\n }\n\n protected addHooks(): void {\n this.addHooksForEvent();\n this.addHooksForPageView();\n this.addHooksForSVCEvents();\n }\n\n setTicket(ticket: Ticket) {\n this.ticket = ticket;\n }\n\n protected clearPluginData() {\n this.ticket = {};\n }\n\n private addHooksForSVCEvents() {\n this.client.registerBeforeSendEventHook((eventType, ...[payload]) => {\n return allSVCEventTypes.indexOf(eventType) !== -1 ? this.addSVCDataToPayload(eventType, payload) : payload;\n });\n this.client.registerAfterSendEventHook((eventType, ...[payload]) => {\n if (allSVCEventTypes.indexOf(eventType) !== -1) {\n this.updateLocationInformation(eventType, payload);\n }\n return payload;\n });\n }\n\n private addHooksForPageView() {\n this.client.addEventTypeMapping(SVCPluginEventTypes.pageview, {\n newEventType: EventType.collect,\n variableLengthArgumentsNames: ['page'],\n addVisitorIdParameter: true,\n usesMeasurementProtocol: true,\n });\n }\n\n private addHooksForEvent() {\n this.client.addEventTypeMapping(SVCPluginEventTypes.event, {\n newEventType: EventType.collect,\n variableLengthArgumentsNames: ['eventCategory', 'eventAction', 'eventLabel', 'eventValue'],\n addVisitorIdParameter: true,\n usesMeasurementProtocol: true,\n });\n }\n\n private addSVCDataToPayload(eventType: string, payload: any) {\n const svcPayload = {\n ...this.getLocationInformation(eventType, payload),\n ...this.getDefaultContextInformation(eventType),\n ...(this.action ? {svcAction: this.action} : {}),\n ...(Object.keys(this.actionData ?? {}).length > 0 ? {svcActionData: this.actionData} : {}),\n };\n\n const ticketPayload = this.getTicketPayload();\n this.clearData();\n\n return {\n ...ticketPayload,\n ...svcPayload,\n ...payload,\n };\n }\n\n private getTicketPayload() {\n return convertTicketToMeasurementProtocol(this.ticket);\n }\n}\n\nexport const SVC: PluginClass = SVCPlugin;\n","import {PluginClass, PluginOptions, BasePlugin, Plugin} from '../plugins/BasePlugin';\nimport {EC} from '../plugins/ec';\nimport {Link} from '../plugins/link';\nimport {SVC} from '../plugins/svc';\n\nexport class Plugins {\n public static readonly DefaultPlugins: string[] = [EC.Id, SVC.Id, Link.Id];\n private registeredPluginsMap: Record<string, PluginClass> = {\n [EC.Id]: EC,\n [SVC.Id]: SVC,\n [Link.Id]: Link,\n };\n private requiredPlugins: Record<string, BasePlugin> = {};\n\n require(name: string, options: PluginOptions): void {\n const pluginClass = this.registeredPluginsMap[name];\n if (!pluginClass) {\n throw new Error(\n `No plugin named \"${name}\" is currently registered. If you use a custom plugin, use 'provide' first.`\n );\n }\n this.requiredPlugins[name] = new (pluginClass as any)(options);\n }\n\n provide(name: string, plugin: PluginClass) {\n this.registeredPluginsMap[name] = plugin;\n }\n\n clearRequired(): void {\n this.requiredPlugins = {};\n }\n\n execute(name: string, fn: string, ...args: any[]): any {\n const plugin = this.requiredPlugins[name] as Plugin;\n if (!plugin) {\n throw new Error(`The plugin \"${name}\" is not required. Check that you required it on initialization.`);\n }\n const actionFunction = plugin.getApi(fn);\n if (!actionFunction) {\n throw new Error(`The function \"${fn}\" does not exist on the plugin \"${name}\".`);\n }\n if (typeof actionFunction !== 'function') {\n throw new Error(`\"${fn}\" of the plugin \"${name}\" is not a function.`);\n }\n return actionFunction.apply(plugin, args);\n }\n}\n","import {AnyEventResponse, EventType, SendEventArguments, VariableArgumentsPayload} from '../events';\nimport {AnalyticsClient, CoveoAnalyticsClient, Endpoints} from '../client/analytics';\nimport {Plugins} from './plugins';\nimport {PluginOptions} from '../plugins/BasePlugin';\nimport {PluginClass} from '../plugins/BasePlugin';\nimport {libVersion} from '../version';\n\nexport type AvailableActions = keyof CoveoUA;\n\nexport interface CoveoUAOptions {\n endpoint?: string;\n isCustomEndpoint?: boolean;\n plugins?: string[];\n}\n\n// CoveoUA mimics the GoogleAnalytics API.\nexport class CoveoUA {\n public client?: AnalyticsClient;\n private plugins: Plugins = new Plugins();\n private params: {[name: string]: string} = {};\n\n // init initializes a new SimpleAPI client.\n // @param token is your coveo access_token / api_key / ...\n // @param endpoint is the endpoint you want to target defaults to the\n // usage analytics production endpoint\n init(token: string | AnalyticsClient, optionsOrEndpoint: string | CoveoUAOptions): void {\n if (!token) {\n throw new Error(`You must pass your token when you call 'init'`);\n }\n\n if (typeof token === 'string') {\n this.client = new CoveoAnalyticsClient({\n token: token,\n endpoint: this.getEndpoint(optionsOrEndpoint),\n isCustomEndpoint: this.getIsCustomEndpoint(optionsOrEndpoint),\n });\n } else if (this.isAnalyticsClient(token)) {\n this.client = token;\n }\n\n if (this.client) {\n const pluginOptions: PluginOptions = {client: this.client};\n this.plugins.clearRequired();\n this.getPluginKeys(optionsOrEndpoint).forEach((pluginKey) =>\n this.plugins.require(pluginKey, pluginOptions)\n );\n this.client.registerBeforeSendEventHook((eventType, payload) => ({\n ...payload,\n ...this.params,\n }));\n } else {\n throw new Error(`You must pass either your token or a valid object when you call 'init'`);\n }\n }\n\n private isAnalyticsClient(token: AnalyticsClient): token is AnalyticsClient {\n return typeof token === 'object' && typeof token.sendEvent !== 'undefined';\n }\n\n private getPluginKeys(optionsOrEndpoint: string | CoveoUAOptions): string[] {\n if (typeof optionsOrEndpoint === 'string') {\n return Plugins.DefaultPlugins;\n }\n return Array.isArray(optionsOrEndpoint?.plugins) ? optionsOrEndpoint.plugins : Plugins.DefaultPlugins;\n }\n\n private getEndpoint(optionsOrEndpoint: string | CoveoUAOptions) {\n if (typeof optionsOrEndpoint === 'string') {\n return optionsOrEndpoint || Endpoints.default;\n } else if (optionsOrEndpoint?.endpoint) {\n return optionsOrEndpoint.endpoint;\n }\n return Endpoints.default;\n }\n\n private getIsCustomEndpoint(optionsOrEndpoint: string | CoveoUAOptions) {\n if (typeof optionsOrEndpoint === 'string') {\n return false;\n } else if (optionsOrEndpoint?.isCustomEndpoint) {\n return optionsOrEndpoint.isCustomEndpoint;\n }\n return false;\n }\n\n // init initializes a new client intended to be used with a proxy that injects the access token.\n // @param endpoint is the endpoint of your proxy.\n initForProxy(endpoint: string, isCustomEndpoint = false): void {\n if (!endpoint) {\n throw new Error(`You must pass your endpoint when you call 'initForProxy'`);\n }\n\n if (typeof endpoint !== 'string') {\n throw new Error(`You must pass a string as the endpoint parameter when you call 'initForProxy'`);\n }\n\n this.client = new CoveoAnalyticsClient({\n endpoint: endpoint,\n isCustomEndpoint: isCustomEndpoint,\n });\n }\n\n set(keyOrObject: string | any, value: string): void {\n if (typeof keyOrObject === 'string') {\n this.params[keyOrObject] = value;\n } else {\n Object.keys(keyOrObject).map((key) => {\n this.params[key] = keyOrObject[key];\n });\n }\n }\n\n send(...[event, ...payload]: SendEventArguments): Promise<AnyEventResponse | void> {\n if (typeof this.client == 'undefined') {\n throw new Error(`You must call init before sending an event`);\n }\n\n if (!event) {\n throw new Error(`You must provide an event type when calling \"send\".`);\n }\n\n return this.client.sendEvent(event.toLowerCase(), ...(payload as VariableArgumentsPayload));\n }\n\n onLoad(callback: Function) {\n if (typeof callback == 'undefined') {\n throw new Error(`You must pass a function when you call 'onLoad'`);\n }\n\n callback();\n }\n\n provide(name: string, plugin: PluginClass) {\n this.plugins.provide(name, plugin);\n }\n\n require(name: string, options: Omit<PluginOptions, 'client'>) {\n if (!this.client) {\n throw new Error(`You must call init before requiring a plugin`);\n }\n this.plugins.require(name, {...options, client: this.client});\n }\n\n callPlugin(pluginName: string, fn: string, ...args: any): any {\n if (!this.client) {\n throw new Error(`You must call init before calling a plugin function`);\n }\n return this.plugins.execute(pluginName, fn, ...args);\n }\n\n reset() {\n this.client = undefined;\n this.plugins = new Plugins();\n this.params = {};\n }\n\n version(): string {\n return libVersion;\n }\n}\n\nexport const coveoua = new CoveoUA();\nexport const getCurrentClient = () => coveoua.client;\n\nexport const handleOneAnalyticsEvent = (command: string, ...params: any[]) => {\n const [, trackerName, pluginName, fn] = /^(?:(\\w+)\\.)?(?:(\\w+):)?(\\w+)$/.exec(command)!;\n\n const actionFunction = (<any>coveoua)[fn];\n if (pluginName && fn) {\n return coveoua.callPlugin(pluginName as string, fn, ...params);\n } else if (actionFunction) {\n return actionFunction.apply(coveoua, params);\n } else {\n const actions: AvailableActions[] = [\n 'init',\n 'set',\n 'send',\n 'onLoad',\n 'callPlugin',\n 'reset',\n 'require',\n 'provide',\n 'version',\n ];\n throw new Error(`The action \"${command}\" does not exist. Available actions: ${actions.join(', ')}.`);\n }\n};\n\nexport default handleOneAnalyticsEvent;\n","import {\n CategoryFacetMetadata,\n FacetBaseMeta,\n FacetMetadata,\n FacetRangeMetadata,\n FacetSortMeta,\n InterfaceChangeMetadata,\n PagerMetadata,\n QueryErrorMeta,\n ResultsSortMetadata,\n StaticFilterToggleValueMetadata,\n} from '../searchPage/searchPageEvents';\n\nexport enum InsightEvents {\n /**\n * Identifies the search event that gets logged when the query context is updated as a result of updating one of the case context fields.\n */\n contextChanged = 'contextChanged',\n /**\n * Identifies the event that gets logged when the user opens the full search page from the insight panel.\n */\n expandToFullUI = 'expandToFullUI',\n /**\n * Identifies the event that gets logged when the user opens the user actions section.\n */\n openUserActions = 'openUserActions',\n /**\n * Identifies the event that gets logged when the user clicks to view user action sessions preceding the ticket creation.\n */\n showPrecedingSessions = 'showPrecedingSessions',\n /**\n * Identifies the event that gets logged when the user clicks to view user action sessions following the ticket creation.\n */\n showFollowingSessions = 'showFollowingSessions',\n /**\n * Identifies the event that gets logged when the user clicks a viewed document link on the user actions timeline.\n */\n clickViewedDocument = 'clickViewedDocument',\n /**\n * Identifies the event that gets logged when the user clicks a viewed page link on the user actions timeline.\n */\n clickPageView = 'clickPageView',\n /**\n * Identifies the event that gets logged when the user clicks the create article button.\n */\n createArticle = 'createArticle',\n}\n\nexport interface CaseMetadata {\n caseId?: string;\n caseNumber?: string;\n caseContext?: Record<string, string>;\n}\n\nexport interface ExpandToFullUIMetadata extends CaseMetadata {\n fullSearchComponentName: string;\n triggeredBy: string;\n}\n\nexport interface UserActionsDocumentMetadata {\n title: string;\n uri: string;\n uriHash?: string;\n permanentId?: string;\n}\n\nexport interface UserActionsPageViewMetadata {\n title: string;\n contentIdKey: string;\n contentIdValue: string;\n}\n\nexport interface CreateArticleMetadata {\n articleType: string;\n triggeredBy: string;\n}\n\nexport interface InsightInterfaceChangeMetadata extends InterfaceChangeMetadata, CaseMetadata {}\n\nexport interface InsightFacetMetadata extends FacetMetadata, CaseMetadata {}\n\nexport interface InsightStaticFilterToggleValueMetadata extends StaticFilterToggleValueMetadata, CaseMetadata {}\n\nexport interface InsightFacetRangeMetadata extends FacetRangeMetadata, CaseMetadata {}\n\nexport interface InsightCategoryFacetMetadata extends CategoryFacetMetadata, CaseMetadata {}\n\nexport interface InsightFacetSortMeta extends FacetSortMeta, CaseMetadata {}\n\nexport interface InsightFacetBaseMeta extends FacetBaseMeta, CaseMetadata {}\n\nexport interface InsightQueryErrorMeta extends QueryErrorMeta, CaseMetadata {}\n\nexport interface InsightPagerMetadata extends PagerMetadata, CaseMetadata {}\n\nexport interface InsightResultsSortMetadata extends ResultsSortMetadata, CaseMetadata {}\n","import {DocumentInformation, FacetStateRequest} from '../events';\nimport {InsightEvents} from '../insight/insightEvents';\n\nexport enum SearchPageEvents {\n /**\n * Identifies the search event that gets logged when the initial query is performed as a result of loading a search interface.\n */\n interfaceLoad = 'interfaceLoad',\n /**\n * Identifies the search event that gets logged when a new tab is selected in the search interface.\n */\n interfaceChange = 'interfaceChange',\n /**\n * Identifies the search event that gets logged when `enableAutoCorrection: true` and the query is automatically corrected.\n */\n didyoumeanAutomatic = 'didyoumeanAutomatic',\n /**\n * Identifies the search event that gets logged when the query suggestion with the corrected term is selected and successfully updates the query.\n */\n didyoumeanClick = 'didyoumeanClick',\n /**\n * Identifies the search event that gets logged when a sorting method is selected.\n */\n resultsSort = 'resultsSort',\n /**\n * Identifies the search event that gets logged when a submit button is selected on a search box.\n */\n searchboxSubmit = 'searchboxSubmit',\n /**\n * Identifies the search event that gets logged when a clear button is selected on a search box.\n */\n searchboxClear = 'searchboxClear',\n /**\n * The search-as-you-type event that gets logged when a query is automatically generated, and results are displayed while a user is entering text in the search box before they voluntarily submit the query.\n */\n searchboxAsYouType = 'searchboxAsYouType',\n /**\n * The event that gets logged when a breadcrumb facet is selected and the query is updated.\n */\n breadcrumbFacet = 'breadcrumbFacet',\n /**\n * Identifies the search event that gets logged when the event to clear the current breadcrumbs is triggered.\n */\n breadcrumbResetAll = 'breadcrumbResetAll',\n /**\n * Identifies the click event that gets logged when the Quick View element is selected and a Quick View modal of the document is displayed.\n */\n documentQuickview = 'documentQuickview',\n /**\n * Identifies the click event that gets logged when a user clicks on a search result to open an item.\n */\n documentOpen = 'documentOpen',\n /**\n * Identifies the search event that gets logged when a user clicks a query suggestion based on the usage analytics recorded queries.\n */\n omniboxAnalytics = 'omniboxAnalytics',\n /**\n * Identifies the search event that gets logged when a suggested search query is selected from a standalone searchbox.\n */\n omniboxFromLink = 'omniboxFromLink',\n /**\n * Identifies the search event that gets logged when the search page loads with a query, such as when a user clicks a link pointing to a search results page with a query or enters a query in a standalone search box that points to a search page.\n */\n searchFromLink = 'searchFromLink',\n /**\n * Identifies the custom event that gets logged when a user action triggers a notification set in the effective query pipeline on the search page.\n */\n triggerNotify = 'notify',\n /**\n * Identifies the custom event that gets logged when a user action executes a JavaScript function set in the effective query pipeline on the search page.\n */\n triggerExecute = 'execute',\n /**\n * Identifies the custom event that gets logged when a user action triggers a new query set in the effective query pipeline on the search page.\n */\n triggerQuery = 'query',\n /**\n * Identifies the custom event that gets logged when a user undoes a query set in the effective query pipeline on the search page.\n */\n undoTriggerQuery = 'undoQuery',\n /**\n * Identifies the custom event that gets logged when a user action redirects them to a URL set in the effective query pipeline on the search page.\n */\n triggerRedirect = 'redirect',\n /**\n * Identifies the custom event that gets logged when the Results per page component is selected.\n */\n pagerResize = 'pagerResize',\n /**\n * Identifies the custom event that gets logged when a page number is selected and more items are loaded.\n */\n pagerNumber = 'pagerNumber',\n /**\n * Identifies the custom event that gets logged when the Next Page link is selected and more items are loaded.\n */\n pagerNext = 'pagerNext',\n /**\n * Identifies the custom event that gets logged when the Previous Page link is selected and more items are loaded.\n */\n pagerPrevious = 'pagerPrevious',\n /**\n * Identifies the custom event that gets logged when the user scrolls to the bottom of the item page and more results are loaded.\n */\n pagerScrolling = 'pagerScrolling',\n /**\n * Identifies the search event that gets logged when the clearing all selected values of a static filter.\n */\n staticFilterClearAll = 'staticFilterClearAll',\n /**\n * Identifies the search event that gets logged when a static filter check box is selected and the query is updated.\n */\n staticFilterSelect = 'staticFilterSelect',\n /**\n * Identifies the search event that gets logged when a static filter check box is deselected and the query is updated.\n */\n staticFilterDeselect = 'staticFilterDeselect',\n /**\n * Identifies the search event that gets logged when the Clear Facet button is selected.\n */\n facetClearAll = 'facetClearAll',\n /**\n * Identifies the custom event that gets logged when a query is being typed into the facet search box.\n */\n facetSearch = 'facetSearch',\n /**\n * Identifies the search event that gets logged when a facet check box is selected and the query is updated.\n */\n facetSelect = 'facetSelect',\n /**\n * Identifies the search event that gets logged when all filters on a facet are selected.\n */\n facetSelectAll = 'facetSelectAll',\n /**\n * Identifies the search event that gets logged when a facet check box is deselected and the query is updated.\n */\n facetDeselect = 'facetDeselect',\n /**\n * Identifies the search event that gets logged when a user clicks a facet value to filter out results containing the facet value.\n */\n facetExclude = 'facetExclude',\n /**\n * Identifies the search event that gets logged when a user clicks a facet value to not filter out results containing the facet value.\n */\n facetUnexclude = 'facetUnexclude',\n /**\n * Identifies the search event that gets logged when the sort criteria on a facet is updated.\n */\n facetUpdateSort = 'facetUpdateSort',\n /**\n * The custom event that gets logged when an end-user expands a facet to see additional values.\n */\n facetShowMore = 'showMoreFacetResults',\n /**\n * The custom event that gets logged when an end-user collapses a facet to see less values.\n */\n facetShowLess = 'showLessFacetResults',\n /**\n * Identifies the custom event that gets logged when a user query encounters an error during execution.\n */\n queryError = 'query',\n /**\n * Identifies the search and custom event that gets logged when a user clicks the Go Back link after an error page.\n */\n queryErrorBack = 'errorBack',\n /**\n * Identifies the search and custom event that gets logged when a user clears the query box after an error page.\n */\n queryErrorClear = 'errorClearQuery',\n /**\n * Identifies the search and custom event that gets logged when a user clicks the Retry link after an error page.\n */\n queryErrorRetry = 'errorRetry',\n /**\n * Identifies the custom event that gets logged when a user performs a query that returns recommendations in the Recommendations panel.\n */\n recommendation = 'recommendation',\n /**\n * Identifies the search event that gets logged when a user action (that is not a query) reloads the Recommendations panel with new recommendations.\n */\n recommendationInterfaceLoad = 'recommendationInterfaceLoad',\n /**\n * Identifies the click event that gets logged when a user clicks a recommendation in the Recommendations panel.\n */\n recommendationOpen = 'recommendationOpen',\n /**\n * Identifies the custom event that gets logged when a user identifies a smart snippet answer as relevant.\n */\n likeSmartSnippet = 'likeSmartSnippet',\n /**\n * Identifies the custom event that gets logged when a user identifies a smart snippet answer as irrelevant.\n */\n dislikeSmartSnippet = 'dislikeSmartSnippet',\n /**\n * Identifies the custom event that gets logged when a user expand a smart snippet answer.\n */\n expandSmartSnippet = 'expandSmartSnippet',\n /**\n * Identifies the custom event that gets logged when a user collapse a smart snippet answer.\n */\n collapseSmartSnippet = 'collapseSmartSnippet',\n /**\n * Identifies the custom event that gets logged when a user open a smart snippet explanation modal for feedback.\n */\n openSmartSnippetFeedbackModal = 'openSmartSnippetFeedbackModal',\n /**\n * Identifies the custom event that gets logged when a user close a smart snippet explanation modal for feedback.\n */\n closeSmartSnippetFeedbackModal = 'closeSmartSnippetFeedbackModal',\n /**\n * Identifies the custom event that gets logged when a user sends an explanation for a smart snippet irrelevant answer.\n */\n sendSmartSnippetReason = 'sendSmartSnippetReason',\n /**\n * Identifies the custom event that gets logged when a snippet suggestion for a related question is expanded.\n */\n expandSmartSnippetSuggestion = 'expandSmartSnippetSuggestion',\n /**\n * Identifies the custom event that gets logged when a snippet suggestion for a related question is collapsed.\n */\n collapseSmartSnippetSuggestion = 'collapseSmartSnippetSuggestion',\n /**\n * Identifies the custom event that gets logged when the user presses \"show more\" on a snippet suggestion for a related question.\n *\n * @deprecated\n */\n showMoreSmartSnippetSuggestion = 'showMoreSmartSnippetSuggestion',\n /**\n * Identifies the custom event that gets logged when the user presses \"show less\" on a snippet suggestion for a related question.\n *\n * @deprecated\n */\n showLessSmartSnippetSuggestion = 'showLessSmartSnippetSuggestion',\n /**\n * Identifies the custom event that gets logged when a user clicks on the source of an answer in a smart snippet.\n */\n openSmartSnippetSource = 'openSmartSnippetSource',\n /**\n * Identifies the custom event that gets logged when a user clicks on the source of a snippet suggestion for a related question.\n */\n openSmartSnippetSuggestionSource = 'openSmartSnippetSuggestionSource',\n /**\n * Identifies the custom event that gets logged when a user clicks on a link in the answer of a smart snippet.\n */\n openSmartSnippetInlineLink = 'openSmartSnippetInlineLink',\n /**\n * Identifies the custom event that gets logged when a user clicks on a link in the snippet suggestion for a related question.\n */\n openSmartSnippetSuggestionInlineLink = 'openSmartSnippetSuggestionInlineLink',\n /**\n * Identifies the search event that gets logged when a recent queries list item gets clicked.\n */\n recentQueryClick = 'recentQueriesClick',\n /**\n * Identifies the custom event that gets logged when a recent queries list gets cleared.\n */\n clearRecentQueries = 'clearRecentQueries',\n /**\n * Identifies the custom event that gets logged when a recently clicked results list item gets clicked.\n */\n recentResultClick = 'recentResultClick',\n /**\n * Identifies the custom event that gets logged when a recently clicked results list gets cleared.\n */\n clearRecentResults = 'clearRecentResults',\n /**\n * Identifies the search event that gets logged when a user clicks the Cancel last action link when no results are returned following their last action.\n */\n noResultsBack = 'noResultsBack',\n /**\n * Identifies the click event that gets logged when a user clicks the Show More link under a search result that support the folding component.\n */\n showMoreFoldedResults = 'showMoreFoldedResults',\n /**\n * Identifies the custom event that gets logged when a user clicks the Show Less link under a search result that support the folding component.\n */\n showLessFoldedResults = 'showLessFoldedResults',\n /**\n * Identifies the click event that gets logged when a user clicks the Copy To Clipboard result action.\n */\n copyToClipboard = 'copyToClipboard',\n /**\n * Identifies the click event that gets logged when a user clicks the Send As Email result action.\n */\n caseSendEmail = 'Case.SendEmail',\n /**\n * Identifies the click event that gets logged when a user clicks the Post To Feed result action.\n */\n feedItemTextPost = 'FeedItem.TextPost',\n /**\n * Identifies the click event that gets logged when a user clicks the Attach To Case result action.\n */\n caseAttach = 'caseAttach',\n /**\n * Identifies the custom event that gets logged when a user clicks the Detach From Case result action.\n */\n caseDetach = 'caseDetach',\n /**\n * Identifies the cause of a search request being retried in order to regenerate an answer stream that failed.\n */\n retryGeneratedAnswer = 'retryGeneratedAnswer',\n /**\n * Identifies the custom event that gets logged when a user identifies a generated answer as relevant.\n */\n likeGeneratedAnswer = 'likeGeneratedAnswer',\n /**\n * Identifies the custom event that gets logged when a user identifies a generated answer as irrelevant.\n */\n dislikeGeneratedAnswer = 'dislikeGeneratedAnswer',\n /**\n * Identifies the custom event that gets logged when a user opens a generated answer citation.\n */\n openGeneratedAnswerSource = 'openGeneratedAnswerSource',\n /**\n * Identified the custom event that gets logged when a generated answer stream is completed.\n */\n generatedAnswerStreamEnd = 'generatedAnswerStreamEnd',\n /**\n * Identifies the custom event that gets logged when a user hovers over a generated answer citation.\n */\n generatedAnswerSourceHover = 'generatedAnswerSourceHover',\n /**\n * Identifies the custom event that gets logged when a user clicks the copy to clip board button of a generated answer.\n */\n generatedAnswerCopyToClipboard = 'generatedAnswerCopyToClipboard',\n /**\n * Identifies the custom event that gets logged when a user deactivates the genQA feature.\n */\n generatedAnswerHideAnswers = 'generatedAnswerHideAnswers',\n /**\n * Identifies the custom event that gets logged when a user activates the genQA feature.\n */\n generatedAnswerShowAnswers = 'generatedAnswerShowAnswers',\n /**\n * Identifies the custom event that gets logged when a user submits a feedback of a generated answer.\n */\n generatedAnswerFeedbackSubmit = 'generatedAnswerFeedbackSubmit',\n /**\n * Identifies the search event that gets logged when a user clicks the rephrase button in a generated answer.\n */\n rephraseGeneratedAnswer = 'rephraseGeneratedAnswer',\n}\n\nexport const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents, string>> = {\n [SearchPageEvents.triggerNotify]: 'queryPipelineTriggers',\n [SearchPageEvents.triggerExecute]: 'queryPipelineTriggers',\n [SearchPageEvents.triggerQuery]: 'queryPipelineTriggers',\n [SearchPageEvents.triggerRedirect]: 'queryPipelineTriggers',\n [SearchPageEvents.queryError]: 'errors',\n [SearchPageEvents.queryErrorBack]: 'errors',\n [SearchPageEvents.queryErrorClear]: 'errors',\n [SearchPageEvents.queryErrorRetry]: 'errors',\n [SearchPageEvents.pagerNext]: 'getMoreResults',\n [SearchPageEvents.pagerPrevious]: 'getMoreResults',\n [SearchPageEvents.pagerNumber]: 'getMoreResults',\n [SearchPageEvents.pagerResize]: 'getMoreResults',\n [SearchPageEvents.pagerScrolling]: 'getMoreResults',\n [SearchPageEvents.facetSearch]: 'facet',\n [SearchPageEvents.facetShowLess]: 'facet',\n [SearchPageEvents.facetShowMore]: 'facet',\n [SearchPageEvents.recommendation]: 'recommendation',\n [SearchPageEvents.likeSmartSnippet]: 'smartSnippet',\n [SearchPageEvents.dislikeSmartSnippet]: 'smartSnippet',\n [SearchPageEvents.expandSmartSnippet]: 'smartSnippet',\n [SearchPageEvents.collapseSmartSnippet]: 'smartSnippet',\n [SearchPageEvents.openSmartSnippetFeedbackModal]: 'smartSnippet',\n [SearchPageEvents.closeSmartSnippetFeedbackModal]: 'smartSnippet',\n [SearchPageEvents.sendSmartSnippetReason]: 'smartSnippet',\n [SearchPageEvents.expandSmartSnippetSuggestion]: 'smartSnippetSuggestions',\n [SearchPageEvents.collapseSmartSnippetSuggestion]: 'smartSnippetSuggestions',\n [SearchPageEvents.showMoreSmartSnippetSuggestion]: 'smartSnippetSuggestions',\n [SearchPageEvents.showLessSmartSnippetSuggestion]: 'smartSnippetSuggestions',\n [SearchPageEvents.clearRecentQueries]: 'recentQueries',\n [SearchPageEvents.recentResultClick]: 'recentlyClickedDocuments',\n [SearchPageEvents.clearRecentResults]: 'recentlyClickedDocuments',\n [SearchPageEvents.showLessFoldedResults]: 'folding',\n [SearchPageEvents.caseDetach]: 'case',\n [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',\n [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',\n [SearchPageEvents.openGeneratedAnswerSource]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerStreamEnd]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerSourceHover]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerCopyToClipboard]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerHideAnswers]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerShowAnswers]: 'generatedAnswer',\n [SearchPageEvents.generatedAnswerFeedbackSubmit]: 'generatedAnswer',\n [InsightEvents.expandToFullUI]: 'interface',\n [InsightEvents.openUserActions]: 'User Actions',\n [InsightEvents.showPrecedingSessions]: 'User Actions',\n [InsightEvents.showFollowingSessions]: 'User Actions',\n [InsightEvents.clickViewedDocument]: 'User Actions',\n [InsightEvents.clickPageView]: 'User Actions',\n [InsightEvents.createArticle]: 'createArticle',\n};\n\nexport interface StaticFilterMetadata {\n staticFilterId: string;\n}\n\nexport interface StaticFilterToggleValueMetadata extends StaticFilterMetadata {\n staticFilterValue: StaticFilterValueMetadata;\n}\n\ninterface StaticFilterValueMetadata {\n caption: string;\n expression: string;\n}\n\nexport interface FacetMetadata {\n facetId: string;\n facetField: string;\n facetValue: string;\n facetTitle: string;\n}\n\nexport type FacetStateMetadata = FacetStateRequest;\nexport interface FacetRangeMetadata extends Omit<FacetMetadata, 'facetValue'> {\n facetRangeStart: string;\n facetRangeEnd: string;\n facetRangeEndInclusive: boolean;\n}\n\nexport interface CategoryFacetMetadata {\n categoryFacetId: string;\n categoryFacetField: string;\n categoryFacetPath: string[];\n categoryFacetTitle: string;\n}\n\nexport interface OmniboxSuggestionsMetadata {\n suggestionRanking: number;\n partialQueries: string | string[];\n suggestions: string | string[];\n partialQuery: string;\n querySuggestResponseId: string;\n}\n\nexport interface DocumentIdentifier {\n contentIDKey: string;\n contentIDValue: string;\n}\n\nexport interface InterfaceChangeMetadata {\n interfaceChangeTo: string;\n}\n\nexport interface ResultsSortMetadata {\n resultsSortBy: string;\n}\n\nexport interface TriggerNotifyMetadata {\n notifications: string[];\n}\n\nexport interface TriggerExecution {\n functionName: string;\n params: (string | number | boolean)[];\n}\n\nexport interface TriggerExecuteMetadata {\n executions: TriggerExecution[];\n}\n\nexport interface UndoTriggerRedirectMetadata {\n undoneQuery: string;\n}\n\nexport interface TriggerRedirectMetadata {\n redirectedTo: string;\n}\n\nexport interface PagerResizeMetadata {\n currentResultsPerPage: number;\n}\n\nexport interface PagerMetadata {\n pagerNumber: number;\n}\n\nexport interface FacetBaseMeta {\n facetId: string;\n facetField: string;\n facetTitle: string;\n}\n\nexport interface FacetMetadata extends FacetBaseMeta {\n facetValue: string;\n}\n\nexport interface FacetRangeMetadata extends FacetBaseMeta {\n facetRangeStart: string;\n facetRangeEnd: string;\n}\n\nexport interface FacetSortMeta extends FacetBaseMeta {\n criteria: string;\n}\n\nexport interface QueryErrorMeta {\n query: string;\n aq: string;\n cq: string;\n dq: string;\n errorType: string;\n errorMessage: string;\n}\n\nexport type SmartSnippetFeedbackReason = 'does_not_answer' | 'partially_answers' | 'was_not_a_question' | 'other';\n\nexport interface SmartSnippetSuggestionMeta {\n question: string;\n answerSnippet: string;\n documentId: SmartSnippetDocumentIdentifier;\n}\n\nexport interface SmartSnippetLinkMeta {\n linkText: string;\n linkURL: string;\n}\n\nexport interface SmartSnippetDocumentIdentifier {\n contentIdKey: string;\n contentIdValue: string;\n}\n\nexport type PartialDocumentInformation = Omit<DocumentInformation, 'actionCause' | 'searchQueryUid'>;\n\nexport interface GeneratedAnswerBaseMeta {\n generativeQuestionAnsweringId: string;\n}\n\nexport interface GeneratedAnswerStreamEndMeta extends GeneratedAnswerBaseMeta {\n answerGenerated: boolean;\n}\n\nexport interface GeneratedAnswerCitationMeta {\n generativeQuestionAnsweringId: string;\n permanentId: string;\n citationId: string;\n}\n\nexport type GeneratedAnswerFeedbackReason = 'irrelevant' | 'notAccurate' | 'outOfDate' | 'harmful' | 'other';\n\nexport type GeneratedAnswerRephraseFormat = 'step' | 'bullet' | 'concise' | 'default';\n\nexport interface GeneratedAnswerSourceHoverMeta extends GeneratedAnswerCitationMeta {\n citationHoverTimeMs: number;\n}\n\nexport interface GeneratedAnswerRephraseMeta extends GeneratedAnswerBaseMeta {\n rephraseFormat: GeneratedAnswerRephraseFormat;\n}\n\nexport interface GeneratedAnswerFeedbackMeta extends GeneratedAnswerBaseMeta {\n reason: GeneratedAnswerFeedbackReason;\n details?: string;\n}\n","import {AnalyticsClient, PreparedEvent} from './analytics';\nimport {\n AnyEventResponse,\n SearchEventResponse,\n ClickEventResponse,\n CustomEventResponse,\n VisitResponse,\n HealthResponse,\n ViewEventResponse,\n EventType,\n PreparedSearchEventRequest,\n SearchEventRequest,\n ClickEventRequest,\n CustomEventRequest,\n PreparedClickEventRequest,\n PreparedCustomEventRequest,\n PreparedViewEventRequest,\n ViewEventRequest,\n} from '../events';\nimport {libVersion} from '../version';\nimport {NoopRuntime} from './runtimeEnvironment';\n\nexport class NoopAnalytics implements AnalyticsClient {\n getPayload(): Promise<any> {\n return Promise.resolve();\n }\n getParameters(): Promise<any> {\n return Promise.resolve();\n }\n makeEvent<TPreparedRequest, TCompleteRequest, TResponse extends AnyEventResponse>(\n eventType: EventType | string\n ): Promise<PreparedEvent<TPreparedRequest, TCompleteRequest, TResponse>> {\n return Promise.resolve({eventType: eventType as EventType, payload: null, log: () => Promise.resolve()});\n }\n sendEvent(): Promise<AnyEventResponse | void> {\n return Promise.resolve();\n }\n makeSearchEvent() {\n return this.makeEvent<PreparedSearchEventRequest, SearchEventRequest, SearchEventResponse>(EventType.search);\n }\n sendSearchEvent(): Promise<SearchEventResponse | void> {\n return Promise.resolve();\n }\n makeClickEvent() {\n return this.makeEvent<PreparedClickEventRequest, ClickEventRequest, ClickEventResponse>(EventType.click);\n }\n sendClickEvent(): Promise<ClickEventResponse | void> {\n return Promise.resolve();\n }\n makeCustomEvent() {\n return this.makeEvent<PreparedCustomEventRequest, CustomEventRequest, CustomEventResponse>(EventType.custom);\n }\n sendCustomEvent(): Promise<CustomEventResponse | void> {\n return Promise.resolve();\n }\n makeViewEvent() {\n return this.makeEvent<PreparedViewEventRequest, ViewEventRequest, ViewEventResponse>(EventType.view);\n }\n sendViewEvent(): Promise<ViewEventResponse | void> {\n return Promise.resolve();\n }\n getVisit(): Promise<VisitResponse> {\n return Promise.resolve({id: '', visitorId: ''});\n }\n getHealth(): Promise<HealthResponse> {\n return Promise.resolve({status: ''});\n }\n registerBeforeSendEventHook(): void {}\n registerAfterSendEventHook(): void {}\n addEventTypeMapping(): void {}\n runtime = new NoopRuntime();\n public get version(): string {\n return libVersion;\n }\n currentVisitorId = '';\n}\n","function filterConsecutiveRepeatedValues(rawData: string[]) {\n let prev = '';\n return rawData.filter((value) => {\n const isDifferent = value !== prev;\n prev = value;\n return isDifferent;\n });\n}\n\nfunction removeSemicolons(rawData: string[]) {\n return rawData.map((value) => {\n return value.replace(/;/g, '');\n });\n}\n\nfunction getDataString(data: string[]): string {\n const ANALYTICS_LENGTH_LIMIT = 256;\n\n const formattedData = data.join(';');\n if (formattedData.length <= ANALYTICS_LENGTH_LIMIT) {\n return formattedData;\n }\n return getDataString(data.slice(1));\n}\n\nexport const formatArrayForCoveoCustomData = (rawData: string[]): string => {\n const dataWithoutSemicolons = removeSemicolons(rawData);\n const dataWithoutRepeatedValues = filterConsecutiveRepeatedValues(dataWithoutSemicolons);\n\n return getDataString(dataWithoutRepeatedValues);\n};\n","import {OmniboxSuggestionsMetadata} from '../searchPage/searchPageEvents';\nimport {formatArrayForCoveoCustomData} from './format-array-for-coveo-custom-data';\n\nexport function formatOmniboxMetadata(meta: OmniboxSuggestionsMetadata): OmniboxSuggestionsMetadata {\n const partialQueries =\n typeof meta.partialQueries === 'string'\n ? meta.partialQueries\n : formatArrayForCoveoCustomData(meta.partialQueries);\n const suggestions =\n typeof meta.suggestions === 'string' ? meta.suggestions : formatArrayForCoveoCustomData(meta.suggestions);\n\n return {\n ...meta,\n partialQueries,\n suggestions,\n };\n}\n","import CoveoAnalyticsClient, {ClientOptions, AnalyticsClient, PreparedEvent} from '../client/analytics';\nimport {\n SearchEventRequest,\n CustomEventRequest,\n SearchEventResponse,\n AnyEventResponse,\n ClickEventResponse,\n CustomEventResponse,\n PreparedClickEventRequest,\n PreparedSearchEventRequest,\n} from '../events';\nimport {\n SearchPageEvents,\n OmniboxSuggestionsMetadata,\n FacetMetadata,\n FacetRangeMetadata,\n CategoryFacetMetadata,\n DocumentIdentifier,\n InterfaceChangeMetadata,\n ResultsSortMetadata,\n PartialDocumentInformation,\n CustomEventsTypes,\n TriggerNotifyMetadata,\n TriggerExecuteMetadata,\n TriggerRedirectMetadata,\n PagerResizeMetadata,\n PagerMetadata,\n FacetBaseMeta,\n FacetSortMeta,\n QueryErrorMeta,\n FacetStateMetadata,\n SmartSnippetFeedbackReason,\n SmartSnippetSuggestionMeta,\n SmartSnippetDocumentIdentifier,\n StaticFilterMetadata,\n StaticFilterToggleValueMetadata,\n UndoTriggerRedirectMetadata,\n SmartSnippetLinkMeta,\n GeneratedAnswerFeedbackMeta,\n GeneratedAnswerCitationMeta,\n GeneratedAnswerStreamEndMeta,\n GeneratedAnswerSourceHoverMeta,\n GeneratedAnswerBaseMeta,\n GeneratedAnswerRephraseMeta,\n} from './searchPageEvents';\nimport {NoopAnalytics} from '../client/noopAnalytics';\nimport {formatOmniboxMetadata} from '../formatting/format-omnibox-metadata';\nimport doNotTrack from '../donottrack';\n\nexport interface SearchPageClientProvider {\n getBaseMetadata: () => Record<string, any>;\n getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;\n getSearchUID: () => string;\n getPipeline: () => string;\n getOriginContext?: () => string;\n getOriginLevel1: () => string;\n getOriginLevel2: () => string;\n getOriginLevel3: () => string;\n getLanguage: () => string;\n getIsAnonymous: () => boolean;\n getFacetState?: () => FacetStateMetadata[];\n getSplitTestRunName?: () => string | undefined;\n getSplitTestRunVersion?: () => string | undefined;\n getGeneratedAnswerMetadata?: () => Record<string, any>;\n}\n\nexport interface SearchPageClientOptions extends ClientOptions {\n enableAnalytics: boolean;\n}\n\nexport type EventDescription = Pick<SearchEventRequest, 'actionCause' | 'customData'>;\n\nexport interface EventBuilder<T extends AnyEventResponse = AnyEventResponse> {\n description: EventDescription;\n log(metadata: {searchUID: string}): Promise<T | void>;\n}\n\nexport class CoveoSearchPageClient {\n public coveoAnalyticsClient: AnalyticsClient;\n\n constructor(private opts: Partial<SearchPageClientOptions>, private provider: SearchPageClientProvider) {\n const shouldDisableAnalytics = opts.enableAnalytics === false || doNotTrack();\n this.coveoAnalyticsClient = shouldDisableAnalytics ? new NoopAnalytics() : new CoveoAnalyticsClient(opts);\n }\n\n public disable() {\n if (this.coveoAnalyticsClient instanceof CoveoAnalyticsClient) {\n this.coveoAnalyticsClient.clear();\n }\n\n this.coveoAnalyticsClient = new NoopAnalytics();\n }\n\n public enable() {\n this.coveoAnalyticsClient = new CoveoAnalyticsClient(this.opts);\n }\n\n public makeInterfaceLoad() {\n return this.makeSearchEvent(SearchPageEvents.interfaceLoad);\n }\n\n public async logInterfaceLoad() {\n return (await this.makeInterfaceLoad()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRecommendationInterfaceLoad() {\n return this.makeSearchEvent(SearchPageEvents.recommendationInterfaceLoad);\n }\n\n public async logRecommendationInterfaceLoad() {\n return (await this.makeRecommendationInterfaceLoad()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRecommendation() {\n return this.makeCustomEvent(SearchPageEvents.recommendation);\n }\n\n public async logRecommendation() {\n return (await this.makeRecommendation()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRecommendationOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.recommendationOpen, info, identifier);\n }\n\n public async logRecommendationOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeRecommendationOpen(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeStaticFilterClearAll(meta: StaticFilterMetadata) {\n return this.makeSearchEvent(SearchPageEvents.staticFilterClearAll, meta);\n }\n\n public async logStaticFilterClearAll(meta: StaticFilterMetadata) {\n return (await this.makeStaticFilterClearAll(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeStaticFilterSelect(meta: StaticFilterToggleValueMetadata) {\n return this.makeSearchEvent(SearchPageEvents.staticFilterSelect, meta);\n }\n\n public async logStaticFilterSelect(meta: StaticFilterToggleValueMetadata) {\n return (await this.makeStaticFilterSelect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeStaticFilterDeselect(meta: StaticFilterToggleValueMetadata) {\n return this.makeSearchEvent(SearchPageEvents.staticFilterDeselect, meta);\n }\n\n public async logStaticFilterDeselect(meta: StaticFilterToggleValueMetadata) {\n return (await this.makeStaticFilterDeselect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFetchMoreResults() {\n return this.makeCustomEvent(SearchPageEvents.pagerScrolling, {type: 'getMoreResults'});\n }\n\n public async logFetchMoreResults() {\n return (await this.makeFetchMoreResults()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeInterfaceChange(metadata: InterfaceChangeMetadata) {\n return this.makeSearchEvent(SearchPageEvents.interfaceChange, metadata);\n }\n\n public async logInterfaceChange(metadata: InterfaceChangeMetadata) {\n return (await this.makeInterfaceChange(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDidYouMeanAutomatic() {\n return this.makeSearchEvent(SearchPageEvents.didyoumeanAutomatic);\n }\n\n public async logDidYouMeanAutomatic() {\n return (await this.makeDidYouMeanAutomatic()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDidYouMeanClick() {\n return this.makeSearchEvent(SearchPageEvents.didyoumeanClick);\n }\n\n public async logDidYouMeanClick() {\n return (await this.makeDidYouMeanClick()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeResultsSort(metadata: ResultsSortMetadata) {\n return this.makeSearchEvent(SearchPageEvents.resultsSort, metadata);\n }\n\n public async logResultsSort(metadata: ResultsSortMetadata) {\n return (await this.makeResultsSort(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSearchboxSubmit() {\n return this.makeSearchEvent(SearchPageEvents.searchboxSubmit);\n }\n\n public async logSearchboxSubmit() {\n return (await this.makeSearchboxSubmit()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSearchboxClear() {\n return this.makeSearchEvent(SearchPageEvents.searchboxClear);\n }\n\n public async logSearchboxClear() {\n return (await this.makeSearchboxClear()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSearchboxAsYouType() {\n return this.makeSearchEvent(SearchPageEvents.searchboxAsYouType);\n }\n\n public async logSearchboxAsYouType() {\n return (await this.makeSearchboxAsYouType()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeBreadcrumbFacet(metadata: FacetMetadata | FacetRangeMetadata | CategoryFacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.breadcrumbFacet, metadata);\n }\n\n public async logBreadcrumbFacet(metadata: FacetMetadata | FacetRangeMetadata | CategoryFacetMetadata) {\n return (await this.makeBreadcrumbFacet(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeBreadcrumbResetAll() {\n return this.makeSearchEvent(SearchPageEvents.breadcrumbResetAll);\n }\n\n public async logBreadcrumbResetAll() {\n return (await this.makeBreadcrumbResetAll()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDocumentQuickview(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.documentQuickview, info, identifier);\n }\n\n public async logDocumentQuickview(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeDocumentQuickview(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.documentOpen, info, identifier);\n }\n\n public async logDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeDocumentOpen(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOmniboxAnalytics(meta: OmniboxSuggestionsMetadata) {\n return this.makeSearchEvent(SearchPageEvents.omniboxAnalytics, formatOmniboxMetadata(meta));\n }\n\n public async logOmniboxAnalytics(meta: OmniboxSuggestionsMetadata) {\n return (await this.makeOmniboxAnalytics(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOmniboxFromLink(meta: OmniboxSuggestionsMetadata) {\n return this.makeSearchEvent(SearchPageEvents.omniboxFromLink, formatOmniboxMetadata(meta));\n }\n\n public async logOmniboxFromLink(meta: OmniboxSuggestionsMetadata) {\n return (await this.makeOmniboxFromLink(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSearchFromLink() {\n return this.makeSearchEvent(SearchPageEvents.searchFromLink);\n }\n\n public async logSearchFromLink() {\n return (await this.makeSearchFromLink()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeTriggerNotify(meta: TriggerNotifyMetadata) {\n return this.makeCustomEvent(SearchPageEvents.triggerNotify, meta);\n }\n\n public async logTriggerNotify(meta: TriggerNotifyMetadata) {\n return (await this.makeTriggerNotify(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeTriggerExecute(meta: TriggerExecuteMetadata) {\n return this.makeCustomEvent(SearchPageEvents.triggerExecute, meta);\n }\n\n public async logTriggerExecute(meta: TriggerExecuteMetadata) {\n return (await this.makeTriggerExecute(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeTriggerQuery() {\n return this.makeCustomEvent(\n SearchPageEvents.triggerQuery,\n {query: this.provider.getSearchEventRequestPayload().queryText},\n 'queryPipelineTriggers'\n );\n }\n\n public async logTriggerQuery() {\n return (await this.makeTriggerQuery()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeUndoTriggerQuery(meta: UndoTriggerRedirectMetadata) {\n return this.makeSearchEvent(SearchPageEvents.undoTriggerQuery, meta);\n }\n\n public async logUndoTriggerQuery(meta: UndoTriggerRedirectMetadata) {\n return (await this.makeUndoTriggerQuery(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeTriggerRedirect(meta: TriggerRedirectMetadata) {\n return this.makeCustomEvent(SearchPageEvents.triggerRedirect, {\n ...meta,\n query: this.provider.getSearchEventRequestPayload().queryText,\n });\n }\n\n public async logTriggerRedirect(meta: TriggerRedirectMetadata) {\n return (await this.makeTriggerRedirect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerResize(meta: PagerResizeMetadata) {\n return this.makeCustomEvent(SearchPageEvents.pagerResize, meta);\n }\n\n public async logPagerResize(meta: PagerResizeMetadata) {\n return (await this.makePagerResize(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerNumber(meta: PagerMetadata) {\n return this.makeCustomEvent(SearchPageEvents.pagerNumber, meta);\n }\n\n public async logPagerNumber(meta: PagerMetadata) {\n return (await this.makePagerNumber(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerNext(meta: PagerMetadata) {\n return this.makeCustomEvent(SearchPageEvents.pagerNext, meta);\n }\n\n public async logPagerNext(meta: PagerMetadata) {\n return (await this.makePagerNext(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerPrevious(meta: PagerMetadata) {\n return this.makeCustomEvent(SearchPageEvents.pagerPrevious, meta);\n }\n\n public async logPagerPrevious(meta: PagerMetadata) {\n return (await this.makePagerPrevious(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makePagerScrolling() {\n return this.makeCustomEvent(SearchPageEvents.pagerScrolling);\n }\n\n public async logPagerScrolling() {\n return (await this.makePagerScrolling()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetClearAll(meta: FacetBaseMeta) {\n return this.makeSearchEvent(SearchPageEvents.facetClearAll, meta);\n }\n\n public async logFacetClearAll(meta: FacetBaseMeta) {\n return (await this.makeFacetClearAll(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetSearch(meta: FacetBaseMeta) {\n return this.makeSearchEvent(SearchPageEvents.facetSearch, meta);\n }\n\n public async logFacetSearch(meta: FacetBaseMeta) {\n return (await this.makeFacetSearch(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetSelect(meta: FacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.facetSelect, meta);\n }\n\n public async logFacetSelect(meta: FacetMetadata) {\n return (await this.makeFacetSelect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetDeselect(meta: FacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.facetDeselect, meta);\n }\n\n public async logFacetDeselect(meta: FacetMetadata) {\n return (await this.makeFacetDeselect(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetExclude(meta: FacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.facetExclude, meta);\n }\n\n public async logFacetExclude(meta: FacetMetadata) {\n return (await this.makeFacetExclude(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetUnexclude(meta: FacetMetadata) {\n return this.makeSearchEvent(SearchPageEvents.facetUnexclude, meta);\n }\n\n public async logFacetUnexclude(meta: FacetMetadata) {\n return (await this.makeFacetUnexclude(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetSelectAll(meta: FacetBaseMeta) {\n return this.makeSearchEvent(SearchPageEvents.facetSelectAll, meta);\n }\n\n public async logFacetSelectAll(meta: FacetBaseMeta) {\n return (await this.makeFacetSelectAll(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetUpdateSort(meta: FacetSortMeta) {\n return this.makeSearchEvent(SearchPageEvents.facetUpdateSort, meta);\n }\n\n public async logFacetUpdateSort(meta: FacetSortMeta) {\n return (await this.makeFacetUpdateSort(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetShowMore(meta: FacetBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.facetShowMore, meta);\n }\n\n public async logFacetShowMore(meta: FacetBaseMeta) {\n return (await this.makeFacetShowMore(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeFacetShowLess(meta: FacetBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.facetShowLess, meta);\n }\n\n public async logFacetShowLess(meta: FacetBaseMeta) {\n return (await this.makeFacetShowLess(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeQueryError(meta: QueryErrorMeta) {\n return this.makeCustomEvent(SearchPageEvents.queryError, meta);\n }\n\n public async logQueryError(meta: QueryErrorMeta) {\n return (await this.makeQueryError(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeQueryErrorBack(): Promise<EventBuilder<SearchEventResponse>> {\n const customEventBuilder = await this.makeCustomEvent(SearchPageEvents.queryErrorBack);\n return {\n description: customEventBuilder.description,\n log: async () => {\n await customEventBuilder.log({searchUID: this.provider.getSearchUID()});\n return this.logSearchEvent(SearchPageEvents.queryErrorBack);\n },\n };\n }\n\n public async logQueryErrorBack() {\n return (await this.makeQueryErrorBack()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeQueryErrorRetry(): Promise<EventBuilder<SearchEventResponse>> {\n const customEventBuilder = await this.makeCustomEvent(SearchPageEvents.queryErrorRetry);\n return {\n description: customEventBuilder.description,\n log: async () => {\n await customEventBuilder.log({searchUID: this.provider.getSearchUID()});\n return this.logSearchEvent(SearchPageEvents.queryErrorRetry);\n },\n };\n }\n\n public async logQueryErrorRetry() {\n return (await this.makeQueryErrorRetry()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeQueryErrorClear(): Promise<EventBuilder<SearchEventResponse>> {\n const customEventBuilder = await this.makeCustomEvent(SearchPageEvents.queryErrorClear);\n return {\n description: customEventBuilder.description,\n log: async () => {\n await customEventBuilder.log({searchUID: this.provider.getSearchUID()});\n return this.logSearchEvent(SearchPageEvents.queryErrorClear);\n },\n };\n }\n\n public async logQueryErrorClear() {\n return (await this.makeQueryErrorClear()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeLikeSmartSnippet() {\n return this.makeCustomEvent(SearchPageEvents.likeSmartSnippet);\n }\n\n public async logLikeSmartSnippet() {\n return (await this.makeLikeSmartSnippet()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDislikeSmartSnippet() {\n return this.makeCustomEvent(SearchPageEvents.dislikeSmartSnippet);\n }\n\n public async logDislikeSmartSnippet() {\n return (await this.makeDislikeSmartSnippet()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeExpandSmartSnippet() {\n return this.makeCustomEvent(SearchPageEvents.expandSmartSnippet);\n }\n\n public async logExpandSmartSnippet() {\n return (await this.makeExpandSmartSnippet()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeCollapseSmartSnippet() {\n return this.makeCustomEvent(SearchPageEvents.collapseSmartSnippet);\n }\n\n public async logCollapseSmartSnippet() {\n return (await this.makeCollapseSmartSnippet()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOpenSmartSnippetFeedbackModal() {\n return this.makeCustomEvent(SearchPageEvents.openSmartSnippetFeedbackModal);\n }\n\n public async logOpenSmartSnippetFeedbackModal() {\n return (await this.makeOpenSmartSnippetFeedbackModal()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeCloseSmartSnippetFeedbackModal() {\n return this.makeCustomEvent(SearchPageEvents.closeSmartSnippetFeedbackModal);\n }\n\n public async logCloseSmartSnippetFeedbackModal() {\n return (await this.makeCloseSmartSnippetFeedbackModal()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeSmartSnippetFeedbackReason(reason: SmartSnippetFeedbackReason, details?: string) {\n return this.makeCustomEvent(SearchPageEvents.sendSmartSnippetReason, {reason, details});\n }\n\n public async logSmartSnippetFeedbackReason(reason: SmartSnippetFeedbackReason, details?: string) {\n return (await this.makeSmartSnippetFeedbackReason(reason, details)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeExpandSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier) {\n return this.makeCustomEvent(\n SearchPageEvents.expandSmartSnippetSuggestion,\n 'documentId' in snippet ? snippet : {documentId: snippet}\n );\n }\n\n public async logExpandSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier) {\n return (await this.makeExpandSmartSnippetSuggestion(snippet)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeCollapseSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier) {\n return this.makeCustomEvent(\n SearchPageEvents.collapseSmartSnippetSuggestion,\n 'documentId' in snippet ? snippet : {documentId: snippet}\n );\n }\n\n public async logCollapseSmartSnippetSuggestion(\n snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier\n ) {\n return (await this.makeCollapseSmartSnippetSuggestion(snippet)).log({searchUID: this.provider.getSearchUID()});\n }\n\n /**\n * @deprecated\n */\n private makeShowMoreSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta) {\n return this.makeCustomEvent(SearchPageEvents.showMoreSmartSnippetSuggestion, snippet);\n }\n\n /**\n * @deprecated\n */\n public async logShowMoreSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta) {\n return (await this.makeShowMoreSmartSnippetSuggestion(snippet)).log({searchUID: this.provider.getSearchUID()});\n }\n\n /**\n * @deprecated\n */\n private makeShowLessSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta) {\n return this.makeCustomEvent(SearchPageEvents.showLessSmartSnippetSuggestion, snippet);\n }\n\n /**\n * @deprecated\n */\n public async logShowLessSmartSnippetSuggestion(snippet: SmartSnippetSuggestionMeta) {\n return (await this.makeShowLessSmartSnippetSuggestion(snippet)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOpenSmartSnippetSource(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.openSmartSnippetSource, info, identifier);\n }\n\n public async logOpenSmartSnippetSource(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeOpenSmartSnippetSource(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOpenSmartSnippetSuggestionSource(info: PartialDocumentInformation, snippet: SmartSnippetSuggestionMeta) {\n return this.makeClickEvent(\n SearchPageEvents.openSmartSnippetSuggestionSource,\n info,\n {contentIDKey: snippet.documentId.contentIdKey, contentIDValue: snippet.documentId.contentIdValue},\n snippet\n );\n }\n\n public makeCopyToClipboard(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.copyToClipboard, info, identifier);\n }\n\n public async logCopyToClipboard(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeCopyToClipboard(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async logOpenSmartSnippetSuggestionSource(\n info: PartialDocumentInformation,\n snippet: SmartSnippetSuggestionMeta\n ) {\n return (await this.makeOpenSmartSnippetSuggestionSource(info, snippet)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeOpenSmartSnippetInlineLink(\n info: PartialDocumentInformation,\n identifierAndLink: DocumentIdentifier & SmartSnippetLinkMeta\n ) {\n return this.makeClickEvent(\n SearchPageEvents.openSmartSnippetInlineLink,\n info,\n {contentIDKey: identifierAndLink.contentIDKey, contentIDValue: identifierAndLink.contentIDValue},\n identifierAndLink\n );\n }\n\n public async logOpenSmartSnippetInlineLink(\n info: PartialDocumentInformation,\n identifierAndLink: DocumentIdentifier & SmartSnippetLinkMeta\n ) {\n return (await this.makeOpenSmartSnippetInlineLink(info, identifierAndLink)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeOpenSmartSnippetSuggestionInlineLink(\n info: PartialDocumentInformation,\n snippetAndLink: SmartSnippetSuggestionMeta & SmartSnippetLinkMeta\n ) {\n return this.makeClickEvent(\n SearchPageEvents.openSmartSnippetSuggestionInlineLink,\n info,\n {\n contentIDKey: snippetAndLink.documentId.contentIdKey,\n contentIDValue: snippetAndLink.documentId.contentIdValue,\n },\n snippetAndLink\n );\n }\n\n public async logOpenSmartSnippetSuggestionInlineLink(\n info: PartialDocumentInformation,\n snippetAndLink: SmartSnippetSuggestionMeta & SmartSnippetLinkMeta\n ) {\n return (await this.makeOpenSmartSnippetSuggestionInlineLink(info, snippetAndLink)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeRecentQueryClick() {\n return this.makeSearchEvent(SearchPageEvents.recentQueryClick);\n }\n\n public async logRecentQueryClick() {\n return (await this.makeRecentQueryClick()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeClearRecentQueries() {\n return this.makeCustomEvent(SearchPageEvents.clearRecentQueries);\n }\n\n public async logClearRecentQueries() {\n return (await this.makeClearRecentQueries()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRecentResultClick(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeCustomEvent(SearchPageEvents.recentResultClick, {info, identifier});\n }\n\n public async logRecentResultClick(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeRecentResultClick(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeClearRecentResults() {\n return this.makeCustomEvent(SearchPageEvents.clearRecentResults);\n }\n\n public async logClearRecentResults() {\n return (await this.makeClearRecentResults()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeNoResultsBack() {\n return this.makeSearchEvent(SearchPageEvents.noResultsBack);\n }\n\n public async logNoResultsBack() {\n return (await this.makeNoResultsBack()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeShowMoreFoldedResults(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return this.makeClickEvent(SearchPageEvents.showMoreFoldedResults, info, identifier);\n }\n\n public async logShowMoreFoldedResults(info: PartialDocumentInformation, identifier: DocumentIdentifier) {\n return (await this.makeShowMoreFoldedResults(info, identifier)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeShowLessFoldedResults() {\n return this.makeCustomEvent(SearchPageEvents.showLessFoldedResults);\n }\n\n public async logShowLessFoldedResults() {\n return (await this.makeShowLessFoldedResults()).log({searchUID: this.provider.getSearchUID()});\n }\n\n private makeEventDescription(\n preparedEvent: PreparedEvent<unknown, unknown, AnyEventResponse>,\n actionCause: SearchPageEvents\n ): EventDescription {\n return {actionCause, customData: preparedEvent.payload?.customData};\n }\n\n public async makeCustomEvent(\n event: SearchPageEvents,\n metadata?: Record<string, any>,\n eventType: string = CustomEventsTypes[event]!\n ): Promise<EventBuilder<CustomEventResponse>> {\n this.coveoAnalyticsClient.getParameters;\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n const request: CustomEventRequest = {\n ...(await this.getBaseEventRequest(customData)),\n eventType,\n eventValue: event,\n };\n const preparedEvent = await this.coveoAnalyticsClient.makeCustomEvent(request);\n return {\n description: this.makeEventDescription(preparedEvent, event),\n log: ({searchUID}) => preparedEvent.log({lastSearchQueryUid: searchUID}),\n };\n }\n\n public async logCustomEvent(\n event: SearchPageEvents,\n metadata?: Record<string, any>,\n eventType: string = CustomEventsTypes[event]!\n ) {\n return (await this.makeCustomEvent(event, metadata, eventType)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeCustomEventWithType(\n eventValue: string,\n eventType: string,\n metadata?: Record<string, any>\n ): Promise<EventBuilder<CustomEventResponse>> {\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n const payload: CustomEventRequest = {\n ...(await this.getBaseEventRequest(customData)),\n eventType,\n eventValue,\n };\n const preparedEvent = await this.coveoAnalyticsClient.makeCustomEvent(payload);\n return {\n description: this.makeEventDescription(preparedEvent, eventValue as SearchPageEvents),\n log: ({searchUID}) => preparedEvent.log({lastSearchQueryUid: searchUID}),\n };\n }\n\n public async logCustomEventWithType(eventValue: string, eventType: string, metadata?: Record<string, any>) {\n return (await this.makeCustomEventWithType(eventValue, eventType, metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public async logSearchEvent(event: SearchPageEvents, metadata?: Record<string, any>) {\n return (await this.makeSearchEvent(event, metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public async makeSearchEvent(\n event: SearchPageEvents,\n metadata?: Record<string, any>\n ): Promise<EventBuilder<SearchEventResponse>> {\n const request = await this.getBaseSearchEventRequest(event, metadata);\n const preparedEvent = await this.coveoAnalyticsClient.makeSearchEvent(request);\n return {\n description: this.makeEventDescription(preparedEvent, event),\n log: ({searchUID}) => preparedEvent.log({searchQueryUid: searchUID}),\n };\n }\n\n public async makeClickEvent(\n event: SearchPageEvents,\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: Record<string, any>\n ): Promise<EventBuilder<ClickEventResponse>> {\n const request: PreparedClickEventRequest = {\n ...info,\n ...(await this.getBaseEventRequest({...identifier, ...metadata})),\n queryPipeline: this.provider.getPipeline(),\n actionCause: event,\n };\n const preparedEvent = await this.coveoAnalyticsClient.makeClickEvent(request);\n return {\n description: this.makeEventDescription(preparedEvent, event),\n log: ({searchUID}) => preparedEvent.log({searchQueryUid: searchUID}),\n };\n }\n\n public async logClickEvent(\n event: SearchPageEvents,\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: Record<string, any>\n ) {\n return (await this.makeClickEvent(event, info, identifier, metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n private async getBaseSearchEventRequest(\n event: SearchPageEvents,\n metadata?: Record<string, any>\n ): Promise<PreparedSearchEventRequest> {\n return {\n ...(await this.getBaseEventRequest({...metadata, ...this.provider.getGeneratedAnswerMetadata?.()})),\n ...this.provider.getSearchEventRequestPayload(),\n queryPipeline: this.provider.getPipeline(),\n actionCause: event,\n };\n }\n\n private async getBaseEventRequest(metadata?: Record<string, any>) {\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n return {\n ...this.getOrigins(),\n ...this.getSplitTestRun(),\n customData,\n language: this.provider.getLanguage(),\n facetState: this.provider.getFacetState ? this.provider.getFacetState() : [],\n anonymous: this.provider.getIsAnonymous(),\n clientId: await this.getClientId(),\n };\n }\n\n private getOrigins() {\n return {\n originContext: this.provider.getOriginContext?.(),\n originLevel1: this.provider.getOriginLevel1(),\n originLevel2: this.provider.getOriginLevel2(),\n originLevel3: this.provider.getOriginLevel3(),\n };\n }\n\n private getClientId() {\n return this.coveoAnalyticsClient instanceof CoveoAnalyticsClient\n ? this.coveoAnalyticsClient.getCurrentVisitorId()\n : undefined;\n }\n\n private getSplitTestRun() {\n const splitTestRunName = this.provider.getSplitTestRunName ? this.provider.getSplitTestRunName() : '';\n const splitTestRunVersion = this.provider.getSplitTestRunVersion ? this.provider.getSplitTestRunVersion() : '';\n return {\n ...(splitTestRunName && {splitTestRunName}),\n ...(splitTestRunVersion && {splitTestRunVersion}),\n };\n }\n\n public makeLikeGeneratedAnswer(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.likeGeneratedAnswer, metadata);\n }\n\n public async logLikeGeneratedAnswer(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeLikeGeneratedAnswer(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeDislikeGeneratedAnswer(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.dislikeGeneratedAnswer, metadata);\n }\n\n public async logDislikeGeneratedAnswer(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeDislikeGeneratedAnswer(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta) {\n return this.makeCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata);\n }\n\n public async logOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta) {\n return (await this.makeOpenGeneratedAnswerSource(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerSourceHover(metadata: GeneratedAnswerSourceHoverMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerSourceHover, metadata);\n }\n\n public async logGeneratedAnswerSourceHover(metadata: GeneratedAnswerSourceHoverMeta) {\n return (await this.makeGeneratedAnswerSourceHover(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerCopyToClipboard(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerCopyToClipboard, metadata);\n }\n\n public async logGeneratedAnswerCopyToClipboard(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeGeneratedAnswerCopyToClipboard(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerHideAnswers(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerHideAnswers, metadata);\n }\n\n public async logGeneratedAnswerHideAnswers(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeGeneratedAnswerHideAnswers(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerShowAnswers(metadata: GeneratedAnswerBaseMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerShowAnswers, metadata);\n }\n\n public async logGeneratedAnswerShowAnswers(metadata: GeneratedAnswerBaseMeta) {\n return (await this.makeGeneratedAnswerShowAnswers(metadata)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeGeneratedAnswerFeedbackSubmit(meta: GeneratedAnswerFeedbackMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerFeedbackSubmit, meta);\n }\n\n public async logGeneratedAnswerFeedbackSubmit(meta: GeneratedAnswerFeedbackMeta) {\n return (await this.makeGeneratedAnswerFeedbackSubmit(meta)).log({\n searchUID: this.provider.getSearchUID(),\n });\n }\n\n public makeRephraseGeneratedAnswer(meta: GeneratedAnswerRephraseMeta) {\n return this.makeSearchEvent(SearchPageEvents.rephraseGeneratedAnswer, meta);\n }\n\n public async logRephraseGeneratedAnswer(meta: GeneratedAnswerRephraseMeta) {\n return (await this.makeRephraseGeneratedAnswer(meta)).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeRetryGeneratedAnswer() {\n return this.makeSearchEvent(SearchPageEvents.retryGeneratedAnswer);\n }\n\n public async logRetryGeneratedAnswer() {\n return (await this.makeRetryGeneratedAnswer()).log({searchUID: this.provider.getSearchUID()});\n }\n\n public makeGeneratedAnswerStreamEnd(metadata: GeneratedAnswerStreamEndMeta) {\n return this.makeCustomEvent(SearchPageEvents.generatedAnswerStreamEnd, metadata);\n }\n\n public async logGeneratedAnswerStreamEnd(metadata: GeneratedAnswerStreamEndMeta) {\n return (await this.makeGeneratedAnswerStreamEnd(metadata)).log({searchUID: this.provider.getSearchUID()});\n }\n}\n","import {TicketProperties} from '../plugins/svc';\n\nexport enum CaseAssistEvents {\n click = 'click',\n flowStart = 'flowStart',\n}\n\nexport enum CaseAssistActions {\n enterInterface = 'ticket_create_start',\n fieldUpdate = 'ticket_field_update',\n fieldSuggestionClick = 'ticket_classification_click',\n suggestionClick = 'suggestion_click',\n suggestionRate = 'suggestion_rate',\n nextCaseStep = 'ticket_next_stage',\n caseCancelled = 'ticket_cancel',\n caseSolved = 'ticket_cancel',\n caseCreated = 'ticket_create',\n}\n\nexport enum CaseCancelledReasons {\n quit = 'Quit',\n solved = 'Solved',\n}\n\nexport interface EnterInterfaceMetadata {\n ticket: TicketProperties;\n}\n\nexport interface UpdateCaseFieldMetadata {\n fieldName: string;\n ticket: TicketProperties;\n}\n\nexport interface SelectFieldSuggestionMetadata {\n suggestion: FieldSuggestion;\n ticket: TicketProperties;\n}\n\nexport interface SelectDocumentSuggestionMetadata {\n suggestion: DocumentSuggestion;\n ticket: TicketProperties;\n}\n\nexport interface RateDocumentSuggestionMetadata {\n rating: number;\n suggestion: DocumentSuggestion;\n ticket: TicketProperties;\n}\n\nexport interface MoveToNextCaseStepMetadata {\n ticket: TicketProperties;\n stage?: string;\n}\n\nexport interface CaseCancelledMetadata {\n ticket: TicketProperties;\n}\n\nexport interface CaseSolvedMetadata {\n ticket: TicketProperties;\n}\n\nexport interface CaseCreatedMetadata {\n ticket: TicketProperties;\n}\n\nexport interface FieldSuggestion {\n classificationId: string;\n responseId: string;\n fieldName: string;\n classification: {\n value: string;\n confidence: number;\n };\n autoSelection?: boolean;\n}\n\nexport interface DocumentSuggestion {\n suggestionId: string;\n responseId: string;\n suggestion: {\n documentUri: string;\n documentUriHash: string;\n documentTitle: string;\n documentUrl: string;\n documentPosition: number;\n };\n fromQuickview?: boolean;\n openDocument?: boolean;\n}\n","import CoveoAnalyticsClient, {AnalyticsClient, ClientOptions} from '../client/analytics';\nimport {NoopAnalytics} from '../client/noopAnalytics';\nimport doNotTrack from '../donottrack';\nimport {SVCPlugin} from '../plugins/svc';\nimport {\n CaseAssistActions,\n CaseAssistEvents,\n CaseCancelledMetadata,\n CaseCancelledReasons,\n CaseCreatedMetadata,\n CaseSolvedMetadata,\n EnterInterfaceMetadata,\n MoveToNextCaseStepMetadata,\n RateDocumentSuggestionMetadata,\n SelectDocumentSuggestionMetadata,\n SelectFieldSuggestionMetadata,\n UpdateCaseFieldMetadata,\n} from './caseAssistActions';\n\nexport interface CaseAssistClientProvider {\n getOriginLevel1: () => string;\n}\n\nexport interface CaseAssistClientOptions extends ClientOptions {\n enableAnalytics?: boolean;\n}\n\nexport class CaseAssistClient {\n public coveoAnalyticsClient: AnalyticsClient;\n private svc: SVCPlugin;\n\n constructor(private options: Partial<CaseAssistClientOptions>, private provider?: CaseAssistClientProvider) {\n const analyticsEnabled = (options.enableAnalytics ?? true) && !doNotTrack();\n\n this.coveoAnalyticsClient = analyticsEnabled ? new CoveoAnalyticsClient(options) : new NoopAnalytics();\n this.svc = new SVCPlugin({client: this.coveoAnalyticsClient});\n }\n\n public disable() {\n if (this.coveoAnalyticsClient instanceof CoveoAnalyticsClient) {\n this.coveoAnalyticsClient.clear();\n }\n this.coveoAnalyticsClient = new NoopAnalytics();\n this.svc = new SVCPlugin({client: this.coveoAnalyticsClient});\n }\n\n public enable() {\n this.coveoAnalyticsClient = new CoveoAnalyticsClient(this.options);\n this.svc = new SVCPlugin({client: this.coveoAnalyticsClient});\n }\n\n public logEnterInterface(meta: EnterInterfaceMetadata) {\n this.svc.setAction(CaseAssistActions.enterInterface);\n this.svc.setTicket(meta.ticket);\n return this.sendFlowStartEvent();\n }\n\n public logUpdateCaseField(meta: UpdateCaseFieldMetadata) {\n this.svc.setAction(CaseAssistActions.fieldUpdate, {\n fieldName: meta.fieldName,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logSelectFieldSuggestion(meta: SelectFieldSuggestionMetadata) {\n this.svc.setAction(CaseAssistActions.fieldSuggestionClick, meta.suggestion);\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logSelectDocumentSuggestion(meta: SelectDocumentSuggestionMetadata) {\n this.svc.setAction(CaseAssistActions.suggestionClick, meta.suggestion);\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logRateDocumentSuggestion(meta: RateDocumentSuggestionMetadata) {\n this.svc.setAction(CaseAssistActions.suggestionRate, {\n rate: meta.rating,\n ...meta.suggestion,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logMoveToNextCaseStep(meta: MoveToNextCaseStepMetadata) {\n this.svc.setAction(CaseAssistActions.nextCaseStep, {\n stage: meta?.stage,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logCaseCancelled(meta: CaseCancelledMetadata) {\n this.svc.setAction(CaseAssistActions.caseCancelled, {\n reason: CaseCancelledReasons.quit,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logCaseSolved(meta: CaseSolvedMetadata) {\n this.svc.setAction(CaseAssistActions.caseSolved, {\n reason: CaseCancelledReasons.solved,\n });\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n public logCaseCreated(meta: CaseCreatedMetadata) {\n this.svc.setAction(CaseAssistActions.caseCreated);\n this.svc.setTicket(meta.ticket);\n return this.sendClickEvent();\n }\n\n private sendFlowStartEvent() {\n return this.coveoAnalyticsClient.sendEvent(\n 'event',\n 'svc',\n CaseAssistEvents.flowStart,\n this.provider\n ? {\n searchHub: this.provider.getOriginLevel1(),\n }\n : null\n );\n }\n\n private sendClickEvent() {\n return this.coveoAnalyticsClient.sendEvent(\n 'event',\n 'svc',\n CaseAssistEvents.click,\n this.provider\n ? {\n searchHub: this.provider.getOriginLevel1(),\n }\n : null\n );\n }\n}\n","import CoveoAnalyticsClient, {AnalyticsClient, ClientOptions} from '../client/analytics';\nimport {NoopAnalytics} from '../client/noopAnalytics';\nimport doNotTrack from '../donottrack';\nimport {ClickEventRequest, CustomEventRequest, SearchEventRequest} from '../events';\nimport {\n CustomEventsTypes,\n DocumentIdentifier,\n FacetStateMetadata,\n GeneratedAnswerBaseMeta,\n GeneratedAnswerCitationMeta,\n GeneratedAnswerFeedbackMeta,\n GeneratedAnswerRephraseMeta,\n GeneratedAnswerSourceHoverMeta,\n GeneratedAnswerStreamEndMeta,\n PartialDocumentInformation,\n SearchPageEvents,\n SmartSnippetDocumentIdentifier,\n SmartSnippetFeedbackReason,\n SmartSnippetLinkMeta,\n SmartSnippetSuggestionMeta,\n} from '../searchPage/searchPageEvents';\nimport {\n ExpandToFullUIMetadata,\n InsightEvents,\n InsightFacetMetadata,\n InsightInterfaceChangeMetadata,\n InsightStaticFilterToggleValueMetadata,\n InsightFacetRangeMetadata,\n InsightCategoryFacetMetadata,\n CaseMetadata,\n InsightFacetSortMeta,\n InsightFacetBaseMeta,\n InsightQueryErrorMeta,\n InsightPagerMetadata,\n InsightResultsSortMetadata,\n UserActionsDocumentMetadata,\n UserActionsPageViewMetadata,\n CreateArticleMetadata,\n} from './insightEvents';\n\nexport interface InsightClientProvider {\n getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;\n getSearchUID: () => string;\n getBaseMetadata: () => Record<string, any>;\n getPipeline: () => string;\n getOriginContext?: () => string;\n getOriginLevel1: () => string;\n getOriginLevel2: () => string;\n getOriginLevel3: () => string;\n getLanguage: () => string;\n getIsAnonymous: () => boolean;\n getFacetState?: () => FacetStateMetadata[];\n getGeneratedAnswerMetadata?: () => Record<string, any>;\n}\n\nexport interface InsightClientOptions extends ClientOptions {\n enableAnalytics: boolean;\n}\n\nconst extractContextFromMetadata = (meta: {caseContext?: Record<string, string>}) => {\n const context: Record<string, string> = {};\n if (meta.caseContext) {\n Object.keys(meta.caseContext).forEach((contextKey) => {\n const value = meta.caseContext?.[contextKey];\n if (value) {\n const keyToBeSent = `context_${contextKey}`;\n context[keyToBeSent] = value;\n }\n });\n }\n return context;\n};\n\nconst generateMetadataToSend = (metadata: CaseMetadata, includeContext = true) => {\n const {caseContext, caseId, caseNumber, ...metadataWithoutContext} = metadata;\n const context = extractContextFromMetadata(metadata);\n\n return {\n CaseId: caseId,\n CaseNumber: caseNumber,\n ...metadataWithoutContext,\n ...(!!context.context_Case_Subject && {CaseSubject: context.context_Case_Subject}),\n ...(includeContext && context),\n };\n};\n\nexport class CoveoInsightClient {\n public coveoAnalyticsClient: AnalyticsClient;\n\n constructor(private opts: Partial<InsightClientOptions>, private provider: InsightClientProvider) {\n const shouldDisableAnalytics = opts.enableAnalytics === false || doNotTrack();\n this.coveoAnalyticsClient = shouldDisableAnalytics ? new NoopAnalytics() : new CoveoAnalyticsClient(opts);\n }\n\n public disable() {\n if (this.coveoAnalyticsClient instanceof CoveoAnalyticsClient) {\n this.coveoAnalyticsClient.clear();\n }\n this.coveoAnalyticsClient = new NoopAnalytics();\n }\n\n public enable() {\n this.coveoAnalyticsClient = new CoveoAnalyticsClient(this.opts);\n }\n\n public logInterfaceLoad(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.interfaceLoad, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.interfaceLoad);\n }\n\n public logInterfaceChange(metadata: InsightInterfaceChangeMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.interfaceChange, metadataToSend);\n }\n\n public logStaticFilterDeselect(metadata: InsightStaticFilterToggleValueMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.staticFilterDeselect, metadataToSend);\n }\n\n public logFetchMoreResults(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logCustomEvent(SearchPageEvents.pagerScrolling, {...metadataToSend, type: 'getMoreResults'});\n }\n return this.logCustomEvent(SearchPageEvents.pagerScrolling, {type: 'getMoreResults'});\n }\n\n public logBreadcrumbFacet(\n metadata: InsightFacetMetadata | InsightFacetRangeMetadata | InsightCategoryFacetMetadata\n ) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.breadcrumbFacet, metadataToSend);\n }\n\n public logBreadcrumbResetAll(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.breadcrumbResetAll, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.breadcrumbResetAll);\n }\n\n public logFacetSelect(metadata: InsightFacetMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetSelect, metadataToSend);\n }\n\n public logFacetExclude(metadata: InsightFacetMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetExclude, metadataToSend);\n }\n\n public logFacetDeselect(metadata: InsightFacetMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetDeselect, metadataToSend);\n }\n\n public logFacetUpdateSort(metadata: InsightFacetSortMeta) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetUpdateSort, metadataToSend);\n }\n\n public logFacetClearAll(metadata: InsightFacetBaseMeta) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.facetClearAll, metadataToSend);\n }\n\n public logFacetShowMore(metadata: InsightFacetBaseMeta) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.facetShowMore, metadataToSend);\n }\n\n public logFacetShowLess(metadata: InsightFacetBaseMeta) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.facetShowLess, metadataToSend);\n }\n\n public logQueryError(metadata: InsightQueryErrorMeta) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.queryError, metadataToSend);\n }\n\n public logPagerNumber(metadata: InsightPagerMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.pagerNumber, metadataToSend);\n }\n\n public logPagerNext(metadata: InsightPagerMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.pagerNext, metadataToSend);\n }\n\n public logPagerPrevious(metadata: InsightPagerMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(SearchPageEvents.pagerPrevious, metadataToSend);\n }\n\n public logDidYouMeanAutomatic(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.didyoumeanAutomatic, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.didyoumeanAutomatic);\n }\n\n public logDidYouMeanClick(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.didyoumeanClick, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.didyoumeanClick);\n }\n\n public logResultsSort(metadata: InsightResultsSortMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.resultsSort, metadataToSend);\n }\n\n public logSearchboxSubmit(metadata?: CaseMetadata) {\n if (metadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(SearchPageEvents.searchboxSubmit, metadataToSend);\n }\n return this.logSearchEvent(SearchPageEvents.searchboxSubmit);\n }\n\n public logContextChanged(metadata: CaseMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logSearchEvent(InsightEvents.contextChanged, metadataToSend);\n }\n\n public logExpandToFullUI(metadata: ExpandToFullUIMetadata) {\n const metadataToSend = generateMetadataToSend(metadata);\n return this.logCustomEvent(InsightEvents.expandToFullUI, metadataToSend);\n }\n\n public logOpenUserActions(metadata: CaseMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(InsightEvents.openUserActions, metadataToSend);\n }\n\n public logShowPrecedingSessions(metadata: CaseMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(InsightEvents.showPrecedingSessions, metadataToSend);\n }\n\n public logShowFollowingSessions(metadata: CaseMetadata) {\n const metadataToSend = generateMetadataToSend(metadata, false);\n return this.logCustomEvent(InsightEvents.showFollowingSessions, metadataToSend);\n }\n\n public logViewedDocumentClick(document: UserActionsDocumentMetadata, metadata: CaseMetadata) {\n return this.logCustomEvent(InsightEvents.clickViewedDocument, {\n ...generateMetadataToSend(metadata, false),\n document,\n });\n }\n\n public logPageViewClick(pageView: UserActionsPageViewMetadata, metadata: CaseMetadata) {\n return this.logCustomEvent(InsightEvents.clickPageView, {\n ...generateMetadataToSend(metadata, false),\n pageView,\n });\n }\n\n public logCreateArticle(createArticleMetadata: CreateArticleMetadata, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n InsightEvents.createArticle,\n metadata ? {...generateMetadataToSend(metadata, false), ...createArticleMetadata} : createArticleMetadata\n );\n }\n\n public logDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata) {\n return this.logClickEvent(\n SearchPageEvents.documentOpen,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logCopyToClipboard(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.copyToClipboard,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logCaseSendEmail(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata) {\n return this.logClickEvent(\n SearchPageEvents.caseSendEmail,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logFeedItemTextPost(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.feedItemTextPost,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logDocumentQuickview(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n caseMetadata?: CaseMetadata\n ) {\n const metadata = {\n documentTitle: info.documentTitle,\n documentURL: info.documentUrl,\n };\n return this.logClickEvent(\n SearchPageEvents.documentQuickview,\n info,\n identifier,\n caseMetadata ? {...generateMetadataToSend(caseMetadata, false), ...metadata} : metadata\n );\n }\n\n public logCaseAttach(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n caseMetadata?: CaseMetadata\n ) {\n const metadata = {\n documentTitle: info.documentTitle,\n documentURL: info.documentUrl,\n resultUriHash: info.documentUriHash,\n };\n\n return this.logClickEvent(\n SearchPageEvents.caseAttach,\n info,\n identifier,\n caseMetadata ? {...generateMetadataToSend(caseMetadata, false), ...metadata} : metadata\n );\n }\n\n public logCaseDetach(resultUriHash: string, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.caseDetach,\n metadata ? {...generateMetadataToSend(metadata, false), resultUriHash} : {resultUriHash}\n );\n }\n\n public logLikeSmartSnippet(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.likeSmartSnippet,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logDislikeSmartSnippet(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.dislikeSmartSnippet,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logExpandSmartSnippet(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.expandSmartSnippet,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logCollapseSmartSnippet(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.collapseSmartSnippet,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logOpenSmartSnippetFeedbackModal(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.openSmartSnippetFeedbackModal,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logCloseSmartSnippetFeedbackModal(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.closeSmartSnippetFeedbackModal,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logSmartSnippetFeedbackReason(\n reason: SmartSnippetFeedbackReason,\n details?: string,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.sendSmartSnippetReason,\n metadata ? {...generateMetadataToSend(metadata, false), reason, details} : {reason, details}\n );\n }\n\n public logExpandSmartSnippetSuggestion(\n snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n const snippetMetadata = 'documentId' in snippet ? snippet : {documentId: snippet};\n return this.logCustomEvent(\n SearchPageEvents.expandSmartSnippetSuggestion,\n metadata ? {...generateMetadataToSend(metadata, false), ...snippetMetadata} : snippetMetadata\n );\n }\n\n public logCollapseSmartSnippetSuggestion(\n snippet: SmartSnippetSuggestionMeta | SmartSnippetDocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n const snippetMetadata = 'documentId' in snippet ? snippet : {documentId: snippet};\n return this.logCustomEvent(\n SearchPageEvents.collapseSmartSnippetSuggestion,\n metadata ? {...generateMetadataToSend(metadata, false), ...snippetMetadata} : snippetMetadata\n );\n }\n\n public logOpenSmartSnippetSource(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.openSmartSnippetSource,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public logOpenSmartSnippetSuggestionSource(\n info: PartialDocumentInformation,\n snippet: SmartSnippetSuggestionMeta,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.openSmartSnippetSuggestionSource,\n info,\n {contentIDKey: snippet.documentId.contentIdKey, contentIDValue: snippet.documentId.contentIdValue},\n metadata ? {...generateMetadataToSend(metadata, false), ...snippet} : snippet\n );\n }\n\n public logOpenSmartSnippetInlineLink(\n info: PartialDocumentInformation,\n identifierAndLink: DocumentIdentifier & SmartSnippetLinkMeta,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.openSmartSnippetInlineLink,\n info,\n {contentIDKey: identifierAndLink.contentIDKey, contentIDValue: identifierAndLink.contentIDValue},\n metadata ? {...generateMetadataToSend(metadata, false), ...identifierAndLink} : identifierAndLink\n );\n }\n\n public logOpenSmartSnippetSuggestionInlineLink(\n info: PartialDocumentInformation,\n snippetAndLink: SmartSnippetSuggestionMeta & SmartSnippetLinkMeta,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.openSmartSnippetSuggestionInlineLink,\n info,\n {\n contentIDKey: snippetAndLink.documentId.contentIdKey,\n contentIDValue: snippetAndLink.documentId.contentIdValue,\n },\n metadata ? {...generateMetadataToSend(metadata, false), ...snippetAndLink} : snippetAndLink\n );\n }\n\n public logLikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.likeGeneratedAnswer,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logDislikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.dislikeGeneratedAnswer,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logOpenGeneratedAnswerSource(\n generatedAnswerSourceMetadata: GeneratedAnswerCitationMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.openGeneratedAnswerSource,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerSourceMetadata}\n : generatedAnswerSourceMetadata\n );\n }\n\n public logGeneratedAnswerSourceHover(\n generatedAnswerSourceMetadata: GeneratedAnswerSourceHoverMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerSourceHover,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerSourceMetadata}\n : generatedAnswerSourceMetadata\n );\n }\n\n public logGeneratedAnswerCopyToClipboard(\n generatedAnswerMetadata: GeneratedAnswerBaseMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerCopyToClipboard,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logGeneratedAnswerHideAnswers(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerHideAnswers,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logGeneratedAnswerShowAnswers(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerShowAnswers,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerMetadata}\n : generatedAnswerMetadata\n );\n }\n\n public logGeneratedAnswerFeedbackSubmit(\n generatedAnswerFeedbackMetadata: GeneratedAnswerFeedbackMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerFeedbackSubmit,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerFeedbackMetadata}\n : generatedAnswerFeedbackMetadata\n );\n }\n\n public logRephraseGeneratedAnswer(\n generatedAnswerRephraseMetadata: GeneratedAnswerRephraseMeta,\n metadata?: CaseMetadata\n ) {\n return this.logSearchEvent(\n SearchPageEvents.rephraseGeneratedAnswer,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerRephraseMetadata}\n : generatedAnswerRephraseMetadata\n );\n }\n\n public logRetryGeneratedAnswer(metadata?: CaseMetadata) {\n return this.logSearchEvent(\n SearchPageEvents.retryGeneratedAnswer,\n metadata ? {...generateMetadataToSend(metadata, false)} : {}\n );\n }\n\n public logGeneratedAnswerStreamEnd(\n generatedAnswerStreamEndMetadata: GeneratedAnswerStreamEndMeta,\n metadata?: CaseMetadata\n ) {\n return this.logCustomEvent(\n SearchPageEvents.generatedAnswerStreamEnd,\n metadata\n ? {...generateMetadataToSend(metadata, false), ...generatedAnswerStreamEndMetadata}\n : generatedAnswerStreamEndMetadata\n );\n }\n\n public async logCustomEvent(event: SearchPageEvents | InsightEvents, metadata?: Record<string, any>) {\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n\n const payload: CustomEventRequest = {\n ...(await this.getBaseCustomEventRequest(customData)),\n eventType: CustomEventsTypes[event]!,\n eventValue: event,\n };\n\n return this.coveoAnalyticsClient.sendCustomEvent(payload);\n }\n\n public async logSearchEvent(event: SearchPageEvents | InsightEvents, metadata?: Record<string, any>) {\n return this.coveoAnalyticsClient.sendSearchEvent(await this.getBaseSearchEventRequest(event, metadata));\n }\n\n public async logClickEvent(\n event: SearchPageEvents,\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: Record<string, any>\n ) {\n const payload: ClickEventRequest = {\n ...info,\n ...(await this.getBaseEventRequest({...identifier, ...metadata})),\n searchQueryUid: this.provider.getSearchUID(),\n queryPipeline: this.provider.getPipeline(),\n actionCause: event,\n };\n\n return this.coveoAnalyticsClient.sendClickEvent(payload);\n }\n\n public async logShowMoreFoldedResults(\n info: PartialDocumentInformation,\n identifier: DocumentIdentifier,\n metadata?: CaseMetadata\n ) {\n return this.logClickEvent(\n SearchPageEvents.showMoreFoldedResults,\n info,\n identifier,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n public async logShowLessFoldedResults(metadata?: CaseMetadata) {\n return this.logCustomEvent(\n SearchPageEvents.showLessFoldedResults,\n metadata ? generateMetadataToSend(metadata, false) : undefined\n );\n }\n\n private async getBaseCustomEventRequest(metadata?: Record<string, any>) {\n return {\n ...(await this.getBaseEventRequest(metadata)),\n lastSearchQueryUid: this.provider.getSearchUID(),\n };\n }\n\n private async getBaseSearchEventRequest(\n event: SearchPageEvents | InsightEvents,\n metadata?: Record<string, any>\n ): Promise<SearchEventRequest> {\n return {\n ...(await this.getBaseEventRequest({...metadata, ...this.provider.getGeneratedAnswerMetadata?.()})),\n ...this.provider.getSearchEventRequestPayload(),\n searchQueryUid: this.provider.getSearchUID(),\n queryPipeline: this.provider.getPipeline(),\n actionCause: event,\n };\n }\n\n private async getBaseEventRequest(metadata?: Record<string, any>) {\n const customData = {...this.provider.getBaseMetadata(), ...metadata};\n return {\n ...this.getOrigins(),\n customData,\n language: this.provider.getLanguage(),\n facetState: this.provider.getFacetState ? this.provider.getFacetState() : [],\n anonymous: this.provider.getIsAnonymous(),\n clientId: await this.getClientId(),\n };\n }\n\n private getOrigins() {\n return {\n originContext: this.provider.getOriginContext?.(),\n originLevel1: this.provider.getOriginLevel1(),\n originLevel2: this.provider.getOriginLevel2(),\n originLevel3: this.provider.getOriginLevel3(),\n };\n }\n\n private getClientId() {\n return this.coveoAnalyticsClient instanceof CoveoAnalyticsClient\n ? this.coveoAnalyticsClient.getCurrentVisitorId()\n : undefined;\n }\n}\n","import * as analytics from './library';\nimport handleOneAnalyticsEvent from './simpleanalytics';\n\ndeclare const self: any;\n\nconst promise = (window as any)['Promise'];\nif (!(promise instanceof Function) && !global) {\n console.error(\n `This script uses window.Promise which is not supported in your browser. Consider adding a polyfill like \"es6-promise\".`\n );\n}\nconst fetch = (window as any)['fetch'];\nif (!(fetch instanceof Function) && !global) {\n console.error(\n `This script uses window.fetch which is not supported in your browser. Consider adding a polyfill like \"fetch\".`\n );\n}\n\n// CoveoUAGlobal is the interface for the global function which also has a\n// queue `q` of unexecuted parameters\nexport interface CoveoUAGlobal {\n (action: string, ...params: any[]): void;\n // CoveoAnalytics.q is the queue of last called actions before lib was included\n q?: [string, any[]][];\n}\n\n// On load of this script we get the global object `coveoua` (which would be)\n// on `window` in a browser\nconst coveoua: CoveoUAGlobal = self.coveoua || handleOneAnalyticsEvent;\n\n// Replace the quick shim with the real thing.\nself.coveoua = handleOneAnalyticsEvent;\n\nself.coveoanalytics = analytics;\n\n// On normal execution this library should be loaded after the snippet execution\n// so we will execute the actions in the `q` array\nif (coveoua.q) {\n const initEvents = coveoua.q.filter((args: [string, any[]]) => args[0] === 'init');\n const otherEvents = coveoua.q.filter((args: [string, any[]]) => args[0] !== 'init');\n [...initEvents, ...otherEvents].forEach((args: [string, any[]]) => handleOneAnalyticsEvent.apply(void 0, args));\n}\n\nexport default self.coveoua;\n"],"names":["detector.hasLocalStorage","detector.hasCookieStorage","detector.hasSessionStorage","URL","uuidv4","uuidvalidate","fetch","uuidValidate","coveoua"],"mappings":"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","x_google_ignoreList":[7,8,9,10,11,12,13,14,15,16]}
|