coveo.analytics 2.28.21 → 2.28.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,18 +57,18 @@ export interface SearchEventRequest extends EventBaseRequest {
57
57
  export interface PreparedSearchEventRequest extends Omit<SearchEventRequest, 'searchQueryUid'> {
58
58
  }
59
59
  export interface DocumentInformation {
60
- documentUri: string;
60
+ documentUri?: string;
61
61
  documentUriHash: string;
62
- collectionName: string;
62
+ collectionName?: string;
63
63
  sourceName: string;
64
64
  documentPosition: number;
65
65
  actionCause: string;
66
66
  searchQueryUid: string;
67
- documentTitle: string;
68
- documentUrl: string;
69
- documentAuthor: string;
70
- queryPipeline: string;
71
- rankingModifier: string;
67
+ documentTitle?: string;
68
+ documentUrl?: string;
69
+ documentAuthor?: string;
70
+ queryPipeline?: string;
71
+ rankingModifier?: string;
72
72
  }
73
73
  export interface ClickEventRequest extends EventBaseRequest, DocumentInformation {
74
74
  }
@@ -1,7 +1,7 @@
1
1
  import { AnalyticsClient, ClientOptions } from '../client/analytics';
2
2
  import { SearchEventRequest } from '../events';
3
3
  import { DocumentIdentifier, FacetStateMetadata, GeneratedAnswerBaseMeta, GeneratedAnswerCitationMeta, GeneratedAnswerFeedbackMeta, GeneratedAnswerRephraseMeta, GeneratedAnswerSourceHoverMeta, GeneratedAnswerStreamEndMeta, PartialDocumentInformation, SearchPageEvents, SmartSnippetDocumentIdentifier, SmartSnippetFeedbackReason, SmartSnippetLinkMeta, SmartSnippetSuggestionMeta } from '../searchPage/searchPageEvents';
4
- import { ExpandToFullUIMetadata, InsightEvents, InsightFacetMetadata, InsightInterfaceChangeMetadata, InsightStaticFilterToggleValueMetadata, InsightFacetRangeMetadata, InsightCategoryFacetMetadata, CaseMetadata, InsightFacetSortMeta, InsightFacetBaseMeta, InsightQueryErrorMeta, InsightPagerMetadata, InsightResultsSortMetadata, UserActionsDocumentMetadata, UserActionsPageViewMetadata } from './insightEvents';
4
+ import { ExpandToFullUIMetadata, InsightEvents, InsightFacetMetadata, InsightInterfaceChangeMetadata, InsightStaticFilterToggleValueMetadata, InsightFacetRangeMetadata, InsightCategoryFacetMetadata, CaseMetadata, InsightFacetSortMeta, InsightFacetBaseMeta, InsightQueryErrorMeta, InsightPagerMetadata, InsightResultsSortMetadata, UserActionsDocumentMetadata, UserActionsPageViewMetadata, CreateArticleMetadata } from './insightEvents';
5
5
  export interface InsightClientProvider {
6
6
  getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;
7
7
  getSearchUID: () => string;
@@ -54,6 +54,7 @@ export declare class CoveoInsightClient {
54
54
  logShowFollowingSessions(metadata: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
55
55
  logViewedDocumentClick(document: UserActionsDocumentMetadata, metadata: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
56
56
  logPageViewClick(pageView: UserActionsPageViewMetadata, metadata: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
57
+ logCreateArticle(createArticleMetadata: CreateArticleMetadata, metadata?: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
57
58
  logDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
58
59
  logCopyToClipboard(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
59
60
  logCaseSendEmail(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
@@ -6,7 +6,8 @@ export declare enum InsightEvents {
6
6
  showPrecedingSessions = "showPrecedingSessions",
7
7
  showFollowingSessions = "showFollowingSessions",
8
8
  clickViewedDocument = "clickViewedDocument",
9
- clickPageView = "clickPageView"
9
+ clickPageView = "clickPageView",
10
+ createArticle = "createArticle"
10
11
  }
11
12
  export interface CaseMetadata {
12
13
  caseId?: string;
@@ -28,6 +29,10 @@ export interface UserActionsPageViewMetadata {
28
29
  contentIdKey: string;
29
30
  contentIdValue: string;
30
31
  }
32
+ export interface CreateArticleMetadata {
33
+ articleType: string;
34
+ triggeredBy: string;
35
+ }
31
36
  export interface InsightInterfaceChangeMetadata extends InterfaceChangeMetadata, CaseMetadata {
32
37
  }
33
38
  export interface InsightFacetMetadata extends FacetMetadata, CaseMetadata {
@@ -1 +1 @@
1
- export declare const libVersion = "2.28.21";
1
+ export declare const libVersion = "2.28.23";
package/dist/library.cjs CHANGED
@@ -731,7 +731,7 @@ function sha1(bytes) {
731
731
  const v5 = v35('v5', 0x50, sha1);
732
732
  var uuidv5 = v5;
733
733
 
734
- var libVersion = "2.28.21" ;
734
+ var libVersion = "2.28.23" ;
735
735
 
736
736
  var getFormattedLocation = function (location) {
737
737
  return "".concat(location.protocol, "//").concat(location.hostname).concat(location.pathname.indexOf('/') === 0 ? location.pathname : "/".concat(location.pathname)).concat(location.search);
@@ -83061,6 +83061,10 @@ var CoveoAnalyticsClient = (function () {
83061
83061
  this.clear();
83062
83062
  this.runtime.storage = new NullStorage();
83063
83063
  }
83064
+ this.addEventTypeMapping(exports.EventType.view, { newEventType: exports.EventType.view, addClientIdParameter: true });
83065
+ this.addEventTypeMapping(exports.EventType.click, { newEventType: exports.EventType.click, addClientIdParameter: true });
83066
+ this.addEventTypeMapping(exports.EventType.custom, { newEventType: exports.EventType.custom, addClientIdParameter: true });
83067
+ this.addEventTypeMapping(exports.EventType.search, { newEventType: exports.EventType.search, addClientIdParameter: true });
83064
83068
  }
83065
83069
  Object.defineProperty(CoveoAnalyticsClient.prototype, "defaultOptions", {
83066
83070
  get: function () {
@@ -84046,7 +84050,6 @@ var CoveoUA = (function () {
84046
84050
  return _this.plugins.require(pluginKey, pluginOptions_1);
84047
84051
  });
84048
84052
  this.client.registerBeforeSendEventHook(function (eventType, payload) { return (__assign(__assign({}, payload), _this.params)); });
84049
- this.client.addEventTypeMapping(exports.EventType.view, { newEventType: exports.EventType.view, addClientIdParameter: true });
84050
84053
  }
84051
84054
  else {
84052
84055
  throw new Error("You must pass either your token or a valid object when you call 'init'");
@@ -84203,6 +84206,7 @@ exports.InsightEvents = void 0;
84203
84206
  InsightEvents["showFollowingSessions"] = "showFollowingSessions";
84204
84207
  InsightEvents["clickViewedDocument"] = "clickViewedDocument";
84205
84208
  InsightEvents["clickPageView"] = "clickPageView";
84209
+ InsightEvents["createArticle"] = "createArticle";
84206
84210
  })(exports.InsightEvents || (exports.InsightEvents = {}));
84207
84211
 
84208
84212
  var _a;
@@ -84325,12 +84329,6 @@ var CustomEventsTypes = (_a = {},
84325
84329
  _a[exports.SearchPageEvents.recentResultClick] = 'recentlyClickedDocuments',
84326
84330
  _a[exports.SearchPageEvents.clearRecentResults] = 'recentlyClickedDocuments',
84327
84331
  _a[exports.SearchPageEvents.showLessFoldedResults] = 'folding',
84328
- _a[exports.InsightEvents.expandToFullUI] = 'interface',
84329
- _a[exports.InsightEvents.openUserActions] = 'User Actions',
84330
- _a[exports.InsightEvents.showPrecedingSessions] = 'User Actions',
84331
- _a[exports.InsightEvents.showFollowingSessions] = 'User Actions',
84332
- _a[exports.InsightEvents.clickViewedDocument] = 'User Actions',
84333
- _a[exports.InsightEvents.clickPageView] = 'User Actions',
84334
84332
  _a[exports.SearchPageEvents.caseDetach] = 'case',
84335
84333
  _a[exports.SearchPageEvents.likeGeneratedAnswer] = 'generatedAnswer',
84336
84334
  _a[exports.SearchPageEvents.dislikeGeneratedAnswer] = 'generatedAnswer',
@@ -84341,6 +84339,13 @@ var CustomEventsTypes = (_a = {},
84341
84339
  _a[exports.SearchPageEvents.generatedAnswerHideAnswers] = 'generatedAnswer',
84342
84340
  _a[exports.SearchPageEvents.generatedAnswerShowAnswers] = 'generatedAnswer',
84343
84341
  _a[exports.SearchPageEvents.generatedAnswerFeedbackSubmit] = 'generatedAnswer',
84342
+ _a[exports.InsightEvents.expandToFullUI] = 'interface',
84343
+ _a[exports.InsightEvents.openUserActions] = 'User Actions',
84344
+ _a[exports.InsightEvents.showPrecedingSessions] = 'User Actions',
84345
+ _a[exports.InsightEvents.showFollowingSessions] = 'User Actions',
84346
+ _a[exports.InsightEvents.clickViewedDocument] = 'User Actions',
84347
+ _a[exports.InsightEvents.clickPageView] = 'User Actions',
84348
+ _a[exports.InsightEvents.createArticle] = 'createArticle',
84344
84349
  _a);
84345
84350
 
84346
84351
  var NoopAnalytics = (function () {
@@ -86062,6 +86067,9 @@ var CoveoInsightClient = (function () {
86062
86067
  CoveoInsightClient.prototype.logPageViewClick = function (pageView, metadata) {
86063
86068
  return this.logCustomEvent(exports.InsightEvents.clickPageView, __assign(__assign({}, generateMetadataToSend(metadata, false)), { pageView: pageView }));
86064
86069
  };
86070
+ CoveoInsightClient.prototype.logCreateArticle = function (createArticleMetadata, metadata) {
86071
+ return this.logCustomEvent(exports.InsightEvents.createArticle, metadata ? __assign(__assign({}, generateMetadataToSend(metadata, false)), createArticleMetadata) : createArticleMetadata);
86072
+ };
86065
86073
  CoveoInsightClient.prototype.logDocumentOpen = function (info, identifier, metadata) {
86066
86074
  return this.logClickEvent(exports.SearchPageEvents.documentOpen, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
86067
86075
  };
@@ -596,7 +596,7 @@ function sha1(bytes) {
596
596
  const v5 = v35('v5', 0x50, sha1);
597
597
  var uuidv5 = v5;
598
598
 
599
- const libVersion = "2.28.21" ;
599
+ const libVersion = "2.28.23" ;
600
600
 
601
601
  const getFormattedLocation = (location) => `${location.protocol}//${location.hostname}${location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`}${location.search}`;
602
602
 
@@ -1279,6 +1279,10 @@ class CoveoAnalyticsClient {
1279
1279
  this.clear();
1280
1280
  this.runtime.storage = new NullStorage();
1281
1281
  }
1282
+ this.addEventTypeMapping(EventType.view, { newEventType: EventType.view, addClientIdParameter: true });
1283
+ this.addEventTypeMapping(EventType.click, { newEventType: EventType.click, addClientIdParameter: true });
1284
+ this.addEventTypeMapping(EventType.custom, { newEventType: EventType.custom, addClientIdParameter: true });
1285
+ this.addEventTypeMapping(EventType.search, { newEventType: EventType.search, addClientIdParameter: true });
1282
1286
  }
1283
1287
  initRuntime(clientsOptions) {
1284
1288
  if (hasWindow() && hasDocument()) {
@@ -1689,6 +1693,7 @@ var InsightEvents;
1689
1693
  InsightEvents["showFollowingSessions"] = "showFollowingSessions";
1690
1694
  InsightEvents["clickViewedDocument"] = "clickViewedDocument";
1691
1695
  InsightEvents["clickPageView"] = "clickPageView";
1696
+ InsightEvents["createArticle"] = "createArticle";
1692
1697
  })(InsightEvents || (InsightEvents = {}));
1693
1698
 
1694
1699
  var SearchPageEvents;
@@ -1810,12 +1815,6 @@ const CustomEventsTypes = {
1810
1815
  [SearchPageEvents.recentResultClick]: 'recentlyClickedDocuments',
1811
1816
  [SearchPageEvents.clearRecentResults]: 'recentlyClickedDocuments',
1812
1817
  [SearchPageEvents.showLessFoldedResults]: 'folding',
1813
- [InsightEvents.expandToFullUI]: 'interface',
1814
- [InsightEvents.openUserActions]: 'User Actions',
1815
- [InsightEvents.showPrecedingSessions]: 'User Actions',
1816
- [InsightEvents.showFollowingSessions]: 'User Actions',
1817
- [InsightEvents.clickViewedDocument]: 'User Actions',
1818
- [InsightEvents.clickPageView]: 'User Actions',
1819
1818
  [SearchPageEvents.caseDetach]: 'case',
1820
1819
  [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',
1821
1820
  [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',
@@ -1826,6 +1825,13 @@ const CustomEventsTypes = {
1826
1825
  [SearchPageEvents.generatedAnswerHideAnswers]: 'generatedAnswer',
1827
1826
  [SearchPageEvents.generatedAnswerShowAnswers]: 'generatedAnswer',
1828
1827
  [SearchPageEvents.generatedAnswerFeedbackSubmit]: 'generatedAnswer',
1828
+ [InsightEvents.expandToFullUI]: 'interface',
1829
+ [InsightEvents.openUserActions]: 'User Actions',
1830
+ [InsightEvents.showPrecedingSessions]: 'User Actions',
1831
+ [InsightEvents.showFollowingSessions]: 'User Actions',
1832
+ [InsightEvents.clickViewedDocument]: 'User Actions',
1833
+ [InsightEvents.clickPageView]: 'User Actions',
1834
+ [InsightEvents.createArticle]: 'createArticle',
1829
1835
  };
1830
1836
 
1831
1837
  class NoopAnalytics {
@@ -3074,6 +3080,9 @@ class CoveoInsightClient {
3074
3080
  logPageViewClick(pageView, metadata) {
3075
3081
  return this.logCustomEvent(InsightEvents.clickPageView, Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), { pageView }));
3076
3082
  }
3083
+ logCreateArticle(createArticleMetadata, metadata) {
3084
+ return this.logCustomEvent(InsightEvents.createArticle, metadata ? Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), createArticleMetadata) : createArticleMetadata);
3085
+ }
3077
3086
  logDocumentOpen(info, identifier, metadata) {
3078
3087
  return this.logClickEvent(SearchPageEvents.documentOpen, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
3079
3088
  }
package/dist/library.js CHANGED
@@ -731,7 +731,7 @@ function sha1(bytes) {
731
731
  const v5 = v35('v5', 0x50, sha1);
732
732
  var uuidv5 = v5;
733
733
 
734
- var libVersion = "2.28.21" ;
734
+ var libVersion = "2.28.23" ;
735
735
 
736
736
  var getFormattedLocation = function (location) {
737
737
  return "".concat(location.protocol, "//").concat(location.hostname).concat(location.pathname.indexOf('/') === 0 ? location.pathname : "/".concat(location.pathname)).concat(location.search);
@@ -83061,6 +83061,10 @@ var CoveoAnalyticsClient = (function () {
83061
83061
  this.clear();
83062
83062
  this.runtime.storage = new NullStorage();
83063
83063
  }
83064
+ this.addEventTypeMapping(exports.EventType.view, { newEventType: exports.EventType.view, addClientIdParameter: true });
83065
+ this.addEventTypeMapping(exports.EventType.click, { newEventType: exports.EventType.click, addClientIdParameter: true });
83066
+ this.addEventTypeMapping(exports.EventType.custom, { newEventType: exports.EventType.custom, addClientIdParameter: true });
83067
+ this.addEventTypeMapping(exports.EventType.search, { newEventType: exports.EventType.search, addClientIdParameter: true });
83064
83068
  }
83065
83069
  Object.defineProperty(CoveoAnalyticsClient.prototype, "defaultOptions", {
83066
83070
  get: function () {
@@ -84046,7 +84050,6 @@ var CoveoUA = (function () {
84046
84050
  return _this.plugins.require(pluginKey, pluginOptions_1);
84047
84051
  });
84048
84052
  this.client.registerBeforeSendEventHook(function (eventType, payload) { return (__assign(__assign({}, payload), _this.params)); });
84049
- this.client.addEventTypeMapping(exports.EventType.view, { newEventType: exports.EventType.view, addClientIdParameter: true });
84050
84053
  }
84051
84054
  else {
84052
84055
  throw new Error("You must pass either your token or a valid object when you call 'init'");
@@ -84203,6 +84206,7 @@ exports.InsightEvents = void 0;
84203
84206
  InsightEvents["showFollowingSessions"] = "showFollowingSessions";
84204
84207
  InsightEvents["clickViewedDocument"] = "clickViewedDocument";
84205
84208
  InsightEvents["clickPageView"] = "clickPageView";
84209
+ InsightEvents["createArticle"] = "createArticle";
84206
84210
  })(exports.InsightEvents || (exports.InsightEvents = {}));
84207
84211
 
84208
84212
  var _a;
@@ -84325,12 +84329,6 @@ var CustomEventsTypes = (_a = {},
84325
84329
  _a[exports.SearchPageEvents.recentResultClick] = 'recentlyClickedDocuments',
84326
84330
  _a[exports.SearchPageEvents.clearRecentResults] = 'recentlyClickedDocuments',
84327
84331
  _a[exports.SearchPageEvents.showLessFoldedResults] = 'folding',
84328
- _a[exports.InsightEvents.expandToFullUI] = 'interface',
84329
- _a[exports.InsightEvents.openUserActions] = 'User Actions',
84330
- _a[exports.InsightEvents.showPrecedingSessions] = 'User Actions',
84331
- _a[exports.InsightEvents.showFollowingSessions] = 'User Actions',
84332
- _a[exports.InsightEvents.clickViewedDocument] = 'User Actions',
84333
- _a[exports.InsightEvents.clickPageView] = 'User Actions',
84334
84332
  _a[exports.SearchPageEvents.caseDetach] = 'case',
84335
84333
  _a[exports.SearchPageEvents.likeGeneratedAnswer] = 'generatedAnswer',
84336
84334
  _a[exports.SearchPageEvents.dislikeGeneratedAnswer] = 'generatedAnswer',
@@ -84341,6 +84339,13 @@ var CustomEventsTypes = (_a = {},
84341
84339
  _a[exports.SearchPageEvents.generatedAnswerHideAnswers] = 'generatedAnswer',
84342
84340
  _a[exports.SearchPageEvents.generatedAnswerShowAnswers] = 'generatedAnswer',
84343
84341
  _a[exports.SearchPageEvents.generatedAnswerFeedbackSubmit] = 'generatedAnswer',
84342
+ _a[exports.InsightEvents.expandToFullUI] = 'interface',
84343
+ _a[exports.InsightEvents.openUserActions] = 'User Actions',
84344
+ _a[exports.InsightEvents.showPrecedingSessions] = 'User Actions',
84345
+ _a[exports.InsightEvents.showFollowingSessions] = 'User Actions',
84346
+ _a[exports.InsightEvents.clickViewedDocument] = 'User Actions',
84347
+ _a[exports.InsightEvents.clickPageView] = 'User Actions',
84348
+ _a[exports.InsightEvents.createArticle] = 'createArticle',
84344
84349
  _a);
84345
84350
 
84346
84351
  var NoopAnalytics = (function () {
@@ -86062,6 +86067,9 @@ var CoveoInsightClient = (function () {
86062
86067
  CoveoInsightClient.prototype.logPageViewClick = function (pageView, metadata) {
86063
86068
  return this.logCustomEvent(exports.InsightEvents.clickPageView, __assign(__assign({}, generateMetadataToSend(metadata, false)), { pageView: pageView }));
86064
86069
  };
86070
+ CoveoInsightClient.prototype.logCreateArticle = function (createArticleMetadata, metadata) {
86071
+ return this.logCustomEvent(exports.InsightEvents.createArticle, metadata ? __assign(__assign({}, generateMetadataToSend(metadata, false)), createArticleMetadata) : createArticleMetadata);
86072
+ };
86065
86073
  CoveoInsightClient.prototype.logDocumentOpen = function (info, identifier, metadata) {
86066
86074
  return this.logClickEvent(exports.SearchPageEvents.documentOpen, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
86067
86075
  };
package/dist/library.mjs CHANGED
@@ -729,7 +729,7 @@ function sha1(bytes) {
729
729
  const v5 = v35('v5', 0x50, sha1);
730
730
  var uuidv5 = v5;
731
731
 
732
- var libVersion = "2.28.21" ;
732
+ var libVersion = "2.28.23" ;
733
733
 
734
734
  var getFormattedLocation = function (location) {
735
735
  return "".concat(location.protocol, "//").concat(location.hostname).concat(location.pathname.indexOf('/') === 0 ? location.pathname : "/".concat(location.pathname)).concat(location.search);
@@ -83059,6 +83059,10 @@ var CoveoAnalyticsClient = (function () {
83059
83059
  this.clear();
83060
83060
  this.runtime.storage = new NullStorage();
83061
83061
  }
83062
+ this.addEventTypeMapping(EventType.view, { newEventType: EventType.view, addClientIdParameter: true });
83063
+ this.addEventTypeMapping(EventType.click, { newEventType: EventType.click, addClientIdParameter: true });
83064
+ this.addEventTypeMapping(EventType.custom, { newEventType: EventType.custom, addClientIdParameter: true });
83065
+ this.addEventTypeMapping(EventType.search, { newEventType: EventType.search, addClientIdParameter: true });
83062
83066
  }
83063
83067
  Object.defineProperty(CoveoAnalyticsClient.prototype, "defaultOptions", {
83064
83068
  get: function () {
@@ -84044,7 +84048,6 @@ var CoveoUA = (function () {
84044
84048
  return _this.plugins.require(pluginKey, pluginOptions_1);
84045
84049
  });
84046
84050
  this.client.registerBeforeSendEventHook(function (eventType, payload) { return (__assign(__assign({}, payload), _this.params)); });
84047
- this.client.addEventTypeMapping(EventType.view, { newEventType: EventType.view, addClientIdParameter: true });
84048
84051
  }
84049
84052
  else {
84050
84053
  throw new Error("You must pass either your token or a valid object when you call 'init'");
@@ -84201,6 +84204,7 @@ var InsightEvents;
84201
84204
  InsightEvents["showFollowingSessions"] = "showFollowingSessions";
84202
84205
  InsightEvents["clickViewedDocument"] = "clickViewedDocument";
84203
84206
  InsightEvents["clickPageView"] = "clickPageView";
84207
+ InsightEvents["createArticle"] = "createArticle";
84204
84208
  })(InsightEvents || (InsightEvents = {}));
84205
84209
 
84206
84210
  var _a;
@@ -84323,12 +84327,6 @@ var CustomEventsTypes = (_a = {},
84323
84327
  _a[SearchPageEvents.recentResultClick] = 'recentlyClickedDocuments',
84324
84328
  _a[SearchPageEvents.clearRecentResults] = 'recentlyClickedDocuments',
84325
84329
  _a[SearchPageEvents.showLessFoldedResults] = 'folding',
84326
- _a[InsightEvents.expandToFullUI] = 'interface',
84327
- _a[InsightEvents.openUserActions] = 'User Actions',
84328
- _a[InsightEvents.showPrecedingSessions] = 'User Actions',
84329
- _a[InsightEvents.showFollowingSessions] = 'User Actions',
84330
- _a[InsightEvents.clickViewedDocument] = 'User Actions',
84331
- _a[InsightEvents.clickPageView] = 'User Actions',
84332
84330
  _a[SearchPageEvents.caseDetach] = 'case',
84333
84331
  _a[SearchPageEvents.likeGeneratedAnswer] = 'generatedAnswer',
84334
84332
  _a[SearchPageEvents.dislikeGeneratedAnswer] = 'generatedAnswer',
@@ -84339,6 +84337,13 @@ var CustomEventsTypes = (_a = {},
84339
84337
  _a[SearchPageEvents.generatedAnswerHideAnswers] = 'generatedAnswer',
84340
84338
  _a[SearchPageEvents.generatedAnswerShowAnswers] = 'generatedAnswer',
84341
84339
  _a[SearchPageEvents.generatedAnswerFeedbackSubmit] = 'generatedAnswer',
84340
+ _a[InsightEvents.expandToFullUI] = 'interface',
84341
+ _a[InsightEvents.openUserActions] = 'User Actions',
84342
+ _a[InsightEvents.showPrecedingSessions] = 'User Actions',
84343
+ _a[InsightEvents.showFollowingSessions] = 'User Actions',
84344
+ _a[InsightEvents.clickViewedDocument] = 'User Actions',
84345
+ _a[InsightEvents.clickPageView] = 'User Actions',
84346
+ _a[InsightEvents.createArticle] = 'createArticle',
84342
84347
  _a);
84343
84348
 
84344
84349
  var NoopAnalytics = (function () {
@@ -86060,6 +86065,9 @@ var CoveoInsightClient = (function () {
86060
86065
  CoveoInsightClient.prototype.logPageViewClick = function (pageView, metadata) {
86061
86066
  return this.logCustomEvent(InsightEvents.clickPageView, __assign(__assign({}, generateMetadataToSend(metadata, false)), { pageView: pageView }));
86062
86067
  };
86068
+ CoveoInsightClient.prototype.logCreateArticle = function (createArticleMetadata, metadata) {
86069
+ return this.logCustomEvent(InsightEvents.createArticle, metadata ? __assign(__assign({}, generateMetadataToSend(metadata, false)), createArticleMetadata) : createArticleMetadata);
86070
+ };
86063
86071
  CoveoInsightClient.prototype.logDocumentOpen = function (info, identifier, metadata) {
86064
86072
  return this.logClickEvent(SearchPageEvents.documentOpen, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
86065
86073
  };
@@ -658,7 +658,7 @@ const addPageViewToHistory = (pageViewValue) => __awaiter(void 0, void 0, void 0
658
658
  yield store.addElementAsync(historyElement);
659
659
  });
660
660
 
661
- const libVersion = "2.28.21" ;
661
+ const libVersion = "2.28.23" ;
662
662
 
663
663
  const getFormattedLocation = (location) => `${location.protocol}//${location.hostname}${location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`}${location.search}`;
664
664
 
@@ -1280,6 +1280,10 @@ class CoveoAnalyticsClient {
1280
1280
  this.clear();
1281
1281
  this.runtime.storage = new NullStorage();
1282
1282
  }
1283
+ this.addEventTypeMapping(EventType.view, { newEventType: EventType.view, addClientIdParameter: true });
1284
+ this.addEventTypeMapping(EventType.click, { newEventType: EventType.click, addClientIdParameter: true });
1285
+ this.addEventTypeMapping(EventType.custom, { newEventType: EventType.custom, addClientIdParameter: true });
1286
+ this.addEventTypeMapping(EventType.search, { newEventType: EventType.search, addClientIdParameter: true });
1283
1287
  }
1284
1288
  initRuntime(clientsOptions) {
1285
1289
  if (hasWindow() && hasDocument()) {
@@ -1710,6 +1714,7 @@ var InsightEvents;
1710
1714
  InsightEvents["showFollowingSessions"] = "showFollowingSessions";
1711
1715
  InsightEvents["clickViewedDocument"] = "clickViewedDocument";
1712
1716
  InsightEvents["clickPageView"] = "clickPageView";
1717
+ InsightEvents["createArticle"] = "createArticle";
1713
1718
  })(InsightEvents || (InsightEvents = {}));
1714
1719
 
1715
1720
  var SearchPageEvents;
@@ -1831,12 +1836,6 @@ const CustomEventsTypes = {
1831
1836
  [SearchPageEvents.recentResultClick]: 'recentlyClickedDocuments',
1832
1837
  [SearchPageEvents.clearRecentResults]: 'recentlyClickedDocuments',
1833
1838
  [SearchPageEvents.showLessFoldedResults]: 'folding',
1834
- [InsightEvents.expandToFullUI]: 'interface',
1835
- [InsightEvents.openUserActions]: 'User Actions',
1836
- [InsightEvents.showPrecedingSessions]: 'User Actions',
1837
- [InsightEvents.showFollowingSessions]: 'User Actions',
1838
- [InsightEvents.clickViewedDocument]: 'User Actions',
1839
- [InsightEvents.clickPageView]: 'User Actions',
1840
1839
  [SearchPageEvents.caseDetach]: 'case',
1841
1840
  [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',
1842
1841
  [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',
@@ -1847,6 +1846,13 @@ const CustomEventsTypes = {
1847
1846
  [SearchPageEvents.generatedAnswerHideAnswers]: 'generatedAnswer',
1848
1847
  [SearchPageEvents.generatedAnswerShowAnswers]: 'generatedAnswer',
1849
1848
  [SearchPageEvents.generatedAnswerFeedbackSubmit]: 'generatedAnswer',
1849
+ [InsightEvents.expandToFullUI]: 'interface',
1850
+ [InsightEvents.openUserActions]: 'User Actions',
1851
+ [InsightEvents.showPrecedingSessions]: 'User Actions',
1852
+ [InsightEvents.showFollowingSessions]: 'User Actions',
1853
+ [InsightEvents.clickViewedDocument]: 'User Actions',
1854
+ [InsightEvents.clickPageView]: 'User Actions',
1855
+ [InsightEvents.createArticle]: 'createArticle',
1850
1856
  };
1851
1857
 
1852
1858
  class NoopAnalytics {
@@ -3095,6 +3101,9 @@ class CoveoInsightClient {
3095
3101
  logPageViewClick(pageView, metadata) {
3096
3102
  return this.logCustomEvent(InsightEvents.clickPageView, Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), { pageView }));
3097
3103
  }
3104
+ logCreateArticle(createArticleMetadata, metadata) {
3105
+ return this.logCustomEvent(InsightEvents.createArticle, metadata ? Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), createArticleMetadata) : createArticleMetadata);
3106
+ }
3098
3107
  logDocumentOpen(info, identifier, metadata) {
3099
3108
  return this.logClickEvent(SearchPageEvents.documentOpen, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
3100
3109
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coveo.analytics",
3
- "version": "2.28.21",
3
+ "version": "2.28.23",
4
4
  "description": "📈 Coveo analytics client (node and browser compatible) ",
5
5
  "main": "dist/library.cjs",
6
6
  "module": "dist/browser.mjs",
@@ -1,4 +1,11 @@
1
- import {DefaultEventResponse, EventType, ViewEventRequest} from '../events';
1
+ import {
2
+ ClickEventRequest,
3
+ CustomEventRequest,
4
+ DefaultEventResponse,
5
+ EventType,
6
+ SearchEventRequest,
7
+ ViewEventRequest,
8
+ } from '../events';
2
9
  import {CoveoAnalyticsClient} from './analytics';
3
10
  import {IAnalyticsRequestOptions} from './analyticsRequestClient';
4
11
  import {CookieAndLocalStorage, CookieStorage, NullStorage} from '../storage';
@@ -29,6 +36,24 @@ describe('Analytics', () => {
29
36
  contentIdValue: 'value',
30
37
  language: 'en',
31
38
  };
39
+ const searchEvent: SearchEventRequest = {
40
+ searchQueryUid: 'sqUid',
41
+ actionCause: 'interfaceLoad',
42
+ queryText: 'test',
43
+ responseTime: 50,
44
+ };
45
+ const clickEvent: ClickEventRequest = {
46
+ searchQueryUid: 'sqUid',
47
+ actionCause: 'documentOpen',
48
+ documentPosition: 1,
49
+ documentUriHash: 'docUriHash',
50
+ sourceName: 'source',
51
+ };
52
+ const customEvent: CustomEventRequest = {
53
+ eventType: 'custom',
54
+ eventValue: 'value',
55
+ };
56
+
32
57
  const eventResponse: DefaultEventResponse = {
33
58
  visitId: 'firsttimevisiting',
34
59
  visitorId: aVisitorId,
@@ -158,7 +183,46 @@ describe('Analytics', () => {
158
183
  const [body] = getParsedBodyCalls();
159
184
 
160
185
  expect(body).toMatchObject({
161
- language: 'en',
186
+ clientId: '123',
187
+ userAgent: navigator.userAgent,
188
+ });
189
+ });
190
+
191
+ it('should append default values to the search event', async () => {
192
+ mockFetchRequestForEventType(EventType.search);
193
+
194
+ await client.sendSearchEvent(searchEvent);
195
+
196
+ const [body] = getParsedBodyCalls();
197
+
198
+ expect(body).toMatchObject({
199
+ clientId: '123',
200
+ userAgent: navigator.userAgent,
201
+ });
202
+ });
203
+
204
+ it('should append default values to the click event', async () => {
205
+ mockFetchRequestForEventType(EventType.click);
206
+
207
+ await client.sendClickEvent(clickEvent);
208
+
209
+ const [body] = getParsedBodyCalls();
210
+
211
+ expect(body).toMatchObject({
212
+ clientId: '123',
213
+ userAgent: navigator.userAgent,
214
+ });
215
+ });
216
+
217
+ it('should append default values to the custom event', async () => {
218
+ mockFetchRequestForEventType(EventType.custom);
219
+
220
+ await client.sendCustomEvent(customEvent);
221
+
222
+ const [body] = getParsedBodyCalls();
223
+
224
+ expect(body).toMatchObject({
225
+ clientId: '123',
162
226
  userAgent: navigator.userAgent,
163
227
  });
164
228
  });
@@ -187,6 +187,11 @@ export class CoveoAnalyticsClient implements AnalyticsClient, VisitorIdProvider
187
187
  this.clear();
188
188
  this.runtime.storage = new NullStorage();
189
189
  }
190
+
191
+ this.addEventTypeMapping(EventType.view, {newEventType: EventType.view, addClientIdParameter: true});
192
+ this.addEventTypeMapping(EventType.click, {newEventType: EventType.click, addClientIdParameter: true});
193
+ this.addEventTypeMapping(EventType.custom, {newEventType: EventType.custom, addClientIdParameter: true});
194
+ this.addEventTypeMapping(EventType.search, {newEventType: EventType.search, addClientIdParameter: true});
190
195
  }
191
196
 
192
197
  private initRuntime(clientsOptions: IAnalyticsClientOptions) {
@@ -48,7 +48,6 @@ export class CoveoUA {
48
48
  ...payload,
49
49
  ...this.params,
50
50
  }));
51
- this.client.addEventTypeMapping(EventType.view, {newEventType: EventType.view, addClientIdParameter: true});
52
51
  } else {
53
52
  throw new Error(`You must pass either your token or a valid object when you call 'init'`);
54
53
  }
package/src/events.ts CHANGED
@@ -71,19 +71,19 @@ export interface SearchEventRequest extends EventBaseRequest {
71
71
  export interface PreparedSearchEventRequest extends Omit<SearchEventRequest, 'searchQueryUid'> {}
72
72
 
73
73
  export interface DocumentInformation {
74
- documentUri: string;
74
+ documentUri?: string;
75
75
  documentUriHash: string;
76
- collectionName: string;
76
+ collectionName?: string;
77
77
  sourceName: string;
78
78
  documentPosition: number;
79
79
  actionCause: string;
80
80
 
81
81
  searchQueryUid: string;
82
- documentTitle: string;
83
- documentUrl: string;
84
- documentAuthor: string;
85
- queryPipeline: string;
86
- rankingModifier: string;
82
+ documentTitle?: string;
83
+ documentUrl?: string;
84
+ documentAuthor?: string;
85
+ queryPipeline?: string;
86
+ rankingModifier?: string;
87
87
  }
88
88
 
89
89
  export interface ClickEventRequest extends EventBaseRequest, DocumentInformation {}
@@ -622,6 +622,15 @@ describe('InsightClient', () => {
622
622
  await client.logGeneratedAnswerStreamEnd(exampleGeneratedAnswerMetadata);
623
623
  expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerStreamEnd, exampleGeneratedAnswerMetadata);
624
624
  });
625
+
626
+ it('should send proper payload for #createArticle', async () => {
627
+ const exampleCreateArticleMetadata = {
628
+ articleType: 'Knowledge__kav',
629
+ triggeredBy: 'CreateArticleButton',
630
+ };
631
+ await client.logCreateArticle(exampleCreateArticleMetadata);
632
+ expectMatchCustomEventPayload(InsightEvents.createArticle, exampleCreateArticleMetadata);
633
+ });
625
634
  });
626
635
 
627
636
  describe('when the case metadata is included', () => {
@@ -1380,6 +1389,19 @@ describe('InsightClient', () => {
1380
1389
  await client.logGeneratedAnswerStreamEnd(exampleGeneratedAnswerMetadata, baseCaseMetadata);
1381
1390
  expectMatchCustomEventPayload(SearchPageEvents.generatedAnswerStreamEnd, expectedMetadata);
1382
1391
  });
1392
+
1393
+ it('should send proper payload for #createArticle', async () => {
1394
+ const exampleCreateArticleMetadata = {
1395
+ articleType: 'Knowledge__kav',
1396
+ triggeredBy: 'CreateArticleButton',
1397
+ };
1398
+ const expectedMetadata = {
1399
+ ...exampleCreateArticleMetadata,
1400
+ ...expectedBaseCaseMetadata,
1401
+ };
1402
+ await client.logCreateArticle(exampleCreateArticleMetadata, baseCaseMetadata);
1403
+ expectMatchCustomEventPayload(InsightEvents.createArticle, expectedMetadata);
1404
+ });
1383
1405
  });
1384
1406
 
1385
1407
  it('should enable analytics tracking by default', () => {
@@ -35,6 +35,7 @@ import {
35
35
  InsightResultsSortMetadata,
36
36
  UserActionsDocumentMetadata,
37
37
  UserActionsPageViewMetadata,
38
+ CreateArticleMetadata,
38
39
  } from './insightEvents';
39
40
 
40
41
  export interface InsightClientProvider {
@@ -266,6 +267,13 @@ export class CoveoInsightClient {
266
267
  });
267
268
  }
268
269
 
270
+ public logCreateArticle(createArticleMetadata: CreateArticleMetadata, metadata?: CaseMetadata) {
271
+ return this.logCustomEvent(
272
+ InsightEvents.createArticle,
273
+ metadata ? {...generateMetadataToSend(metadata, false), ...createArticleMetadata} : createArticleMetadata
274
+ );
275
+ }
276
+
269
277
  public logDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata) {
270
278
  return this.logClickEvent(
271
279
  SearchPageEvents.documentOpen,
@@ -40,6 +40,10 @@ export enum InsightEvents {
40
40
  * Identifies the event that gets logged when the user clicks a viewed page link on the user actions timeline.
41
41
  */
42
42
  clickPageView = 'clickPageView',
43
+ /**
44
+ * Identifies the event that gets logged when the user clicks the create article button.
45
+ */
46
+ createArticle = 'createArticle',
43
47
  }
44
48
 
45
49
  export interface CaseMetadata {
@@ -66,6 +70,11 @@ export interface UserActionsPageViewMetadata {
66
70
  contentIdValue: string;
67
71
  }
68
72
 
73
+ export interface CreateArticleMetadata {
74
+ articleType: string;
75
+ triggeredBy: string;
76
+ }
77
+
69
78
  export interface InsightInterfaceChangeMetadata extends InterfaceChangeMetadata, CaseMetadata {}
70
79
 
71
80
  export interface InsightFacetMetadata extends FacetMetadata, CaseMetadata {}