@coveo/relay 0.7.4 → 0.7.5
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/config/config.d.ts +8 -2
- package/lib/cdn/types/config/config.d.ts.map +1 -1
- package/lib/cdn/types/event/meta/meta.d.ts +1 -1
- package/lib/cdn/types/event/meta/meta.d.ts.map +1 -1
- package/lib/docs/relay-docs.json +129 -93
- package/lib/relay.cjs +4 -3
- package/lib/relay.js +4 -3
- package/lib/relay.mjs +4 -3
- package/lib/types/config/config.d.ts +8 -2
- package/lib/types/config/config.d.ts.map +1 -1
- package/lib/types/event/meta/meta.d.ts +1 -1
- package/lib/types/event/meta/meta.d.ts.map +1 -1
- package/package.json +1 -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),
|
|
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),s=c&&("string"==typeof(a=c)&&e.test(a))?c:r.generateUUID();var a;return o.setItem(n,s),s},clear:()=>{t.get().storage.removeItem(n)}}}const n="0.7.5";function r(e){return(e.source||[]).concat([`relay@${n}`])}function o(e,t,n,o){const{getReferrer:c,getLocation:s,getUserAgent:a}=n,i=function(e){const{trackingId:t,user:n}=e;return{trackingId:t,user:n||{id:null}}}(t),u=o.getClientId();return Object.freeze({type:e,config:i,ts:Date.now(),source:r(t),clientId:u,userAgent:a(),referrer:c(),location:s()})}const c="*";function s(){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 a({url:e,token:t,trackingId:n,...r}){return Object.freeze({url:e,token:t,trackingId:n,...!!r.user&&{user:r.user},...!!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()}`,s=o?`;domain=${o}`:"";document.cookie=`${e}${t}=${n}${c}${s};path=/;SameSite=Lax`},removeItem(e){this.setItem(e,"",-1)}}}();function u(){return{runtime:"browser",send:(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:()=>{},getReferrer:()=>null,getLocation:()=>null,getUserAgent:()=>null,generateUUID:()=>"",storage:{getItem:()=>null,removeItem(){},setItem(){}}}}function g(e){const r=function(e){let t=a(e);return{get:()=>t,update:e=>{t=a({...t,...e})}}}(e),c=s(),i=function(e){return{get:()=>Object.freeze(l(e))}}(r),u=t(i);return{emit:(e,t)=>{const n=r.get(),s=i.get(),a=function(e,t,n,r,c){return{...t,meta:o(e,n,r,c)}}(e,t,n,s,u);return function({config:e,environment:t,event:n,listenerManager:r}){const{url:o,token:c,mode:s}=e;"disabled"!==s&&(r.call(n),t.send(o,c,n))}({config:n,environment:s,event:a,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/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, User } 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 * Named user identity which logged this event.\n */\n user: User | null;\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, user: null };\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 callback ? removeOne({ type, callback }) : removeMultiple(type);\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 [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\n/**\n * User which logged the event.\n */\nexport interface User {\n /**\n * The application's user identifier.\n */\n id: 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: (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: () => 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, User } 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 * 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 {\n Relay,\n Meta,\n EventConfig,\n EventCallback,\n RelayConfig,\n User,\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","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","user","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","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
|
+
{"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, User } 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 * Named user identity which logged this event.\n */\n user: User;\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, user } = config;\n return { trackingId, user: user || { id: null } };\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 callback ? removeOne({ type, callback }) : removeMultiple(type);\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 [Tracking ID](https://docs.coveo.com/en/n8tg0567/).\n */\n trackingId: string;\n\n /**\n * The application's user identity. If not set in the config, Relay will assume the identity matches\n * the identity in the authentication or anonymous otherwise.\n */\n user?: User;\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\n/**\n * User which logged the event.\n */\nexport interface User {\n /**\n * The application's user identifier. An id of 'anonymous' assumes the user is explicitly anonymous. An id of null indicates\n * the identity is equal to the identity in the authentication or anonymous.\n */\n id: string | null;\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.user && { user: rest.user }),\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: (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: () => 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, User } 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 * 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 {\n Relay,\n Meta,\n EventConfig,\n EventCallback,\n RelayConfig,\n User,\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","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","user","id","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","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]}
|
|
@@ -14,6 +14,11 @@ export interface RelayConfig {
|
|
|
14
14
|
* The unique identifier of a web property. See [Tracking ID](https://docs.coveo.com/en/n8tg0567/).
|
|
15
15
|
*/
|
|
16
16
|
trackingId: string;
|
|
17
|
+
/**
|
|
18
|
+
* The application's user identity. If not set in the config, Relay will assume the identity matches
|
|
19
|
+
* the identity in the authentication or anonymous otherwise.
|
|
20
|
+
*/
|
|
21
|
+
user?: User;
|
|
17
22
|
/**
|
|
18
23
|
* Defines the library mode. The available modes are `emit` and `disabled`.
|
|
19
24
|
* `emit` sends analytics events to Coveo to be stored.
|
|
@@ -33,9 +38,10 @@ export interface RelayConfig {
|
|
|
33
38
|
*/
|
|
34
39
|
export interface User {
|
|
35
40
|
/**
|
|
36
|
-
* The application's user identifier.
|
|
41
|
+
* The application's user identifier. An id of 'anonymous' assumes the user is explicitly anonymous. An id of null indicates
|
|
42
|
+
* the identity is equal to the identity in the authentication or anonymous.
|
|
37
43
|
*/
|
|
38
|
-
id: string;
|
|
44
|
+
id: string | null;
|
|
39
45
|
}
|
|
40
46
|
export interface ConfigManager {
|
|
41
47
|
get: () => Readonly<RelayConfig>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;;OAGG;IACH,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACvD;AAkBD,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,WAAW,GACzB,QAAQ,CAAC,aAAa,CAAC,CASzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../../src/event/meta/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../../src/event/meta/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC;IAEpB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAWD,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,GAC/B,QAAQ,CAAC,IAAI,CAAC,CAehB"}
|
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/1f22674/packages/relay/src/event/meta/meta.ts#L13"
|
|
51
51
|
}
|
|
52
52
|
],
|
|
53
53
|
"type": {
|
|
@@ -74,23 +74,14 @@
|
|
|
74
74
|
"fileName": "event/meta/meta.ts",
|
|
75
75
|
"line": 18,
|
|
76
76
|
"character": 2,
|
|
77
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
77
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L18"
|
|
78
78
|
}
|
|
79
79
|
],
|
|
80
80
|
"type": {
|
|
81
|
-
"type": "
|
|
82
|
-
"
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"value": null
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
"type": "reference",
|
|
89
|
-
"target": 57,
|
|
90
|
-
"name": "User",
|
|
91
|
-
"package": "@coveo/relay"
|
|
92
|
-
}
|
|
93
|
-
]
|
|
81
|
+
"type": "reference",
|
|
82
|
+
"target": 58,
|
|
83
|
+
"name": "User",
|
|
84
|
+
"package": "@coveo/relay"
|
|
94
85
|
}
|
|
95
86
|
}
|
|
96
87
|
],
|
|
@@ -108,7 +99,7 @@
|
|
|
108
99
|
"fileName": "event/meta/meta.ts",
|
|
109
100
|
"line": 9,
|
|
110
101
|
"character": 17,
|
|
111
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
102
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L9"
|
|
112
103
|
}
|
|
113
104
|
]
|
|
114
105
|
},
|
|
@@ -154,7 +145,7 @@
|
|
|
154
145
|
"fileName": "event/meta/meta.ts",
|
|
155
146
|
"line": 49,
|
|
156
147
|
"character": 2,
|
|
157
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
148
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L49"
|
|
158
149
|
}
|
|
159
150
|
],
|
|
160
151
|
"type": {
|
|
@@ -181,7 +172,7 @@
|
|
|
181
172
|
"fileName": "event/meta/meta.ts",
|
|
182
173
|
"line": 34,
|
|
183
174
|
"character": 2,
|
|
184
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
175
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L34"
|
|
185
176
|
}
|
|
186
177
|
],
|
|
187
178
|
"type": {
|
|
@@ -210,7 +201,7 @@
|
|
|
210
201
|
"fileName": "event/meta/meta.ts",
|
|
211
202
|
"line": 64,
|
|
212
203
|
"character": 2,
|
|
213
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
204
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L64"
|
|
214
205
|
}
|
|
215
206
|
],
|
|
216
207
|
"type": {
|
|
@@ -246,7 +237,7 @@
|
|
|
246
237
|
"fileName": "event/meta/meta.ts",
|
|
247
238
|
"line": 59,
|
|
248
239
|
"character": 2,
|
|
249
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
240
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L59"
|
|
250
241
|
}
|
|
251
242
|
],
|
|
252
243
|
"type": {
|
|
@@ -282,7 +273,7 @@
|
|
|
282
273
|
"fileName": "event/meta/meta.ts",
|
|
283
274
|
"line": 44,
|
|
284
275
|
"character": 2,
|
|
285
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
276
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L44"
|
|
286
277
|
}
|
|
287
278
|
],
|
|
288
279
|
"type": {
|
|
@@ -312,7 +303,7 @@
|
|
|
312
303
|
"fileName": "event/meta/meta.ts",
|
|
313
304
|
"line": 39,
|
|
314
305
|
"character": 2,
|
|
315
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
306
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L39"
|
|
316
307
|
}
|
|
317
308
|
],
|
|
318
309
|
"type": {
|
|
@@ -339,7 +330,7 @@
|
|
|
339
330
|
"fileName": "event/meta/meta.ts",
|
|
340
331
|
"line": 29,
|
|
341
332
|
"character": 2,
|
|
342
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
333
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L29"
|
|
343
334
|
}
|
|
344
335
|
],
|
|
345
336
|
"type": {
|
|
@@ -366,7 +357,7 @@
|
|
|
366
357
|
"fileName": "event/meta/meta.ts",
|
|
367
358
|
"line": 54,
|
|
368
359
|
"character": 2,
|
|
369
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
360
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L54"
|
|
370
361
|
}
|
|
371
362
|
],
|
|
372
363
|
"type": {
|
|
@@ -404,7 +395,7 @@
|
|
|
404
395
|
"fileName": "event/meta/meta.ts",
|
|
405
396
|
"line": 25,
|
|
406
397
|
"character": 17,
|
|
407
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
398
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/meta/meta.ts#L25"
|
|
408
399
|
}
|
|
409
400
|
]
|
|
410
401
|
},
|
|
@@ -434,7 +425,7 @@
|
|
|
434
425
|
"fileName": "relay.ts",
|
|
435
426
|
"line": 75,
|
|
436
427
|
"character": 2,
|
|
437
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
428
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L75"
|
|
438
429
|
}
|
|
439
430
|
],
|
|
440
431
|
"type": {
|
|
@@ -450,7 +441,7 @@
|
|
|
450
441
|
"fileName": "relay.ts",
|
|
451
442
|
"line": 75,
|
|
452
443
|
"character": 16,
|
|
453
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
444
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L75"
|
|
454
445
|
}
|
|
455
446
|
],
|
|
456
447
|
"signatures": [
|
|
@@ -479,7 +470,7 @@
|
|
|
479
470
|
"fileName": "relay.ts",
|
|
480
471
|
"line": 75,
|
|
481
472
|
"character": 16,
|
|
482
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
473
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L75"
|
|
483
474
|
}
|
|
484
475
|
],
|
|
485
476
|
"type": {
|
|
@@ -502,7 +493,7 @@
|
|
|
502
493
|
"fileName": "relay.ts",
|
|
503
494
|
"line": 29,
|
|
504
495
|
"character": 2,
|
|
505
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
496
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L29"
|
|
506
497
|
}
|
|
507
498
|
],
|
|
508
499
|
"type": {
|
|
@@ -518,7 +509,7 @@
|
|
|
518
509
|
"fileName": "relay.ts",
|
|
519
510
|
"line": 29,
|
|
520
511
|
"character": 8,
|
|
521
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
512
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L29"
|
|
522
513
|
}
|
|
523
514
|
],
|
|
524
515
|
"signatures": [
|
|
@@ -547,7 +538,7 @@
|
|
|
547
538
|
"fileName": "relay.ts",
|
|
548
539
|
"line": 29,
|
|
549
540
|
"character": 8,
|
|
550
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
541
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L29"
|
|
551
542
|
}
|
|
552
543
|
],
|
|
553
544
|
"parameters": [
|
|
@@ -625,7 +616,7 @@
|
|
|
625
616
|
"fileName": "relay.ts",
|
|
626
617
|
"line": 36,
|
|
627
618
|
"character": 2,
|
|
628
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
619
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L36"
|
|
629
620
|
}
|
|
630
621
|
],
|
|
631
622
|
"type": {
|
|
@@ -641,7 +632,7 @@
|
|
|
641
632
|
"fileName": "relay.ts",
|
|
642
633
|
"line": 36,
|
|
643
634
|
"character": 11,
|
|
644
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
635
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L36"
|
|
645
636
|
}
|
|
646
637
|
],
|
|
647
638
|
"signatures": [
|
|
@@ -670,7 +661,7 @@
|
|
|
670
661
|
"fileName": "relay.ts",
|
|
671
662
|
"line": 36,
|
|
672
663
|
"character": 11,
|
|
673
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
664
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L36"
|
|
674
665
|
}
|
|
675
666
|
],
|
|
676
667
|
"parameters": [
|
|
@@ -716,7 +707,7 @@
|
|
|
716
707
|
"fileName": "relay.ts",
|
|
717
708
|
"line": 57,
|
|
718
709
|
"character": 2,
|
|
719
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
710
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L57"
|
|
720
711
|
}
|
|
721
712
|
],
|
|
722
713
|
"type": {
|
|
@@ -732,7 +723,7 @@
|
|
|
732
723
|
"fileName": "relay.ts",
|
|
733
724
|
"line": 57,
|
|
734
725
|
"character": 7,
|
|
735
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
726
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L57"
|
|
736
727
|
}
|
|
737
728
|
],
|
|
738
729
|
"signatures": [
|
|
@@ -761,7 +752,7 @@
|
|
|
761
752
|
"fileName": "relay.ts",
|
|
762
753
|
"line": 57,
|
|
763
754
|
"character": 7,
|
|
764
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
755
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L57"
|
|
765
756
|
}
|
|
766
757
|
],
|
|
767
758
|
"parameters": [
|
|
@@ -828,7 +819,7 @@
|
|
|
828
819
|
"fileName": "relay.ts",
|
|
829
820
|
"line": 48,
|
|
830
821
|
"character": 2,
|
|
831
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
822
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L48"
|
|
832
823
|
}
|
|
833
824
|
],
|
|
834
825
|
"type": {
|
|
@@ -844,7 +835,7 @@
|
|
|
844
835
|
"fileName": "relay.ts",
|
|
845
836
|
"line": 48,
|
|
846
837
|
"character": 6,
|
|
847
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
838
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L48"
|
|
848
839
|
}
|
|
849
840
|
],
|
|
850
841
|
"signatures": [
|
|
@@ -873,7 +864,7 @@
|
|
|
873
864
|
"fileName": "relay.ts",
|
|
874
865
|
"line": 48,
|
|
875
866
|
"character": 6,
|
|
876
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
867
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L48"
|
|
877
868
|
}
|
|
878
869
|
],
|
|
879
870
|
"parameters": [
|
|
@@ -940,7 +931,7 @@
|
|
|
940
931
|
"fileName": "relay.ts",
|
|
941
932
|
"line": 64,
|
|
942
933
|
"character": 2,
|
|
943
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
934
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L64"
|
|
944
935
|
}
|
|
945
936
|
],
|
|
946
937
|
"type": {
|
|
@@ -956,7 +947,7 @@
|
|
|
956
947
|
"fileName": "relay.ts",
|
|
957
948
|
"line": 64,
|
|
958
949
|
"character": 16,
|
|
959
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
950
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L64"
|
|
960
951
|
}
|
|
961
952
|
],
|
|
962
953
|
"signatures": [
|
|
@@ -985,7 +976,7 @@
|
|
|
985
976
|
"fileName": "relay.ts",
|
|
986
977
|
"line": 64,
|
|
987
978
|
"character": 16,
|
|
988
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
979
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L64"
|
|
989
980
|
}
|
|
990
981
|
],
|
|
991
982
|
"parameters": [
|
|
@@ -1050,7 +1041,7 @@
|
|
|
1050
1041
|
"fileName": "relay.ts",
|
|
1051
1042
|
"line": 69,
|
|
1052
1043
|
"character": 2,
|
|
1053
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1044
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L69"
|
|
1054
1045
|
}
|
|
1055
1046
|
],
|
|
1056
1047
|
"type": {
|
|
@@ -1078,7 +1069,7 @@
|
|
|
1078
1069
|
"fileName": "relay.ts",
|
|
1079
1070
|
"line": 22,
|
|
1080
1071
|
"character": 10,
|
|
1081
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1072
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L22"
|
|
1082
1073
|
}
|
|
1083
1074
|
]
|
|
1084
1075
|
},
|
|
@@ -1106,7 +1097,7 @@
|
|
|
1106
1097
|
},
|
|
1107
1098
|
"children": [
|
|
1108
1099
|
{
|
|
1109
|
-
"id":
|
|
1100
|
+
"id": 56,
|
|
1110
1101
|
"name": "mode",
|
|
1111
1102
|
"variant": "declaration",
|
|
1112
1103
|
"kind": 1024,
|
|
@@ -1167,9 +1158,9 @@
|
|
|
1167
1158
|
"sources": [
|
|
1168
1159
|
{
|
|
1169
1160
|
"fileName": "config/config.ts",
|
|
1170
|
-
"line":
|
|
1161
|
+
"line": 32,
|
|
1171
1162
|
"character": 2,
|
|
1172
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1163
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/config/config.ts#L32"
|
|
1173
1164
|
}
|
|
1174
1165
|
],
|
|
1175
1166
|
"type": {
|
|
@@ -1187,7 +1178,7 @@
|
|
|
1187
1178
|
}
|
|
1188
1179
|
},
|
|
1189
1180
|
{
|
|
1190
|
-
"id":
|
|
1181
|
+
"id": 57,
|
|
1191
1182
|
"name": "source",
|
|
1192
1183
|
"variant": "declaration",
|
|
1193
1184
|
"kind": 1024,
|
|
@@ -1205,9 +1196,9 @@
|
|
|
1205
1196
|
"sources": [
|
|
1206
1197
|
{
|
|
1207
1198
|
"fileName": "config/config.ts",
|
|
1208
|
-
"line":
|
|
1199
|
+
"line": 39,
|
|
1209
1200
|
"character": 2,
|
|
1210
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1201
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/config/config.ts#L39"
|
|
1211
1202
|
}
|
|
1212
1203
|
],
|
|
1213
1204
|
"type": {
|
|
@@ -1237,7 +1228,7 @@
|
|
|
1237
1228
|
"fileName": "config/config.ts",
|
|
1238
1229
|
"line": 13,
|
|
1239
1230
|
"character": 2,
|
|
1240
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1231
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/config/config.ts#L13"
|
|
1241
1232
|
}
|
|
1242
1233
|
],
|
|
1243
1234
|
"type": {
|
|
@@ -1264,7 +1255,7 @@
|
|
|
1264
1255
|
"fileName": "config/config.ts",
|
|
1265
1256
|
"line": 18,
|
|
1266
1257
|
"character": 2,
|
|
1267
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1258
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/config/config.ts#L18"
|
|
1268
1259
|
}
|
|
1269
1260
|
],
|
|
1270
1261
|
"type": {
|
|
@@ -1291,24 +1282,56 @@
|
|
|
1291
1282
|
"fileName": "config/config.ts",
|
|
1292
1283
|
"line": 8,
|
|
1293
1284
|
"character": 2,
|
|
1294
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1285
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/config/config.ts#L8"
|
|
1295
1286
|
}
|
|
1296
1287
|
],
|
|
1297
1288
|
"type": {
|
|
1298
1289
|
"type": "intrinsic",
|
|
1299
1290
|
"name": "string"
|
|
1300
1291
|
}
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
"id": 55,
|
|
1295
|
+
"name": "user",
|
|
1296
|
+
"variant": "declaration",
|
|
1297
|
+
"kind": 1024,
|
|
1298
|
+
"flags": {
|
|
1299
|
+
"isOptional": true
|
|
1300
|
+
},
|
|
1301
|
+
"comment": {
|
|
1302
|
+
"summary": [
|
|
1303
|
+
{
|
|
1304
|
+
"kind": "text",
|
|
1305
|
+
"text": "The application's user identity. If not set in the config, Relay will assume the identity matches\nthe identity in the authentication or anonymous otherwise."
|
|
1306
|
+
}
|
|
1307
|
+
]
|
|
1308
|
+
},
|
|
1309
|
+
"sources": [
|
|
1310
|
+
{
|
|
1311
|
+
"fileName": "config/config.ts",
|
|
1312
|
+
"line": 24,
|
|
1313
|
+
"character": 2,
|
|
1314
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/config/config.ts#L24"
|
|
1315
|
+
}
|
|
1316
|
+
],
|
|
1317
|
+
"type": {
|
|
1318
|
+
"type": "reference",
|
|
1319
|
+
"target": 58,
|
|
1320
|
+
"name": "User",
|
|
1321
|
+
"package": "@coveo/relay"
|
|
1322
|
+
}
|
|
1301
1323
|
}
|
|
1302
1324
|
],
|
|
1303
1325
|
"groups": [
|
|
1304
1326
|
{
|
|
1305
1327
|
"title": "Properties",
|
|
1306
1328
|
"children": [
|
|
1307
|
-
55,
|
|
1308
1329
|
56,
|
|
1330
|
+
57,
|
|
1309
1331
|
53,
|
|
1310
1332
|
54,
|
|
1311
|
-
52
|
|
1333
|
+
52,
|
|
1334
|
+
55
|
|
1312
1335
|
]
|
|
1313
1336
|
}
|
|
1314
1337
|
],
|
|
@@ -1317,12 +1340,12 @@
|
|
|
1317
1340
|
"fileName": "config/config.ts",
|
|
1318
1341
|
"line": 4,
|
|
1319
1342
|
"character": 17,
|
|
1320
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1343
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/config/config.ts#L4"
|
|
1321
1344
|
}
|
|
1322
1345
|
]
|
|
1323
1346
|
},
|
|
1324
1347
|
{
|
|
1325
|
-
"id":
|
|
1348
|
+
"id": 61,
|
|
1326
1349
|
"name": "RelayEvent",
|
|
1327
1350
|
"variant": "declaration",
|
|
1328
1351
|
"kind": 256,
|
|
@@ -1337,7 +1360,7 @@
|
|
|
1337
1360
|
},
|
|
1338
1361
|
"children": [
|
|
1339
1362
|
{
|
|
1340
|
-
"id":
|
|
1363
|
+
"id": 62,
|
|
1341
1364
|
"name": "meta",
|
|
1342
1365
|
"variant": "declaration",
|
|
1343
1366
|
"kind": 1024,
|
|
@@ -1363,7 +1386,7 @@
|
|
|
1363
1386
|
"fileName": "event/relay-event.ts",
|
|
1364
1387
|
"line": 14,
|
|
1365
1388
|
"character": 2,
|
|
1366
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1389
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/relay-event.ts#L14"
|
|
1367
1390
|
}
|
|
1368
1391
|
],
|
|
1369
1392
|
"type": {
|
|
@@ -1389,7 +1412,7 @@
|
|
|
1389
1412
|
{
|
|
1390
1413
|
"title": "Properties",
|
|
1391
1414
|
"children": [
|
|
1392
|
-
|
|
1415
|
+
62
|
|
1393
1416
|
]
|
|
1394
1417
|
}
|
|
1395
1418
|
],
|
|
@@ -1398,20 +1421,20 @@
|
|
|
1398
1421
|
"fileName": "event/relay-event.ts",
|
|
1399
1422
|
"line": 10,
|
|
1400
1423
|
"character": 17,
|
|
1401
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1424
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/event/relay-event.ts#L10"
|
|
1402
1425
|
}
|
|
1403
1426
|
],
|
|
1404
1427
|
"extendedTypes": [
|
|
1405
1428
|
{
|
|
1406
1429
|
"type": "reference",
|
|
1407
|
-
"target":
|
|
1430
|
+
"target": 60,
|
|
1408
1431
|
"name": "RelayPayload",
|
|
1409
1432
|
"package": "@coveo/relay"
|
|
1410
1433
|
}
|
|
1411
1434
|
]
|
|
1412
1435
|
},
|
|
1413
1436
|
{
|
|
1414
|
-
"id":
|
|
1437
|
+
"id": 58,
|
|
1415
1438
|
"name": "User",
|
|
1416
1439
|
"variant": "declaration",
|
|
1417
1440
|
"kind": 256,
|
|
@@ -1426,7 +1449,7 @@
|
|
|
1426
1449
|
},
|
|
1427
1450
|
"children": [
|
|
1428
1451
|
{
|
|
1429
|
-
"id":
|
|
1452
|
+
"id": 59,
|
|
1430
1453
|
"name": "id",
|
|
1431
1454
|
"variant": "declaration",
|
|
1432
1455
|
"kind": 1024,
|
|
@@ -1435,21 +1458,30 @@
|
|
|
1435
1458
|
"summary": [
|
|
1436
1459
|
{
|
|
1437
1460
|
"kind": "text",
|
|
1438
|
-
"text": "The application's user identifier."
|
|
1461
|
+
"text": "The application's user identifier. An id of 'anonymous' assumes the user is explicitly anonymous. An id of null indicates\nthe identity is equal to the identity in the authentication or anonymous."
|
|
1439
1462
|
}
|
|
1440
1463
|
]
|
|
1441
1464
|
},
|
|
1442
1465
|
"sources": [
|
|
1443
1466
|
{
|
|
1444
1467
|
"fileName": "config/config.ts",
|
|
1445
|
-
"line":
|
|
1468
|
+
"line": 50,
|
|
1446
1469
|
"character": 2,
|
|
1447
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1470
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/config/config.ts#L50"
|
|
1448
1471
|
}
|
|
1449
1472
|
],
|
|
1450
1473
|
"type": {
|
|
1451
|
-
"type": "
|
|
1452
|
-
"
|
|
1474
|
+
"type": "union",
|
|
1475
|
+
"types": [
|
|
1476
|
+
{
|
|
1477
|
+
"type": "literal",
|
|
1478
|
+
"value": null
|
|
1479
|
+
},
|
|
1480
|
+
{
|
|
1481
|
+
"type": "intrinsic",
|
|
1482
|
+
"name": "string"
|
|
1483
|
+
}
|
|
1484
|
+
]
|
|
1453
1485
|
}
|
|
1454
1486
|
}
|
|
1455
1487
|
],
|
|
@@ -1457,16 +1489,16 @@
|
|
|
1457
1489
|
{
|
|
1458
1490
|
"title": "Properties",
|
|
1459
1491
|
"children": [
|
|
1460
|
-
|
|
1492
|
+
59
|
|
1461
1493
|
]
|
|
1462
1494
|
}
|
|
1463
1495
|
],
|
|
1464
1496
|
"sources": [
|
|
1465
1497
|
{
|
|
1466
1498
|
"fileName": "config/config.ts",
|
|
1467
|
-
"line":
|
|
1499
|
+
"line": 45,
|
|
1468
1500
|
"character": 17,
|
|
1469
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1501
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/config/config.ts#L45"
|
|
1470
1502
|
}
|
|
1471
1503
|
]
|
|
1472
1504
|
},
|
|
@@ -1481,7 +1513,7 @@
|
|
|
1481
1513
|
"fileName": "listener/listener.ts",
|
|
1482
1514
|
"line": 11,
|
|
1483
1515
|
"character": 12,
|
|
1484
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1516
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/listener/listener.ts#L11"
|
|
1485
1517
|
}
|
|
1486
1518
|
],
|
|
1487
1519
|
"type": {
|
|
@@ -1497,7 +1529,7 @@
|
|
|
1497
1529
|
"fileName": "listener/listener.ts",
|
|
1498
1530
|
"line": 11,
|
|
1499
1531
|
"character": 28,
|
|
1500
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1532
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/listener/listener.ts#L11"
|
|
1501
1533
|
}
|
|
1502
1534
|
],
|
|
1503
1535
|
"signatures": [
|
|
@@ -1538,7 +1570,7 @@
|
|
|
1538
1570
|
},
|
|
1539
1571
|
"type": {
|
|
1540
1572
|
"type": "reference",
|
|
1541
|
-
"target":
|
|
1573
|
+
"target": 61,
|
|
1542
1574
|
"name": "RelayEvent",
|
|
1543
1575
|
"package": "@coveo/relay"
|
|
1544
1576
|
}
|
|
@@ -1564,7 +1596,7 @@
|
|
|
1564
1596
|
"fileName": "relay.ts",
|
|
1565
1597
|
"line": 16,
|
|
1566
1598
|
"character": 12,
|
|
1567
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1599
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L16"
|
|
1568
1600
|
}
|
|
1569
1601
|
],
|
|
1570
1602
|
"type": {
|
|
@@ -1580,7 +1612,7 @@
|
|
|
1580
1612
|
"fileName": "relay.ts",
|
|
1581
1613
|
"line": 16,
|
|
1582
1614
|
"character": 18,
|
|
1583
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1615
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L16"
|
|
1584
1616
|
}
|
|
1585
1617
|
],
|
|
1586
1618
|
"signatures": [
|
|
@@ -1614,7 +1646,7 @@
|
|
|
1614
1646
|
}
|
|
1615
1647
|
},
|
|
1616
1648
|
{
|
|
1617
|
-
"id":
|
|
1649
|
+
"id": 60,
|
|
1618
1650
|
"name": "RelayPayload",
|
|
1619
1651
|
"variant": "declaration",
|
|
1620
1652
|
"kind": 2097152,
|
|
@@ -1632,7 +1664,7 @@
|
|
|
1632
1664
|
"fileName": "relay-payload.ts",
|
|
1633
1665
|
"line": 5,
|
|
1634
1666
|
"character": 12,
|
|
1635
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1667
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay-payload.ts#L5"
|
|
1636
1668
|
}
|
|
1637
1669
|
],
|
|
1638
1670
|
"type": {
|
|
@@ -1657,7 +1689,7 @@
|
|
|
1657
1689
|
"extendedBy": [
|
|
1658
1690
|
{
|
|
1659
1691
|
"type": "reference",
|
|
1660
|
-
"target":
|
|
1692
|
+
"target": 61,
|
|
1661
1693
|
"name": "RelayEvent"
|
|
1662
1694
|
}
|
|
1663
1695
|
]
|
|
@@ -1673,7 +1705,7 @@
|
|
|
1673
1705
|
"fileName": "relay.ts",
|
|
1674
1706
|
"line": 83,
|
|
1675
1707
|
"character": 16,
|
|
1676
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1708
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L83"
|
|
1677
1709
|
}
|
|
1678
1710
|
],
|
|
1679
1711
|
"signatures": [
|
|
@@ -1702,7 +1734,7 @@
|
|
|
1702
1734
|
"fileName": "relay.ts",
|
|
1703
1735
|
"line": 83,
|
|
1704
1736
|
"character": 16,
|
|
1705
|
-
"url": "https://github.com/coveo/relay/blob/
|
|
1737
|
+
"url": "https://github.com/coveo/relay/blob/1f22674/packages/relay/src/relay.ts#L83"
|
|
1706
1738
|
}
|
|
1707
1739
|
],
|
|
1708
1740
|
"parameters": [
|
|
@@ -1738,8 +1770,8 @@
|
|
|
1738
1770
|
35,
|
|
1739
1771
|
7,
|
|
1740
1772
|
51,
|
|
1741
|
-
|
|
1742
|
-
|
|
1773
|
+
61,
|
|
1774
|
+
58
|
|
1743
1775
|
]
|
|
1744
1776
|
},
|
|
1745
1777
|
{
|
|
@@ -1747,7 +1779,7 @@
|
|
|
1747
1779
|
"children": [
|
|
1748
1780
|
47,
|
|
1749
1781
|
4,
|
|
1750
|
-
|
|
1782
|
+
60
|
|
1751
1783
|
]
|
|
1752
1784
|
},
|
|
1753
1785
|
{
|
|
@@ -1758,7 +1790,7 @@
|
|
|
1758
1790
|
}
|
|
1759
1791
|
],
|
|
1760
1792
|
"packageName": "@coveo/relay",
|
|
1761
|
-
"packageVersion": "0.7.
|
|
1793
|
+
"packageVersion": "0.7.5",
|
|
1762
1794
|
"readme": [
|
|
1763
1795
|
{
|
|
1764
1796
|
"kind": "text",
|
|
@@ -1996,29 +2028,33 @@
|
|
|
1996
2028
|
},
|
|
1997
2029
|
"55": {
|
|
1998
2030
|
"sourceFileName": "src/config/config.ts",
|
|
1999
|
-
"qualifiedName": "RelayConfig.
|
|
2031
|
+
"qualifiedName": "RelayConfig.user"
|
|
2000
2032
|
},
|
|
2001
2033
|
"56": {
|
|
2002
2034
|
"sourceFileName": "src/config/config.ts",
|
|
2003
|
-
"qualifiedName": "RelayConfig.
|
|
2035
|
+
"qualifiedName": "RelayConfig.mode"
|
|
2004
2036
|
},
|
|
2005
2037
|
"57": {
|
|
2006
2038
|
"sourceFileName": "src/config/config.ts",
|
|
2007
|
-
"qualifiedName": "
|
|
2039
|
+
"qualifiedName": "RelayConfig.source"
|
|
2008
2040
|
},
|
|
2009
2041
|
"58": {
|
|
2010
2042
|
"sourceFileName": "src/config/config.ts",
|
|
2011
|
-
"qualifiedName": "User
|
|
2043
|
+
"qualifiedName": "User"
|
|
2012
2044
|
},
|
|
2013
2045
|
"59": {
|
|
2046
|
+
"sourceFileName": "src/config/config.ts",
|
|
2047
|
+
"qualifiedName": "User.id"
|
|
2048
|
+
},
|
|
2049
|
+
"60": {
|
|
2014
2050
|
"sourceFileName": "src/relay-payload.ts",
|
|
2015
2051
|
"qualifiedName": "RelayPayload"
|
|
2016
2052
|
},
|
|
2017
|
-
"
|
|
2053
|
+
"61": {
|
|
2018
2054
|
"sourceFileName": "src/event/relay-event.ts",
|
|
2019
2055
|
"qualifiedName": "RelayEvent"
|
|
2020
2056
|
},
|
|
2021
|
-
"
|
|
2057
|
+
"62": {
|
|
2022
2058
|
"sourceFileName": "src/event/relay-event.ts",
|
|
2023
2059
|
"qualifiedName": "RelayEvent.meta"
|
|
2024
2060
|
}
|
package/lib/relay.cjs
CHANGED
|
@@ -34,11 +34,11 @@ function createClientIdManager(environmentManager) {
|
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
const version = "0.7.
|
|
37
|
+
const version = "0.7.5";
|
|
38
38
|
|
|
39
39
|
function getEventConfig(config) {
|
|
40
|
-
const { trackingId } = config;
|
|
41
|
-
return { trackingId, user: null };
|
|
40
|
+
const { trackingId, user } = config;
|
|
41
|
+
return { trackingId, user: user || { id: null } };
|
|
42
42
|
}
|
|
43
43
|
function getSource(config) {
|
|
44
44
|
return (config.source || []).concat([`relay@${version}`]);
|
|
@@ -126,6 +126,7 @@ function pick({ url, token, trackingId, ...rest }) {
|
|
|
126
126
|
url,
|
|
127
127
|
token,
|
|
128
128
|
trackingId,
|
|
129
|
+
...(!!rest.user && { user: rest.user }),
|
|
129
130
|
...(!!rest.mode && { mode: rest.mode }),
|
|
130
131
|
...(!!rest.source && { source: rest.source }),
|
|
131
132
|
});
|
package/lib/relay.js
CHANGED
|
@@ -32,11 +32,11 @@ function createClientIdManager(environmentManager) {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
const version = "0.7.
|
|
35
|
+
const version = "0.7.5";
|
|
36
36
|
|
|
37
37
|
function getEventConfig(config) {
|
|
38
|
-
const { trackingId } = config;
|
|
39
|
-
return { trackingId, user: null };
|
|
38
|
+
const { trackingId, user } = config;
|
|
39
|
+
return { trackingId, user: user || { id: null } };
|
|
40
40
|
}
|
|
41
41
|
function getSource(config) {
|
|
42
42
|
return (config.source || []).concat([`relay@${version}`]);
|
|
@@ -124,6 +124,7 @@ function pick({ url, token, trackingId, ...rest }) {
|
|
|
124
124
|
url,
|
|
125
125
|
token,
|
|
126
126
|
trackingId,
|
|
127
|
+
...(!!rest.user && { user: rest.user }),
|
|
127
128
|
...(!!rest.mode && { mode: rest.mode }),
|
|
128
129
|
...(!!rest.source && { source: rest.source }),
|
|
129
130
|
});
|
package/lib/relay.mjs
CHANGED
|
@@ -32,11 +32,11 @@ function createClientIdManager(environmentManager) {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
const version = "0.7.
|
|
35
|
+
const version = "0.7.5";
|
|
36
36
|
|
|
37
37
|
function getEventConfig(config) {
|
|
38
|
-
const { trackingId } = config;
|
|
39
|
-
return { trackingId, user: null };
|
|
38
|
+
const { trackingId, user } = config;
|
|
39
|
+
return { trackingId, user: user || { id: null } };
|
|
40
40
|
}
|
|
41
41
|
function getSource(config) {
|
|
42
42
|
return (config.source || []).concat([`relay@${version}`]);
|
|
@@ -124,6 +124,7 @@ function pick({ url, token, trackingId, ...rest }) {
|
|
|
124
124
|
url,
|
|
125
125
|
token,
|
|
126
126
|
trackingId,
|
|
127
|
+
...(!!rest.user && { user: rest.user }),
|
|
127
128
|
...(!!rest.mode && { mode: rest.mode }),
|
|
128
129
|
...(!!rest.source && { source: rest.source }),
|
|
129
130
|
});
|
|
@@ -14,6 +14,11 @@ export interface RelayConfig {
|
|
|
14
14
|
* The unique identifier of a web property. See [Tracking ID](https://docs.coveo.com/en/n8tg0567/).
|
|
15
15
|
*/
|
|
16
16
|
trackingId: string;
|
|
17
|
+
/**
|
|
18
|
+
* The application's user identity. If not set in the config, Relay will assume the identity matches
|
|
19
|
+
* the identity in the authentication or anonymous otherwise.
|
|
20
|
+
*/
|
|
21
|
+
user?: User;
|
|
17
22
|
/**
|
|
18
23
|
* Defines the library mode. The available modes are `emit` and `disabled`.
|
|
19
24
|
* `emit` sends analytics events to Coveo to be stored.
|
|
@@ -33,9 +38,10 @@ export interface RelayConfig {
|
|
|
33
38
|
*/
|
|
34
39
|
export interface User {
|
|
35
40
|
/**
|
|
36
|
-
* The application's user identifier.
|
|
41
|
+
* The application's user identifier. An id of 'anonymous' assumes the user is explicitly anonymous. An id of null indicates
|
|
42
|
+
* the identity is equal to the identity in the authentication or anonymous.
|
|
37
43
|
*/
|
|
38
|
-
id: string;
|
|
44
|
+
id: string | null;
|
|
39
45
|
}
|
|
40
46
|
export interface ConfigManager {
|
|
41
47
|
get: () => Readonly<RelayConfig>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;;OAGG;IACH,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACvD;AAkBD,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,WAAW,GACzB,QAAQ,CAAC,aAAa,CAAC,CASzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../../src/event/meta/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../../src/event/meta/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC;IAEpB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAWD,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,GAC/B,QAAQ,CAAC,IAAI,CAAC,CAehB"}
|