coveo.analytics 2.30.38 → 2.30.40

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.
@@ -1 +1 @@
1
- export declare const fetch: ((input: RequestInfo | URL, init?: RequestInit | undefined) => Promise<Response>) & typeof globalThis.fetch;
1
+ export declare const fetch: typeof globalThis.fetch;
@@ -58,7 +58,7 @@ export interface PreparedSearchEventRequest extends Omit<SearchEventRequest, 'se
58
58
  }
59
59
  export interface DocumentInformation {
60
60
  documentUri?: string;
61
- documentUriHash: string;
61
+ documentUriHash?: string;
62
62
  collectionName?: string;
63
63
  sourceName: string;
64
64
  documentPosition: number;
@@ -1,6 +1,6 @@
1
1
  import { AnalyticsClient, ClientOptions } from '../client/analytics';
2
2
  import { SearchEventRequest } from '../events';
3
- import { DocumentIdentifier, FacetStateMetadata, GeneratedAnswerBaseMeta, GeneratedAnswerCitationMeta, GeneratedAnswerFeedbackMeta, GeneratedAnswerFeedbackMetaV2, GeneratedAnswerRephraseMeta, GeneratedAnswerSourceHoverMeta, GeneratedAnswerStreamEndMeta, PartialDocumentInformation, SearchPageEvents, SmartSnippetDocumentIdentifier, SmartSnippetFeedbackReason, SmartSnippetLinkMeta, SmartSnippetSuggestionMeta, TriggerNotifyMetadata } from '../searchPage/searchPageEvents';
3
+ import { DocumentIdentifier, FacetStateMetadata, GeneratedAnswerBaseMeta, GeneratedAnswerCitationClickMeta, GeneratedAnswerCitationMeta, GeneratedAnswerFeedbackMeta, GeneratedAnswerFeedbackMetaV2, GeneratedAnswerRephraseMeta, GeneratedAnswerSourceHoverMeta, GeneratedAnswerStreamEndMeta, PartialDocumentInformation, SearchPageEvents, SmartSnippetDocumentIdentifier, SmartSnippetFeedbackReason, SmartSnippetLinkMeta, SmartSnippetSuggestionMeta, TriggerNotifyMetadata } from '../searchPage/searchPageEvents';
4
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'>;
@@ -78,6 +78,7 @@ export declare class CoveoInsightClient {
78
78
  logLikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
79
79
  logDislikeGeneratedAnswer(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
80
80
  logOpenGeneratedAnswerSource(generatedAnswerSourceMetadata: GeneratedAnswerCitationMeta, metadata?: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
81
+ logGeneratedAnswerCitationClick(info: PartialDocumentInformation, citation: GeneratedAnswerCitationClickMeta, metadata?: CaseMetadata): Promise<void | import("../events").ClickEventResponse>;
81
82
  logGeneratedAnswerSourceHover(generatedAnswerSourceMetadata: GeneratedAnswerSourceHoverMeta, metadata?: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
82
83
  logGeneratedAnswerCopyToClipboard(generatedAnswerMetadata: GeneratedAnswerBaseMeta, metadata?: CaseMetadata): Promise<void | import("../events").CustomEventResponse>;
83
84
  logGeneratedAnswerHideAnswers(generatedAnswerMetadata: GeneratedAnswerBaseMeta, 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, GeneratedAnswerFeedbackMeta, GeneratedAnswerCitationMeta, GeneratedAnswerStreamEndMeta, GeneratedAnswerSourceHoverMeta, GeneratedAnswerBaseMeta, GeneratedAnswerRephraseMeta, GeneratedAnswerFeedbackMetaV2 } 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, GeneratedAnswerStreamEndMeta, GeneratedAnswerSourceHoverMeta, GeneratedAnswerBaseMeta, GeneratedAnswerRephraseMeta, GeneratedAnswerFeedbackMetaV2, GeneratedAnswerCitationClickMeta } from './searchPageEvents';
4
4
  export interface SearchPageClientProvider {
5
5
  getBaseMetadata: () => Record<string, any>;
6
6
  getSearchEventRequestPayload: () => Omit<SearchEventRequest, 'actionCause' | 'searchQueryUid'>;
@@ -192,6 +192,8 @@ export declare class CoveoSearchPageClient {
192
192
  logDislikeGeneratedAnswer(metadata: GeneratedAnswerBaseMeta): Promise<void | CustomEventResponse>;
193
193
  makeOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta): Promise<EventBuilder<CustomEventResponse>>;
194
194
  logOpenGeneratedAnswerSource(metadata: GeneratedAnswerCitationMeta): Promise<void | CustomEventResponse>;
195
+ makeGeneratedAnswerCitationClick(info: PartialDocumentInformation, citation: GeneratedAnswerCitationClickMeta): Promise<EventBuilder<ClickEventResponse>>;
196
+ logGeneratedAnswerCitationClick(info: PartialDocumentInformation, citation: GeneratedAnswerCitationClickMeta): Promise<void | ClickEventResponse>;
195
197
  makeGeneratedAnswerSourceHover(metadata: GeneratedAnswerSourceHoverMeta): Promise<EventBuilder<CustomEventResponse>>;
196
198
  logGeneratedAnswerSourceHover(metadata: GeneratedAnswerSourceHoverMeta): Promise<void | CustomEventResponse>;
197
199
  makeGeneratedAnswerCopyToClipboard(metadata: GeneratedAnswerBaseMeta): Promise<EventBuilder<CustomEventResponse>>;
@@ -86,7 +86,8 @@ export declare enum SearchPageEvents {
86
86
  generatedAnswerCollapse = "generatedAnswerCollapse",
87
87
  generatedAnswerFeedbackSubmit = "generatedAnswerFeedbackSubmit",
88
88
  rephraseGeneratedAnswer = "rephraseGeneratedAnswer",
89
- generatedAnswerFeedbackSubmitV2 = "generatedAnswerFeedbackSubmitV2"
89
+ generatedAnswerFeedbackSubmitV2 = "generatedAnswerFeedbackSubmitV2",
90
+ generatedAnswerCitationClick = "generatedAnswerCitationClick"
90
91
  }
91
92
  export declare const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents, string>>;
92
93
  export interface StaticFilterMetadata {
@@ -211,6 +212,14 @@ export type GeneratedAnswerCitationMeta = GeneratedAnswerBaseMeta & {
211
212
  permanentId: string;
212
213
  citationId: string;
213
214
  };
215
+ export type GeneratedAnswerCitationClickMeta = GeneratedAnswerBaseMeta & {
216
+ citationId: string;
217
+ documentId: GeneratedAnswerDocumentIdentifier;
218
+ };
219
+ type GeneratedAnswerDocumentIdentifier = {
220
+ contentIdKey: string;
221
+ contentIdValue: string;
222
+ };
214
223
  export type GeneratedAnswerFeedbackReason = 'irrelevant' | 'notAccurate' | 'outOfDate' | 'harmful' | 'other';
215
224
  export type GeneratedAnswerRephraseFormat = 'step' | 'bullet' | 'concise' | 'default';
216
225
  export type GeneratedAnswerSourceHoverMeta = GeneratedAnswerCitationMeta & {
@@ -1 +1 @@
1
- export declare const libVersion = "2.30.38";
1
+ export declare const libVersion = "2.30.40";
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.30.38" ;
734
+ var libVersion = "2.30.40" ;
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);
@@ -84339,6 +84339,7 @@ exports.SearchPageEvents = void 0;
84339
84339
  SearchPageEvents["generatedAnswerFeedbackSubmit"] = "generatedAnswerFeedbackSubmit";
84340
84340
  SearchPageEvents["rephraseGeneratedAnswer"] = "rephraseGeneratedAnswer";
84341
84341
  SearchPageEvents["generatedAnswerFeedbackSubmitV2"] = "generatedAnswerFeedbackSubmitV2";
84342
+ SearchPageEvents["generatedAnswerCitationClick"] = "generatedAnswerCitationClick";
84342
84343
  })(exports.SearchPageEvents || (exports.SearchPageEvents = {}));
84343
84344
  var CustomEventsTypes = (_a = {},
84344
84345
  _a[exports.SearchPageEvents.triggerNotify] = 'queryPipelineTriggers',
@@ -85717,6 +85718,21 @@ var CoveoSearchPageClient = (function () {
85717
85718
  });
85718
85719
  });
85719
85720
  };
85721
+ CoveoSearchPageClient.prototype.makeGeneratedAnswerCitationClick = function (info, citation) {
85722
+ return this.makeClickEvent(exports.SearchPageEvents.generatedAnswerCitationClick, __assign(__assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, citation);
85723
+ };
85724
+ CoveoSearchPageClient.prototype.logGeneratedAnswerCitationClick = function (info, citation) {
85725
+ return __awaiter(this, void 0, void 0, function () {
85726
+ return __generator(this, function (_a) {
85727
+ switch (_a.label) {
85728
+ case 0: return [4, this.makeGeneratedAnswerCitationClick(info, citation)];
85729
+ case 1: return [2, (_a.sent()).log({
85730
+ searchUID: this.provider.getSearchUID(),
85731
+ })];
85732
+ }
85733
+ });
85734
+ });
85735
+ };
85720
85736
  CoveoSearchPageClient.prototype.makeGeneratedAnswerSourceHover = function (metadata) {
85721
85737
  return this.makeCustomEvent(exports.SearchPageEvents.generatedAnswerSourceHover, metadata);
85722
85738
  };
@@ -86235,6 +86251,9 @@ var CoveoInsightClient = (function () {
86235
86251
  return this.logCustomEvent(exports.SearchPageEvents.openGeneratedAnswerSource, metadata
86236
86252
  ? __assign(__assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
86237
86253
  };
86254
+ CoveoInsightClient.prototype.logGeneratedAnswerCitationClick = function (info, citation, metadata) {
86255
+ return this.logClickEvent(exports.SearchPageEvents.generatedAnswerCitationClick, __assign(__assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, metadata ? __assign(__assign({}, generateMetadataToSend(metadata, false)), citation) : citation);
86256
+ };
86238
86257
  CoveoInsightClient.prototype.logGeneratedAnswerSourceHover = function (generatedAnswerSourceMetadata, metadata) {
86239
86258
  return this.logCustomEvent(exports.SearchPageEvents.generatedAnswerSourceHover, metadata
86240
86259
  ? __assign(__assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
@@ -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.30.38" ;
599
+ const libVersion = "2.30.40" ;
600
600
 
601
601
  const getFormattedLocation = (location) => `${location.protocol}//${location.hostname}${location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`}${location.search}`;
602
602
 
@@ -1135,7 +1135,7 @@ class NoopAnalyticsClient {
1135
1135
  }
1136
1136
  }
1137
1137
 
1138
- const fetch$1 = window.fetch;
1138
+ const fetch$1 = globalThis.fetch;
1139
1139
 
1140
1140
  class AnalyticsFetchClient {
1141
1141
  constructor(opts) {
@@ -1824,6 +1824,7 @@ var SearchPageEvents;
1824
1824
  SearchPageEvents["generatedAnswerFeedbackSubmit"] = "generatedAnswerFeedbackSubmit";
1825
1825
  SearchPageEvents["rephraseGeneratedAnswer"] = "rephraseGeneratedAnswer";
1826
1826
  SearchPageEvents["generatedAnswerFeedbackSubmitV2"] = "generatedAnswerFeedbackSubmitV2";
1827
+ SearchPageEvents["generatedAnswerCitationClick"] = "generatedAnswerCitationClick";
1827
1828
  })(SearchPageEvents || (SearchPageEvents = {}));
1828
1829
  const CustomEventsTypes = {
1829
1830
  [SearchPageEvents.triggerNotify]: 'queryPipelineTriggers',
@@ -2703,6 +2704,16 @@ class CoveoSearchPageClient {
2703
2704
  });
2704
2705
  });
2705
2706
  }
2707
+ makeGeneratedAnswerCitationClick(info, citation) {
2708
+ return this.makeClickEvent(SearchPageEvents.generatedAnswerCitationClick, Object.assign(Object.assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, citation);
2709
+ }
2710
+ logGeneratedAnswerCitationClick(info, citation) {
2711
+ return __awaiter(this, void 0, void 0, function* () {
2712
+ return (yield this.makeGeneratedAnswerCitationClick(info, citation)).log({
2713
+ searchUID: this.provider.getSearchUID(),
2714
+ });
2715
+ });
2716
+ }
2706
2717
  makeGeneratedAnswerSourceHover(metadata) {
2707
2718
  return this.makeCustomEvent(SearchPageEvents.generatedAnswerSourceHover, metadata);
2708
2719
  }
@@ -3232,6 +3243,9 @@ class CoveoInsightClient {
3232
3243
  return this.logCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata
3233
3244
  ? Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
3234
3245
  }
3246
+ logGeneratedAnswerCitationClick(info, citation, metadata) {
3247
+ return this.logClickEvent(SearchPageEvents.generatedAnswerCitationClick, Object.assign(Object.assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, metadata ? Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), citation) : citation);
3248
+ }
3235
3249
  logGeneratedAnswerSourceHover(generatedAnswerSourceMetadata, metadata) {
3236
3250
  return this.logCustomEvent(SearchPageEvents.generatedAnswerSourceHover, metadata
3237
3251
  ? Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
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.30.38" ;
734
+ var libVersion = "2.30.40" ;
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);
@@ -84339,6 +84339,7 @@ exports.SearchPageEvents = void 0;
84339
84339
  SearchPageEvents["generatedAnswerFeedbackSubmit"] = "generatedAnswerFeedbackSubmit";
84340
84340
  SearchPageEvents["rephraseGeneratedAnswer"] = "rephraseGeneratedAnswer";
84341
84341
  SearchPageEvents["generatedAnswerFeedbackSubmitV2"] = "generatedAnswerFeedbackSubmitV2";
84342
+ SearchPageEvents["generatedAnswerCitationClick"] = "generatedAnswerCitationClick";
84342
84343
  })(exports.SearchPageEvents || (exports.SearchPageEvents = {}));
84343
84344
  var CustomEventsTypes = (_a = {},
84344
84345
  _a[exports.SearchPageEvents.triggerNotify] = 'queryPipelineTriggers',
@@ -85717,6 +85718,21 @@ var CoveoSearchPageClient = (function () {
85717
85718
  });
85718
85719
  });
85719
85720
  };
85721
+ CoveoSearchPageClient.prototype.makeGeneratedAnswerCitationClick = function (info, citation) {
85722
+ return this.makeClickEvent(exports.SearchPageEvents.generatedAnswerCitationClick, __assign(__assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, citation);
85723
+ };
85724
+ CoveoSearchPageClient.prototype.logGeneratedAnswerCitationClick = function (info, citation) {
85725
+ return __awaiter(this, void 0, void 0, function () {
85726
+ return __generator(this, function (_a) {
85727
+ switch (_a.label) {
85728
+ case 0: return [4, this.makeGeneratedAnswerCitationClick(info, citation)];
85729
+ case 1: return [2, (_a.sent()).log({
85730
+ searchUID: this.provider.getSearchUID(),
85731
+ })];
85732
+ }
85733
+ });
85734
+ });
85735
+ };
85720
85736
  CoveoSearchPageClient.prototype.makeGeneratedAnswerSourceHover = function (metadata) {
85721
85737
  return this.makeCustomEvent(exports.SearchPageEvents.generatedAnswerSourceHover, metadata);
85722
85738
  };
@@ -86235,6 +86251,9 @@ var CoveoInsightClient = (function () {
86235
86251
  return this.logCustomEvent(exports.SearchPageEvents.openGeneratedAnswerSource, metadata
86236
86252
  ? __assign(__assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
86237
86253
  };
86254
+ CoveoInsightClient.prototype.logGeneratedAnswerCitationClick = function (info, citation, metadata) {
86255
+ return this.logClickEvent(exports.SearchPageEvents.generatedAnswerCitationClick, __assign(__assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, metadata ? __assign(__assign({}, generateMetadataToSend(metadata, false)), citation) : citation);
86256
+ };
86238
86257
  CoveoInsightClient.prototype.logGeneratedAnswerSourceHover = function (generatedAnswerSourceMetadata, metadata) {
86239
86258
  return this.logCustomEvent(exports.SearchPageEvents.generatedAnswerSourceHover, metadata
86240
86259
  ? __assign(__assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
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.30.38" ;
732
+ var libVersion = "2.30.40" ;
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);
@@ -84337,6 +84337,7 @@ var SearchPageEvents;
84337
84337
  SearchPageEvents["generatedAnswerFeedbackSubmit"] = "generatedAnswerFeedbackSubmit";
84338
84338
  SearchPageEvents["rephraseGeneratedAnswer"] = "rephraseGeneratedAnswer";
84339
84339
  SearchPageEvents["generatedAnswerFeedbackSubmitV2"] = "generatedAnswerFeedbackSubmitV2";
84340
+ SearchPageEvents["generatedAnswerCitationClick"] = "generatedAnswerCitationClick";
84340
84341
  })(SearchPageEvents || (SearchPageEvents = {}));
84341
84342
  var CustomEventsTypes = (_a = {},
84342
84343
  _a[SearchPageEvents.triggerNotify] = 'queryPipelineTriggers',
@@ -85715,6 +85716,21 @@ var CoveoSearchPageClient = (function () {
85715
85716
  });
85716
85717
  });
85717
85718
  };
85719
+ CoveoSearchPageClient.prototype.makeGeneratedAnswerCitationClick = function (info, citation) {
85720
+ return this.makeClickEvent(SearchPageEvents.generatedAnswerCitationClick, __assign(__assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, citation);
85721
+ };
85722
+ CoveoSearchPageClient.prototype.logGeneratedAnswerCitationClick = function (info, citation) {
85723
+ return __awaiter(this, void 0, void 0, function () {
85724
+ return __generator(this, function (_a) {
85725
+ switch (_a.label) {
85726
+ case 0: return [4, this.makeGeneratedAnswerCitationClick(info, citation)];
85727
+ case 1: return [2, (_a.sent()).log({
85728
+ searchUID: this.provider.getSearchUID(),
85729
+ })];
85730
+ }
85731
+ });
85732
+ });
85733
+ };
85718
85734
  CoveoSearchPageClient.prototype.makeGeneratedAnswerSourceHover = function (metadata) {
85719
85735
  return this.makeCustomEvent(SearchPageEvents.generatedAnswerSourceHover, metadata);
85720
85736
  };
@@ -86233,6 +86249,9 @@ var CoveoInsightClient = (function () {
86233
86249
  return this.logCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata
86234
86250
  ? __assign(__assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
86235
86251
  };
86252
+ CoveoInsightClient.prototype.logGeneratedAnswerCitationClick = function (info, citation, metadata) {
86253
+ return this.logClickEvent(SearchPageEvents.generatedAnswerCitationClick, __assign(__assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, metadata ? __assign(__assign({}, generateMetadataToSend(metadata, false)), citation) : citation);
86254
+ };
86236
86255
  CoveoInsightClient.prototype.logGeneratedAnswerSourceHover = function (generatedAnswerSourceMetadata, metadata) {
86237
86256
  return this.logCustomEvent(SearchPageEvents.generatedAnswerSourceHover, metadata
86238
86257
  ? __assign(__assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
@@ -665,7 +665,7 @@ const addPageViewToHistory = (pageViewValue) => __awaiter(void 0, void 0, void 0
665
665
  yield store.addElementAsync(historyElement);
666
666
  });
667
667
 
668
- const libVersion = "2.30.38" ;
668
+ const libVersion = "2.30.40" ;
669
669
 
670
670
  const getFormattedLocation = (location) => `${location.protocol}//${location.hostname}${location.pathname.indexOf('/') === 0 ? location.pathname : `/${location.pathname}`}${location.search}`;
671
671
 
@@ -1845,6 +1845,7 @@ var SearchPageEvents;
1845
1845
  SearchPageEvents["generatedAnswerFeedbackSubmit"] = "generatedAnswerFeedbackSubmit";
1846
1846
  SearchPageEvents["rephraseGeneratedAnswer"] = "rephraseGeneratedAnswer";
1847
1847
  SearchPageEvents["generatedAnswerFeedbackSubmitV2"] = "generatedAnswerFeedbackSubmitV2";
1848
+ SearchPageEvents["generatedAnswerCitationClick"] = "generatedAnswerCitationClick";
1848
1849
  })(SearchPageEvents || (SearchPageEvents = {}));
1849
1850
  const CustomEventsTypes = {
1850
1851
  [SearchPageEvents.triggerNotify]: 'queryPipelineTriggers',
@@ -2724,6 +2725,16 @@ class CoveoSearchPageClient {
2724
2725
  });
2725
2726
  });
2726
2727
  }
2728
+ makeGeneratedAnswerCitationClick(info, citation) {
2729
+ return this.makeClickEvent(SearchPageEvents.generatedAnswerCitationClick, Object.assign(Object.assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, citation);
2730
+ }
2731
+ logGeneratedAnswerCitationClick(info, citation) {
2732
+ return __awaiter(this, void 0, void 0, function* () {
2733
+ return (yield this.makeGeneratedAnswerCitationClick(info, citation)).log({
2734
+ searchUID: this.provider.getSearchUID(),
2735
+ });
2736
+ });
2737
+ }
2727
2738
  makeGeneratedAnswerSourceHover(metadata) {
2728
2739
  return this.makeCustomEvent(SearchPageEvents.generatedAnswerSourceHover, metadata);
2729
2740
  }
@@ -3253,6 +3264,9 @@ class CoveoInsightClient {
3253
3264
  return this.logCustomEvent(SearchPageEvents.openGeneratedAnswerSource, metadata
3254
3265
  ? Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
3255
3266
  }
3267
+ logGeneratedAnswerCitationClick(info, citation, metadata) {
3268
+ return this.logClickEvent(SearchPageEvents.generatedAnswerCitationClick, Object.assign(Object.assign({}, info), { documentPosition: 1 }), { contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue }, metadata ? Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), citation) : citation);
3269
+ }
3256
3270
  logGeneratedAnswerSourceHover(generatedAnswerSourceMetadata, metadata) {
3257
3271
  return this.logCustomEvent(SearchPageEvents.generatedAnswerSourceHover, metadata
3258
3272
  ? Object.assign(Object.assign({}, generateMetadataToSend(metadata, false)), generatedAnswerSourceMetadata) : generatedAnswerSourceMetadata);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coveo.analytics",
3
- "version": "2.30.38",
3
+ "version": "2.30.40",
4
4
  "description": "📈 Coveo analytics client (node and browser compatible) ",
5
5
  "main": "dist/library.cjs",
6
6
  "module": "dist/browser.mjs",
package/src/events.ts CHANGED
@@ -72,7 +72,7 @@ export interface PreparedSearchEventRequest extends Omit<SearchEventRequest, 'se
72
72
 
73
73
  export interface DocumentInformation {
74
74
  documentUri?: string;
75
- documentUriHash: string;
75
+ documentUriHash?: string;
76
76
  collectionName?: string;
77
77
  sourceName: string;
78
78
  documentPosition: number;
@@ -544,6 +544,23 @@ describe('InsightClient', () => {
544
544
  expectMatchCustomEventPayload(SearchPageEvents.openGeneratedAnswerSource, exampleGeneratedAnswerMetadata);
545
545
  });
546
546
 
547
+ it('should send proper payload for #generatedAnswerCitationClick', async () => {
548
+ const meta = {
549
+ generativeQuestionAnsweringId: '123',
550
+ citationId: 'bar',
551
+ documentId: {contentIdKey: 'permanentid', contentIdValue: 'foo'},
552
+ };
553
+
554
+ const expectedMetadata = {
555
+ ...meta,
556
+ contentIDKey: meta.documentId.contentIdKey,
557
+ contentIDValue: meta.documentId.contentIdValue,
558
+ };
559
+
560
+ await client.logGeneratedAnswerCitationClick(fakeDocInfo, meta);
561
+ expectMatchDocumentPayload(SearchPageEvents.generatedAnswerCitationClick, fakeDocInfo, expectedMetadata);
562
+ });
563
+
547
564
  it('should send proper payload for #generatedAnswerSourceHover', async () => {
548
565
  const exampleGeneratedAnswerMetadata = {
549
566
  generativeQuestionAnsweringId: '123',
@@ -1331,6 +1348,23 @@ describe('InsightClient', () => {
1331
1348
  expectMatchCustomEventPayload(SearchPageEvents.openGeneratedAnswerSource, expectedMetadata);
1332
1349
  });
1333
1350
 
1351
+ it('should send proper payload for #generatedAnswerCitationClick', async () => {
1352
+ const meta = {
1353
+ generativeQuestionAnsweringId: '123',
1354
+ citationId: 'bar',
1355
+ documentId: {contentIdKey: 'permanentid', contentIdValue: 'foo'},
1356
+ };
1357
+
1358
+ const expectedMetadata = {
1359
+ ...meta,
1360
+ contentIDKey: meta.documentId.contentIdKey,
1361
+ contentIDValue: meta.documentId.contentIdValue,
1362
+ };
1363
+
1364
+ await client.logGeneratedAnswerCitationClick(fakeDocInfo, meta, baseCaseMetadata);
1365
+ expectMatchDocumentPayload(SearchPageEvents.generatedAnswerCitationClick, fakeDocInfo, expectedMetadata);
1366
+ });
1367
+
1334
1368
  it('should send proper payload for #generatedAnswerSourceHover', async () => {
1335
1369
  const exampleGeneratedAnswerMetadata = {
1336
1370
  generativeQuestionAnsweringId: '123',
@@ -7,6 +7,7 @@ import {
7
7
  DocumentIdentifier,
8
8
  FacetStateMetadata,
9
9
  GeneratedAnswerBaseMeta,
10
+ GeneratedAnswerCitationClickMeta,
10
11
  GeneratedAnswerCitationMeta,
11
12
  GeneratedAnswerFeedbackMeta,
12
13
  GeneratedAnswerFeedbackMetaV2,
@@ -520,6 +521,19 @@ export class CoveoInsightClient {
520
521
  );
521
522
  }
522
523
 
524
+ public logGeneratedAnswerCitationClick(
525
+ info: PartialDocumentInformation,
526
+ citation: GeneratedAnswerCitationClickMeta,
527
+ metadata?: CaseMetadata
528
+ ) {
529
+ return this.logClickEvent(
530
+ SearchPageEvents.generatedAnswerCitationClick,
531
+ {...info, documentPosition: 1},
532
+ {contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue},
533
+ metadata ? {...generateMetadataToSend(metadata, false), ...citation} : citation
534
+ );
535
+ }
536
+
523
537
  public logGeneratedAnswerSourceHover(
524
538
  generatedAnswerSourceMetadata: GeneratedAnswerSourceHoverMeta,
525
539
  metadata?: CaseMetadata
@@ -1494,6 +1494,35 @@ describe('SearchPageClient', () => {
1494
1494
  expectMatchDescription(built.description, SearchPageEvents.openGeneratedAnswerSource, meta);
1495
1495
  });
1496
1496
 
1497
+ it('should send proper payload for #logGeneratedAnswerCitationClick', async () => {
1498
+ const meta = {
1499
+ generativeQuestionAnsweringId: fakeStreamId,
1500
+ citationId: 'some-document-id',
1501
+ documentId: {contentIdKey: 'permanentid', contentIdValue: 'foo'},
1502
+ };
1503
+
1504
+ await client.logGeneratedAnswerCitationClick(fakeDocInfo, meta);
1505
+ expectMatchDocumentPayload(SearchPageEvents.generatedAnswerCitationClick, fakeDocInfo, {
1506
+ ...meta,
1507
+ contentIDKey: meta.documentId.contentIdKey,
1508
+ contentIDValue: meta.documentId.contentIdValue,
1509
+ });
1510
+ });
1511
+
1512
+ it('should send proper payload for #makeGeneratedAnswerCitationClick', async () => {
1513
+ const meta = {
1514
+ generativeQuestionAnsweringId: fakeStreamId,
1515
+ citationId: 'some-document-id',
1516
+ contentIDKey: 'permanentid',
1517
+ contentIDValue: 'foo',
1518
+ documentId: {contentIdKey: 'permanentid', contentIdValue: 'foo'},
1519
+ };
1520
+ const built = await client.makeGeneratedAnswerCitationClick(fakeDocInfo, meta);
1521
+ await built.log({searchUID: provider.getSearchUID()});
1522
+ expectMatchDocumentPayload(SearchPageEvents.generatedAnswerCitationClick, fakeDocInfo, meta);
1523
+ expectMatchDescription(built.description, SearchPageEvents.generatedAnswerCitationClick, meta);
1524
+ });
1525
+
1497
1526
  it('should send proper payload for #logGeneratedAnswerStreamEnd', async () => {
1498
1527
  const meta = {generativeQuestionAnsweringId: fakeStreamId, answerGenerated: true, answerTextIsEmpty: false};
1499
1528
  await client.logGeneratedAnswerStreamEnd(meta);
@@ -43,6 +43,7 @@ import {
43
43
  GeneratedAnswerBaseMeta,
44
44
  GeneratedAnswerRephraseMeta,
45
45
  GeneratedAnswerFeedbackMetaV2,
46
+ GeneratedAnswerCitationClickMeta,
46
47
  } from './searchPageEvents';
47
48
  import {NoopAnalytics} from '../client/noopAnalytics';
48
49
  import {formatOmniboxMetadata} from '../formatting/format-omnibox-metadata';
@@ -912,6 +913,27 @@ export class CoveoSearchPageClient {
912
913
  });
913
914
  }
914
915
 
916
+ public makeGeneratedAnswerCitationClick(
917
+ info: PartialDocumentInformation,
918
+ citation: GeneratedAnswerCitationClickMeta
919
+ ) {
920
+ return this.makeClickEvent(
921
+ SearchPageEvents.generatedAnswerCitationClick,
922
+ {...info, documentPosition: 1},
923
+ {contentIDKey: citation.documentId.contentIdKey, contentIDValue: citation.documentId.contentIdValue},
924
+ citation
925
+ );
926
+ }
927
+
928
+ public async logGeneratedAnswerCitationClick(
929
+ info: PartialDocumentInformation,
930
+ citation: GeneratedAnswerCitationClickMeta
931
+ ) {
932
+ return (await this.makeGeneratedAnswerCitationClick(info, citation)).log({
933
+ searchUID: this.provider.getSearchUID(),
934
+ });
935
+ }
936
+
915
937
  public makeGeneratedAnswerSourceHover(metadata: GeneratedAnswerSourceHoverMeta) {
916
938
  return this.makeCustomEvent(SearchPageEvents.generatedAnswerSourceHover, metadata);
917
939
  }
@@ -350,6 +350,10 @@ export enum SearchPageEvents {
350
350
  * Identifies the new version of custom event that gets logged when a user submits a feedback of a generated answer.
351
351
  */
352
352
  generatedAnswerFeedbackSubmitV2 = 'generatedAnswerFeedbackSubmitV2',
353
+ /**
354
+ * Identifies the click event that gets logged when the user clicks on a generated answer citation.
355
+ */
356
+ generatedAnswerCitationClick = 'generatedAnswerCitationClick',
353
357
  }
354
358
 
355
359
  export const CustomEventsTypes: Partial<Record<SearchPageEvents | InsightEvents, string>> = {
@@ -561,6 +565,16 @@ export type GeneratedAnswerCitationMeta = GeneratedAnswerBaseMeta & {
561
565
  citationId: string;
562
566
  };
563
567
 
568
+ export type GeneratedAnswerCitationClickMeta = GeneratedAnswerBaseMeta & {
569
+ citationId: string;
570
+ documentId: GeneratedAnswerDocumentIdentifier;
571
+ };
572
+
573
+ type GeneratedAnswerDocumentIdentifier = {
574
+ contentIdKey: string;
575
+ contentIdValue: string;
576
+ };
577
+
564
578
  export type GeneratedAnswerFeedbackReason = 'irrelevant' | 'notAccurate' | 'outOfDate' | 'harmful' | 'other';
565
579
 
566
580
  export type GeneratedAnswerRephraseFormat = 'step' | 'bullet' | 'concise' | 'default';