@coveo/relay 0.6.10 → 0.6.12
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/lib/cdn/relay.min.js +1 -1
- package/lib/cdn/relay.min.js.map +1 -1
- package/lib/cdn/types/environment/browser/browser.d.ts.map +1 -1
- package/lib/cdn/types/environment/environment.d.ts +1 -3
- package/lib/cdn/types/environment/environment.d.ts.map +1 -1
- package/lib/cdn/types/environment/manager/manager.d.ts.map +1 -1
- package/lib/cdn/types/environment/null/null.d.ts.map +1 -1
- package/lib/docs/relay-docs.json +42 -42
- package/lib/relay.cjs +11 -44
- package/lib/relay.js +11 -44
- package/lib/relay.mjs +11 -44
- package/lib/types/environment/browser/browser.d.ts.map +1 -1
- package/lib/types/environment/environment.d.ts +1 -3
- package/lib/types/environment/environment.d.ts.map +1 -1
- package/lib/types/environment/manager/manager.d.ts.map +1 -1
- package/lib/types/environment/null/null.d.ts.map +1 -1
- package/package.json +1 -4
- package/lib/cdn/types/environment/node/node.d.ts +0 -3
- package/lib/cdn/types/environment/node/node.d.ts.map +0 -1
- package/lib/cdn/types/environment/utils/fetch.d.ts +0 -2
- package/lib/cdn/types/environment/utils/fetch.d.ts.map +0 -1
- package/lib/types/environment/node/node.d.ts +0 -3
- package/lib/types/environment/node/node.d.ts.map +0 -1
- package/lib/types/environment/utils/fetch.d.ts +0 -2
- package/lib/types/environment/utils/fetch.d.ts.map +0 -1
package/lib/cdn/relay.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=/^(?:[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;function t(t){const n="visitorId";return{getClientId:()=>{const r=t.get(),o=r.storage,c=o.getItem(n),a=c&&("string"==typeof(s=c)&&e.test(s))?c:r.generateUUID();var s;return o.setItem(n,a),a},clear:()=>{t.get().storage.removeItem(n)}}}const n="0.6.
|
|
1
|
+
var e=/^(?:[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;function t(t){const n="visitorId";return{getClientId:()=>{const r=t.get(),o=r.storage,c=o.getItem(n),a=c&&("string"==typeof(s=c)&&e.test(s))?c:r.generateUUID();var s;return o.setItem(n,a),a},clear:()=>{t.get().storage.removeItem(n)}}}const n="0.6.12";function r(e){return(e.source||[]).concat([`relay@${n}`])}function o(e,t,n,o){const{getReferrer:c,getLocation:a,getUserAgent:s}=n,i=function(e){const{trackingId:t}=e;return{trackingId:t}}(t),u=o.getClientId();return Object.freeze({type:e,config:i,ts:Date.now(),source:r(t),clientId:u,userAgent:s(),referrer:c(),location:a()})}const c="*";function a(){const e=[];function t({type:t,callback:n}){return e.findIndex((e=>e.type===t&&e.callback===n))}function n(n,r){r?function(n){const r=t(n);r>=0&&e.splice(r,1)}({type:n,callback:r}):function(t){if(t===c)e.length=0;else for(let n=e.length-1;n>=0;n--)e[n].type===t&&e.splice(n,1)}(n)}return{add:function(r){return t(r)<0&&e.push(r),()=>n(r.type,r.callback)},call:function(t){e.forEach((e=>{if(function(e,t){return"*"===e.type||t===e.type}(e,t.meta.type))try{e.callback(t)}catch(e){console.error(e)}}))},remove:n}}function s({url:e,token:t,trackingId:n,...r}){return Object.freeze({url:e,token:t,trackingId:n,...!!r.mode&&{mode:r.mode},...!!r.source&&{source:r.source}})}const i=function(){const e="coveo_";return{getItem(t){const n=`${e}${t}=`,r=document.cookie.split(";");for(const e of r){const t=e.replace(/^\s+/,"");if(0===t.lastIndexOf(n,0))return t.substring(n.length,t.length)}return null},setItem(t,n,r){const o=(e=>{const t=e.split(".").slice(-2);return 2==t.length?t.join("."):""})(window.location.hostname),c=`;expires=${new Date((new Date).getTime()+r).toUTCString()}`,a=o?`;domain=${o}`:"";document.cookie=`${e}${t}=${n}${c}${a};path=/;SameSite=Lax`},removeItem(e){this.setItem(e,"",-1)}}}();function u(){return{runtime:"browser",send:async(e,t,n)=>{const r=navigator.sendBeacon(`${e}?access_token=${t}`,new Blob([JSON.stringify([n])],{type:"application/json"})),o=function(){const e="undefined"!=typeof window;return{sendMessage(t){e&&window.postMessage(t,"*")}}}();if(o.sendMessage({kind:"EVENT_PROTOCOL",event:n,url:e,token:t}),!r)throw new Error("Failed to send the event(s) because the payload size exceeded the maximum allowed size (32 KB). Please contact support if the problem persists.")},getReferrer:()=>function(){const e=document.referrer;return""===e?null:e}(),getLocation:()=>window.location.href,getUserAgent:()=>navigator.userAgent,generateUUID:()=>crypto.randomUUID(),storage:{getItem:e=>i.getItem(e)||localStorage.getItem(e),removeItem(e){i.removeItem(e),localStorage.removeItem(e)},setItem(e,t){localStorage.setItem(e,t),i.setItem(e,t,31556952e3)}}}}function l(e){return"disabled"!==e.get().mode&&function(){try{return"object"==typeof window}catch(e){return!1}}()?u():{runtime:"null",send:async()=>{},getReferrer:()=>null,getLocation:()=>null,getUserAgent:()=>null,generateUUID:()=>"",storage:{getItem:()=>null,removeItem(){},setItem(){}}}}function g(e){const r=function(e){let t=s(e);return{get:()=>t,update:e=>{t=s({...t,...e})}}}(e),c=a(),i=function(e){return{get:()=>Object.freeze(l(e))}}(r),u=t(i);return{emit:(e,t)=>{const n=r.get(),a=i.get(),s=function(e,t,n,r,c){return{...t,meta:o(e,n,r,c)}}(e,t,n,a,u);return async function({config:e,environment:t,event:n,listenerManager:r}){const{url:o,token:c,mode:a}=e;"disabled"!==a&&(r.call(n),t.send(o,c,n))}({config:n,environment:a,event:s,listenerManager:c})},getMeta:e=>o(e,r.get(),i.get(),u),on:(e,t)=>c.add({type:e,callback:t}),off:(e,t)=>c.remove(e,t),updateConfig:e=>r.update(e),version:n,clearStorage:()=>{u.clear()}}}export{g as createRelay};
|
|
2
2
|
//# sourceMappingURL=relay.min.js.map
|
package/lib/cdn/relay.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.min.js","sources":["../../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/regex.js","../../src/client-id/client-id.ts","../../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/validate.js","../../src/version.ts","../../src/event/meta/meta.ts","../../src/listener/listener.ts","../../src/config/config.ts","../../src/environment/browser/storage/cookie.ts","../../src/environment/utils/fetch.ts","../../src/environment/browser/browser.ts","../../../../node_modules/.pnpm/@coveo+explorer-messenger@0.1.1/node_modules/@coveo/explorer-messenger/dist/messenger.js","../../src/environment/browser/storage/storage.ts","../../src/environment/storage.ts","../../src/environment/environment.ts","../../src/environment/node/node.ts","../../src/environment/manager/manager.ts","../../src/environment/null/null.ts","../../src/relay.ts","../../src/event/relay-event.ts","../../src/emit/emit.ts"],"sourcesContent":["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 { validate } from \"uuid\";\nimport { EnvironmentManager } from \"../environment/manager/manager\";\n\nexport interface ClientIdManager {\n getClientId: () => string;\n clear: () => void;\n}\n\nexport function createClientIdManager(\n environmentManager: EnvironmentManager\n): ClientIdManager {\n const key = \"visitorId\";\n\n return {\n getClientId: () => {\n const environment = environmentManager.get();\n const storage = environment.storage;\n\n const existingClientId = storage.getItem(key);\n const clientId =\n existingClientId && validate(existingClientId)\n ? existingClientId\n : environment.generateUUID();\n storage.setItem(key, clientId);\n return clientId;\n },\n clear: () => {\n environmentManager.get().storage.removeItem(key);\n },\n };\n}\n","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","export const version = \"process.env.VERSION\";\n","import { ClientIdManager } from \"../../client-id/client-id\";\nimport { Environment } from \"../../environment/environment\";\nimport { RelayConfig } from \"../../config/config\";\nimport { version } from \"../../version\";\n\n/**\n * The `EventConfig` object provides additonal information for the configuration associated with the event.\n */\nexport interface EventConfig {\n /**\n * The unique identifier of a web property. See [Tracking ID](https://docs.coveo.com/en/n8tg0567/).\n */\n trackingId: string;\n}\n\n/**\n * The `Meta` object provides a structured representation of metadata associated with an emitted event.\n */\nexport interface Meta {\n /**\n * Event's type that was emitted.\n */\n type: string;\n\n /**\n * Configuration associated with the event.\n */\n config: EventConfig;\n\n /**\n * Timestamp when the event was emitted.\n */\n ts: number;\n\n /**\n * Names and versions of the client side libraries which built and emitted this event.\n */\n source: string[];\n\n /**\n * Persistent unique identifier of a device.\n */\n clientId: string;\n\n /**\n * Browser Navigator's [user agent](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgent) property if set.\n */\n userAgent: string | null;\n\n /**\n * Browser Document's [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) property if set.\n */\n referrer: string | null;\n\n /**\n * Browser Location's [href](https://developer.mozilla.org/en-US/docs/Web/API/Location/href) property if set.\n */\n location: string | null;\n}\n\nfunction getEventConfig(config: RelayConfig): EventConfig {\n const { trackingId } = config;\n return { trackingId };\n}\n\nfunction getSource(config: RelayConfig): string[] {\n return (config.source || []).concat([`relay@${version}`]);\n}\n\nexport function createMeta(\n type: string,\n config: RelayConfig,\n environment: Environment,\n clientIdManager: ClientIdManager\n): Readonly<Meta> {\n const { getReferrer, getLocation, getUserAgent } = environment;\n const eventConfig = getEventConfig(config);\n const clientId = clientIdManager.getClientId();\n\n return Object.freeze({\n type,\n config: eventConfig,\n ts: Date.now(),\n source: getSource(config),\n clientId,\n userAgent: getUserAgent(),\n referrer: getReferrer(),\n location: getLocation(),\n });\n}\n","import { RelayEvent } from \"../event/relay-event\";\n\nconst ANY_EVENT_TYPE = \"*\";\n\n/**\n * Callback to perform an action when a specified event is emitted.\n * @typedef {function} EventCallback\n * @param {RelayEvent} event\n * @returns {void}\n */\nexport type EventCallback = (event: RelayEvent) => void;\n\ninterface Listener {\n type: string;\n callback: EventCallback;\n}\n\nexport interface ListenerManager {\n add: (listener: Listener) => () => void;\n call: (event: RelayEvent) => void;\n remove: (type: string, callback?: EventCallback) => void;\n}\n\nexport function createListenerManager(): ListenerManager {\n const listeners: Listener[] = [];\n\n function getListenerIndex({ type, callback }: Listener): number {\n return listeners.findIndex(\n (listener) => listener.type === type && listener.callback === callback\n );\n }\n\n function isMatchesType(listener: Listener, type: string): boolean {\n return listener.type === \"*\" || type === listener.type;\n }\n\n function add(listener: Listener): () => void {\n if (getListenerIndex(listener) < 0) {\n listeners.push(listener);\n }\n return () => remove(listener.type, listener.callback);\n }\n\n function call(event: RelayEvent) {\n listeners.forEach((listener) => {\n if (isMatchesType(listener, event.meta.type)) {\n try {\n listener.callback(event);\n } catch (e) {\n console.error(e);\n }\n }\n });\n }\n\n function removeMultiple(type: string) {\n if (type === ANY_EVENT_TYPE) {\n listeners.length = 0;\n } else {\n for (let i = listeners.length - 1; i >= 0; i--) {\n if (listeners[i].type === type) {\n listeners.splice(i, 1);\n }\n }\n }\n }\n\n function removeOne(listener: Listener) {\n const index = getListenerIndex(listener);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n }\n\n function remove(type: string, callback?: EventCallback) {\n !!callback ? removeOne({ type, callback }) : removeMultiple(type);\n }\n\n return {\n add,\n call,\n remove,\n };\n}\n","export type RelayMode = \"emit\" | \"disabled\";\n\n/**\n * The `RelayConfig` object defines the configuration options for initializing a Relay instance.\n */\nexport interface RelayConfig {\n /**\n * Endpoint defined to communicate with the Event API.\n */\n url: string;\n\n /**\n * Token to authorize the access to the Event API endpoint.\n */\n token: string;\n\n /**\n * The unique identifier of a web property. See [Tracking ID](https://docs.coveo.com/en/n8tg0567/).\n */\n trackingId: string;\n\n /**\n * Defines the library mode. The possible values are:\n * \"emit\": Sends analytics events to Coveo to be stored.\n * \"disabled\": Prevents the emission of events and does not trigger callbacks.\n * @default emit\n */\n mode?: RelayMode;\n\n /**\n * Optionally allows a Relay integration to specify the name(s) of software package(s) relay is\n * being called from. These names will be transmitted with each event, along with Relay's own\n * version. The recommendation is to specify them using a 'softwarename@softwareversion' string.\n */\n source?: string[];\n}\n\nexport interface ConfigManager {\n get: () => Readonly<RelayConfig>;\n update: (updatedConfig: Partial<RelayConfig>) => void;\n}\n\nfunction pick({\n url,\n token,\n trackingId,\n ...rest\n}: RelayConfig): Readonly<RelayConfig> {\n return Object.freeze({\n url,\n token,\n trackingId,\n ...(!!rest.mode && { mode: rest.mode }),\n ...(!!rest.source && { source: rest.source }),\n });\n}\n\nexport function createConfigManager(\n initialConfig: RelayConfig\n): Readonly<ConfigManager> {\n let _config: Readonly<RelayConfig> = pick(initialConfig);\n\n return {\n get: () => _config,\n update: (updatedConfig: Partial<RelayConfig>) => {\n _config = pick({ ..._config, ...updatedConfig });\n },\n };\n}\n","export interface CookieManager {\n getItem: (key: string) => string | null;\n removeItem: (key: string) => void;\n setItem: (key: string, data: string, expire: number) => void;\n}\n\nexport const cookieManager: CookieManager = createCookieManager();\n\nfunction createCookieManager(): CookieManager {\n const prefix = \"coveo_\";\n const getDomain = (host: string) => {\n const parts = host.split(\".\").slice(-2);\n return parts.length == 2 ? parts.join(\".\") : \"\";\n };\n\n return {\n getItem(key: string): string | null {\n const cookiePrefix = `${prefix}${key}=`;\n const cookieArray = document.cookie.split(\";\");\n for (const cookie of cookieArray) {\n const prettifyCookie = cookie.replace(/^\\s+/, \"\");\n if (prettifyCookie.lastIndexOf(cookiePrefix, 0) === 0) {\n return prettifyCookie.substring(\n cookiePrefix.length,\n prettifyCookie.length\n );\n }\n }\n return null;\n },\n setItem(key: string, data: string, expire: number): void {\n const domain = getDomain(window.location.hostname);\n const expireSection = `;expires=${new Date(\n new Date().getTime() + expire\n ).toUTCString()}`;\n const domainSection = domain ? `;domain=${domain}` : \"\";\n document.cookie = `${prefix}${key}=${data}${expireSection}${domainSection};path=/;SameSite=Lax`;\n },\n\n removeItem(key: string): void {\n this.setItem(key, \"\", -1);\n },\n };\n}\n","export async function fetchAPI(\n url: string,\n init?: RequestInit\n): Promise<Response> {\n return fetch(url, init).catch((err: Error) => {\n throw new Error(\n `${err.message}: The \"host\" value is invalid or a network error occured, according to the FetchAPI's response.`,\n { cause: err }\n );\n });\n}\n","import { createExplorerMessenger } from \"@coveo/explorer-messenger\";\nimport { Environment } from \"../environment\";\nimport { createBrowserStorage } from \"./storage/storage\";\nimport { fetchAPI } from \"../utils/fetch\";\nimport { RelayEvent } from \"../../event/relay-event\";\n\nfunction getReferrer() {\n const referrer = document.referrer;\n\n return referrer === \"\" ? null : referrer;\n}\n\nexport function buildBrowserEnvironment(): Environment {\n return {\n runtime: \"browser\",\n fetch: (url: string, init?: RequestInit) => fetchAPI(url, init),\n send: async (url: string, token: string, event: RelayEvent) => {\n const response = navigator.sendBeacon(\n `${url}?access_token=${token}`,\n new Blob([JSON.stringify([event])], {\n type: \"application/json\",\n })\n );\n\n const messenger = createExplorerMessenger();\n messenger.sendMessage({ kind: \"EVENT_PROTOCOL\", event, url, token });\n\n if (!response) {\n throw new Error(\n `Failed to send the event(s) because the payload size exceeded the maximum allowed size (32 KB). Please contact support if the problem persists.`\n );\n }\n },\n getReferrer: () => getReferrer(),\n getLocation: () => window.location.href,\n getUserAgent: () => navigator.userAgent,\n generateUUID: () => crypto.randomUUID(),\n storage: createBrowserStorage(),\n };\n}\n","function createExplorerMessenger() {\n const isBrowser = typeof window !== \"undefined\";\n return {\n sendMessage(message) {\n isBrowser && window.postMessage(message, \"*\");\n }\n };\n}\nexport {\n createExplorerMessenger\n};\n","import { Storage } from \"../../storage\";\nimport { cookieManager } from \"./cookie\";\n\nexport function createBrowserStorage(): Storage {\n return {\n getItem(key: string): string | null {\n return cookieManager.getItem(key) || localStorage.getItem(key);\n },\n\n removeItem(key: string): void {\n cookieManager.removeItem(key);\n localStorage.removeItem(key);\n },\n\n setItem(key: string, data: string): void {\n const oneYear = 31556952000;\n localStorage.setItem(key, data);\n cookieManager.setItem(key, data, oneYear);\n },\n };\n}\n","export interface Storage {\n getItem: (key: string) => string | null;\n removeItem: (key: string) => void;\n setItem: (key: string, data: string) => void;\n}\n\nexport function createNullStorage(): Storage {\n return {\n getItem(): string | null {\n return null;\n },\n removeItem(): void {\n return;\n },\n setItem(): void {\n return;\n },\n };\n}\n","import { RelayEvent } from \"../event/relay-event\";\nimport { buildBrowserEnvironment } from \"./browser/browser\";\nimport { buildNodeEnvironment } from \"./node/node\";\nimport { Storage } from \"./storage\";\n\nexport interface Environment {\n runtime: \"browser\" | \"node\" | \"null\";\n fetch: (url: string, init?: RequestInit) => Promise<Response>;\n send: (url: string, token: string, event: RelayEvent) => Promise<void>;\n getReferrer: () => string | null;\n getLocation: () => string | null;\n getUserAgent: () => string | null;\n generateUUID: () => string;\n storage: Storage;\n}\n\nexport function currentEnvironment(): Environment {\n return isBrowser() ? buildBrowserEnvironment() : buildNodeEnvironment();\n}\n\nfunction isBrowser() {\n try {\n return typeof window === \"object\";\n } catch (e) {\n return false;\n }\n}\n","import { RelayEvent } from \"../../event/relay-event\";\nimport { Environment } from \"../environment\";\nimport { createNullStorage } from \"../storage\";\nimport { fetchAPI } from \"../utils/fetch\";\n\nexport function buildNodeEnvironment(): Environment {\n return {\n runtime: \"node\",\n fetch: (url: string, init?: RequestInit) => fetchAPI(url, init),\n send: async (url: string, token: string, event: RelayEvent) => {\n const headers = {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n };\n fetchAPI(url, {\n method: \"POST\",\n body: JSON.stringify([event]),\n headers,\n });\n },\n getReferrer: () => null,\n getLocation: () => null,\n getUserAgent: () => null,\n generateUUID: () => crypto.randomUUID(),\n storage: createNullStorage(),\n };\n}\n","import { ConfigManager } from \"../../config/config\";\nimport { Environment, currentEnvironment } from \"../environment\";\nimport { buildNullEnvironment } from \"../null/null\";\n\nexport interface EnvironmentManager {\n get: () => Readonly<Environment>;\n}\n\nfunction buildEnvironment(configManager: ConfigManager) {\n return configManager.get().mode == \"disabled\"\n ? buildNullEnvironment()\n : currentEnvironment();\n}\n\nexport function createEnvironmentManager(\n configManager: ConfigManager\n): Readonly<EnvironmentManager> {\n return {\n get: () => Object.freeze(buildEnvironment(configManager)),\n };\n}\n","import { Environment } from \"../environment\";\nimport { createNullStorage } from \"../storage\";\n\nexport function buildNullEnvironment(): Environment {\n return {\n runtime: \"null\",\n fetch: () => Promise.resolve(new Response(JSON.stringify(\"\"))),\n send: async () => undefined,\n getReferrer: () => null,\n getLocation: () => null,\n getUserAgent: () => null,\n generateUUID: () => \"\",\n storage: createNullStorage(),\n };\n}\n","import { emit } from \"./emit/emit\";\nimport { createClientIdManager } from \"./client-id/client-id\";\nimport { createRelayEvent } from \"./event/relay-event\";\nimport { version } from \"./version\";\nimport { createMeta, Meta, EventConfig } from \"./event/meta/meta\";\nimport { createListenerManager, EventCallback } from \"./listener/listener\";\nimport { createConfigManager, RelayConfig } from \"./config/config\";\nimport { createEnvironmentManager } from \"./environment/manager/manager\";\n\ntype Off = () => void;\n\n/**\n * Relay instance.\n * This object provides a comprehensive set of variables and methods for interacting with the Event API.\n */\ninterface Relay {\n /**\n * Sends an event to the Event API.\n * @param {string} type - event's type to be emitted.\n * @param {Record<string,any>} payload - payload to include within the event.\n * @returns {Promise<void>}\n */\n emit: (type: string, payload: Record<string, any>) => Promise<void>;\n\n /**\n * Gets the client-side generated meta object.\n * @param {string} type - event's type that will be included in the meta object.\n * @returns {Meta}\n */\n getMeta: (type: string) => Meta;\n\n /**\n * Attaches an event callback to either all event types or a specific one.\n * The callback set will be called when an event with the specified type is emitted.\n * Setting type as \"*\" will trigger the callback for all event types.\n * Returns the \"off\" function to detach the event callback.\n * @param {string} type - event's type.\n * @param {EventCallback} callback\n * @returns {Off}\n */\n on: (type: string, callback: EventCallback) => Off;\n\n /**\n * Detach callback(s) from events.\n * If only the \"type\" parameter is set, all callbacks for the specified type will be removed.\n * @param {string} type - event's type.\n * @param {EventCallback} callback - callback that should be removed.\n * @returns {void}\n */\n off: (type: string, callback?: EventCallback) => void;\n\n /**\n * Updates Relay's configuration after its initialization.\n * @param {Partial<RelayConfig>} config - configuration that should be updated.\n * @returns {void}\n */\n updateConfig: (config: Partial<RelayConfig>) => void;\n\n /**\n * Current version of the Relay library.\n */\n version: string;\n\n /**\n * Removes the visitorId cookie and localStorage key.\n * @returns {void}\n */\n clearStorage: () => void;\n}\n\n/**\n * Initializes the Relay library object.\n * @param {RelayConfig} initialConfig\n * @returns {Relay}\n */\nexport function createRelay(initialConfig: RelayConfig): Relay {\n const configManager = createConfigManager(initialConfig);\n const listenerManager = createListenerManager();\n const environmentManager = createEnvironmentManager(configManager);\n const clientIdManager = createClientIdManager(environmentManager);\n\n return {\n emit: (type: string, payload: Record<string, any>) => {\n const config = configManager.get();\n const environment = environmentManager.get();\n\n const event = createRelayEvent(\n type,\n payload,\n config,\n environment,\n clientIdManager\n );\n\n return emit({\n config,\n environment,\n event,\n listenerManager,\n });\n },\n getMeta: (type: string) =>\n createMeta(\n type,\n configManager.get(),\n environmentManager.get(),\n clientIdManager\n ),\n on: (type: string, callback: EventCallback) =>\n listenerManager.add({ type, callback }),\n off: (type: string, callback?: EventCallback) =>\n listenerManager.remove(type, callback),\n updateConfig: (config: Partial<RelayConfig>) =>\n configManager.update(config),\n version,\n clearStorage: () => {\n clientIdManager.clear();\n },\n };\n}\n\nexport type { Relay, Meta, EventConfig, EventCallback, RelayConfig };\n","import { ClientIdManager } from \"../client-id/client-id\";\nimport { Environment } from \"../environment/environment\";\nimport { RelayPayload } from \"../internal-types\";\nimport { RelayConfig } from \"../relay\";\nimport { createMeta, Meta } from \"./meta/meta\";\n\nexport interface RelayEvent extends RelayPayload {\n meta: Readonly<Meta>;\n}\n\nexport function createRelayEvent(\n type: string,\n payload: RelayPayload,\n config: RelayConfig,\n environment: Environment,\n clientIdManager: ClientIdManager\n): Readonly<RelayEvent> {\n return {\n ...payload,\n meta: createMeta(type, config, environment, clientIdManager),\n };\n}\n","import { Environment } from \"../environment/environment\";\nimport { ListenerManager } from \"../listener/listener\";\nimport { RelayEvent } from \"../event/relay-event\";\nimport { RelayConfig } from \"../relay\";\n\nexport interface EmitParams {\n config: RelayConfig;\n environment: Environment;\n event: RelayEvent;\n listenerManager: ListenerManager;\n}\n\nexport async function emit({\n config,\n environment,\n event,\n listenerManager,\n}: EmitParams) {\n const { url, token, mode } = config;\n const isEnabled = mode !== \"disabled\";\n\n if (isEnabled) {\n listenerManager.call(event);\n environment.send(url, token, event);\n }\n}\n"],"names":["REGEX","createClientIdManager","environmentManager","key","getClientId","environment","get","storage","existingClientId","getItem","clientId","uuid","test","generateUUID","setItem","clear","removeItem","version","getSource","config","source","concat","createMeta","type","clientIdManager","getReferrer","getLocation","getUserAgent","eventConfig","trackingId","getEventConfig","Object","freeze","ts","Date","now","userAgent","referrer","location","ANY_EVENT_TYPE","createListenerManager","listeners","getListenerIndex","callback","findIndex","listener","remove","index","splice","removeOne","length","i","removeMultiple","add","push","call","event","forEach","isMatchesType","meta","e","console","error","pick","url","token","rest","mode","cookieManager","prefix","cookiePrefix","cookieArray","document","cookie","split","prettifyCookie","replace","lastIndexOf","substring","data","expire","domain","host","parts","slice","join","getDomain","window","hostname","expireSection","getTime","toUTCString","domainSection","this","createCookieManager","async","fetchAPI","init","fetch","catch","err","Error","message","cause","buildBrowserEnvironment","runtime","send","response","navigator","sendBeacon","Blob","JSON","stringify","messenger","isBrowser","sendMessage","postMessage","createExplorerMessenger","kind","href","crypto","randomUUID","localStorage","createNullStorage","currentEnvironment","headers","Authorization","method","body","buildEnvironment","configManager","Promise","resolve","Response","createRelay","initialConfig","_config","update","updatedConfig","createConfigManager","listenerManager","createEnvironmentManager","emit","payload","createRelayEvent","getMeta","on","off","updateConfig","clearStorage"],"mappings":"AAAA,IAAAA,EAAe,sHCQT,SAAUC,EACdC,GAEA,MAAMC,EAAM,YAEZ,MAAO,CACLC,YAAa,KACX,MAAMC,EAAcH,EAAmBI,MACjCC,EAAUF,EAAYE,QAEtBC,EAAmBD,EAAQE,QAAQN,GACnCO,EACJF,ICjBiB,iBADPG,EDkBmBH,ICjBAR,EAAMY,KAAKD,IDkBpCH,EACAH,EAAYQ,eCpBxB,IAAkBF,EDsBZ,OADAJ,EAAQO,QAAQX,EAAKO,GACdA,CAAQ,EAEjBK,MAAO,KACLb,EAAmBI,MAAMC,QAAQS,WAAWb,EAAI,EAGtD,CE9BO,MAAMc,EAAU,SCiEvB,SAASC,EAAUC,GACjB,OAAQA,EAAOC,QAAU,IAAIC,OAAO,CAAC,SAASJ,KAChD,CAEM,SAAUK,EACdC,EACAJ,EACAd,EACAmB,GAEA,MAAMC,YAAEA,EAAWC,YAAEA,EAAWC,aAAEA,GAAiBtB,EAC7CuB,EAhBR,SAAwBT,GACtB,MAAMU,WAAEA,GAAeV,EACvB,MAAO,CAAEU,aACX,CAasBC,CAAeX,GAC7BT,EAAWc,EAAgBpB,cAEjC,OAAO2B,OAAOC,OAAO,CACnBT,OACAJ,OAAQS,EACRK,GAAIC,KAAKC,MACTf,OAAQF,EAAUC,GAClBT,WACA0B,UAAWT,IACXU,SAAUZ,IACVa,SAAUZ,KAEd,CCvFA,MAAMa,EAAiB,aAqBPC,IACd,MAAMC,EAAwB,GAE9B,SAASC,GAAiBnB,KAAEA,EAAIoB,SAAEA,IAChC,OAAOF,EAAUG,WACdC,GAAaA,EAAStB,OAASA,GAAQsB,EAASF,WAAaA,GAEjE,CA4CD,SAASG,EAAOvB,EAAcoB,GAC1BA,EARJ,SAAmBE,GACjB,MAAME,EAAQL,EAAiBG,GAC3BE,GAAS,GACXN,EAAUO,OAAOD,EAAO,EAE3B,CAGcE,CAAU,CAAE1B,OAAMoB,aApBjC,SAAwBpB,GACtB,GAAIA,IAASgB,EACXE,EAAUS,OAAS,OAEnB,IAAK,IAAIC,EAAIV,EAAUS,OAAS,EAAGC,GAAK,EAAGA,IACrCV,EAAUU,GAAG5B,OAASA,GACxBkB,EAAUO,OAAOG,EAAG,EAI3B,CAU8CC,CAAe7B,EAC7D,CAED,MAAO,CACL8B,IA3CF,SAAaR,GAIX,OAHIH,EAAiBG,GAAY,GAC/BJ,EAAUa,KAAKT,GAEV,IAAMC,EAAOD,EAAStB,KAAMsB,EAASF,SAC7C,EAuCCY,KArCF,SAAcC,GACZf,EAAUgB,SAASZ,IACjB,GAbJ,SAAuBA,EAAoBtB,GACzC,MAAyB,MAAlBsB,EAAStB,MAAgBA,IAASsB,EAAStB,IACnD,CAWOmC,CAAcb,EAAUW,EAAMG,KAAKpC,MACrC,IACEsB,EAASF,SAASa,EACnB,CAAC,MAAOI,GACPC,QAAQC,MAAMF,EACf,CACF,GAEJ,EA4BCd,SAEJ,CCzCA,SAASiB,GAAKC,IACZA,EAAGC,MACHA,EAAKpC,WACLA,KACGqC,IAEH,OAAOnC,OAAOC,OAAO,CACnBgC,MACAC,QACApC,kBACMqC,EAAKC,MAAQ,CAAEA,KAAMD,EAAKC,WAC1BD,EAAK9C,QAAU,CAAEA,OAAQ8C,EAAK9C,SAExC,CCjDO,MAAMgD,EAEb,WACE,MAAMC,EAAS,SAMf,MAAO,CACL,OAAA5D,CAAQN,GACN,MAAMmE,EAAe,GAAGD,IAASlE,KAC3BoE,EAAcC,SAASC,OAAOC,MAAM,KAC1C,IAAK,MAAMD,KAAUF,EAAa,CAChC,MAAMI,EAAiBF,EAAOG,QAAQ,OAAQ,IAC9C,GAAoD,IAAhDD,EAAeE,YAAYP,EAAc,GAC3C,OAAOK,EAAeG,UACpBR,EAAapB,OACbyB,EAAezB,OAGpB,CACD,OAAO,IACR,EACD,OAAApC,CAAQX,EAAa4E,EAAcC,GACjC,MAAMC,EArBQ,CAACC,IACjB,MAAMC,EAAQD,EAAKR,MAAM,KAAKU,OAAO,GACrC,OAAuB,GAAhBD,EAAMjC,OAAciC,EAAME,KAAK,KAAO,EAAE,EAmB9BC,CAAUC,OAAOjD,SAASkD,UACnCC,EAAgB,YAAY,IAAIvD,MACpC,IAAIA,MAAOwD,UAAYV,GACvBW,gBACIC,EAAgBX,EAAS,WAAWA,IAAW,GACrDT,SAASC,OAAS,GAAGJ,IAASlE,KAAO4E,IAAOU,IAAgBG,uBAC7D,EAED,UAAA5E,CAAWb,GACT0F,KAAK/E,QAAQX,EAAK,IAAK,EACxB,EAEL,CArC4C2F,GCNrCC,eAAeC,EACpBhC,EACAiC,GAEA,OAAOC,MAAMlC,EAAKiC,GAAME,OAAOC,IAC7B,MAAM,IAAIC,MACR,GAAGD,EAAIE,yGACP,CAAEC,MAAOH,GACV,GAEL,UCEgBI,IACd,MAAO,CACLC,QAAS,UACTP,MAAO,CAAClC,EAAaiC,IAAuBD,EAAShC,EAAKiC,GAC1DS,KAAMX,MAAO/B,EAAaC,EAAeT,KACvC,MAAMmD,EAAWC,UAAUC,WACzB,GAAG7C,kBAAoBC,IACvB,IAAI6C,KAAK,CAACC,KAAKC,UAAU,CAACxD,KAAU,CAClCjC,KAAM,sBAIJ0F,ECxBZ,WACE,MAAMC,EAA8B,oBAAX3B,OACzB,MAAO,CACL,WAAA4B,CAAYb,GACVY,GAAa3B,OAAO6B,YAAYd,EAAS,IAC1C,EAEL,CDiBwBe,GAGlB,GAFAJ,EAAUE,YAAY,CAAEG,KAAM,iBAAkB9D,QAAOQ,MAAKC,WAEvD0C,EACH,MAAM,IAAIN,MACR,kJAEH,EAEH5E,YAAa,IA3BjB,WACE,MAAMY,EAAWmC,SAASnC,SAE1B,MAAoB,KAAbA,EAAkB,KAAOA,CAClC,CAuBuBZ,GACnBC,YAAa,IAAM6D,OAAOjD,SAASiF,KACnC5F,aAAc,IAAMiF,UAAUxE,UAC9BvB,aAAc,IAAM2G,OAAOC,aAC3BlH,QEjCK,CACLE,QAAQN,GACCiE,EAAc3D,QAAQN,IAAQuH,aAAajH,QAAQN,GAG5D,UAAAa,CAAWb,GACTiE,EAAcpD,WAAWb,GACzBuH,aAAa1G,WAAWb,EACzB,EAED,OAAAW,CAAQX,EAAa4E,GAEnB2C,aAAa5G,QAAQX,EAAK4E,GAC1BX,EAActD,QAAQX,EAAK4E,EAFX,WAGjB,GFqBL,UGjCgB4C,IACd,MAAO,CACLlH,QAAO,IACE,KAET,UAAAO,GAEC,EACD,OAAAF,GAEC,EAEL,UCFgB8G,IACd,OAGF,WACE,IACE,MAAyB,iBAAXrC,MACf,CAAC,MAAO3B,GACP,OAAO,CACR,CACH,CATSsD,GAAcV,ICXd,CACLC,QAAS,OACTP,MAAO,CAAClC,EAAaiC,IAAuBD,EAAShC,EAAKiC,GAC1DS,KAAMX,MAAO/B,EAAaC,EAAeT,KACvC,MAAMqE,EAAU,CACd,eAAgB,mBAChBC,cAAe,UAAU7D,KAE3B+B,EAAShC,EAAK,CACZ+D,OAAQ,OACRC,KAAMjB,KAAKC,UAAU,CAACxD,IACtBqE,WACA,EAEJpG,YAAa,IAAM,KACnBC,YAAa,IAAM,KACnBC,aAAc,IAAM,KACpBd,aAAc,IAAM2G,OAAOC,aAC3BlH,QAASoH,IDNb,CEVA,SAASM,EAAiBC,GACxB,MAAmC,YAA5BA,EAAc5H,MAAM6D,KCLpB,CACLsC,QAAS,OACTP,MAAO,IAAMiC,QAAQC,QAAQ,IAAIC,SAAStB,KAAKC,UAAU,MACzDN,KAAMX,UAAqB,EAC3BtE,YAAa,IAAM,KACnBC,YAAa,IAAM,KACnBC,aAAc,IAAM,KACpBd,aAAc,IAAM,GACpBN,QAASoH,KDDPC,GACN,CE+DM,SAAUU,EAAYC,GAC1B,MAAML,EXnBF,SACJK,GAEA,IAAIC,EAAiCzE,EAAKwE,GAE1C,MAAO,CACLjI,IAAK,IAAMkI,EACXC,OAASC,IACPF,EAAUzE,EAAK,IAAKyE,KAAYE,GAAgB,EAGtD,CWQwBC,CAAoBJ,GACpCK,EAAkBpG,IAClBtC,EFhEF,SACJgI,GAEA,MAAO,CACL5H,IAAK,IAAMyB,OAAOC,OAAOiG,EAAiBC,IAE9C,CE0D6BW,CAAyBX,GAC9C1G,EAAkBvB,EAAsBC,GAE9C,MAAO,CACL4I,KAAM,CAACvH,EAAcwH,KACnB,MAAM5H,EAAS+G,EAAc5H,MACvBD,EAAcH,EAAmBI,MAEjCkD,EC5EN,SACJjC,EACAwH,EACA5H,EACAd,EACAmB,GAEA,MAAO,IACFuH,EACHpF,KAAMrC,EAAWC,EAAMJ,EAAQd,EAAamB,GAEhD,CDiEoBwH,CACZzH,EACAwH,EACA5H,EACAd,EACAmB,GAGF,OElFCuE,gBAAoB5E,OACzBA,EAAMd,YACNA,EAAWmD,MACXA,EAAKoF,gBACLA,IAEA,MAAM5E,IAAEA,EAAGC,MAAEA,EAAKE,KAAEA,GAAShD,EACF,aAATgD,IAGhByE,EAAgBrF,KAAKC,GACrBnD,EAAYqG,KAAK1C,EAAKC,EAAOT,GAEjC,CFqEasF,CAAK,CACV3H,SACAd,cACAmD,QACAoF,mBACA,EAEJK,QAAU1H,GACRD,EACEC,EACA2G,EAAc5H,MACdJ,EAAmBI,MACnBkB,GAEJ0H,GAAI,CAAC3H,EAAcoB,IACjBiG,EAAgBvF,IAAI,CAAE9B,OAAMoB,aAC9BwG,IAAK,CAAC5H,EAAcoB,IAClBiG,EAAgB9F,OAAOvB,EAAMoB,GAC/ByG,aAAejI,GACb+G,EAAcO,OAAOtH,GACvBF,UACAoI,aAAc,KACZ7H,EAAgBT,OAAO,EAG7B","x_google_ignoreList":[0,2,10]}
|
|
1
|
+
{"version":3,"file":"relay.min.js","sources":["../../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/regex.js","../../src/client-id/client-id.ts","../../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/validate.js","../../src/version.ts","../../src/event/meta/meta.ts","../../src/listener/listener.ts","../../src/config/config.ts","../../src/environment/browser/storage/cookie.ts","../../src/environment/browser/browser.ts","../../../../node_modules/.pnpm/@coveo+explorer-messenger@0.1.1/node_modules/@coveo/explorer-messenger/dist/messenger.js","../../src/environment/browser/storage/storage.ts","../../src/environment/manager/manager.ts","../../src/environment/null/null.ts","../../src/environment/storage.ts","../../src/relay.ts","../../src/event/relay-event.ts","../../src/emit/emit.ts"],"sourcesContent":["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 { validate } from \"uuid\";\nimport { EnvironmentManager } from \"../environment/manager/manager\";\n\nexport interface ClientIdManager {\n getClientId: () => string;\n clear: () => void;\n}\n\nexport function createClientIdManager(\n environmentManager: EnvironmentManager\n): ClientIdManager {\n const key = \"visitorId\";\n\n return {\n getClientId: () => {\n const environment = environmentManager.get();\n const storage = environment.storage;\n\n const existingClientId = storage.getItem(key);\n const clientId =\n existingClientId && validate(existingClientId)\n ? existingClientId\n : environment.generateUUID();\n storage.setItem(key, clientId);\n return clientId;\n },\n clear: () => {\n environmentManager.get().storage.removeItem(key);\n },\n };\n}\n","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","export const version = \"process.env.VERSION\";\n","import { ClientIdManager } from \"../../client-id/client-id\";\nimport { Environment } from \"../../environment/environment\";\nimport { RelayConfig } from \"../../config/config\";\nimport { version } from \"../../version\";\n\n/**\n * The `EventConfig` object provides additonal information for the configuration associated with the event.\n */\nexport interface EventConfig {\n /**\n * The unique identifier of a web property. See [Tracking ID](https://docs.coveo.com/en/n8tg0567/).\n */\n trackingId: string;\n}\n\n/**\n * The `Meta` object provides a structured representation of metadata associated with an emitted event.\n */\nexport interface Meta {\n /**\n * Event's type that was emitted.\n */\n type: string;\n\n /**\n * Configuration associated with the event.\n */\n config: EventConfig;\n\n /**\n * Timestamp when the event was emitted.\n */\n ts: number;\n\n /**\n * Names and versions of the client side libraries which built and emitted this event.\n */\n source: string[];\n\n /**\n * Persistent unique identifier of a device.\n */\n clientId: string;\n\n /**\n * Browser Navigator's [user agent](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgent) property if set.\n */\n userAgent: string | null;\n\n /**\n * Browser Document's [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) property if set.\n */\n referrer: string | null;\n\n /**\n * Browser Location's [href](https://developer.mozilla.org/en-US/docs/Web/API/Location/href) property if set.\n */\n location: string | null;\n}\n\nfunction getEventConfig(config: RelayConfig): EventConfig {\n const { trackingId } = config;\n return { trackingId };\n}\n\nfunction getSource(config: RelayConfig): string[] {\n return (config.source || []).concat([`relay@${version}`]);\n}\n\nexport function createMeta(\n type: string,\n config: RelayConfig,\n environment: Environment,\n clientIdManager: ClientIdManager\n): Readonly<Meta> {\n const { getReferrer, getLocation, getUserAgent } = environment;\n const eventConfig = getEventConfig(config);\n const clientId = clientIdManager.getClientId();\n\n return Object.freeze({\n type,\n config: eventConfig,\n ts: Date.now(),\n source: getSource(config),\n clientId,\n userAgent: getUserAgent(),\n referrer: getReferrer(),\n location: getLocation(),\n });\n}\n","import { RelayEvent } from \"../event/relay-event\";\n\nconst ANY_EVENT_TYPE = \"*\";\n\n/**\n * Callback to perform an action when a specified event is emitted.\n * @typedef {function} EventCallback\n * @param {RelayEvent} event\n * @returns {void}\n */\nexport type EventCallback = (event: RelayEvent) => void;\n\ninterface Listener {\n type: string;\n callback: EventCallback;\n}\n\nexport interface ListenerManager {\n add: (listener: Listener) => () => void;\n call: (event: RelayEvent) => void;\n remove: (type: string, callback?: EventCallback) => void;\n}\n\nexport function createListenerManager(): ListenerManager {\n const listeners: Listener[] = [];\n\n function getListenerIndex({ type, callback }: Listener): number {\n return listeners.findIndex(\n (listener) => listener.type === type && listener.callback === callback\n );\n }\n\n function isMatchesType(listener: Listener, type: string): boolean {\n return listener.type === \"*\" || type === listener.type;\n }\n\n function add(listener: Listener): () => void {\n if (getListenerIndex(listener) < 0) {\n listeners.push(listener);\n }\n return () => remove(listener.type, listener.callback);\n }\n\n function call(event: RelayEvent) {\n listeners.forEach((listener) => {\n if (isMatchesType(listener, event.meta.type)) {\n try {\n listener.callback(event);\n } catch (e) {\n console.error(e);\n }\n }\n });\n }\n\n function removeMultiple(type: string) {\n if (type === ANY_EVENT_TYPE) {\n listeners.length = 0;\n } else {\n for (let i = listeners.length - 1; i >= 0; i--) {\n if (listeners[i].type === type) {\n listeners.splice(i, 1);\n }\n }\n }\n }\n\n function removeOne(listener: Listener) {\n const index = getListenerIndex(listener);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n }\n\n function remove(type: string, callback?: EventCallback) {\n !!callback ? removeOne({ type, callback }) : removeMultiple(type);\n }\n\n return {\n add,\n call,\n remove,\n };\n}\n","export type RelayMode = \"emit\" | \"disabled\";\n\n/**\n * The `RelayConfig` object defines the configuration options for initializing a Relay instance.\n */\nexport interface RelayConfig {\n /**\n * Endpoint defined to communicate with the Event API.\n */\n url: string;\n\n /**\n * Token to authorize the access to the Event API endpoint.\n */\n token: string;\n\n /**\n * The unique identifier of a web property. See [Tracking ID](https://docs.coveo.com/en/n8tg0567/).\n */\n trackingId: string;\n\n /**\n * Defines the library mode. The possible values are:\n * \"emit\": Sends analytics events to Coveo to be stored.\n * \"disabled\": Prevents the emission of events and does not trigger callbacks.\n * @default emit\n */\n mode?: RelayMode;\n\n /**\n * Optionally allows a Relay integration to specify the name(s) of software package(s) relay is\n * being called from. These names will be transmitted with each event, along with Relay's own\n * version. The recommendation is to specify them using a 'softwarename@softwareversion' string.\n */\n source?: string[];\n}\n\nexport interface ConfigManager {\n get: () => Readonly<RelayConfig>;\n update: (updatedConfig: Partial<RelayConfig>) => void;\n}\n\nfunction pick({\n url,\n token,\n trackingId,\n ...rest\n}: RelayConfig): Readonly<RelayConfig> {\n return Object.freeze({\n url,\n token,\n trackingId,\n ...(!!rest.mode && { mode: rest.mode }),\n ...(!!rest.source && { source: rest.source }),\n });\n}\n\nexport function createConfigManager(\n initialConfig: RelayConfig\n): Readonly<ConfigManager> {\n let _config: Readonly<RelayConfig> = pick(initialConfig);\n\n return {\n get: () => _config,\n update: (updatedConfig: Partial<RelayConfig>) => {\n _config = pick({ ..._config, ...updatedConfig });\n },\n };\n}\n","export interface CookieManager {\n getItem: (key: string) => string | null;\n removeItem: (key: string) => void;\n setItem: (key: string, data: string, expire: number) => void;\n}\n\nexport const cookieManager: CookieManager = createCookieManager();\n\nfunction createCookieManager(): CookieManager {\n const prefix = \"coveo_\";\n const getDomain = (host: string) => {\n const parts = host.split(\".\").slice(-2);\n return parts.length == 2 ? parts.join(\".\") : \"\";\n };\n\n return {\n getItem(key: string): string | null {\n const cookiePrefix = `${prefix}${key}=`;\n const cookieArray = document.cookie.split(\";\");\n for (const cookie of cookieArray) {\n const prettifyCookie = cookie.replace(/^\\s+/, \"\");\n if (prettifyCookie.lastIndexOf(cookiePrefix, 0) === 0) {\n return prettifyCookie.substring(\n cookiePrefix.length,\n prettifyCookie.length\n );\n }\n }\n return null;\n },\n setItem(key: string, data: string, expire: number): void {\n const domain = getDomain(window.location.hostname);\n const expireSection = `;expires=${new Date(\n new Date().getTime() + expire\n ).toUTCString()}`;\n const domainSection = domain ? `;domain=${domain}` : \"\";\n document.cookie = `${prefix}${key}=${data}${expireSection}${domainSection};path=/;SameSite=Lax`;\n },\n\n removeItem(key: string): void {\n this.setItem(key, \"\", -1);\n },\n };\n}\n","import { createExplorerMessenger } from \"@coveo/explorer-messenger\";\nimport { Environment } from \"../environment\";\nimport { createBrowserStorage } from \"./storage/storage\";\nimport { RelayEvent } from \"../../event/relay-event\";\n\nfunction getReferrer() {\n const referrer = document.referrer;\n\n return referrer === \"\" ? null : referrer;\n}\n\nexport function buildBrowserEnvironment(): Environment {\n return {\n runtime: \"browser\",\n send: async (url: string, token: string, event: RelayEvent) => {\n const response = navigator.sendBeacon(\n `${url}?access_token=${token}`,\n new Blob([JSON.stringify([event])], {\n type: \"application/json\",\n })\n );\n\n const messenger = createExplorerMessenger();\n messenger.sendMessage({ kind: \"EVENT_PROTOCOL\", event, url, token });\n\n if (!response) {\n throw new Error(\n `Failed to send the event(s) because the payload size exceeded the maximum allowed size (32 KB). Please contact support if the problem persists.`\n );\n }\n },\n getReferrer: () => getReferrer(),\n getLocation: () => window.location.href,\n getUserAgent: () => navigator.userAgent,\n generateUUID: () => crypto.randomUUID(),\n storage: createBrowserStorage(),\n };\n}\n","function createExplorerMessenger() {\n const isBrowser = typeof window !== \"undefined\";\n return {\n sendMessage(message) {\n isBrowser && window.postMessage(message, \"*\");\n }\n };\n}\nexport {\n createExplorerMessenger\n};\n","import { Storage } from \"../../storage\";\nimport { cookieManager } from \"./cookie\";\n\nexport function createBrowserStorage(): Storage {\n return {\n getItem(key: string): string | null {\n return cookieManager.getItem(key) || localStorage.getItem(key);\n },\n\n removeItem(key: string): void {\n cookieManager.removeItem(key);\n localStorage.removeItem(key);\n },\n\n setItem(key: string, data: string): void {\n const oneYear = 31556952000;\n localStorage.setItem(key, data);\n cookieManager.setItem(key, data, oneYear);\n },\n };\n}\n","import { ConfigManager } from \"../../config/config\";\nimport { buildBrowserEnvironment } from \"../browser/browser\";\nimport { Environment } from \"../environment\";\nimport { buildNullEnvironment } from \"../null/null\";\n\nexport interface EnvironmentManager {\n get: () => Readonly<Environment>;\n}\n\nfunction buildEnvironment(configManager: ConfigManager) {\n const active = configManager.get().mode !== \"disabled\";\n\n if (active && isBrowser()) {\n return buildBrowserEnvironment();\n }\n\n return buildNullEnvironment();\n}\n\nfunction isBrowser() {\n try {\n return typeof window === \"object\";\n } catch (e) {\n return false;\n }\n}\n\nexport function createEnvironmentManager(\n configManager: ConfigManager\n): Readonly<EnvironmentManager> {\n return {\n get: () => Object.freeze(buildEnvironment(configManager)),\n };\n}\n","import { Environment } from \"../environment\";\nimport { createNullStorage } from \"../storage\";\n\nexport function buildNullEnvironment(): Environment {\n return {\n runtime: \"null\",\n send: async () => undefined,\n getReferrer: () => null,\n getLocation: () => null,\n getUserAgent: () => null,\n generateUUID: () => \"\",\n storage: createNullStorage(),\n };\n}\n","export interface Storage {\n getItem: (key: string) => string | null;\n removeItem: (key: string) => void;\n setItem: (key: string, data: string) => void;\n}\n\nexport function createNullStorage(): Storage {\n return {\n getItem(): string | null {\n return null;\n },\n removeItem(): void {\n return;\n },\n setItem(): void {\n return;\n },\n };\n}\n","import { emit } from \"./emit/emit\";\nimport { createClientIdManager } from \"./client-id/client-id\";\nimport { createRelayEvent } from \"./event/relay-event\";\nimport { version } from \"./version\";\nimport { createMeta, Meta, EventConfig } from \"./event/meta/meta\";\nimport { createListenerManager, EventCallback } from \"./listener/listener\";\nimport { createConfigManager, RelayConfig } from \"./config/config\";\nimport { createEnvironmentManager } from \"./environment/manager/manager\";\n\ntype Off = () => void;\n\n/**\n * Relay instance.\n * This object provides a comprehensive set of variables and methods for interacting with the Event API.\n */\ninterface Relay {\n /**\n * Sends an event to the Event API.\n * @param {string} type - event's type to be emitted.\n * @param {Record<string,any>} payload - payload to include within the event.\n * @returns {Promise<void>}\n */\n emit: (type: string, payload: Record<string, any>) => Promise<void>;\n\n /**\n * Gets the client-side generated meta object.\n * @param {string} type - event's type that will be included in the meta object.\n * @returns {Meta}\n */\n getMeta: (type: string) => Meta;\n\n /**\n * Attaches an event callback to either all event types or a specific one.\n * The callback set will be called when an event with the specified type is emitted.\n * Setting type as \"*\" will trigger the callback for all event types.\n * Returns the \"off\" function to detach the event callback.\n * @param {string} type - event's type.\n * @param {EventCallback} callback\n * @returns {Off}\n */\n on: (type: string, callback: EventCallback) => Off;\n\n /**\n * Detach callback(s) from events.\n * If only the \"type\" parameter is set, all callbacks for the specified type will be removed.\n * @param {string} type - event's type.\n * @param {EventCallback} callback - callback that should be removed.\n * @returns {void}\n */\n off: (type: string, callback?: EventCallback) => void;\n\n /**\n * Updates Relay's configuration after its initialization.\n * @param {Partial<RelayConfig>} config - configuration that should be updated.\n * @returns {void}\n */\n updateConfig: (config: Partial<RelayConfig>) => void;\n\n /**\n * Current version of the Relay library.\n */\n version: string;\n\n /**\n * Removes the visitorId cookie and localStorage key.\n * @returns {void}\n */\n clearStorage: () => void;\n}\n\n/**\n * Initializes the Relay library object.\n * @param {RelayConfig} initialConfig\n * @returns {Relay}\n */\nexport function createRelay(initialConfig: RelayConfig): Relay {\n const configManager = createConfigManager(initialConfig);\n const listenerManager = createListenerManager();\n const environmentManager = createEnvironmentManager(configManager);\n const clientIdManager = createClientIdManager(environmentManager);\n\n return {\n emit: (type: string, payload: Record<string, any>) => {\n const config = configManager.get();\n const environment = environmentManager.get();\n\n const event = createRelayEvent(\n type,\n payload,\n config,\n environment,\n clientIdManager\n );\n\n return emit({\n config,\n environment,\n event,\n listenerManager,\n });\n },\n getMeta: (type: string) =>\n createMeta(\n type,\n configManager.get(),\n environmentManager.get(),\n clientIdManager\n ),\n on: (type: string, callback: EventCallback) =>\n listenerManager.add({ type, callback }),\n off: (type: string, callback?: EventCallback) =>\n listenerManager.remove(type, callback),\n updateConfig: (config: Partial<RelayConfig>) =>\n configManager.update(config),\n version,\n clearStorage: () => {\n clientIdManager.clear();\n },\n };\n}\n\nexport type { Relay, Meta, EventConfig, EventCallback, RelayConfig };\n","import { ClientIdManager } from \"../client-id/client-id\";\nimport { Environment } from \"../environment/environment\";\nimport { RelayPayload } from \"../internal-types\";\nimport { RelayConfig } from \"../relay\";\nimport { createMeta, Meta } from \"./meta/meta\";\n\nexport interface RelayEvent extends RelayPayload {\n meta: Readonly<Meta>;\n}\n\nexport function createRelayEvent(\n type: string,\n payload: RelayPayload,\n config: RelayConfig,\n environment: Environment,\n clientIdManager: ClientIdManager\n): Readonly<RelayEvent> {\n return {\n ...payload,\n meta: createMeta(type, config, environment, clientIdManager),\n };\n}\n","import { Environment } from \"../environment/environment\";\nimport { ListenerManager } from \"../listener/listener\";\nimport { RelayEvent } from \"../event/relay-event\";\nimport { RelayConfig } from \"../relay\";\n\nexport interface EmitParams {\n config: RelayConfig;\n environment: Environment;\n event: RelayEvent;\n listenerManager: ListenerManager;\n}\n\nexport async function emit({\n config,\n environment,\n event,\n listenerManager,\n}: EmitParams) {\n const { url, token, mode } = config;\n const isEnabled = mode !== \"disabled\";\n\n if (isEnabled) {\n listenerManager.call(event);\n environment.send(url, token, event);\n }\n}\n"],"names":["REGEX","createClientIdManager","environmentManager","key","getClientId","environment","get","storage","existingClientId","getItem","clientId","uuid","test","generateUUID","setItem","clear","removeItem","version","getSource","config","source","concat","createMeta","type","clientIdManager","getReferrer","getLocation","getUserAgent","eventConfig","trackingId","getEventConfig","Object","freeze","ts","Date","now","userAgent","referrer","location","ANY_EVENT_TYPE","createListenerManager","listeners","getListenerIndex","callback","findIndex","listener","remove","index","splice","removeOne","length","i","removeMultiple","add","push","call","event","forEach","isMatchesType","meta","e","console","error","pick","url","token","rest","mode","cookieManager","prefix","cookiePrefix","cookieArray","document","cookie","split","prettifyCookie","replace","lastIndexOf","substring","data","expire","domain","host","parts","slice","join","getDomain","window","hostname","expireSection","getTime","toUTCString","domainSection","this","createCookieManager","buildBrowserEnvironment","runtime","send","async","response","navigator","sendBeacon","Blob","JSON","stringify","messenger","isBrowser","sendMessage","message","postMessage","createExplorerMessenger","kind","Error","href","crypto","randomUUID","localStorage","buildEnvironment","configManager","createRelay","initialConfig","_config","update","updatedConfig","createConfigManager","listenerManager","createEnvironmentManager","emit","payload","createRelayEvent","getMeta","on","off","updateConfig","clearStorage"],"mappings":"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","x_google_ignoreList":[0,2,9]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../src/environment/browser/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../src/environment/browser/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAU7C,wBAAgB,uBAAuB,IAAI,WAAW,CA0BrD"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { RelayEvent } from "../event/relay-event";
|
|
2
2
|
import { Storage } from "./storage";
|
|
3
3
|
export interface Environment {
|
|
4
|
-
runtime: "browser" | "
|
|
5
|
-
fetch: (url: string, init?: RequestInit) => Promise<Response>;
|
|
4
|
+
runtime: "browser" | "null";
|
|
6
5
|
send: (url: string, token: string, event: RelayEvent) => Promise<void>;
|
|
7
6
|
getReferrer: () => string | null;
|
|
8
7
|
getLocation: () => string | null;
|
|
@@ -10,5 +9,4 @@ export interface Environment {
|
|
|
10
9
|
generateUUID: () => string;
|
|
11
10
|
storage: Storage;
|
|
12
11
|
}
|
|
13
|
-
export declare function currentEnvironment(): Environment;
|
|
14
12
|
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/environment/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/environment/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/environment/manager/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/environment/manager/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;CAClC;AAoBD,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,GAC3B,QAAQ,CAAC,kBAAkB,CAAC,CAI9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"null.d.ts","sourceRoot":"","sources":["../../../../src/environment/null/null.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,wBAAgB,oBAAoB,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"null.d.ts","sourceRoot":"","sources":["../../../../src/environment/null/null.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,wBAAgB,oBAAoB,IAAI,WAAW,CAUlD"}
|
package/lib/docs/relay-docs.json
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"fileName": "event/meta/meta.ts",
|
|
48
48
|
"line": 13,
|
|
49
49
|
"character": 2,
|
|
50
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
50
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L13"
|
|
51
51
|
}
|
|
52
52
|
],
|
|
53
53
|
"type": {
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"fileName": "event/meta/meta.ts",
|
|
70
70
|
"line": 9,
|
|
71
71
|
"character": 17,
|
|
72
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
72
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L9"
|
|
73
73
|
}
|
|
74
74
|
]
|
|
75
75
|
},
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"fileName": "event/meta/meta.ts",
|
|
116
116
|
"line": 43,
|
|
117
117
|
"character": 2,
|
|
118
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
118
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L43"
|
|
119
119
|
}
|
|
120
120
|
],
|
|
121
121
|
"type": {
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"fileName": "event/meta/meta.ts",
|
|
143
143
|
"line": 28,
|
|
144
144
|
"character": 2,
|
|
145
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
145
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L28"
|
|
146
146
|
}
|
|
147
147
|
],
|
|
148
148
|
"type": {
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
"fileName": "event/meta/meta.ts",
|
|
172
172
|
"line": 58,
|
|
173
173
|
"character": 2,
|
|
174
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
174
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L58"
|
|
175
175
|
}
|
|
176
176
|
],
|
|
177
177
|
"type": {
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
"fileName": "event/meta/meta.ts",
|
|
208
208
|
"line": 53,
|
|
209
209
|
"character": 2,
|
|
210
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
210
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L53"
|
|
211
211
|
}
|
|
212
212
|
],
|
|
213
213
|
"type": {
|
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
"fileName": "event/meta/meta.ts",
|
|
244
244
|
"line": 38,
|
|
245
245
|
"character": 2,
|
|
246
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
246
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L38"
|
|
247
247
|
}
|
|
248
248
|
],
|
|
249
249
|
"type": {
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
"fileName": "event/meta/meta.ts",
|
|
274
274
|
"line": 33,
|
|
275
275
|
"character": 2,
|
|
276
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
276
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L33"
|
|
277
277
|
}
|
|
278
278
|
],
|
|
279
279
|
"type": {
|
|
@@ -300,7 +300,7 @@
|
|
|
300
300
|
"fileName": "event/meta/meta.ts",
|
|
301
301
|
"line": 23,
|
|
302
302
|
"character": 2,
|
|
303
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
303
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L23"
|
|
304
304
|
}
|
|
305
305
|
],
|
|
306
306
|
"type": {
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
"fileName": "event/meta/meta.ts",
|
|
328
328
|
"line": 48,
|
|
329
329
|
"character": 2,
|
|
330
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
330
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L48"
|
|
331
331
|
}
|
|
332
332
|
],
|
|
333
333
|
"type": {
|
|
@@ -365,7 +365,7 @@
|
|
|
365
365
|
"fileName": "event/meta/meta.ts",
|
|
366
366
|
"line": 19,
|
|
367
367
|
"character": 17,
|
|
368
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
368
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/event/meta/meta.ts#L19"
|
|
369
369
|
}
|
|
370
370
|
]
|
|
371
371
|
},
|
|
@@ -395,7 +395,7 @@
|
|
|
395
395
|
"fileName": "relay.ts",
|
|
396
396
|
"line": 68,
|
|
397
397
|
"character": 2,
|
|
398
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
398
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L68"
|
|
399
399
|
}
|
|
400
400
|
],
|
|
401
401
|
"type": {
|
|
@@ -411,7 +411,7 @@
|
|
|
411
411
|
"fileName": "relay.ts",
|
|
412
412
|
"line": 68,
|
|
413
413
|
"character": 16,
|
|
414
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
414
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L68"
|
|
415
415
|
}
|
|
416
416
|
],
|
|
417
417
|
"signatures": [
|
|
@@ -440,7 +440,7 @@
|
|
|
440
440
|
"fileName": "relay.ts",
|
|
441
441
|
"line": 68,
|
|
442
442
|
"character": 16,
|
|
443
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
443
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L68"
|
|
444
444
|
}
|
|
445
445
|
],
|
|
446
446
|
"type": {
|
|
@@ -463,7 +463,7 @@
|
|
|
463
463
|
"fileName": "relay.ts",
|
|
464
464
|
"line": 23,
|
|
465
465
|
"character": 2,
|
|
466
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
466
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L23"
|
|
467
467
|
}
|
|
468
468
|
],
|
|
469
469
|
"type": {
|
|
@@ -479,7 +479,7 @@
|
|
|
479
479
|
"fileName": "relay.ts",
|
|
480
480
|
"line": 23,
|
|
481
481
|
"character": 8,
|
|
482
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
482
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L23"
|
|
483
483
|
}
|
|
484
484
|
],
|
|
485
485
|
"signatures": [
|
|
@@ -508,7 +508,7 @@
|
|
|
508
508
|
"fileName": "relay.ts",
|
|
509
509
|
"line": 23,
|
|
510
510
|
"character": 8,
|
|
511
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
511
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L23"
|
|
512
512
|
}
|
|
513
513
|
],
|
|
514
514
|
"parameters": [
|
|
@@ -597,7 +597,7 @@
|
|
|
597
597
|
"fileName": "relay.ts",
|
|
598
598
|
"line": 30,
|
|
599
599
|
"character": 2,
|
|
600
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
600
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L30"
|
|
601
601
|
}
|
|
602
602
|
],
|
|
603
603
|
"type": {
|
|
@@ -613,7 +613,7 @@
|
|
|
613
613
|
"fileName": "relay.ts",
|
|
614
614
|
"line": 30,
|
|
615
615
|
"character": 11,
|
|
616
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
616
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L30"
|
|
617
617
|
}
|
|
618
618
|
],
|
|
619
619
|
"signatures": [
|
|
@@ -642,7 +642,7 @@
|
|
|
642
642
|
"fileName": "relay.ts",
|
|
643
643
|
"line": 30,
|
|
644
644
|
"character": 11,
|
|
645
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
645
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L30"
|
|
646
646
|
}
|
|
647
647
|
],
|
|
648
648
|
"parameters": [
|
|
@@ -688,7 +688,7 @@
|
|
|
688
688
|
"fileName": "relay.ts",
|
|
689
689
|
"line": 50,
|
|
690
690
|
"character": 2,
|
|
691
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
691
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L50"
|
|
692
692
|
}
|
|
693
693
|
],
|
|
694
694
|
"type": {
|
|
@@ -704,7 +704,7 @@
|
|
|
704
704
|
"fileName": "relay.ts",
|
|
705
705
|
"line": 50,
|
|
706
706
|
"character": 7,
|
|
707
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
707
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L50"
|
|
708
708
|
}
|
|
709
709
|
],
|
|
710
710
|
"signatures": [
|
|
@@ -733,7 +733,7 @@
|
|
|
733
733
|
"fileName": "relay.ts",
|
|
734
734
|
"line": 50,
|
|
735
735
|
"character": 7,
|
|
736
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
736
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L50"
|
|
737
737
|
}
|
|
738
738
|
],
|
|
739
739
|
"parameters": [
|
|
@@ -800,7 +800,7 @@
|
|
|
800
800
|
"fileName": "relay.ts",
|
|
801
801
|
"line": 41,
|
|
802
802
|
"character": 2,
|
|
803
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
803
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L41"
|
|
804
804
|
}
|
|
805
805
|
],
|
|
806
806
|
"type": {
|
|
@@ -816,7 +816,7 @@
|
|
|
816
816
|
"fileName": "relay.ts",
|
|
817
817
|
"line": 41,
|
|
818
818
|
"character": 6,
|
|
819
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
819
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L41"
|
|
820
820
|
}
|
|
821
821
|
],
|
|
822
822
|
"signatures": [
|
|
@@ -845,7 +845,7 @@
|
|
|
845
845
|
"fileName": "relay.ts",
|
|
846
846
|
"line": 41,
|
|
847
847
|
"character": 6,
|
|
848
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
848
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L41"
|
|
849
849
|
}
|
|
850
850
|
],
|
|
851
851
|
"parameters": [
|
|
@@ -907,7 +907,7 @@
|
|
|
907
907
|
"fileName": "relay.ts",
|
|
908
908
|
"line": 57,
|
|
909
909
|
"character": 2,
|
|
910
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
910
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L57"
|
|
911
911
|
}
|
|
912
912
|
],
|
|
913
913
|
"type": {
|
|
@@ -923,7 +923,7 @@
|
|
|
923
923
|
"fileName": "relay.ts",
|
|
924
924
|
"line": 57,
|
|
925
925
|
"character": 16,
|
|
926
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
926
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L57"
|
|
927
927
|
}
|
|
928
928
|
],
|
|
929
929
|
"signatures": [
|
|
@@ -952,7 +952,7 @@
|
|
|
952
952
|
"fileName": "relay.ts",
|
|
953
953
|
"line": 57,
|
|
954
954
|
"character": 16,
|
|
955
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
955
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L57"
|
|
956
956
|
}
|
|
957
957
|
],
|
|
958
958
|
"parameters": [
|
|
@@ -1017,7 +1017,7 @@
|
|
|
1017
1017
|
"fileName": "relay.ts",
|
|
1018
1018
|
"line": 62,
|
|
1019
1019
|
"character": 2,
|
|
1020
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1020
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L62"
|
|
1021
1021
|
}
|
|
1022
1022
|
],
|
|
1023
1023
|
"type": {
|
|
@@ -1045,7 +1045,7 @@
|
|
|
1045
1045
|
"fileName": "relay.ts",
|
|
1046
1046
|
"line": 16,
|
|
1047
1047
|
"character": 10,
|
|
1048
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1048
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L16"
|
|
1049
1049
|
}
|
|
1050
1050
|
]
|
|
1051
1051
|
},
|
|
@@ -1104,7 +1104,7 @@
|
|
|
1104
1104
|
"fileName": "config/config.ts",
|
|
1105
1105
|
"line": 28,
|
|
1106
1106
|
"character": 2,
|
|
1107
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1107
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/config/config.ts#L28"
|
|
1108
1108
|
}
|
|
1109
1109
|
],
|
|
1110
1110
|
"type": {
|
|
@@ -1138,7 +1138,7 @@
|
|
|
1138
1138
|
"fileName": "config/config.ts",
|
|
1139
1139
|
"line": 35,
|
|
1140
1140
|
"character": 2,
|
|
1141
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1141
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/config/config.ts#L35"
|
|
1142
1142
|
}
|
|
1143
1143
|
],
|
|
1144
1144
|
"type": {
|
|
@@ -1168,7 +1168,7 @@
|
|
|
1168
1168
|
"fileName": "config/config.ts",
|
|
1169
1169
|
"line": 15,
|
|
1170
1170
|
"character": 2,
|
|
1171
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1171
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/config/config.ts#L15"
|
|
1172
1172
|
}
|
|
1173
1173
|
],
|
|
1174
1174
|
"type": {
|
|
@@ -1195,7 +1195,7 @@
|
|
|
1195
1195
|
"fileName": "config/config.ts",
|
|
1196
1196
|
"line": 20,
|
|
1197
1197
|
"character": 2,
|
|
1198
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1198
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/config/config.ts#L20"
|
|
1199
1199
|
}
|
|
1200
1200
|
],
|
|
1201
1201
|
"type": {
|
|
@@ -1222,7 +1222,7 @@
|
|
|
1222
1222
|
"fileName": "config/config.ts",
|
|
1223
1223
|
"line": 10,
|
|
1224
1224
|
"character": 2,
|
|
1225
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1225
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/config/config.ts#L10"
|
|
1226
1226
|
}
|
|
1227
1227
|
],
|
|
1228
1228
|
"type": {
|
|
@@ -1248,7 +1248,7 @@
|
|
|
1248
1248
|
"fileName": "config/config.ts",
|
|
1249
1249
|
"line": 6,
|
|
1250
1250
|
"character": 17,
|
|
1251
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1251
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/config/config.ts#L6"
|
|
1252
1252
|
}
|
|
1253
1253
|
]
|
|
1254
1254
|
},
|
|
@@ -1263,7 +1263,7 @@
|
|
|
1263
1263
|
"fileName": "listener/listener.ts",
|
|
1264
1264
|
"line": 11,
|
|
1265
1265
|
"character": 12,
|
|
1266
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1266
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/listener/listener.ts#L11"
|
|
1267
1267
|
}
|
|
1268
1268
|
],
|
|
1269
1269
|
"type": {
|
|
@@ -1279,7 +1279,7 @@
|
|
|
1279
1279
|
"fileName": "listener/listener.ts",
|
|
1280
1280
|
"line": 11,
|
|
1281
1281
|
"character": 28,
|
|
1282
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1282
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/listener/listener.ts#L11"
|
|
1283
1283
|
}
|
|
1284
1284
|
],
|
|
1285
1285
|
"signatures": [
|
|
@@ -1341,7 +1341,7 @@
|
|
|
1341
1341
|
"fileName": "relay.ts",
|
|
1342
1342
|
"line": 76,
|
|
1343
1343
|
"character": 16,
|
|
1344
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1344
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L76"
|
|
1345
1345
|
}
|
|
1346
1346
|
],
|
|
1347
1347
|
"signatures": [
|
|
@@ -1370,7 +1370,7 @@
|
|
|
1370
1370
|
"fileName": "relay.ts",
|
|
1371
1371
|
"line": 76,
|
|
1372
1372
|
"character": 16,
|
|
1373
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1373
|
+
"url": "https://github.com/coveo/relay/blob/dcc7cc1/packages/relay/src/relay.ts#L76"
|
|
1374
1374
|
}
|
|
1375
1375
|
],
|
|
1376
1376
|
"parameters": [
|
|
@@ -1422,7 +1422,7 @@
|
|
|
1422
1422
|
}
|
|
1423
1423
|
],
|
|
1424
1424
|
"packageName": "@coveo/relay",
|
|
1425
|
-
"packageVersion": "0.6.
|
|
1425
|
+
"packageVersion": "0.6.12",
|
|
1426
1426
|
"readme": [
|
|
1427
1427
|
{
|
|
1428
1428
|
"kind": "text",
|
package/lib/relay.cjs
CHANGED
|
@@ -34,7 +34,7 @@ function createClientIdManager(environmentManager) {
|
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
const version = "0.6.
|
|
37
|
+
const version = "0.6.12";
|
|
38
38
|
|
|
39
39
|
function getEventConfig(config) {
|
|
40
40
|
const { trackingId } = config;
|
|
@@ -197,12 +197,6 @@ function createBrowserStorage() {
|
|
|
197
197
|
};
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
async function fetchAPI(url, init) {
|
|
201
|
-
return fetch(url, init).catch((err) => {
|
|
202
|
-
throw new Error(`${err.message}: The "host" value is invalid or a network error occured, according to the FetchAPI's response.`, { cause: err });
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
|
|
206
200
|
function getReferrer() {
|
|
207
201
|
const referrer = document.referrer;
|
|
208
202
|
return referrer === "" ? null : referrer;
|
|
@@ -210,7 +204,6 @@ function getReferrer() {
|
|
|
210
204
|
function buildBrowserEnvironment() {
|
|
211
205
|
return {
|
|
212
206
|
runtime: "browser",
|
|
213
|
-
fetch: (url, init) => fetchAPI(url, init),
|
|
214
207
|
send: async (url, token, event) => {
|
|
215
208
|
const response = navigator.sendBeacon(`${url}?access_token=${token}`, new Blob([JSON.stringify([event])], {
|
|
216
209
|
type: "application/json",
|
|
@@ -243,31 +236,24 @@ function createNullStorage() {
|
|
|
243
236
|
};
|
|
244
237
|
}
|
|
245
238
|
|
|
246
|
-
function
|
|
239
|
+
function buildNullEnvironment() {
|
|
247
240
|
return {
|
|
248
|
-
runtime: "
|
|
249
|
-
|
|
250
|
-
send: async (url, token, event) => {
|
|
251
|
-
const headers = {
|
|
252
|
-
"Content-Type": "application/json",
|
|
253
|
-
Authorization: `Bearer ${token}`,
|
|
254
|
-
};
|
|
255
|
-
fetchAPI(url, {
|
|
256
|
-
method: "POST",
|
|
257
|
-
body: JSON.stringify([event]),
|
|
258
|
-
headers,
|
|
259
|
-
});
|
|
260
|
-
},
|
|
241
|
+
runtime: "null",
|
|
242
|
+
send: async () => undefined,
|
|
261
243
|
getReferrer: () => null,
|
|
262
244
|
getLocation: () => null,
|
|
263
245
|
getUserAgent: () => null,
|
|
264
|
-
generateUUID: () =>
|
|
246
|
+
generateUUID: () => "",
|
|
265
247
|
storage: createNullStorage(),
|
|
266
248
|
};
|
|
267
249
|
}
|
|
268
250
|
|
|
269
|
-
function
|
|
270
|
-
|
|
251
|
+
function buildEnvironment(configManager) {
|
|
252
|
+
const active = configManager.get().mode !== "disabled";
|
|
253
|
+
if (active && isBrowser()) {
|
|
254
|
+
return buildBrowserEnvironment();
|
|
255
|
+
}
|
|
256
|
+
return buildNullEnvironment();
|
|
271
257
|
}
|
|
272
258
|
function isBrowser() {
|
|
273
259
|
try {
|
|
@@ -277,25 +263,6 @@ function isBrowser() {
|
|
|
277
263
|
return false;
|
|
278
264
|
}
|
|
279
265
|
}
|
|
280
|
-
|
|
281
|
-
function buildNullEnvironment() {
|
|
282
|
-
return {
|
|
283
|
-
runtime: "null",
|
|
284
|
-
fetch: () => Promise.resolve(new Response(JSON.stringify(""))),
|
|
285
|
-
send: async () => undefined,
|
|
286
|
-
getReferrer: () => null,
|
|
287
|
-
getLocation: () => null,
|
|
288
|
-
getUserAgent: () => null,
|
|
289
|
-
generateUUID: () => "",
|
|
290
|
-
storage: createNullStorage(),
|
|
291
|
-
};
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
function buildEnvironment(configManager) {
|
|
295
|
-
return configManager.get().mode == "disabled"
|
|
296
|
-
? buildNullEnvironment()
|
|
297
|
-
: currentEnvironment();
|
|
298
|
-
}
|
|
299
266
|
function createEnvironmentManager(configManager) {
|
|
300
267
|
return {
|
|
301
268
|
get: () => Object.freeze(buildEnvironment(configManager)),
|
package/lib/relay.js
CHANGED
|
@@ -32,7 +32,7 @@ function createClientIdManager(environmentManager) {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
const version = "0.6.
|
|
35
|
+
const version = "0.6.12";
|
|
36
36
|
|
|
37
37
|
function getEventConfig(config) {
|
|
38
38
|
const { trackingId } = config;
|
|
@@ -195,12 +195,6 @@ function createBrowserStorage() {
|
|
|
195
195
|
};
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
async function fetchAPI(url, init) {
|
|
199
|
-
return fetch(url, init).catch((err) => {
|
|
200
|
-
throw new Error(`${err.message}: The "host" value is invalid or a network error occured, according to the FetchAPI's response.`, { cause: err });
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
|
|
204
198
|
function getReferrer() {
|
|
205
199
|
const referrer = document.referrer;
|
|
206
200
|
return referrer === "" ? null : referrer;
|
|
@@ -208,7 +202,6 @@ function getReferrer() {
|
|
|
208
202
|
function buildBrowserEnvironment() {
|
|
209
203
|
return {
|
|
210
204
|
runtime: "browser",
|
|
211
|
-
fetch: (url, init) => fetchAPI(url, init),
|
|
212
205
|
send: async (url, token, event) => {
|
|
213
206
|
const response = navigator.sendBeacon(`${url}?access_token=${token}`, new Blob([JSON.stringify([event])], {
|
|
214
207
|
type: "application/json",
|
|
@@ -241,31 +234,24 @@ function createNullStorage() {
|
|
|
241
234
|
};
|
|
242
235
|
}
|
|
243
236
|
|
|
244
|
-
function
|
|
237
|
+
function buildNullEnvironment() {
|
|
245
238
|
return {
|
|
246
|
-
runtime: "
|
|
247
|
-
|
|
248
|
-
send: async (url, token, event) => {
|
|
249
|
-
const headers = {
|
|
250
|
-
"Content-Type": "application/json",
|
|
251
|
-
Authorization: `Bearer ${token}`,
|
|
252
|
-
};
|
|
253
|
-
fetchAPI(url, {
|
|
254
|
-
method: "POST",
|
|
255
|
-
body: JSON.stringify([event]),
|
|
256
|
-
headers,
|
|
257
|
-
});
|
|
258
|
-
},
|
|
239
|
+
runtime: "null",
|
|
240
|
+
send: async () => undefined,
|
|
259
241
|
getReferrer: () => null,
|
|
260
242
|
getLocation: () => null,
|
|
261
243
|
getUserAgent: () => null,
|
|
262
|
-
generateUUID: () =>
|
|
244
|
+
generateUUID: () => "",
|
|
263
245
|
storage: createNullStorage(),
|
|
264
246
|
};
|
|
265
247
|
}
|
|
266
248
|
|
|
267
|
-
function
|
|
268
|
-
|
|
249
|
+
function buildEnvironment(configManager) {
|
|
250
|
+
const active = configManager.get().mode !== "disabled";
|
|
251
|
+
if (active && isBrowser()) {
|
|
252
|
+
return buildBrowserEnvironment();
|
|
253
|
+
}
|
|
254
|
+
return buildNullEnvironment();
|
|
269
255
|
}
|
|
270
256
|
function isBrowser() {
|
|
271
257
|
try {
|
|
@@ -275,25 +261,6 @@ function isBrowser() {
|
|
|
275
261
|
return false;
|
|
276
262
|
}
|
|
277
263
|
}
|
|
278
|
-
|
|
279
|
-
function buildNullEnvironment() {
|
|
280
|
-
return {
|
|
281
|
-
runtime: "null",
|
|
282
|
-
fetch: () => Promise.resolve(new Response(JSON.stringify(""))),
|
|
283
|
-
send: async () => undefined,
|
|
284
|
-
getReferrer: () => null,
|
|
285
|
-
getLocation: () => null,
|
|
286
|
-
getUserAgent: () => null,
|
|
287
|
-
generateUUID: () => "",
|
|
288
|
-
storage: createNullStorage(),
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
function buildEnvironment(configManager) {
|
|
293
|
-
return configManager.get().mode == "disabled"
|
|
294
|
-
? buildNullEnvironment()
|
|
295
|
-
: currentEnvironment();
|
|
296
|
-
}
|
|
297
264
|
function createEnvironmentManager(configManager) {
|
|
298
265
|
return {
|
|
299
266
|
get: () => Object.freeze(buildEnvironment(configManager)),
|
package/lib/relay.mjs
CHANGED
|
@@ -32,7 +32,7 @@ function createClientIdManager(environmentManager) {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
const version = "0.6.
|
|
35
|
+
const version = "0.6.12";
|
|
36
36
|
|
|
37
37
|
function getEventConfig(config) {
|
|
38
38
|
const { trackingId } = config;
|
|
@@ -195,12 +195,6 @@ function createBrowserStorage() {
|
|
|
195
195
|
};
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
async function fetchAPI(url, init) {
|
|
199
|
-
return fetch(url, init).catch((err) => {
|
|
200
|
-
throw new Error(`${err.message}: The "host" value is invalid or a network error occured, according to the FetchAPI's response.`, { cause: err });
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
|
|
204
198
|
function getReferrer() {
|
|
205
199
|
const referrer = document.referrer;
|
|
206
200
|
return referrer === "" ? null : referrer;
|
|
@@ -208,7 +202,6 @@ function getReferrer() {
|
|
|
208
202
|
function buildBrowserEnvironment() {
|
|
209
203
|
return {
|
|
210
204
|
runtime: "browser",
|
|
211
|
-
fetch: (url, init) => fetchAPI(url, init),
|
|
212
205
|
send: async (url, token, event) => {
|
|
213
206
|
const response = navigator.sendBeacon(`${url}?access_token=${token}`, new Blob([JSON.stringify([event])], {
|
|
214
207
|
type: "application/json",
|
|
@@ -241,31 +234,24 @@ function createNullStorage() {
|
|
|
241
234
|
};
|
|
242
235
|
}
|
|
243
236
|
|
|
244
|
-
function
|
|
237
|
+
function buildNullEnvironment() {
|
|
245
238
|
return {
|
|
246
|
-
runtime: "
|
|
247
|
-
|
|
248
|
-
send: async (url, token, event) => {
|
|
249
|
-
const headers = {
|
|
250
|
-
"Content-Type": "application/json",
|
|
251
|
-
Authorization: `Bearer ${token}`,
|
|
252
|
-
};
|
|
253
|
-
fetchAPI(url, {
|
|
254
|
-
method: "POST",
|
|
255
|
-
body: JSON.stringify([event]),
|
|
256
|
-
headers,
|
|
257
|
-
});
|
|
258
|
-
},
|
|
239
|
+
runtime: "null",
|
|
240
|
+
send: async () => undefined,
|
|
259
241
|
getReferrer: () => null,
|
|
260
242
|
getLocation: () => null,
|
|
261
243
|
getUserAgent: () => null,
|
|
262
|
-
generateUUID: () =>
|
|
244
|
+
generateUUID: () => "",
|
|
263
245
|
storage: createNullStorage(),
|
|
264
246
|
};
|
|
265
247
|
}
|
|
266
248
|
|
|
267
|
-
function
|
|
268
|
-
|
|
249
|
+
function buildEnvironment(configManager) {
|
|
250
|
+
const active = configManager.get().mode !== "disabled";
|
|
251
|
+
if (active && isBrowser()) {
|
|
252
|
+
return buildBrowserEnvironment();
|
|
253
|
+
}
|
|
254
|
+
return buildNullEnvironment();
|
|
269
255
|
}
|
|
270
256
|
function isBrowser() {
|
|
271
257
|
try {
|
|
@@ -275,25 +261,6 @@ function isBrowser() {
|
|
|
275
261
|
return false;
|
|
276
262
|
}
|
|
277
263
|
}
|
|
278
|
-
|
|
279
|
-
function buildNullEnvironment() {
|
|
280
|
-
return {
|
|
281
|
-
runtime: "null",
|
|
282
|
-
fetch: () => Promise.resolve(new Response(JSON.stringify(""))),
|
|
283
|
-
send: async () => undefined,
|
|
284
|
-
getReferrer: () => null,
|
|
285
|
-
getLocation: () => null,
|
|
286
|
-
getUserAgent: () => null,
|
|
287
|
-
generateUUID: () => "",
|
|
288
|
-
storage: createNullStorage(),
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
function buildEnvironment(configManager) {
|
|
293
|
-
return configManager.get().mode == "disabled"
|
|
294
|
-
? buildNullEnvironment()
|
|
295
|
-
: currentEnvironment();
|
|
296
|
-
}
|
|
297
264
|
function createEnvironmentManager(configManager) {
|
|
298
265
|
return {
|
|
299
266
|
get: () => Object.freeze(buildEnvironment(configManager)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../src/environment/browser/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../src/environment/browser/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAU7C,wBAAgB,uBAAuB,IAAI,WAAW,CA0BrD"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { RelayEvent } from "../event/relay-event";
|
|
2
2
|
import { Storage } from "./storage";
|
|
3
3
|
export interface Environment {
|
|
4
|
-
runtime: "browser" | "
|
|
5
|
-
fetch: (url: string, init?: RequestInit) => Promise<Response>;
|
|
4
|
+
runtime: "browser" | "null";
|
|
6
5
|
send: (url: string, token: string, event: RelayEvent) => Promise<void>;
|
|
7
6
|
getReferrer: () => string | null;
|
|
8
7
|
getLocation: () => string | null;
|
|
@@ -10,5 +9,4 @@ export interface Environment {
|
|
|
10
9
|
generateUUID: () => string;
|
|
11
10
|
storage: Storage;
|
|
12
11
|
}
|
|
13
|
-
export declare function currentEnvironment(): Environment;
|
|
14
12
|
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/environment/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/environment/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/environment/manager/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/environment/manager/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;CAClC;AAoBD,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,GAC3B,QAAQ,CAAC,kBAAkB,CAAC,CAI9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"null.d.ts","sourceRoot":"","sources":["../../../../src/environment/null/null.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,wBAAgB,oBAAoB,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"null.d.ts","sourceRoot":"","sources":["../../../../src/environment/null/null.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,wBAAgB,oBAAoB,IAAI,WAAW,CAUlD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coveo/relay",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.12",
|
|
4
4
|
"description": "A library for sending analytics events using Coveo's Event protocol.",
|
|
5
5
|
"files": [
|
|
6
6
|
"lib/**/*"
|
|
@@ -60,9 +60,6 @@
|
|
|
60
60
|
"@coveo/explorer-messenger": "^0.1.1",
|
|
61
61
|
"uuid": "^9.0.1"
|
|
62
62
|
},
|
|
63
|
-
"engines": {
|
|
64
|
-
"node": "^18.12.0 || ^20.0.0"
|
|
65
|
-
},
|
|
66
63
|
"scripts": {
|
|
67
64
|
"build": "npm run clean && rollup --config ./config/rollup.config.mjs && npm run typedoc",
|
|
68
65
|
"clean": "rimraf -rf ./lib",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/environment/node/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,wBAAgB,oBAAoB,IAAI,WAAW,CAqBlD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../src/environment/utils/fetch.ts"],"names":[],"mappings":"AAAA,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAOnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/environment/node/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,wBAAgB,oBAAoB,IAAI,WAAW,CAqBlD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../src/environment/utils/fetch.ts"],"names":[],"mappings":"AAAA,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAOnB"}
|