coveo.analytics 2.28.5 → 2.28.7

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.
@@ -54,6 +54,8 @@ export declare class CoveoInsightClient {
54
54
  logPageViewClick(pageView: UserActionsPageViewMetadata, metadata: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
55
55
  logDocumentOpen(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
56
56
  logCopyToClipboard(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
57
+ logCaseSendEmail(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
58
+ logFeedItemTextPost(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
57
59
  logDocumentQuickview(info: PartialDocumentInformation, identifier: DocumentIdentifier, caseMetadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
58
60
  logCaseAttach(info: PartialDocumentInformation, identifier: DocumentIdentifier, caseMetadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
59
61
  logCaseDetach(resultUriHash: string, metadata?: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
@@ -1,6 +1,6 @@
1
1
  import { ClientOptions, AnalyticsClient } from '../client/analytics';
2
2
  import { SearchEventRequest, SearchEventResponse, AnyEventResponse, ClickEventResponse, CustomEventResponse } from '../events';
3
- import { SearchPageEvents, OmniboxSuggestionsMetadata, FacetMetadata, FacetRangeMetadata, CategoryFacetMetadata, DocumentIdentifier, InterfaceChangeMetadata, ResultsSortMetadata, PartialDocumentInformation, TriggerNotifyMetadata, TriggerExecuteMetadata, TriggerRedirectMetadata, PagerResizeMetadata, PagerMetadata, FacetBaseMeta, FacetSortMeta, QueryErrorMeta, FacetStateMetadata, SmartSnippetFeedbackReason, SmartSnippetSuggestionMeta, SmartSnippetDocumentIdentifier, StaticFilterMetadata, StaticFilterToggleValueMetadata, UndoTriggerRedirectMetadata, SmartSnippetLinkMeta } from './searchPageEvents';
3
+ import { SearchPageEvents, OmniboxSuggestionsMetadata, FacetMetadata, FacetRangeMetadata, CategoryFacetMetadata, DocumentIdentifier, InterfaceChangeMetadata, ResultsSortMetadata, PartialDocumentInformation, TriggerNotifyMetadata, TriggerExecuteMetadata, TriggerRedirectMetadata, PagerResizeMetadata, PagerMetadata, FacetBaseMeta, FacetSortMeta, QueryErrorMeta, FacetStateMetadata, SmartSnippetFeedbackReason, SmartSnippetSuggestionMeta, SmartSnippetDocumentIdentifier, StaticFilterMetadata, StaticFilterToggleValueMetadata, UndoTriggerRedirectMetadata, SmartSnippetLinkMeta, GeneratedAnswerFeedbackMeta, GeneratedAnswerCitationMeta } from './searchPageEvents';
4
4
  export interface SearchPageClientProvider {
5
5
  getBaseMetadata: () => Record<string, any>;
6
6
  getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;
@@ -185,4 +185,12 @@ export declare class CoveoSearchPageClient {
185
185
  private getOrigins;
186
186
  private getClientId;
187
187
  private getSplitTestRun;
188
+ makeLikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta): Promise<EventBuilder<CustomEventResponse>>;
189
+ logLikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta): Promise<void | CustomEventResponse>;
190
+ makeDislikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta): Promise<EventBuilder<CustomEventResponse>>;
191
+ logDislikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta): Promise<void | CustomEventResponse>;
192
+ makeOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta): Promise<EventBuilder<CustomEventResponse>>;
193
+ logOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta): Promise<void | CustomEventResponse>;
194
+ makeRetryGeneratedAnswer(): Promise<EventBuilder<SearchEventResponse>>;
195
+ logRetryGeneratedAnswer(): Promise<void | SearchEventResponse>;
188
196
  }
@@ -69,8 +69,14 @@ export declare enum SearchPageEvents {
69
69
  showMoreFoldedResults = "showMoreFoldedResults",
70
70
  showLessFoldedResults = "showLessFoldedResults",
71
71
  copyToClipboard = "copyToClipboard",
72
+ caseSendEmail = "Case.SendEmail",
73
+ feedItemTextPost = "FeedItem.TextPost",
72
74
  caseAttach = "caseAttach",
73
- caseDetach = "caseDetach"
75
+ caseDetach = "caseDetach",
76
+ retryGeneratedAnswer = "retryGeneratedAnswer",
77
+ likeGeneratedAnswer = "likeGeneratedAnswer",
78
+ dislikeGeneratedAnswer = "dislikeGeneratedAnswer",
79
+ openGeneratedAnswerSource = "openGeneratedAnswerSource"
74
80
  }
75
81
  export declare const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents, string>>;
76
82
  export interface StaticFilterMetadata {
@@ -178,4 +184,12 @@ export interface SmartSnippetDocumentIdentifier {
178
184
  contentIdValue: string;
179
185
  }
180
186
  export type PartialDocumentInformation = Omit<DocumentInformation, 'actionCause' | 'searchQueryUid'>;
187
+ export interface GeneratedAnswerFeedbackMeta {
188
+ generativeQuestionAnsweringId: string;
189
+ }
190
+ export interface GeneratedAnswerCitationMeta {
191
+ generativeQuestionAnsweringId: string;
192
+ permanentId: string;
193
+ id: string;
194
+ }
181
195
  export {};
@@ -1 +1 @@
1
- export declare const libVersion = "2.28.5";
1
+ export declare const libVersion = "2.28.7";
@@ -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.5" ;
599
+ const libVersion = "2.28.7" ;
600
600
 
601
601
  const getFormattedLocation = (location) => `${location.protocol}//${location.hostname}${location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`}${location.search}`;
602
602
 
@@ -1712,8 +1712,14 @@ var SearchPageEvents;
1712
1712
  SearchPageEvents["showMoreFoldedResults"] = "showMoreFoldedResults";
1713
1713
  SearchPageEvents["showLessFoldedResults"] = "showLessFoldedResults";
1714
1714
  SearchPageEvents["copyToClipboard"] = "copyToClipboard";
1715
+ SearchPageEvents["caseSendEmail"] = "Case.SendEmail";
1716
+ SearchPageEvents["feedItemTextPost"] = "FeedItem.TextPost";
1715
1717
  SearchPageEvents["caseAttach"] = "caseAttach";
1716
1718
  SearchPageEvents["caseDetach"] = "caseDetach";
1719
+ SearchPageEvents["retryGeneratedAnswer"] = "retryGeneratedAnswer";
1720
+ SearchPageEvents["likeGeneratedAnswer"] = "likeGeneratedAnswer";
1721
+ SearchPageEvents["dislikeGeneratedAnswer"] = "dislikeGeneratedAnswer";
1722
+ SearchPageEvents["openGeneratedAnswerSource"] = "openGeneratedAnswerSource";
1717
1723
  })(SearchPageEvents || (SearchPageEvents = {}));
1718
1724
  const CustomEventsTypes = {
1719
1725
  [SearchPageEvents.triggerNotify]: 'queryPipelineTriggers',
@@ -1755,6 +1761,9 @@ const CustomEventsTypes = {
1755
1761
  [InsightEvents.clickViewedDocument]: 'User Actions',
1756
1762
  [InsightEvents.clickPageView]: 'User Actions',
1757
1763
  [SearchPageEvents.caseDetach]: 'case',
1764
+ [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',
1765
+ [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',
1766
+ [SearchPageEvents.openGeneratedAnswerSource]: 'generatedAnswer',
1758
1767
  };
1759
1768
 
1760
1769
  class NoopAnalytics {
@@ -2556,6 +2565,40 @@ class CoveoSearchPageClient {
2556
2565
  const splitTestRunVersion = this.provider.getSplitTestRunVersion ? this.provider.getSplitTestRunVersion() : '';
2557
2566
  return Object.assign(Object.assign({}, (splitTestRunName && { splitTestRunName })), (splitTestRunVersion && { splitTestRunVersion }));
2558
2567
  }
2568
+ makeLikeGeneratedAnswer(metadata) {
2569
+ return this.makeCustomEvent(SearchPageEvents.likeGeneratedAnswer, metadata);
2570
+ }
2571
+ logLikeGeneratedAnswer(metadata) {
2572
+ return __awaiter(this, void 0, void 0, function* () {
2573
+ return (yield this.makeLikeGeneratedAnswer(metadata)).log({ searchUID: this.provider.getSearchUID() });
2574
+ });
2575
+ }
2576
+ makeDislikeGeneratedAnswer(metadata) {
2577
+ return this.makeCustomEvent(SearchPageEvents.dislikeGeneratedAnswer, metadata);
2578
+ }
2579
+ logDislikeGeneratedAnswer(metadata) {
2580
+ return __awaiter(this, void 0, void 0, function* () {
2581
+ return (yield this.makeDislikeGeneratedAnswer(metadata)).log({ searchUID: this.provider.getSearchUID() });
2582
+ });
2583
+ }
2584
+ makeOpenGeneratedAnswerSource(metadata) {
2585
+ return this.makeCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata);
2586
+ }
2587
+ logOpenGeneratedAnswerSource(metadata) {
2588
+ return __awaiter(this, void 0, void 0, function* () {
2589
+ return (yield this.makeOpenGeneratedAnswerSource(metadata)).log({
2590
+ searchUID: this.provider.getSearchUID(),
2591
+ });
2592
+ });
2593
+ }
2594
+ makeRetryGeneratedAnswer() {
2595
+ return this.makeSearchEvent(SearchPageEvents.retryGeneratedAnswer);
2596
+ }
2597
+ logRetryGeneratedAnswer() {
2598
+ return __awaiter(this, void 0, void 0, function* () {
2599
+ return (yield this.makeRetryGeneratedAnswer()).log({ searchUID: this.provider.getSearchUID() });
2600
+ });
2601
+ }
2559
2602
  }
2560
2603
 
2561
2604
  const SVCPluginEventTypes = Object.assign({}, BasePluginEventTypes);
@@ -2904,6 +2947,12 @@ class CoveoInsightClient {
2904
2947
  logCopyToClipboard(info, identifier, metadata) {
2905
2948
  return this.logClickEvent(SearchPageEvents.copyToClipboard, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
2906
2949
  }
2950
+ logCaseSendEmail(info, identifier, metadata) {
2951
+ return this.logClickEvent(SearchPageEvents.caseSendEmail, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
2952
+ }
2953
+ logFeedItemTextPost(info, identifier, metadata) {
2954
+ return this.logClickEvent(SearchPageEvents.feedItemTextPost, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
2955
+ }
2907
2956
  logDocumentQuickview(info, identifier, caseMetadata) {
2908
2957
  const metadata = {
2909
2958
  documentTitle: info.documentTitle,
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.5" ;
734
+ var libVersion = "2.28.7" ;
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);
@@ -84225,8 +84225,14 @@ exports.SearchPageEvents = void 0;
84225
84225
  SearchPageEvents["showMoreFoldedResults"] = "showMoreFoldedResults";
84226
84226
  SearchPageEvents["showLessFoldedResults"] = "showLessFoldedResults";
84227
84227
  SearchPageEvents["copyToClipboard"] = "copyToClipboard";
84228
+ SearchPageEvents["caseSendEmail"] = "Case.SendEmail";
84229
+ SearchPageEvents["feedItemTextPost"] = "FeedItem.TextPost";
84228
84230
  SearchPageEvents["caseAttach"] = "caseAttach";
84229
84231
  SearchPageEvents["caseDetach"] = "caseDetach";
84232
+ SearchPageEvents["retryGeneratedAnswer"] = "retryGeneratedAnswer";
84233
+ SearchPageEvents["likeGeneratedAnswer"] = "likeGeneratedAnswer";
84234
+ SearchPageEvents["dislikeGeneratedAnswer"] = "dislikeGeneratedAnswer";
84235
+ SearchPageEvents["openGeneratedAnswerSource"] = "openGeneratedAnswerSource";
84230
84236
  })(exports.SearchPageEvents || (exports.SearchPageEvents = {}));
84231
84237
  var CustomEventsTypes = (_a = {},
84232
84238
  _a[exports.SearchPageEvents.triggerNotify] = 'queryPipelineTriggers',
@@ -84268,6 +84274,9 @@ var CustomEventsTypes = (_a = {},
84268
84274
  _a[exports.InsightEvents.clickViewedDocument] = 'User Actions',
84269
84275
  _a[exports.InsightEvents.clickPageView] = 'User Actions',
84270
84276
  _a[exports.SearchPageEvents.caseDetach] = 'case',
84277
+ _a[exports.SearchPageEvents.likeGeneratedAnswer] = 'generatedAnswer',
84278
+ _a[exports.SearchPageEvents.dislikeGeneratedAnswer] = 'generatedAnswer',
84279
+ _a[exports.SearchPageEvents.openGeneratedAnswerSource] = 'generatedAnswer',
84271
84280
  _a);
84272
84281
 
84273
84282
  var NoopAnalytics = (function () {
@@ -85553,6 +85562,60 @@ var CoveoSearchPageClient = (function () {
85553
85562
  var splitTestRunVersion = this.provider.getSplitTestRunVersion ? this.provider.getSplitTestRunVersion() : '';
85554
85563
  return __assign(__assign({}, (splitTestRunName && { splitTestRunName: splitTestRunName })), (splitTestRunVersion && { splitTestRunVersion: splitTestRunVersion }));
85555
85564
  };
85565
+ CoveoSearchPageClient.prototype.makeLikeGeneratedAnswer = function (metadata) {
85566
+ return this.makeCustomEvent(exports.SearchPageEvents.likeGeneratedAnswer, metadata);
85567
+ };
85568
+ CoveoSearchPageClient.prototype.logLikeGeneratedAnswer = function (metadata) {
85569
+ return __awaiter(this, void 0, void 0, function () {
85570
+ return __generator(this, function (_a) {
85571
+ switch (_a.label) {
85572
+ case 0: return [4, this.makeLikeGeneratedAnswer(metadata)];
85573
+ case 1: return [2, (_a.sent()).log({ searchUID: this.provider.getSearchUID() })];
85574
+ }
85575
+ });
85576
+ });
85577
+ };
85578
+ CoveoSearchPageClient.prototype.makeDislikeGeneratedAnswer = function (metadata) {
85579
+ return this.makeCustomEvent(exports.SearchPageEvents.dislikeGeneratedAnswer, metadata);
85580
+ };
85581
+ CoveoSearchPageClient.prototype.logDislikeGeneratedAnswer = function (metadata) {
85582
+ return __awaiter(this, void 0, void 0, function () {
85583
+ return __generator(this, function (_a) {
85584
+ switch (_a.label) {
85585
+ case 0: return [4, this.makeDislikeGeneratedAnswer(metadata)];
85586
+ case 1: return [2, (_a.sent()).log({ searchUID: this.provider.getSearchUID() })];
85587
+ }
85588
+ });
85589
+ });
85590
+ };
85591
+ CoveoSearchPageClient.prototype.makeOpenGeneratedAnswerSource = function (metadata) {
85592
+ return this.makeCustomEvent(exports.SearchPageEvents.openGeneratedAnswerSource, metadata);
85593
+ };
85594
+ CoveoSearchPageClient.prototype.logOpenGeneratedAnswerSource = function (metadata) {
85595
+ return __awaiter(this, void 0, void 0, function () {
85596
+ return __generator(this, function (_a) {
85597
+ switch (_a.label) {
85598
+ case 0: return [4, this.makeOpenGeneratedAnswerSource(metadata)];
85599
+ case 1: return [2, (_a.sent()).log({
85600
+ searchUID: this.provider.getSearchUID(),
85601
+ })];
85602
+ }
85603
+ });
85604
+ });
85605
+ };
85606
+ CoveoSearchPageClient.prototype.makeRetryGeneratedAnswer = function () {
85607
+ return this.makeSearchEvent(exports.SearchPageEvents.retryGeneratedAnswer);
85608
+ };
85609
+ CoveoSearchPageClient.prototype.logRetryGeneratedAnswer = function () {
85610
+ return __awaiter(this, void 0, void 0, function () {
85611
+ return __generator(this, function (_a) {
85612
+ switch (_a.label) {
85613
+ case 0: return [4, this.makeRetryGeneratedAnswer()];
85614
+ case 1: return [2, (_a.sent()).log({ searchUID: this.provider.getSearchUID() })];
85615
+ }
85616
+ });
85617
+ });
85618
+ };
85556
85619
  return CoveoSearchPageClient;
85557
85620
  }());
85558
85621
 
@@ -85835,6 +85898,12 @@ var CoveoInsightClient = (function () {
85835
85898
  CoveoInsightClient.prototype.logCopyToClipboard = function (info, identifier, metadata) {
85836
85899
  return this.logClickEvent(exports.SearchPageEvents.copyToClipboard, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
85837
85900
  };
85901
+ CoveoInsightClient.prototype.logCaseSendEmail = function (info, identifier, metadata) {
85902
+ return this.logClickEvent(exports.SearchPageEvents.caseSendEmail, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
85903
+ };
85904
+ CoveoInsightClient.prototype.logFeedItemTextPost = function (info, identifier, metadata) {
85905
+ return this.logClickEvent(exports.SearchPageEvents.feedItemTextPost, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
85906
+ };
85838
85907
  CoveoInsightClient.prototype.logDocumentQuickview = function (info, identifier, caseMetadata) {
85839
85908
  var metadata = {
85840
85909
  documentTitle: info.documentTitle,
@@ -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.5" ;
661
+ const libVersion = "2.28.7" ;
662
662
 
663
663
  const getFormattedLocation = (location) => `${location.protocol}//${location.hostname}${location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`}${location.search}`;
664
664
 
@@ -1730,8 +1730,14 @@ var SearchPageEvents;
1730
1730
  SearchPageEvents["showMoreFoldedResults"] = "showMoreFoldedResults";
1731
1731
  SearchPageEvents["showLessFoldedResults"] = "showLessFoldedResults";
1732
1732
  SearchPageEvents["copyToClipboard"] = "copyToClipboard";
1733
+ SearchPageEvents["caseSendEmail"] = "Case.SendEmail";
1734
+ SearchPageEvents["feedItemTextPost"] = "FeedItem.TextPost";
1733
1735
  SearchPageEvents["caseAttach"] = "caseAttach";
1734
1736
  SearchPageEvents["caseDetach"] = "caseDetach";
1737
+ SearchPageEvents["retryGeneratedAnswer"] = "retryGeneratedAnswer";
1738
+ SearchPageEvents["likeGeneratedAnswer"] = "likeGeneratedAnswer";
1739
+ SearchPageEvents["dislikeGeneratedAnswer"] = "dislikeGeneratedAnswer";
1740
+ SearchPageEvents["openGeneratedAnswerSource"] = "openGeneratedAnswerSource";
1735
1741
  })(SearchPageEvents || (SearchPageEvents = {}));
1736
1742
  const CustomEventsTypes = {
1737
1743
  [SearchPageEvents.triggerNotify]: 'queryPipelineTriggers',
@@ -1773,6 +1779,9 @@ const CustomEventsTypes = {
1773
1779
  [InsightEvents.clickViewedDocument]: 'User Actions',
1774
1780
  [InsightEvents.clickPageView]: 'User Actions',
1775
1781
  [SearchPageEvents.caseDetach]: 'case',
1782
+ [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',
1783
+ [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',
1784
+ [SearchPageEvents.openGeneratedAnswerSource]: 'generatedAnswer',
1776
1785
  };
1777
1786
 
1778
1787
  class NoopAnalytics {
@@ -2574,6 +2583,40 @@ class CoveoSearchPageClient {
2574
2583
  const splitTestRunVersion = this.provider.getSplitTestRunVersion ? this.provider.getSplitTestRunVersion() : '';
2575
2584
  return Object.assign(Object.assign({}, (splitTestRunName && { splitTestRunName })), (splitTestRunVersion && { splitTestRunVersion }));
2576
2585
  }
2586
+ makeLikeGeneratedAnswer(metadata) {
2587
+ return this.makeCustomEvent(SearchPageEvents.likeGeneratedAnswer, metadata);
2588
+ }
2589
+ logLikeGeneratedAnswer(metadata) {
2590
+ return __awaiter(this, void 0, void 0, function* () {
2591
+ return (yield this.makeLikeGeneratedAnswer(metadata)).log({ searchUID: this.provider.getSearchUID() });
2592
+ });
2593
+ }
2594
+ makeDislikeGeneratedAnswer(metadata) {
2595
+ return this.makeCustomEvent(SearchPageEvents.dislikeGeneratedAnswer, metadata);
2596
+ }
2597
+ logDislikeGeneratedAnswer(metadata) {
2598
+ return __awaiter(this, void 0, void 0, function* () {
2599
+ return (yield this.makeDislikeGeneratedAnswer(metadata)).log({ searchUID: this.provider.getSearchUID() });
2600
+ });
2601
+ }
2602
+ makeOpenGeneratedAnswerSource(metadata) {
2603
+ return this.makeCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata);
2604
+ }
2605
+ logOpenGeneratedAnswerSource(metadata) {
2606
+ return __awaiter(this, void 0, void 0, function* () {
2607
+ return (yield this.makeOpenGeneratedAnswerSource(metadata)).log({
2608
+ searchUID: this.provider.getSearchUID(),
2609
+ });
2610
+ });
2611
+ }
2612
+ makeRetryGeneratedAnswer() {
2613
+ return this.makeSearchEvent(SearchPageEvents.retryGeneratedAnswer);
2614
+ }
2615
+ logRetryGeneratedAnswer() {
2616
+ return __awaiter(this, void 0, void 0, function* () {
2617
+ return (yield this.makeRetryGeneratedAnswer()).log({ searchUID: this.provider.getSearchUID() });
2618
+ });
2619
+ }
2577
2620
  }
2578
2621
 
2579
2622
  const SVCPluginEventTypes = Object.assign({}, BasePluginEventTypes);
@@ -2922,6 +2965,12 @@ class CoveoInsightClient {
2922
2965
  logCopyToClipboard(info, identifier, metadata) {
2923
2966
  return this.logClickEvent(SearchPageEvents.copyToClipboard, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
2924
2967
  }
2968
+ logCaseSendEmail(info, identifier, metadata) {
2969
+ return this.logClickEvent(SearchPageEvents.caseSendEmail, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
2970
+ }
2971
+ logFeedItemTextPost(info, identifier, metadata) {
2972
+ return this.logClickEvent(SearchPageEvents.feedItemTextPost, info, identifier, metadata ? generateMetadataToSend(metadata, false) : undefined);
2973
+ }
2925
2974
  logDocumentQuickview(info, identifier, caseMetadata) {
2926
2975
  const metadata = {
2927
2976
  documentTitle: info.documentTitle,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coveo.analytics",
3
- "version": "2.28.5",
3
+ "version": "2.28.7",
4
4
  "description": "📈 Coveo analytics client (node and browser compatible) ",
5
5
  "main": "dist/library.js",
6
6
  "module": "dist/library.es.js",
@@ -324,6 +324,16 @@ describe('InsightClient', () => {
324
324
  expectMatchDocumentPayload(SearchPageEvents.copyToClipboard, fakeDocInfo, fakeDocID);
325
325
  });
326
326
 
327
+ it('should send proper payload for #caseSendEmail', async () => {
328
+ await client.logCaseSendEmail(fakeDocInfo, fakeDocID);
329
+ expectMatchDocumentPayload(SearchPageEvents.caseSendEmail, fakeDocInfo, fakeDocID);
330
+ });
331
+
332
+ it('should send proper payload for #feedItemTextPost', async () => {
333
+ await client.logFeedItemTextPost(fakeDocInfo, fakeDocID);
334
+ expectMatchDocumentPayload(SearchPageEvents.feedItemTextPost, fakeDocInfo, fakeDocID);
335
+ });
336
+
327
337
  it('should send proper payload for #documentQuickview', async () => {
328
338
  const expectedMetadata = {
329
339
  ...fakeDocID,
@@ -856,6 +866,28 @@ describe('InsightClient', () => {
856
866
  expectMatchDocumentPayload(SearchPageEvents.copyToClipboard, fakeDocInfo, expectedMetadata);
857
867
  });
858
868
 
869
+ it('should send proper payload for #caseSendEmail', async () => {
870
+ const metadata = baseCaseMetadata;
871
+
872
+ const expectedMetadata = {
873
+ ...fakeDocID,
874
+ ...expectedBaseCaseMetadata,
875
+ };
876
+ await client.logCaseSendEmail(fakeDocInfo, fakeDocID, metadata);
877
+ expectMatchDocumentPayload(SearchPageEvents.caseSendEmail, fakeDocInfo, expectedMetadata);
878
+ });
879
+
880
+ it('should send proper payload for #feedItemTextPost', async () => {
881
+ const metadata = baseCaseMetadata;
882
+
883
+ const expectedMetadata = {
884
+ ...fakeDocID,
885
+ ...expectedBaseCaseMetadata,
886
+ };
887
+ await client.logFeedItemTextPost(fakeDocInfo, fakeDocID, metadata);
888
+ expectMatchDocumentPayload(SearchPageEvents.feedItemTextPost, fakeDocInfo, expectedMetadata);
889
+ });
890
+
859
891
  it('should send proper payload for #documentQuickview', async () => {
860
892
  const metadata = baseCaseMetadata;
861
893
 
@@ -276,6 +276,28 @@ export class CoveoInsightClient {
276
276
  );
277
277
  }
278
278
 
279
+ public logCaseSendEmail(info: PartialDocumentInformation, identifier: DocumentIdentifier, metadata?: CaseMetadata) {
280
+ return this.logClickEvent(
281
+ SearchPageEvents.caseSendEmail,
282
+ info,
283
+ identifier,
284
+ metadata ? generateMetadataToSend(metadata, false) : undefined
285
+ );
286
+ }
287
+
288
+ public logFeedItemTextPost(
289
+ info: PartialDocumentInformation,
290
+ identifier: DocumentIdentifier,
291
+ metadata?: CaseMetadata
292
+ ) {
293
+ return this.logClickEvent(
294
+ SearchPageEvents.feedItemTextPost,
295
+ info,
296
+ identifier,
297
+ metadata ? generateMetadataToSend(metadata, false) : undefined
298
+ );
299
+ }
300
+
279
301
  public logDocumentQuickview(
280
302
  info: PartialDocumentInformation,
281
303
  identifier: DocumentIdentifier,
@@ -51,6 +51,8 @@ describe('SearchPageClient', () => {
51
51
  },
52
52
  ];
53
53
 
54
+ const fakeStreamId = 'some-stream-id-123';
55
+
54
56
  let client: CoveoSearchPageClient;
55
57
 
56
58
  const provider: SearchPageClientProvider = {
@@ -1413,4 +1415,46 @@ describe('SearchPageClient', () => {
1413
1415
  c.enable();
1414
1416
  expect(c.coveoAnalyticsClient instanceof CoveoAnalyticsClient).toBe(true);
1415
1417
  });
1418
+
1419
+ it('should send proper payload for #logLikeGeneratedAnswer', async () => {
1420
+ const meta = {generativeQuestionAnsweringId: fakeStreamId};
1421
+ await client.logLikeGeneratedAnswer(meta);
1422
+ expectMatchCustomEventPayload(SearchPageEvents.likeGeneratedAnswer, meta);
1423
+ });
1424
+
1425
+ it('should send proper payload for #makeLikeGeneratedAnswer', async () => {
1426
+ const meta = {generativeQuestionAnsweringId: fakeStreamId};
1427
+ const built = await client.makeLikeGeneratedAnswer(meta);
1428
+ await built.log({searchUID: provider.getSearchUID()});
1429
+ expectMatchCustomEventPayload(SearchPageEvents.likeGeneratedAnswer, meta);
1430
+ expectMatchDescription(built.description, SearchPageEvents.likeGeneratedAnswer, meta);
1431
+ });
1432
+
1433
+ it('should send proper payload for #logDislikeGeneratedAnswer', async () => {
1434
+ const meta = {generativeQuestionAnsweringId: fakeStreamId};
1435
+ await client.logDislikeGeneratedAnswer(meta);
1436
+ expectMatchCustomEventPayload(SearchPageEvents.dislikeGeneratedAnswer, meta);
1437
+ });
1438
+
1439
+ it('should send proper payload for #makeDislikeGeneratedAnswer', async () => {
1440
+ const meta = {generativeQuestionAnsweringId: fakeStreamId};
1441
+ const built = await client.makeDislikeGeneratedAnswer(meta);
1442
+ await built.log({searchUID: provider.getSearchUID()});
1443
+ expectMatchCustomEventPayload(SearchPageEvents.dislikeGeneratedAnswer, meta);
1444
+ expectMatchDescription(built.description, SearchPageEvents.dislikeGeneratedAnswer, meta);
1445
+ });
1446
+
1447
+ it('should send proper payload for #logOpenGeneratedAnswerSource', async () => {
1448
+ const meta = {generativeQuestionAnsweringId: fakeStreamId, id: 'some-document-id', permanentId: 'perm-id'};
1449
+ await client.logOpenGeneratedAnswerSource(meta);
1450
+ expectMatchCustomEventPayload(SearchPageEvents.openGeneratedAnswerSource, meta);
1451
+ });
1452
+
1453
+ it('should send proper payload for #makeOpenGeneratedAnswerSource', async () => {
1454
+ const meta = {generativeQuestionAnsweringId: fakeStreamId, id: 'some-document-id', permanentId: 'perm-id'};
1455
+ const built = await client.makeOpenGeneratedAnswerSource(meta);
1456
+ await built.log({searchUID: provider.getSearchUID()});
1457
+ expectMatchCustomEventPayload(SearchPageEvents.openGeneratedAnswerSource, meta);
1458
+ expectMatchDescription(built.description, SearchPageEvents.openGeneratedAnswerSource, meta);
1459
+ });
1416
1460
  });
@@ -36,6 +36,8 @@ import {
36
36
  StaticFilterToggleValueMetadata,
37
37
  UndoTriggerRedirectMetadata,
38
38
  SmartSnippetLinkMeta,
39
+ GeneratedAnswerFeedbackMeta,
40
+ GeneratedAnswerCitationMeta,
39
41
  } from './searchPageEvents';
40
42
  import {NoopAnalytics} from '../client/noopAnalytics';
41
43
  import {formatOmniboxMetadata} from '../formatting/format-omnibox-metadata';
@@ -881,4 +883,38 @@ export class CoveoSearchPageClient {
881
883
  ...(splitTestRunVersion && {splitTestRunVersion}),
882
884
  };
883
885
  }
886
+
887
+ public makeLikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta) {
888
+ return this.makeCustomEvent(SearchPageEvents.likeGeneratedAnswer, metadata);
889
+ }
890
+
891
+ public async logLikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta) {
892
+ return (await this.makeLikeGeneratedAnswer(metadata)).log({searchUID: this.provider.getSearchUID()});
893
+ }
894
+
895
+ public makeDislikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta) {
896
+ return this.makeCustomEvent(SearchPageEvents.dislikeGeneratedAnswer, metadata);
897
+ }
898
+
899
+ public async logDislikeGeneratedAnswer(metadata: GeneratedAnswerFeedbackMeta) {
900
+ return (await this.makeDislikeGeneratedAnswer(metadata)).log({searchUID: this.provider.getSearchUID()});
901
+ }
902
+
903
+ public makeOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta) {
904
+ return this.makeCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata);
905
+ }
906
+
907
+ public async logOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta) {
908
+ return (await this.makeOpenGeneratedAnswerSource(metadata)).log({
909
+ searchUID: this.provider.getSearchUID(),
910
+ });
911
+ }
912
+
913
+ public makeRetryGeneratedAnswer() {
914
+ return this.makeSearchEvent(SearchPageEvents.retryGeneratedAnswer);
915
+ }
916
+
917
+ public async logRetryGeneratedAnswer() {
918
+ return (await this.makeRetryGeneratedAnswer()).log({searchUID: this.provider.getSearchUID()});
919
+ }
884
920
  }
@@ -278,6 +278,14 @@ export enum SearchPageEvents {
278
278
  * Identifies the click event that gets logged when a user clicks the Copy To Clipboard result action.
279
279
  */
280
280
  copyToClipboard = 'copyToClipboard',
281
+ /**
282
+ * Identifies the click event that gets logged when a user clicks the Send As Email result action.
283
+ */
284
+ caseSendEmail = 'Case.SendEmail',
285
+ /**
286
+ * Identifies the click event that gets logged when a user clicks the Post To Feed result action.
287
+ */
288
+ feedItemTextPost = 'FeedItem.TextPost',
281
289
  /**
282
290
  * Identifies the click event that gets logged when a user clicks the Attach To Case result action.
283
291
  */
@@ -286,6 +294,22 @@ export enum SearchPageEvents {
286
294
  * Identifies the custom event that gets logged when a user clicks the Detach From Case result action.
287
295
  */
288
296
  caseDetach = 'caseDetach',
297
+ /**
298
+ * Identifies the cause of a search request being retried in order to regenerate an answer stream that failed.
299
+ */
300
+ retryGeneratedAnswer = 'retryGeneratedAnswer',
301
+ /**
302
+ * Identifies the custom event that gets logged when a user identifies a generated answer as relevant.
303
+ */
304
+ likeGeneratedAnswer = 'likeGeneratedAnswer',
305
+ /**
306
+ * Identifies the custom event that gets logged when a user identifies a generated answer as irrelevant.
307
+ */
308
+ dislikeGeneratedAnswer = 'dislikeGeneratedAnswer',
309
+ /**
310
+ * Identifies the custom event that gets logged when a user opens a generated answer citation.
311
+ */
312
+ openGeneratedAnswerSource = 'openGeneratedAnswerSource',
289
313
  }
290
314
 
291
315
  export const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents, string>> = {
@@ -328,6 +352,9 @@ export const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents,
328
352
  [InsightEvents.clickViewedDocument]: 'User Actions',
329
353
  [InsightEvents.clickPageView]: 'User Actions',
330
354
  [SearchPageEvents.caseDetach]: 'case',
355
+ [SearchPageEvents.likeGeneratedAnswer]: 'generatedAnswer',
356
+ [SearchPageEvents.dislikeGeneratedAnswer]: 'generatedAnswer',
357
+ [SearchPageEvents.openGeneratedAnswerSource]: 'generatedAnswer',
331
358
  };
332
359
 
333
360
  export interface StaticFilterMetadata {
@@ -461,3 +488,13 @@ export interface SmartSnippetDocumentIdentifier {
461
488
  }
462
489
 
463
490
  export type PartialDocumentInformation = Omit<DocumentInformation, 'actionCause' | 'searchQueryUid'>;
491
+
492
+ export interface GeneratedAnswerFeedbackMeta {
493
+ generativeQuestionAnsweringId: string;
494
+ }
495
+
496
+ export interface GeneratedAnswerCitationMeta {
497
+ generativeQuestionAnsweringId: string;
498
+ permanentId: string;
499
+ id: string;
500
+ }