@coveo/relay 0.8.13 → 1.0.0
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/docs/relay-docs.json +44 -44
- package/lib/relay.cjs +6 -3
- package/lib/relay.js +6 -3
- package/lib/relay.mjs +6 -3
- package/package.json +3 -3
package/lib/cdn/relay.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;const t=[];for(let e=0;e<256;++e)t.push((e+256).toString(16).slice(1));let n;const o=new Uint8Array(16);function r(){if(!n){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");n=crypto.getRandomValues.bind(crypto)}return n(o)}
|
|
1
|
+
var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;const t=[];for(let e=0;e<256;++e)t.push((e+256).toString(16).slice(1));let n;const o=new Uint8Array(16);var r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function c(e,c,a){if(r.randomUUID&&!e)return r.randomUUID();const i=(e=e||{}).random??e.rng?.()??function(){if(!n){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");n=crypto.getRandomValues.bind(crypto)}return n(o)}();if(i.length<16)throw new Error("Random bytes length must be >= 16");return i[6]=15&i[6]|64,i[8]=63&i[8]|128,function(e,n=0){return(t[e[n+0]]+t[e[n+1]]+t[e[n+2]]+t[e[n+3]]+"-"+t[e[n+4]]+t[e[n+5]]+"-"+t[e[n+6]]+t[e[n+7]]+"-"+t[e[n+8]]+t[e[n+9]]+"-"+t[e[n+10]]+t[e[n+11]]+t[e[n+12]]+t[e[n+13]]+t[e[n+14]]+t[e[n+15]]).toLowerCase()}(i)}function a(t){return{getClientId:()=>{const n="visitorId",o=t.get(),r=o.storage,c=r.getItem(n),a=c&&("string"==typeof(i=c)&&e.test(i))?c:o.generateUUID();var i;return r.setItem(n,a),a}}}const i="1.0.0";function s(e){return(e.source||[]).concat([`relay@${i}`])}function u(e,t,n,o){const{getReferrer:r,getLocation:c,getUserAgent:a}=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:s(t),clientId:u,userAgent:a(),referrer:r(),location:c()})}function f(){const e=[];function t({type:t,callback:n}){return e.findIndex((e=>e.type===t&&e.callback===n))}function n(n,o){o?function(n){const o=t(n);o>=0&&e.splice(o,1)}({type:n,callback:o}):function(t){if("*"===t)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(o){return t(o)<0&&e.push(o),()=>n(o.type,o.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 l({url:e,token:t,trackingId:n,...o}){return Object.freeze({url:e,token:t,trackingId:n,...!!o.mode&&{mode:o.mode},...!!o.source&&{source:o.source}})}const g=function(){const e="coveo_";return{getItem(t){const n=`${e}${t}=`,o=document.cookie.split(";");for(const e of o){const t=e.replace(/^\s+/,"");if(0===t.lastIndexOf(n,0))return t.substring(n.length,t.length)}return null},setItem(t,n,o){const r=(e=>{const t=e.split(".").slice(-2);return 2==t.length?t.join("."):""})(window.location.hostname),c=`;expires=${new Date((new Date).getTime()+o).toUTCString()}`,a=r?`;domain=${r}`:"";document.cookie=`${e}${t}=${n}${c}${a};path=/;SameSite=Lax`},removeItem(e){this.setItem(e,"",-1)}}}();function d(){return{runtime:"browser",send:(e,t,n)=>{const o=navigator.sendBeacon(`${e}?access_token=${t}`,new Blob([JSON.stringify([n])],{type:"application/json"})),r=function(){const e="undefined"!=typeof window;return{sendMessage(t){e&&window.postMessage(t,"*")}}}();if(r.sendMessage({kind:"EVENT_PROTOCOL",event:n,url:e,token:t}),!o)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:()=>c(),storage:{getItem:e=>g.getItem(e)||localStorage.getItem(e),removeItem(e){g.removeItem(e),localStorage.removeItem(e)},setItem(e,t){localStorage.setItem(e,t),g.setItem(e,t,31556952e3)}}}}function m(e){return"disabled"!==e.get().mode&&function(){try{return"object"==typeof window}catch{return!1}}()&&function(){try{const e="__storage_test__";return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return e instanceof DOMException&&"QuotaExceededError"===e.name&&localStorage&&0!==localStorage.length}}()?d():{runtime:"null",send:()=>{},getReferrer:()=>null,getLocation:()=>null,getUserAgent:()=>null,generateUUID:()=>"",storage:{getItem:()=>null,removeItem(){},setItem(){}}}}function p(e){const t=function(e){let t=l(e);return{get:()=>t,update:e=>{t=l({...t,...e})}}}(e),n=f(),o=function(e){return{get:()=>Object.freeze(m(e))}}(t),r=a(o);return{emit:(e,c)=>{const a=t.get(),i=o.get(),s=function(e,t,n,o,r){return{...t,meta:u(e,n,o,r)}}(e,c,a,i,r);return function({config:e,environment:t,event:n,listenerManager:o}){const{url:r,token:c,mode:a}=e;"disabled"!==a&&(o.call(n),t.send(r,c,n))}({config:a,environment:i,event:s,listenerManager:n})},getMeta:e=>u(e,t.get(),o.get(),r),on:(e,t)=>n.add({type:e,callback:t}),off:(e,t)=>n.remove(e,t),updateConfig:e=>t.update(e),version:i}}export{p 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@11.0.3/node_modules/uuid/dist/esm-browser/regex.js","../../../../node_modules/.pnpm/uuid@11.0.3/node_modules/uuid/dist/esm-browser/stringify.js","../../../../node_modules/.pnpm/uuid@11.0.3/node_modules/uuid/dist/esm-browser/rng.js","../../../../node_modules/.pnpm/uuid@11.0.3/node_modules/uuid/dist/esm-browser/native.js","../../../../node_modules/.pnpm/uuid@11.0.3/node_modules/uuid/dist/esm-browser/v4.js","../../../src/client-id/client-id.ts","../../../../node_modules/.pnpm/uuid@11.0.3/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.4.0/node_modules/@coveo/explorer-messenger/dist/messenger.js","../../../src/environment/browser/storage/storage.ts","../../../src/environment/manager/manager.ts","../../../src/environment/browser/storage/availability.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-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)();\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","import { validate } from \"uuid\";\nimport { EnvironmentManager } from \"../environment/manager/manager\";\n\nexport interface ClientIdManager {\n getClientId: () => string;\n}\n\nexport function createClientIdManager(\n environmentManager: EnvironmentManager,\n): ClientIdManager {\n return {\n getClientId: () => {\n const key = \"visitorId\";\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 };\n}\n","import REGEX from './regex.js';\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\nexport default validate;\n","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 [What's a 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 * This object is auto-populated by Relay.\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<Meta>({\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 - the Relay event payload that triggered the callback.\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 if (callback) {\n removeOne({ type, callback });\n } else {\n removeMultiple(type);\n }\n }\n\n return {\n add,\n call,\n remove,\n };\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 [What's a tracking ID?](https://docs.coveo.com/en/n8tg0567/).\n */\n trackingId: string;\n\n /**\n * Defines the library mode. The available modes are `emit` and `disabled`.\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?: \"emit\" | \"disabled\";\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\";\nimport { v4 as uuidv4 } from \"uuid\";\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: (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: () => uuidv4(),\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 { localStorageAvailable } from \"../browser/storage/availability\";\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() && localStorageAvailable()) {\n return buildBrowserEnvironment();\n }\n\n return buildNullEnvironment();\n}\n\nfunction isBrowser() {\n try {\n return typeof window === \"object\";\n } catch {\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","// From: https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API#feature-detecting_localstorage\nexport function localStorageAvailable() {\n try {\n const x = \"__storage_test__\";\n localStorage.setItem(x, x);\n localStorage.removeItem(x);\n return true;\n } catch (e) {\n return (\n e instanceof DOMException &&\n e.name === \"QuotaExceededError\" &&\n // acknowledge QuotaExceededError only if there's something already stored\n localStorage &&\n localStorage.length !== 0\n );\n }\n}\n","import { Environment } from \"../environment\";\nimport { createNullStorage } from \"../storage\";\n\nexport function buildNullEnvironment(): Environment {\n return {\n runtime: \"null\",\n send: () => 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, RelayEvent } 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\";\nimport { RelayPayload } from \"./relay-payload\";\n\n/**\n * Function that detaches an event callback.\n * @typedef {function} Off\n * @returns {void}\n */\nexport type 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 {void}\n */\n emit: (type: string, payload: Record<string, any>) => 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 * It’s not possible to modify the payload of the event sent to Coveo using this listener.\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 - callback that should be called when the event is emitted.\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/**\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 };\n}\n\nexport type {\n Relay,\n Meta,\n EventConfig,\n EventCallback,\n RelayConfig,\n RelayPayload,\n RelayEvent,\n};\n","import { ClientIdManager } from \"../client-id/client-id\";\nimport { Environment } from \"../environment/environment\";\nimport { RelayPayload } from \"../relay-payload\";\nimport { RelayConfig } from \"../relay\";\nimport { createMeta, Meta } from \"./meta/meta\";\n\n/**\n * Defines the structure of a RelayEvent, extending the RelayPayload.\n */\nexport interface RelayEvent extends RelayPayload {\n /**\n * Read-only `meta` property of Meta type.\n */\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 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","byteToHex","i","push","toString","slice","getRandomValues","rnds8","Uint8Array","rng","crypto","Error","bind","native","randomUUID","v4","options","buf","offset","rnds","random","arr","toLowerCase","unsafeStringify","createClientIdManager","environmentManager","getClientId","key","environment","get","storage","existingClientId","getItem","clientId","uuid","test","generateUUID","setItem","version","getSource","config","source","concat","createMeta","type","clientIdManager","getReferrer","getLocation","getUserAgent","eventConfig","trackingId","getEventConfig","Object","freeze","ts","Date","now","userAgent","referrer","location","createListenerManager","listeners","getListenerIndex","callback","findIndex","listener","remove","index","splice","removeOne","length","removeMultiple","add","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","join","getDomain","window","hostname","expireSection","getTime","toUTCString","domainSection","removeItem","this","createCookieManager","buildBrowserEnvironment","runtime","send","response","navigator","sendBeacon","Blob","JSON","stringify","messenger","isBrowser","sendMessage","message","postMessage","createExplorerMessenger","kind","href","uuidv4","localStorage","buildEnvironment","configManager","x","DOMException","name","localStorageAvailable","createRelay","initialConfig","_config","update","updatedConfig","createConfigManager","listenerManager","createEnvironmentManager","emit","payload","createRelayEvent","getMeta","on","off","updateConfig"],"mappings":"AAAA,IAAAA,EAAe,2JCCf,MAAMC,EAAY,GAClB,IAAK,IAAIC,EAAI,EAAGA,EAAI,MAAOA,EACvBD,EAAUE,MAAMD,EAAI,KAAOE,SAAS,IAAIC,MAAM,ICHlD,IAAIC,EACJ,MAAMC,EAAQ,IAAIC,WAAW,IACd,SAASC,IACpB,IAAKH,EAAiB,CAClB,GAAsB,oBAAXI,SAA2BA,OAAOJ,gBACzC,MAAM,IAAIK,MAAM,4GAEpBL,EAAkBI,OAAOJ,gBAAgBM,KAAKF,OACtD,CACI,OAAOJ,EAAgBC,EAC3B,CCTA,IAAeM,EAAA,CAAEC,WADoB,oBAAXJ,QAA0BA,OAAOI,YAAcJ,OAAOI,WAAWF,KAAKF,SCGhG,SAASK,EAAGC,EAASC,EAAKC,GACtB,GAAIL,EAAOC,aAAeG,IAAQD,EAC9B,OAAOH,EAAOC,aAGlB,MAAMK,GADNH,EAAUA,GAAW,CAAE,GACFI,SAAWJ,EAAQP,KAAOA,KAU/C,OATAU,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IHL1B,SAAyBE,EAAKH,EAAS,GAC1C,OAAQjB,EAAUoB,EAAIH,EAAS,IAC3BjB,EAAUoB,EAAIH,EAAS,IACvBjB,EAAUoB,EAAIH,EAAS,IACvBjB,EAAUoB,EAAIH,EAAS,IACvB,IACAjB,EAAUoB,EAAIH,EAAS,IACvBjB,EAAUoB,EAAIH,EAAS,IACvB,IACAjB,EAAUoB,EAAIH,EAAS,IACvBjB,EAAUoB,EAAIH,EAAS,IACvB,IACAjB,EAAUoB,EAAIH,EAAS,IACvBjB,EAAUoB,EAAIH,EAAS,IACvB,IACAjB,EAAUoB,EAAIH,EAAS,KACvBjB,EAAUoB,EAAIH,EAAS,KACvBjB,EAAUoB,EAAIH,EAAS,KACvBjB,EAAUoB,EAAIH,EAAS,KACvBjB,EAAUoB,EAAIH,EAAS,KACvBjB,EAAUoB,EAAIH,EAAS,MAAMI,aACrC,CGRWC,CAAgBJ,EAC3B,CCZM,SAAUK,EACdC,GAEA,MAAO,CACLC,YAAa,KACX,MAAMC,EAAM,YACNC,EAAcH,EAAmBI,MACjCC,EAAUF,EAAYE,QAEtBC,EAAmBD,EAAQE,QAAQL,GACnCM,EACJF,IChBmB,iBADTG,EDiBmBH,IChBE/B,EAAMmC,KAAKD,IDiBtCH,EACAH,EAAYQ,eCnBxB,IAAkBF,EDqBZ,OADAJ,EAAQO,QAAQV,EAAKM,GACdA,CAAQ,EAGrB,CEzBO,MAAMK,EAAU,SCkEvB,SAASC,EAAUC,GACjB,OAAQA,EAAOC,QAAU,IAAIC,OAAO,CAAC,SAASJ,KAChD,CAEM,SAAUK,EACdC,EACAJ,EACAZ,EACAiB,GAEA,MAAMC,YAAEA,EAAWC,YAAEA,EAAWC,aAAEA,GAAiBpB,EAC7CqB,EAhBR,SAAwBT,GACtB,MAAMU,WAAEA,GAAeV,EACvB,MAAO,CAAEU,aACX,CAasBC,CAAeX,GAC7BP,EAAWY,EAAgBnB,cAEjC,OAAO0B,OAAOC,OAAa,CACzBT,OACAJ,OAAQS,EACRK,GAAIC,KAAKC,MACTf,OAAQF,EAAUC,GAClBP,WACAwB,UAAWT,IACXU,SAAUZ,IACVa,SAAUZ,KAEd,UCnEgBa,IACd,MAAMC,EAAwB,GAE9B,SAASC,GAAiBlB,KAAEA,EAAImB,SAAEA,IAChC,OAAOF,EAAUG,WACdC,GAAaA,EAASrB,OAASA,GAAQqB,EAASF,WAAaA,IA8ClE,SAASG,EAAOtB,EAAcmB,GACxBA,EARN,SAAmBE,GACjB,MAAME,EAAQL,EAAiBG,GAC3BE,GAAS,GACXN,EAAUO,OAAOD,EAAO,GAMxBE,CAAU,CAAEzB,OAAMmB,aArBtB,SAAwBnB,GACtB,GAtDmB,MAsDfA,EACFiB,EAAUS,OAAS,OAEnB,IAAK,IAAIpE,EAAI2D,EAAUS,OAAS,EAAGpE,GAAK,EAAGA,IACrC2D,EAAU3D,GAAG0C,OAASA,GACxBiB,EAAUO,OAAOlE,EAAG,GAiBxBqE,CAAe3B,GAInB,MAAO,CACL4B,IA/CF,SAAaP,GAIX,OAHIH,EAAiBG,GAAY,GAC/BJ,EAAU1D,KAAK8D,GAEV,IAAMC,EAAOD,EAASrB,KAAMqB,EAASF,WA4C5CU,KAzCF,SAAcC,GACZb,EAAUc,SAASV,IACjB,GAbJ,SAAuBA,EAAoBrB,GACzC,MAAyB,MAAlBqB,EAASrB,MAAgBA,IAASqB,EAASrB,KAY5CgC,CAAcX,EAAUS,EAAMG,KAAKjC,MACrC,IACEqB,EAASF,SAASW,GAClB,MAAOI,GACPC,QAAQC,MAAMF,QAoCpBZ,SAEJ,CC/CA,SAASe,GAAKC,IACZA,EAAGC,MACHA,EAAKjC,WACLA,KACGkC,IAEH,OAAOhC,OAAOC,OAAO,CACnB6B,MACAC,QACAjC,kBACMkC,EAAKC,MAAQ,CAAEA,KAAMD,EAAKC,WAC1BD,EAAK3C,QAAU,CAAEA,OAAQ2C,EAAK3C,SAExC,CC/CO,MAAM6C,EAEb,WACE,MAAMC,EAAS,SAMf,MAAO,CACL,OAAAvD,CAAQL,GACN,MAAM6D,EAAe,GAAGD,IAAS5D,KAC3B8D,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,EAAalB,OACbuB,EAAevB,QAIrB,OAAO,IACR,EACD,OAAAjC,CAAQV,EAAasE,EAAcC,GACjC,MAAMC,EArBQ,CAACC,IACjB,MAAMC,EAAQD,EAAKR,MAAM,KAAKvF,OAAO,GACrC,OAAuB,GAAhBgG,EAAM/B,OAAc+B,EAAMC,KAAK,KAAO,EAAE,EAmB9BC,CAAUC,OAAO7C,SAAS8C,UACnCC,EAAgB,YAAY,IAAInD,MACpC,IAAIA,MAAOoD,UAAYT,GACvBU,gBACIC,EAAgBV,EAAS,WAAWA,IAAW,GACrDT,SAASC,OAAS,GAAGJ,IAAS5D,KAAOsE,IAAOS,IAAgBG,uBAC7D,EAED,UAAAC,CAAWnF,GACToF,KAAK1E,QAAQV,EAAK,IAAK,EACxB,EAEL,CArC4CqF,YCM5BC,IACd,MAAO,CACLC,QAAS,UACTC,KAAM,CAACjC,EAAaC,EAAeT,KACjC,MAAM0C,EAAWC,UAAUC,WACzB,GAAGpC,kBAAoBC,IACvB,IAAIoC,KAAK,CAACC,KAAKC,UAAU,CAAC/C,KAAU,CAClC9B,KAAM,sBAIJ8E,ECvBZ,WACE,MAAMC,EAA8B,oBAAXnB,OACzB,MAAO,CACL,WAAAoB,CAAYC,GACVF,GAAanB,OAAOsB,YAAYD,EAAS,IAC/C,EAEA,CDgBwBE,GAGlB,GAFAL,EAAUE,YAAY,CAAEI,KAAM,iBAAkBtD,QAAOQ,MAAKC,WAEvDiC,EACH,MAAM,IAAIzG,MACR,oJAINmC,YAAa,IA1BjB,WACE,MAAMY,EAAWgC,SAAShC,SAE1B,MAAoB,KAAbA,EAAkB,KAAOA,CAClC,CAsBuBZ,GACnBC,YAAa,IAAMyD,OAAO7C,SAASsE,KACnCjF,aAAc,IAAMqE,UAAU5D,UAC9BrB,aAAc,IAAM8F,IACpBpG,QEhCK,CACLE,QAAQL,GACC2D,EAActD,QAAQL,IAAQwG,aAAanG,QAAQL,GAG5D,UAAAmF,CAAWnF,GACT2D,EAAcwB,WAAWnF,GACzBwG,aAAarB,WAAWnF,EACzB,EAED,OAAAU,CAAQV,EAAasE,GAEnBkC,aAAa9F,QAAQV,EAAKsE,GAC1BX,EAAcjD,QAAQV,EAAKsE,EAFX,WAGjB,GFoBL,CG5BA,SAASmC,EAAiBC,GAGxB,MAF4C,aAA7BA,EAAcxG,MAAMwD,MASrC,WACE,IACE,MAAyB,iBAAXmB,OACd,MACA,OAAO,EAEX,CAbgBmB,eCXd,IACE,MAAMW,EAAI,mBAGV,OAFAH,aAAa9F,QAAQiG,EAAGA,GACxBH,aAAarB,WAAWwB,IACjB,EACP,MAAOxD,GACP,OACEA,aAAayD,cACF,uBAAXzD,EAAE0D,MAEFL,cACwB,IAAxBA,aAAa7D,OAGnB,CDH+BmE,GACpBxB,IEVF,CACLC,QAAS,OACTC,KAAM,KAAe,EACrBrE,YAAa,IAAM,KACnBC,YAAa,IAAM,KACnBC,aAAc,IAAM,KACpBZ,aAAc,IAAM,GACpBN,QCJK,CACLE,QAAO,IACE,KAET,UAAA8E,GAEC,EACD,OAAAzE,GAEC,GHEL,CI0DM,SAAUqG,EAAYC,GAC1B,MAAMN,ETtBF,SACJM,GAEA,IAAIC,EAAiC3D,EAAK0D,GAE1C,MAAO,CACL9G,IAAK,IAAM+G,EACXC,OAASC,IACPF,EAAU3D,EAAK,IAAK2D,KAAYE,GAAgB,EAGtD,CSWwBC,CAAoBJ,GACpCK,EAAkBpF,IAClBnC,EJnDF,SACJ4G,GAEA,MAAO,CACLxG,IAAK,IAAMuB,OAAOC,OAAO+E,EAAiBC,IAE9C,CI6C6BY,CAAyBZ,GAC9CxF,EAAkBrB,EAAsBC,GAE9C,MAAO,CACLyH,KAAM,CAACtG,EAAcuG,KACnB,MAAM3G,EAAS6F,EAAcxG,MACvBD,EAAcH,EAAmBI,MAEjC6C,ECvEN,SACJ9B,EACAuG,EACA3G,EACAZ,EACAiB,GAEA,MAAO,IACFsG,EACHtE,KAAMlC,EAAWC,EAAMJ,EAAQZ,EAAaiB,GAEhD,CD4DoBuG,CACZxG,EACAuG,EACA3G,EACAZ,EACAiB,GAGF,OEnFA,UAAeL,OACnBA,EAAMZ,YACNA,EAAW8C,MACXA,EAAKsE,gBACLA,IAEA,MAAM9D,IAAEA,EAAGC,MAAEA,EAAKE,KAAEA,GAAS7C,EACF,aAAT6C,IAGhB2D,EAAgBvE,KAAKC,GACrB9C,EAAYuF,KAAKjC,EAAKC,EAAOT,GAEjC,CFsEawE,CAAK,CACV1G,SACAZ,cACA8C,QACAsE,mBACA,EAEJK,QAAUzG,GACRD,EACEC,EACAyF,EAAcxG,MACdJ,EAAmBI,MACnBgB,GAEJyG,GAAI,CAAC1G,EAAcmB,IACjBiF,EAAgBxE,IAAI,CAAE5B,OAAMmB,aAC9BwF,IAAK,CAAC3G,EAAcmB,IAClBiF,EAAgB9E,OAAOtB,EAAMmB,GAC/ByF,aAAehH,GACb6F,EAAcQ,OAAOrG,GACvBF,UAEJ","x_google_ignoreList":[0,1,2,3,4,6,13]}
|
|
1
|
+
{"version":3,"file":"relay.min.js","sources":["../../../../node_modules/.pnpm/uuid@11.0.4/node_modules/uuid/dist/esm-browser/regex.js","../../../../node_modules/.pnpm/uuid@11.0.4/node_modules/uuid/dist/esm-browser/stringify.js","../../../../node_modules/.pnpm/uuid@11.0.4/node_modules/uuid/dist/esm-browser/rng.js","../../../../node_modules/.pnpm/uuid@11.0.4/node_modules/uuid/dist/esm-browser/native.js","../../../../node_modules/.pnpm/uuid@11.0.4/node_modules/uuid/dist/esm-browser/v4.js","../../../src/client-id/client-id.ts","../../../../node_modules/.pnpm/uuid@11.0.4/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.4.0/node_modules/@coveo/explorer-messenger/dist/messenger.js","../../../src/environment/browser/storage/storage.ts","../../../src/environment/manager/manager.ts","../../../src/environment/browser/storage/availability.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-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","import { validate } from \"uuid\";\nimport { EnvironmentManager } from \"../environment/manager/manager\";\n\nexport interface ClientIdManager {\n getClientId: () => string;\n}\n\nexport function createClientIdManager(\n environmentManager: EnvironmentManager,\n): ClientIdManager {\n return {\n getClientId: () => {\n const key = \"visitorId\";\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 };\n}\n","import REGEX from './regex.js';\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\nexport default validate;\n","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 [What's a 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 * This object is auto-populated by Relay.\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<Meta>({\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 - the Relay event payload that triggered the callback.\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 if (callback) {\n removeOne({ type, callback });\n } else {\n removeMultiple(type);\n }\n }\n\n return {\n add,\n call,\n remove,\n };\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 [What's a tracking ID?](https://docs.coveo.com/en/n8tg0567/).\n */\n trackingId: string;\n\n /**\n * Defines the library mode. The available modes are `emit` and `disabled`.\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?: \"emit\" | \"disabled\";\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\";\nimport { v4 as uuidv4 } from \"uuid\";\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: (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: () => uuidv4(),\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 { localStorageAvailable } from \"../browser/storage/availability\";\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() && localStorageAvailable()) {\n return buildBrowserEnvironment();\n }\n\n return buildNullEnvironment();\n}\n\nfunction isBrowser() {\n try {\n return typeof window === \"object\";\n } catch {\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","// From: https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API#feature-detecting_localstorage\nexport function localStorageAvailable() {\n try {\n const x = \"__storage_test__\";\n localStorage.setItem(x, x);\n localStorage.removeItem(x);\n return true;\n } catch (e) {\n return (\n e instanceof DOMException &&\n e.name === \"QuotaExceededError\" &&\n // acknowledge QuotaExceededError only if there's something already stored\n localStorage &&\n localStorage.length !== 0\n );\n }\n}\n","import { Environment } from \"../environment\";\nimport { createNullStorage } from \"../storage\";\n\nexport function buildNullEnvironment(): Environment {\n return {\n runtime: \"null\",\n send: () => 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, RelayEvent } 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\";\nimport { RelayPayload } from \"./relay-payload\";\n\n/**\n * Function that detaches an event callback.\n * @typedef {function} Off\n * @returns {void}\n */\nexport type 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 {void}\n */\n emit: (type: string, payload: Record<string, any>) => 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 * It’s not possible to modify the payload of the event sent to Coveo using this listener.\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 - callback that should be called when the event is emitted.\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/**\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 };\n}\n\nexport type {\n Relay,\n Meta,\n EventConfig,\n EventCallback,\n RelayConfig,\n RelayPayload,\n RelayEvent,\n};\n","import { ClientIdManager } from \"../client-id/client-id\";\nimport { Environment } from \"../environment/environment\";\nimport { RelayPayload } from \"../relay-payload\";\nimport { RelayConfig } from \"../relay\";\nimport { createMeta, Meta } from \"./meta/meta\";\n\n/**\n * Defines the structure of a RelayEvent, extending the RelayPayload.\n */\nexport interface RelayEvent extends RelayPayload {\n /**\n * Read-only `meta` property of Meta type.\n */\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 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","byteToHex","i","push","toString","slice","getRandomValues","rnds8","Uint8Array","native","randomUUID","crypto","bind","v4","options","buf","offset","rnds","random","rng","Error","length","arr","toLowerCase","unsafeStringify","createClientIdManager","environmentManager","getClientId","key","environment","get","storage","existingClientId","getItem","clientId","uuid","test","generateUUID","setItem","version","getSource","config","source","concat","createMeta","type","clientIdManager","getReferrer","getLocation","getUserAgent","eventConfig","trackingId","getEventConfig","Object","freeze","ts","Date","now","userAgent","referrer","location","createListenerManager","listeners","getListenerIndex","callback","findIndex","listener","remove","index","splice","removeOne","removeMultiple","add","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","join","getDomain","window","hostname","expireSection","getTime","toUTCString","domainSection","removeItem","this","createCookieManager","buildBrowserEnvironment","runtime","send","response","navigator","sendBeacon","Blob","JSON","stringify","messenger","isBrowser","sendMessage","message","postMessage","createExplorerMessenger","kind","href","uuidv4","localStorage","buildEnvironment","configManager","x","DOMException","name","localStorageAvailable","createRelay","initialConfig","_config","update","updatedConfig","createConfigManager","listenerManager","createEnvironmentManager","emit","payload","createRelayEvent","getMeta","on","off","updateConfig"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,6,13]}
|
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-platform/relay/blob/
|
|
50
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/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-platform/relay/blob/
|
|
72
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/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": 44,
|
|
117
117
|
"character": 2,
|
|
118
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
118
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/meta/meta.ts#L44"
|
|
119
119
|
}
|
|
120
120
|
],
|
|
121
121
|
"type": {
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"fileName": "event/meta/meta.ts",
|
|
143
143
|
"line": 29,
|
|
144
144
|
"character": 2,
|
|
145
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
145
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/meta/meta.ts#L29"
|
|
146
146
|
}
|
|
147
147
|
],
|
|
148
148
|
"type": {
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
"fileName": "event/meta/meta.ts",
|
|
172
172
|
"line": 59,
|
|
173
173
|
"character": 2,
|
|
174
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
174
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/meta/meta.ts#L59"
|
|
175
175
|
}
|
|
176
176
|
],
|
|
177
177
|
"type": {
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
"fileName": "event/meta/meta.ts",
|
|
208
208
|
"line": 54,
|
|
209
209
|
"character": 2,
|
|
210
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
210
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/meta/meta.ts#L54"
|
|
211
211
|
}
|
|
212
212
|
],
|
|
213
213
|
"type": {
|
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
"fileName": "event/meta/meta.ts",
|
|
244
244
|
"line": 39,
|
|
245
245
|
"character": 2,
|
|
246
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
246
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/meta/meta.ts#L39"
|
|
247
247
|
}
|
|
248
248
|
],
|
|
249
249
|
"type": {
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
"fileName": "event/meta/meta.ts",
|
|
274
274
|
"line": 34,
|
|
275
275
|
"character": 2,
|
|
276
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
276
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/meta/meta.ts#L34"
|
|
277
277
|
}
|
|
278
278
|
],
|
|
279
279
|
"type": {
|
|
@@ -300,7 +300,7 @@
|
|
|
300
300
|
"fileName": "event/meta/meta.ts",
|
|
301
301
|
"line": 24,
|
|
302
302
|
"character": 2,
|
|
303
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
303
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/meta/meta.ts#L24"
|
|
304
304
|
}
|
|
305
305
|
],
|
|
306
306
|
"type": {
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
"fileName": "event/meta/meta.ts",
|
|
328
328
|
"line": 49,
|
|
329
329
|
"character": 2,
|
|
330
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
330
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/meta/meta.ts#L49"
|
|
331
331
|
}
|
|
332
332
|
],
|
|
333
333
|
"type": {
|
|
@@ -365,7 +365,7 @@
|
|
|
365
365
|
"fileName": "event/meta/meta.ts",
|
|
366
366
|
"line": 20,
|
|
367
367
|
"character": 17,
|
|
368
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
368
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/meta/meta.ts#L20"
|
|
369
369
|
}
|
|
370
370
|
]
|
|
371
371
|
},
|
|
@@ -403,7 +403,7 @@
|
|
|
403
403
|
"fileName": "relay.ts",
|
|
404
404
|
"line": 29,
|
|
405
405
|
"character": 2,
|
|
406
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
406
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L29"
|
|
407
407
|
}
|
|
408
408
|
],
|
|
409
409
|
"type": {
|
|
@@ -419,7 +419,7 @@
|
|
|
419
419
|
"fileName": "relay.ts",
|
|
420
420
|
"line": 29,
|
|
421
421
|
"character": 8,
|
|
422
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
422
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L29"
|
|
423
423
|
}
|
|
424
424
|
],
|
|
425
425
|
"signatures": [
|
|
@@ -443,7 +443,7 @@
|
|
|
443
443
|
"fileName": "relay.ts",
|
|
444
444
|
"line": 29,
|
|
445
445
|
"character": 8,
|
|
446
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
446
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L29"
|
|
447
447
|
}
|
|
448
448
|
],
|
|
449
449
|
"parameters": [
|
|
@@ -529,7 +529,7 @@
|
|
|
529
529
|
"fileName": "relay.ts",
|
|
530
530
|
"line": 36,
|
|
531
531
|
"character": 2,
|
|
532
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
532
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L36"
|
|
533
533
|
}
|
|
534
534
|
],
|
|
535
535
|
"type": {
|
|
@@ -545,7 +545,7 @@
|
|
|
545
545
|
"fileName": "relay.ts",
|
|
546
546
|
"line": 36,
|
|
547
547
|
"character": 11,
|
|
548
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
548
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L36"
|
|
549
549
|
}
|
|
550
550
|
],
|
|
551
551
|
"signatures": [
|
|
@@ -569,7 +569,7 @@
|
|
|
569
569
|
"fileName": "relay.ts",
|
|
570
570
|
"line": 36,
|
|
571
571
|
"character": 11,
|
|
572
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
572
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L36"
|
|
573
573
|
}
|
|
574
574
|
],
|
|
575
575
|
"parameters": [
|
|
@@ -623,7 +623,7 @@
|
|
|
623
623
|
"fileName": "relay.ts",
|
|
624
624
|
"line": 57,
|
|
625
625
|
"character": 2,
|
|
626
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
626
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L57"
|
|
627
627
|
}
|
|
628
628
|
],
|
|
629
629
|
"type": {
|
|
@@ -639,7 +639,7 @@
|
|
|
639
639
|
"fileName": "relay.ts",
|
|
640
640
|
"line": 57,
|
|
641
641
|
"character": 7,
|
|
642
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
642
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L57"
|
|
643
643
|
}
|
|
644
644
|
],
|
|
645
645
|
"signatures": [
|
|
@@ -663,7 +663,7 @@
|
|
|
663
663
|
"fileName": "relay.ts",
|
|
664
664
|
"line": 57,
|
|
665
665
|
"character": 7,
|
|
666
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
666
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L57"
|
|
667
667
|
}
|
|
668
668
|
],
|
|
669
669
|
"parameters": [
|
|
@@ -738,7 +738,7 @@
|
|
|
738
738
|
"fileName": "relay.ts",
|
|
739
739
|
"line": 48,
|
|
740
740
|
"character": 2,
|
|
741
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
741
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L48"
|
|
742
742
|
}
|
|
743
743
|
],
|
|
744
744
|
"type": {
|
|
@@ -754,7 +754,7 @@
|
|
|
754
754
|
"fileName": "relay.ts",
|
|
755
755
|
"line": 48,
|
|
756
756
|
"character": 6,
|
|
757
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
757
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L48"
|
|
758
758
|
}
|
|
759
759
|
],
|
|
760
760
|
"signatures": [
|
|
@@ -778,7 +778,7 @@
|
|
|
778
778
|
"fileName": "relay.ts",
|
|
779
779
|
"line": 48,
|
|
780
780
|
"character": 6,
|
|
781
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
781
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L48"
|
|
782
782
|
}
|
|
783
783
|
],
|
|
784
784
|
"parameters": [
|
|
@@ -853,7 +853,7 @@
|
|
|
853
853
|
"fileName": "relay.ts",
|
|
854
854
|
"line": 64,
|
|
855
855
|
"character": 2,
|
|
856
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
856
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L64"
|
|
857
857
|
}
|
|
858
858
|
],
|
|
859
859
|
"type": {
|
|
@@ -869,7 +869,7 @@
|
|
|
869
869
|
"fileName": "relay.ts",
|
|
870
870
|
"line": 64,
|
|
871
871
|
"character": 16,
|
|
872
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
872
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L64"
|
|
873
873
|
}
|
|
874
874
|
],
|
|
875
875
|
"signatures": [
|
|
@@ -893,7 +893,7 @@
|
|
|
893
893
|
"fileName": "relay.ts",
|
|
894
894
|
"line": 64,
|
|
895
895
|
"character": 16,
|
|
896
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
896
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L64"
|
|
897
897
|
}
|
|
898
898
|
],
|
|
899
899
|
"parameters": [
|
|
@@ -958,7 +958,7 @@
|
|
|
958
958
|
"fileName": "relay.ts",
|
|
959
959
|
"line": 69,
|
|
960
960
|
"character": 2,
|
|
961
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
961
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L69"
|
|
962
962
|
}
|
|
963
963
|
],
|
|
964
964
|
"type": {
|
|
@@ -985,7 +985,7 @@
|
|
|
985
985
|
"fileName": "relay.ts",
|
|
986
986
|
"line": 22,
|
|
987
987
|
"character": 10,
|
|
988
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
988
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L22"
|
|
989
989
|
}
|
|
990
990
|
]
|
|
991
991
|
},
|
|
@@ -1076,7 +1076,7 @@
|
|
|
1076
1076
|
"fileName": "config/config.ts",
|
|
1077
1077
|
"line": 26,
|
|
1078
1078
|
"character": 2,
|
|
1079
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1079
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/config/config.ts#L26"
|
|
1080
1080
|
}
|
|
1081
1081
|
],
|
|
1082
1082
|
"type": {
|
|
@@ -1114,7 +1114,7 @@
|
|
|
1114
1114
|
"fileName": "config/config.ts",
|
|
1115
1115
|
"line": 33,
|
|
1116
1116
|
"character": 2,
|
|
1117
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1117
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/config/config.ts#L33"
|
|
1118
1118
|
}
|
|
1119
1119
|
],
|
|
1120
1120
|
"type": {
|
|
@@ -1144,7 +1144,7 @@
|
|
|
1144
1144
|
"fileName": "config/config.ts",
|
|
1145
1145
|
"line": 13,
|
|
1146
1146
|
"character": 2,
|
|
1147
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1147
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/config/config.ts#L13"
|
|
1148
1148
|
}
|
|
1149
1149
|
],
|
|
1150
1150
|
"type": {
|
|
@@ -1171,7 +1171,7 @@
|
|
|
1171
1171
|
"fileName": "config/config.ts",
|
|
1172
1172
|
"line": 18,
|
|
1173
1173
|
"character": 2,
|
|
1174
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1174
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/config/config.ts#L18"
|
|
1175
1175
|
}
|
|
1176
1176
|
],
|
|
1177
1177
|
"type": {
|
|
@@ -1198,7 +1198,7 @@
|
|
|
1198
1198
|
"fileName": "config/config.ts",
|
|
1199
1199
|
"line": 8,
|
|
1200
1200
|
"character": 2,
|
|
1201
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1201
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/config/config.ts#L8"
|
|
1202
1202
|
}
|
|
1203
1203
|
],
|
|
1204
1204
|
"type": {
|
|
@@ -1224,7 +1224,7 @@
|
|
|
1224
1224
|
"fileName": "config/config.ts",
|
|
1225
1225
|
"line": 4,
|
|
1226
1226
|
"character": 17,
|
|
1227
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1227
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/config/config.ts#L4"
|
|
1228
1228
|
}
|
|
1229
1229
|
]
|
|
1230
1230
|
},
|
|
@@ -1270,7 +1270,7 @@
|
|
|
1270
1270
|
"fileName": "event/relay-event.ts",
|
|
1271
1271
|
"line": 14,
|
|
1272
1272
|
"character": 2,
|
|
1273
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1273
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/relay-event.ts#L14"
|
|
1274
1274
|
}
|
|
1275
1275
|
],
|
|
1276
1276
|
"type": {
|
|
@@ -1305,7 +1305,7 @@
|
|
|
1305
1305
|
"fileName": "event/relay-event.ts",
|
|
1306
1306
|
"line": 10,
|
|
1307
1307
|
"character": 17,
|
|
1308
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1308
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/event/relay-event.ts#L10"
|
|
1309
1309
|
}
|
|
1310
1310
|
],
|
|
1311
1311
|
"extendedTypes": [
|
|
@@ -1336,7 +1336,7 @@
|
|
|
1336
1336
|
"fileName": "listener/listener.ts",
|
|
1337
1337
|
"line": 11,
|
|
1338
1338
|
"character": 12,
|
|
1339
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1339
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/listener/listener.ts#L11"
|
|
1340
1340
|
}
|
|
1341
1341
|
],
|
|
1342
1342
|
"type": {
|
|
@@ -1352,7 +1352,7 @@
|
|
|
1352
1352
|
"fileName": "listener/listener.ts",
|
|
1353
1353
|
"line": 11,
|
|
1354
1354
|
"character": 28,
|
|
1355
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1355
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/listener/listener.ts#L11"
|
|
1356
1356
|
}
|
|
1357
1357
|
],
|
|
1358
1358
|
"signatures": [
|
|
@@ -1422,7 +1422,7 @@
|
|
|
1422
1422
|
"fileName": "relay.ts",
|
|
1423
1423
|
"line": 16,
|
|
1424
1424
|
"character": 12,
|
|
1425
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1425
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L16"
|
|
1426
1426
|
}
|
|
1427
1427
|
],
|
|
1428
1428
|
"type": {
|
|
@@ -1438,7 +1438,7 @@
|
|
|
1438
1438
|
"fileName": "relay.ts",
|
|
1439
1439
|
"line": 16,
|
|
1440
1440
|
"character": 18,
|
|
1441
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1441
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L16"
|
|
1442
1442
|
}
|
|
1443
1443
|
],
|
|
1444
1444
|
"signatures": [
|
|
@@ -1485,7 +1485,7 @@
|
|
|
1485
1485
|
"fileName": "relay-payload.ts",
|
|
1486
1486
|
"line": 5,
|
|
1487
1487
|
"character": 12,
|
|
1488
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1488
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay-payload.ts#L5"
|
|
1489
1489
|
}
|
|
1490
1490
|
],
|
|
1491
1491
|
"type": {
|
|
@@ -1526,7 +1526,7 @@
|
|
|
1526
1526
|
"fileName": "relay.ts",
|
|
1527
1527
|
"line": 77,
|
|
1528
1528
|
"character": 16,
|
|
1529
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1529
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L77"
|
|
1530
1530
|
}
|
|
1531
1531
|
],
|
|
1532
1532
|
"signatures": [
|
|
@@ -1555,7 +1555,7 @@
|
|
|
1555
1555
|
"fileName": "relay.ts",
|
|
1556
1556
|
"line": 77,
|
|
1557
1557
|
"character": 16,
|
|
1558
|
-
"url": "https://github.com/coveo-platform/relay/blob/
|
|
1558
|
+
"url": "https://github.com/coveo-platform/relay/blob/bcd1b028a071583b747ff4919f61570855068484/packages/relay/src/relay.ts#L77"
|
|
1559
1559
|
}
|
|
1560
1560
|
],
|
|
1561
1561
|
"parameters": [
|
|
@@ -1610,7 +1610,7 @@
|
|
|
1610
1610
|
}
|
|
1611
1611
|
],
|
|
1612
1612
|
"packageName": "@coveo/relay",
|
|
1613
|
-
"packageVersion": "0.
|
|
1613
|
+
"packageVersion": "1.0.0",
|
|
1614
1614
|
"readme": [
|
|
1615
1615
|
{
|
|
1616
1616
|
"kind": "text",
|
package/lib/relay.cjs
CHANGED
|
@@ -57,11 +57,14 @@ function rng() {
|
|
|
57
57
|
var native = { randomUUID: crypto.randomUUID };
|
|
58
58
|
|
|
59
59
|
function v4(options, buf, offset) {
|
|
60
|
-
if (native.randomUUID &&
|
|
60
|
+
if (native.randomUUID && true && !options) {
|
|
61
61
|
return native.randomUUID();
|
|
62
62
|
}
|
|
63
63
|
options = options || {};
|
|
64
|
-
const rnds = options.random
|
|
64
|
+
const rnds = options.random ?? options.rng?.() ?? rng();
|
|
65
|
+
if (rnds.length < 16) {
|
|
66
|
+
throw new Error('Random bytes length must be >= 16');
|
|
67
|
+
}
|
|
65
68
|
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
|
66
69
|
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
|
67
70
|
return unsafeStringify(rnds);
|
|
@@ -83,7 +86,7 @@ function createClientIdManager(environmentManager) {
|
|
|
83
86
|
};
|
|
84
87
|
}
|
|
85
88
|
|
|
86
|
-
const version = "0.
|
|
89
|
+
const version = "1.0.0";
|
|
87
90
|
|
|
88
91
|
function getEventConfig(config) {
|
|
89
92
|
const { trackingId } = config;
|
package/lib/relay.js
CHANGED
|
@@ -56,11 +56,14 @@ const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.
|
|
|
56
56
|
var native = { randomUUID };
|
|
57
57
|
|
|
58
58
|
function v4(options, buf, offset) {
|
|
59
|
-
if (native.randomUUID &&
|
|
59
|
+
if (native.randomUUID && true && !options) {
|
|
60
60
|
return native.randomUUID();
|
|
61
61
|
}
|
|
62
62
|
options = options || {};
|
|
63
|
-
const rnds = options.random
|
|
63
|
+
const rnds = options.random ?? options.rng?.() ?? rng();
|
|
64
|
+
if (rnds.length < 16) {
|
|
65
|
+
throw new Error('Random bytes length must be >= 16');
|
|
66
|
+
}
|
|
64
67
|
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
|
65
68
|
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
|
66
69
|
return unsafeStringify(rnds);
|
|
@@ -82,7 +85,7 @@ function createClientIdManager(environmentManager) {
|
|
|
82
85
|
};
|
|
83
86
|
}
|
|
84
87
|
|
|
85
|
-
const version = "0.
|
|
88
|
+
const version = "1.0.0";
|
|
86
89
|
|
|
87
90
|
function getEventConfig(config) {
|
|
88
91
|
const { trackingId } = config;
|
package/lib/relay.mjs
CHANGED
|
@@ -55,11 +55,14 @@ function rng() {
|
|
|
55
55
|
var native = { randomUUID };
|
|
56
56
|
|
|
57
57
|
function v4(options, buf, offset) {
|
|
58
|
-
if (native.randomUUID &&
|
|
58
|
+
if (native.randomUUID && true && !options) {
|
|
59
59
|
return native.randomUUID();
|
|
60
60
|
}
|
|
61
61
|
options = options || {};
|
|
62
|
-
const rnds = options.random
|
|
62
|
+
const rnds = options.random ?? options.rng?.() ?? rng();
|
|
63
|
+
if (rnds.length < 16) {
|
|
64
|
+
throw new Error('Random bytes length must be >= 16');
|
|
65
|
+
}
|
|
63
66
|
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
|
64
67
|
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
|
65
68
|
return unsafeStringify(rnds);
|
|
@@ -81,7 +84,7 @@ function createClientIdManager(environmentManager) {
|
|
|
81
84
|
};
|
|
82
85
|
}
|
|
83
86
|
|
|
84
|
-
const version = "0.
|
|
87
|
+
const version = "1.0.0";
|
|
85
88
|
|
|
86
89
|
function getEventConfig(config) {
|
|
87
90
|
const { trackingId } = config;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coveo/relay",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "A library for sending analytics events using Coveo's Event protocol.",
|
|
5
5
|
"files": [
|
|
6
6
|
"lib/**/*"
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"homepage": "https://github.com/coveo-platform/relay#readme",
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@octokit/rest": "^21.0.0",
|
|
43
|
-
"@rollup/plugin-node-resolve": "^
|
|
43
|
+
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
44
44
|
"@rollup/plugin-replace": "^6.0.0",
|
|
45
45
|
"@rollup/plugin-terser": "^0.4.3",
|
|
46
46
|
"@rollup/plugin-typescript": "^12.0.0",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"uuid": "^11.0.0"
|
|
62
62
|
},
|
|
63
63
|
"scripts": {
|
|
64
|
-
"build": "npm run clean && rollup --config ./config/rollup.config.mjs && npm run typedoc
|
|
64
|
+
"build": "npm run clean && rollup --config ./config/rollup.config.mjs && npm run typedoc",
|
|
65
65
|
"clean": "rimraf -rf ./lib",
|
|
66
66
|
"lint": "eslint src/**",
|
|
67
67
|
"lint:fix": "npm run lint -- --fix",
|