@coveo/relay 0.3.1 → 0.3.3

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/relay.cjs CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  var crypto = require('crypto');
4
4
 
5
- async function callEventApi({ event, options, environment, }) {
6
- const { token, host, organizationId } = options;
5
+ async function callEventApi({ event, config, environment, }) {
6
+ const { token, host, organizationId } = config;
7
7
  const headers = {
8
8
  "Content-Type": "application/json",
9
9
  Authorization: `Bearer ${token}`,
10
10
  };
11
- const response = await environment.fetch(`${host}/rest/organizations/${organizationId}/events/v1${options.mode == "validate" ? "/validate" : ""}`, {
11
+ const response = await environment.fetch(`${host}/rest/organizations/${organizationId}/events/v1${config.mode == "validate" ? "/validate" : ""}`, {
12
12
  method: "POST",
13
13
  body: JSON.stringify([event]),
14
14
  headers,
@@ -16,7 +16,6 @@ async function callEventApi({ event, options, environment, }) {
16
16
  const data = await response.json();
17
17
  if (!response.ok) {
18
18
  throw new Error({
19
- responseType: "serviceError",
20
19
  ...data,
21
20
  });
22
21
  }
@@ -134,22 +133,22 @@ function isBrowser() {
134
133
  }
135
134
  }
136
135
 
137
- const version = "0.3.1" ;
136
+ const version = "0.3.3" ;
138
137
 
139
- function getConfig(options) {
140
- const { trackingId } = options;
138
+ function getEventConfig(config) {
139
+ const { trackingId } = config;
141
140
  return { trackingId };
142
141
  }
143
142
  function getSource() {
144
143
  return `relay@${version}`;
145
144
  }
146
- function createMeta(type, options, environment, clientIdManager) {
145
+ function createMeta(type, config, environment, clientIdManager) {
147
146
  const { getReferrerUrl, getUrl, getUserAgent } = environment;
148
- const config = getConfig(options);
147
+ const eventConfig = getEventConfig(config);
149
148
  const { clientId } = clientIdManager;
150
149
  return Object.freeze({
151
150
  type,
152
- config,
151
+ config: eventConfig,
153
152
  ts: Date.now(),
154
153
  source: getSource(),
155
154
  clientId,
@@ -159,19 +158,13 @@ function createMeta(type, options, environment, clientIdManager) {
159
158
  });
160
159
  }
161
160
 
162
- function createRelayEvent(type, payload, options, environment, clientIdManager) {
161
+ function createRelayEvent(type, payload, config, environment, clientIdManager) {
163
162
  return {
164
163
  ...payload,
165
- meta: createMeta(type, options, environment, clientIdManager),
164
+ meta: createMeta(type, config, environment, clientIdManager),
166
165
  };
167
166
  }
168
167
 
169
- async function validate(params) {
170
- const data = await callEventApi(params);
171
- const { valid, errors } = data[0];
172
- return { valid, errors: errors ?? [], responseType: "validation" };
173
- }
174
-
175
168
  const ANY_EVENT_TYPE = "*";
176
169
  function createListenerManager() {
177
170
  const listeners = [];
@@ -227,32 +220,49 @@ function createListenerManager() {
227
220
  };
228
221
  }
229
222
 
230
- function createRelay(options) {
223
+ function pick({ host, organizationId, token, trackingId, ...rest }) {
224
+ return Object.freeze({
225
+ host,
226
+ organizationId,
227
+ token,
228
+ trackingId,
229
+ ...(!!rest.mode && { mode: rest.mode }),
230
+ });
231
+ }
232
+ function createConfigManager(initialConfig) {
233
+ let _config = pick(initialConfig);
234
+ return {
235
+ get: () => _config,
236
+ update: (updatedConfig) => {
237
+ _config = pick({ ..._config, ...updatedConfig });
238
+ },
239
+ };
240
+ }
241
+
242
+ async function validate(params) {
243
+ const data = await callEventApi(params);
244
+ const { valid, errors } = data[0];
245
+ return { valid, errors: errors ?? [] };
246
+ }
247
+
248
+ function createRelay(initialConfig) {
231
249
  const environment = currentEnvironment();
232
250
  const clientIdManager = createClientIdManager(environment);
251
+ const configManager = createConfigManager(initialConfig);
233
252
  const { add, call, remove } = createListenerManager();
234
253
  return {
235
- validate: (type, payload) => {
236
- const event = createRelayEvent(type, payload, options, environment, clientIdManager);
237
- call(event);
238
- return validate({
239
- options,
240
- environment,
241
- event: createRelayEvent(type, payload, options, environment, clientIdManager),
242
- });
243
- },
244
254
  emit: (type, payload) => {
245
- const event = createRelayEvent(type, payload, options, environment, clientIdManager);
255
+ const event = createRelayEvent(type, payload, configManager.get(), environment, clientIdManager);
246
256
  call(event);
247
- return emit({
248
- options,
249
- environment,
250
- event,
251
- });
257
+ const params = { config: configManager.get(), environment, event };
258
+ return configManager.get().mode === "validate"
259
+ ? validate(params)
260
+ : emit(params);
252
261
  },
253
- getMeta: (type) => createMeta(type, options, environment, clientIdManager),
262
+ getMeta: (type) => createMeta(type, configManager.get(), environment, clientIdManager),
254
263
  on: (type, callback) => add({ type, callback }),
255
264
  off: (type, callback) => remove(type, callback),
265
+ updateConfig: (config) => configManager.update(config),
256
266
  version,
257
267
  };
258
268
  }
package/lib/relay.js CHANGED
@@ -1,10 +1,10 @@
1
- async function callEventApi({ event, options, environment, }) {
2
- const { token, host, organizationId } = options;
1
+ async function callEventApi({ event, config, environment, }) {
2
+ const { token, host, organizationId } = config;
3
3
  const headers = {
4
4
  "Content-Type": "application/json",
5
5
  Authorization: `Bearer ${token}`,
6
6
  };
7
- const response = await environment.fetch(`${host}/rest/organizations/${organizationId}/events/v1${options.mode == "validate" ? "/validate" : ""}`, {
7
+ const response = await environment.fetch(`${host}/rest/organizations/${organizationId}/events/v1${config.mode == "validate" ? "/validate" : ""}`, {
8
8
  method: "POST",
9
9
  body: JSON.stringify([event]),
10
10
  headers,
@@ -12,7 +12,6 @@ async function callEventApi({ event, options, environment, }) {
12
12
  const data = await response.json();
13
13
  if (!response.ok) {
14
14
  throw new Error({
15
- responseType: "serviceError",
16
15
  ...data,
17
16
  });
18
17
  }
@@ -138,22 +137,22 @@ function isBrowser() {
138
137
  }
139
138
  }
140
139
 
141
- const version = "0.3.1" ;
140
+ const version = "0.3.3" ;
142
141
 
143
- function getConfig(options) {
144
- const { trackingId } = options;
142
+ function getEventConfig(config) {
143
+ const { trackingId } = config;
145
144
  return { trackingId };
146
145
  }
147
146
  function getSource() {
148
147
  return `relay@${version}`;
149
148
  }
150
- function createMeta(type, options, environment, clientIdManager) {
149
+ function createMeta(type, config, environment, clientIdManager) {
151
150
  const { getReferrerUrl, getUrl, getUserAgent } = environment;
152
- const config = getConfig(options);
151
+ const eventConfig = getEventConfig(config);
153
152
  const { clientId } = clientIdManager;
154
153
  return Object.freeze({
155
154
  type,
156
- config,
155
+ config: eventConfig,
157
156
  ts: Date.now(),
158
157
  source: getSource(),
159
158
  clientId,
@@ -163,19 +162,13 @@ function createMeta(type, options, environment, clientIdManager) {
163
162
  });
164
163
  }
165
164
 
166
- function createRelayEvent(type, payload, options, environment, clientIdManager) {
165
+ function createRelayEvent(type, payload, config, environment, clientIdManager) {
167
166
  return {
168
167
  ...payload,
169
- meta: createMeta(type, options, environment, clientIdManager),
168
+ meta: createMeta(type, config, environment, clientIdManager),
170
169
  };
171
170
  }
172
171
 
173
- async function validate(params) {
174
- const data = await callEventApi(params);
175
- const { valid, errors } = data[0];
176
- return { valid, errors: errors ?? [], responseType: "validation" };
177
- }
178
-
179
172
  const ANY_EVENT_TYPE = "*";
180
173
  function createListenerManager() {
181
174
  const listeners = [];
@@ -231,32 +224,49 @@ function createListenerManager() {
231
224
  };
232
225
  }
233
226
 
234
- function createRelay(options) {
227
+ function pick({ host, organizationId, token, trackingId, ...rest }) {
228
+ return Object.freeze({
229
+ host,
230
+ organizationId,
231
+ token,
232
+ trackingId,
233
+ ...(!!rest.mode && { mode: rest.mode }),
234
+ });
235
+ }
236
+ function createConfigManager(initialConfig) {
237
+ let _config = pick(initialConfig);
238
+ return {
239
+ get: () => _config,
240
+ update: (updatedConfig) => {
241
+ _config = pick({ ..._config, ...updatedConfig });
242
+ },
243
+ };
244
+ }
245
+
246
+ async function validate(params) {
247
+ const data = await callEventApi(params);
248
+ const { valid, errors } = data[0];
249
+ return { valid, errors: errors ?? [] };
250
+ }
251
+
252
+ function createRelay(initialConfig) {
235
253
  const environment = currentEnvironment();
236
254
  const clientIdManager = createClientIdManager(environment);
255
+ const configManager = createConfigManager(initialConfig);
237
256
  const { add, call, remove } = createListenerManager();
238
257
  return {
239
- validate: (type, payload) => {
240
- const event = createRelayEvent(type, payload, options, environment, clientIdManager);
241
- call(event);
242
- return validate({
243
- options,
244
- environment,
245
- event: createRelayEvent(type, payload, options, environment, clientIdManager),
246
- });
247
- },
248
258
  emit: (type, payload) => {
249
- const event = createRelayEvent(type, payload, options, environment, clientIdManager);
259
+ const event = createRelayEvent(type, payload, configManager.get(), environment, clientIdManager);
250
260
  call(event);
251
- return emit({
252
- options,
253
- environment,
254
- event,
255
- });
261
+ const params = { config: configManager.get(), environment, event };
262
+ return configManager.get().mode === "validate"
263
+ ? validate(params)
264
+ : emit(params);
256
265
  },
257
- getMeta: (type) => createMeta(type, options, environment, clientIdManager),
266
+ getMeta: (type) => createMeta(type, configManager.get(), environment, clientIdManager),
258
267
  on: (type, callback) => add({ type, callback }),
259
268
  off: (type, callback) => remove(type, callback),
269
+ updateConfig: (config) => configManager.update(config),
260
270
  version,
261
271
  };
262
272
  }
package/lib/relay.mjs CHANGED
@@ -1,12 +1,12 @@
1
1
  import crypto from 'crypto';
2
2
 
3
- async function callEventApi({ event, options, environment, }) {
4
- const { token, host, organizationId } = options;
3
+ async function callEventApi({ event, config, environment, }) {
4
+ const { token, host, organizationId } = config;
5
5
  const headers = {
6
6
  "Content-Type": "application/json",
7
7
  Authorization: `Bearer ${token}`,
8
8
  };
9
- const response = await environment.fetch(`${host}/rest/organizations/${organizationId}/events/v1${options.mode == "validate" ? "/validate" : ""}`, {
9
+ const response = await environment.fetch(`${host}/rest/organizations/${organizationId}/events/v1${config.mode == "validate" ? "/validate" : ""}`, {
10
10
  method: "POST",
11
11
  body: JSON.stringify([event]),
12
12
  headers,
@@ -14,7 +14,6 @@ async function callEventApi({ event, options, environment, }) {
14
14
  const data = await response.json();
15
15
  if (!response.ok) {
16
16
  throw new Error({
17
- responseType: "serviceError",
18
17
  ...data,
19
18
  });
20
19
  }
@@ -132,22 +131,22 @@ function isBrowser() {
132
131
  }
133
132
  }
134
133
 
135
- const version = "0.3.1" ;
134
+ const version = "0.3.3" ;
136
135
 
137
- function getConfig(options) {
138
- const { trackingId } = options;
136
+ function getEventConfig(config) {
137
+ const { trackingId } = config;
139
138
  return { trackingId };
140
139
  }
141
140
  function getSource() {
142
141
  return `relay@${version}`;
143
142
  }
144
- function createMeta(type, options, environment, clientIdManager) {
143
+ function createMeta(type, config, environment, clientIdManager) {
145
144
  const { getReferrerUrl, getUrl, getUserAgent } = environment;
146
- const config = getConfig(options);
145
+ const eventConfig = getEventConfig(config);
147
146
  const { clientId } = clientIdManager;
148
147
  return Object.freeze({
149
148
  type,
150
- config,
149
+ config: eventConfig,
151
150
  ts: Date.now(),
152
151
  source: getSource(),
153
152
  clientId,
@@ -157,19 +156,13 @@ function createMeta(type, options, environment, clientIdManager) {
157
156
  });
158
157
  }
159
158
 
160
- function createRelayEvent(type, payload, options, environment, clientIdManager) {
159
+ function createRelayEvent(type, payload, config, environment, clientIdManager) {
161
160
  return {
162
161
  ...payload,
163
- meta: createMeta(type, options, environment, clientIdManager),
162
+ meta: createMeta(type, config, environment, clientIdManager),
164
163
  };
165
164
  }
166
165
 
167
- async function validate(params) {
168
- const data = await callEventApi(params);
169
- const { valid, errors } = data[0];
170
- return { valid, errors: errors ?? [], responseType: "validation" };
171
- }
172
-
173
166
  const ANY_EVENT_TYPE = "*";
174
167
  function createListenerManager() {
175
168
  const listeners = [];
@@ -225,32 +218,49 @@ function createListenerManager() {
225
218
  };
226
219
  }
227
220
 
228
- function createRelay(options) {
221
+ function pick({ host, organizationId, token, trackingId, ...rest }) {
222
+ return Object.freeze({
223
+ host,
224
+ organizationId,
225
+ token,
226
+ trackingId,
227
+ ...(!!rest.mode && { mode: rest.mode }),
228
+ });
229
+ }
230
+ function createConfigManager(initialConfig) {
231
+ let _config = pick(initialConfig);
232
+ return {
233
+ get: () => _config,
234
+ update: (updatedConfig) => {
235
+ _config = pick({ ..._config, ...updatedConfig });
236
+ },
237
+ };
238
+ }
239
+
240
+ async function validate(params) {
241
+ const data = await callEventApi(params);
242
+ const { valid, errors } = data[0];
243
+ return { valid, errors: errors ?? [] };
244
+ }
245
+
246
+ function createRelay(initialConfig) {
229
247
  const environment = currentEnvironment();
230
248
  const clientIdManager = createClientIdManager(environment);
249
+ const configManager = createConfigManager(initialConfig);
231
250
  const { add, call, remove } = createListenerManager();
232
251
  return {
233
- validate: (type, payload) => {
234
- const event = createRelayEvent(type, payload, options, environment, clientIdManager);
235
- call(event);
236
- return validate({
237
- options,
238
- environment,
239
- event: createRelayEvent(type, payload, options, environment, clientIdManager),
240
- });
241
- },
242
252
  emit: (type, payload) => {
243
- const event = createRelayEvent(type, payload, options, environment, clientIdManager);
253
+ const event = createRelayEvent(type, payload, configManager.get(), environment, clientIdManager);
244
254
  call(event);
245
- return emit({
246
- options,
247
- environment,
248
- event,
249
- });
255
+ const params = { config: configManager.get(), environment, event };
256
+ return configManager.get().mode === "validate"
257
+ ? validate(params)
258
+ : emit(params);
250
259
  },
251
- getMeta: (type) => createMeta(type, options, environment, clientIdManager),
260
+ getMeta: (type) => createMeta(type, configManager.get(), environment, clientIdManager),
252
261
  on: (type, callback) => add({ type, callback }),
253
262
  off: (type, callback) => remove(type, callback),
263
+ updateConfig: (config) => configManager.update(config),
254
264
  version,
255
265
  };
256
266
  }
@@ -0,0 +1,14 @@
1
+ export type RelayMode = "emit" | "validate";
2
+ export interface RelayConfig {
3
+ host: string;
4
+ organizationId: string;
5
+ token: string;
6
+ trackingId: string;
7
+ mode?: RelayMode;
8
+ }
9
+ export interface ConfigManager {
10
+ get: () => Readonly<RelayConfig>;
11
+ update: (updatedConfig: Partial<RelayConfig>) => void;
12
+ }
13
+ export declare function createConfigManager(initialConfig: RelayConfig): Readonly<ConfigManager>;
14
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;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,12 +1,12 @@
1
1
  import { ClientIdManager } from "../../client-id/client-id";
2
2
  import { Environment } from "../../environment/environment";
3
- import { RelayOptions } from "../../relay";
4
- interface Config {
3
+ import { RelayConfig } from "../../config/config";
4
+ interface EventConfig {
5
5
  trackingId: string;
6
6
  }
7
7
  export interface Meta {
8
8
  type: string;
9
- config: Config;
9
+ config: EventConfig;
10
10
  ts: number;
11
11
  source: string;
12
12
  clientId: string;
@@ -14,6 +14,6 @@ export interface Meta {
14
14
  referrerUrl: string | null;
15
15
  url: string | null;
16
16
  }
17
- export declare function createMeta(type: string, options: RelayOptions, environment: Environment, clientIdManager: ClientIdManager): Readonly<Meta>;
17
+ export declare function createMeta(type: string, config: RelayConfig, environment: Environment, clientIdManager: ClientIdManager): Readonly<Meta>;
18
18
  export {};
19
19
  //# sourceMappingURL=meta.d.ts.map
@@ -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,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,UAAU,MAAM;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAWD,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,GAC/B,QAAQ,CAAC,IAAI,CAAC,CAehB"}
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,MAAM,qBAAqB,CAAC;AAGlD,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;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"}
@@ -1,9 +1,9 @@
1
1
  import { ClientIdManager } from "../client-id/client-id";
2
2
  import { Environment } from "../environment/environment";
3
- import { RelayOptions, RelayPayload } from "../relay";
3
+ import { RelayConfig, RelayPayload } from "../relay";
4
4
  import { Meta } from "./meta/meta";
5
5
  export interface RelayEvent extends RelayPayload {
6
6
  meta: Readonly<Meta>;
7
7
  }
8
- export declare function createRelayEvent(type: string, payload: RelayPayload, options: RelayOptions, environment: Environment, clientIdManager: ClientIdManager): Readonly<RelayEvent>;
8
+ export declare function createRelayEvent(type: string, payload: RelayPayload, config: RelayConfig, environment: Environment, clientIdManager: ClientIdManager): Readonly<RelayEvent>;
9
9
  //# sourceMappingURL=relay-event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-event.d.ts","sourceRoot":"","sources":["../../../src/event/relay-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAc,IAAI,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,GAC/B,QAAQ,CAAC,UAAU,CAAC,CAKtB"}
1
+ {"version":3,"file":"relay-event.d.ts","sourceRoot":"","sources":["../../../src/event/relay-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAc,IAAI,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,GAC/B,QAAQ,CAAC,UAAU,CAAC,CAKtB"}
@@ -1,11 +1,10 @@
1
1
  import { Environment } from "../environment/environment";
2
- import { RelayOptions } from "../relay";
3
2
  import { RelayEvent } from "../event/relay-event";
3
+ import { RelayConfig } from "../config/config";
4
4
  export interface EventApiCallParams {
5
- options: RelayOptions;
5
+ config: RelayConfig;
6
6
  environment: Environment;
7
7
  event: Readonly<RelayEvent>;
8
8
  }
9
- export type RelayMode = "emit" | "validate";
10
- export declare function callEventApi({ event, options, environment, }: EventApiCallParams): Promise<any>;
9
+ export declare function callEventApi({ event, config, environment, }: EventApiCallParams): Promise<any>;
11
10
  //# sourceMappingURL=event-api-caller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-api-caller.d.ts","sourceRoot":"","sources":["../../../src/event-api-call/event-api-caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;CAC7B;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5C,wBAAsB,YAAY,CAAC,EACjC,KAAK,EACL,OAAO,EACP,WAAW,GACZ,EAAE,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CA2BnC"}
1
+ {"version":3,"file":"event-api-caller.d.ts","sourceRoot":"","sources":["../../../src/event-api-call/event-api-caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;CAC7B;AAED,wBAAsB,YAAY,CAAC,EACjC,KAAK,EACL,MAAM,EACN,WAAW,GACZ,EAAE,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CA0BnC"}
@@ -1,24 +1,17 @@
1
- import { ValidationError, ValidationResponse } from "./validate/validate";
2
- import { RelayMode } from "./event-api-call/event-api-caller";
3
1
  import { Meta } from "./event/meta/meta";
4
2
  import { EventCallback } from "./listener/listener";
3
+ import { RelayConfig } from "./config/config";
4
+ import { ValidationError, ValidationResponse } from "./validate/validate";
5
5
  type RelayPayload = Record<string, unknown>;
6
6
  type Off = () => void;
7
- interface RelayOptions {
8
- host: string;
9
- organizationId: string;
10
- token: string;
11
- trackingId: string;
12
- mode?: RelayMode;
13
- }
14
7
  interface Relay {
15
- validate: (type: string, payload: RelayPayload) => Promise<ValidationResponse>;
16
- emit: (type: string, payload: RelayPayload) => Promise<void>;
8
+ emit: (type: string, payload: RelayPayload) => Promise<void | ValidationResponse>;
17
9
  getMeta: (type: string) => Meta;
18
10
  on: (type: string, callback: EventCallback) => Off;
19
11
  off: (type: string, callback?: EventCallback) => void;
12
+ updateConfig: (config: Partial<RelayConfig>) => void;
20
13
  version: string;
21
14
  }
22
- export declare function createRelay(options: RelayOptions): Relay;
23
- export type { RelayPayload, RelayOptions, ValidationError, ValidationResponse };
15
+ export declare function createRelay(initialConfig: RelayConfig): Relay;
16
+ export type { RelayPayload, RelayConfig, ValidationError, ValidationResponse };
24
17
  //# sourceMappingURL=relay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/relay.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,eAAe,EACf,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAc,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAyB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE3E,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,KAAK,GAAG,GAAG,MAAM,IAAI,CAAC;AAEtB,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,KAAK;IACb,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,GAAG,CAAC;IACnD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,KAAK,CAoDxD;AAED,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/relay.ts"],"names":[],"mappings":"AAKA,OAAO,EAAc,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAyB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAuB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAEL,eAAe,EACf,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,KAAK,GAAG,GAAG,MAAM,IAAI,CAAC;AAEtB,UAAU,KAAK;IACb,IAAI,EAAE,CACJ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,GAAG,CAAC;IACnD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACtD,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,WAAW,GAAG,KAAK,CAgC7D;AAED,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC"}
@@ -6,7 +6,6 @@ export interface ValidationError {
6
6
  }
7
7
  export interface ValidationResponse {
8
8
  valid: boolean;
9
- responseType: "validation";
10
9
  errors: ValidationError[];
11
10
  }
12
11
  export declare function validate(params: EventApiCallParams): Promise<Readonly<ValidationResponse>>;
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/validate/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAEnB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAMvC"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/validate/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EACnB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAMvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coveo/relay",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "A library for sending analytics events using Coveo's Event protocol.",
5
5
  "files": [
6
6
  "lib/**/*"