@coveo/quantic 3.29.3 → 3.29.4-pre.002990914d

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.
Files changed (47) hide show
  1. package/force-app/main/default/lwc/quanticCategoryFacetValue/quanticCategoryFacetValue.js +1 -1
  2. package/force-app/main/default/lwc/quanticColoredResultBadge/quanticColoredResultBadge.js +1 -1
  3. package/force-app/main/default/lwc/quanticFacetValue/quanticFacetValue.js +1 -1
  4. package/force-app/main/default/lwc/quanticQuickviewContent/quanticQuickviewContent.js +1 -1
  5. package/force-app/main/default/lwc/quanticResult/quanticResult.js +1 -1
  6. package/force-app/main/default/lwc/quanticResultDate/quanticResultDate.js +1 -1
  7. package/force-app/main/default/lwc/quanticResultField/quanticResultField.js +1 -1
  8. package/force-app/main/default/lwc/quanticResultHighlightedTextField/quanticResultHighlightedTextField.js +1 -1
  9. package/force-app/main/default/lwc/quanticResultLabel/quanticResultLabel.js +1 -1
  10. package/force-app/main/default/lwc/quanticResultLink/quanticResultLink.js +1 -1
  11. package/force-app/main/default/lwc/quanticResultMultiValueText/quanticResultMultiValueText.js +1 -1
  12. package/force-app/main/default/lwc/quanticResultNumber/quanticResultNumber.js +1 -1
  13. package/force-app/main/default/lwc/quanticResultPrintableUri/quanticResultPrintableUri.js +1 -1
  14. package/force-app/main/default/lwc/quanticResultTag/quanticResultTag.js +1 -1
  15. package/force-app/main/default/lwc/quanticResultText/quanticResultText.js +1 -1
  16. package/force-app/main/default/lwc/quanticViewedByCustomerBadge/quanticViewedByCustomerBadge.js +1 -1
  17. package/force-app/main/default/staticresources/coveoheadless/case-assist/headless.js +8 -8
  18. package/force-app/main/default/staticresources/coveoheadless/definitions/api/analytics/search-analytics.d.ts +5 -3
  19. package/force-app/main/default/staticresources/coveoheadless/definitions/api/commerce/common/product.d.ts +4 -0
  20. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/generated-answer-stream.d.ts +15 -0
  21. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-actions.d.ts +2 -2
  22. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-api-state.d.ts +6 -0
  23. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-api.d.ts +8 -28
  24. package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/tests/stream-answer-api-state-mock.d.ts +12 -12
  25. package/force-app/main/default/staticresources/coveoheadless/definitions/controllers/core/facets/range-facet/date-facet/date-range.d.ts +2 -2
  26. package/force-app/main/default/staticresources/coveoheadless/definitions/features/facets/range-facets/date-facet-set/interfaces/request.d.ts +2 -2
  27. package/force-app/main/default/staticresources/coveoheadless/definitions/features/generated-answer/generated-answer-selectors.d.ts +1 -4
  28. package/force-app/main/default/staticresources/coveoheadless/definitions/features/search/legacy/search-request.d.ts +1 -1
  29. package/force-app/main/default/staticresources/coveoheadless/definitions/features/search/search-request.d.ts +1 -1
  30. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-commerce-next.index.d.ts +1 -1
  31. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/controller-utils.d.ts +6 -7
  32. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/controllers/context/headless-context.ssr.d.ts +3 -1
  33. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/controllers/parameter-manager/headless-core-parameter-manager.ssr.d.ts +2 -1
  34. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/controller-inference.d.ts +3 -2
  35. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/common/builders/controller-builder.d.ts +17 -0
  36. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/common/builders/static-controller-builder.d.ts +24 -0
  37. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/common/controller-utils.d.ts +6 -6
  38. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/common/types/controllers.d.ts +6 -0
  39. package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/common/types/inference.d.ts +3 -2
  40. package/force-app/main/default/staticresources/coveoheadless/definitions/state/state-sections.d.ts +8 -0
  41. package/force-app/main/default/staticresources/coveoheadless/definitions/test/mock-controller.d.ts +9 -0
  42. package/force-app/main/default/staticresources/coveoheadless/definitions/test/mock-ssr-controller-definitions.d.ts +38 -0
  43. package/force-app/main/default/staticresources/coveoheadless/definitions/utils/facet-utils.d.ts +1 -1
  44. package/force-app/main/default/staticresources/coveoheadless/headless.js +11 -11
  45. package/force-app/main/default/staticresources/coveoheadless/insight/headless.js +9 -9
  46. package/force-app/main/default/staticresources/coveoheadless/recommendation/headless.js +7 -7
  47. package/package.json +2 -2
@@ -90,13 +90,15 @@ export declare class SearchAnalyticsProvider extends BaseAnalyticsProvider<State
90
90
  protected get responseTime(): number;
91
91
  protected get numberOfResults(): number;
92
92
  }
93
- interface LegacyConfigureAnalyticsOptions {
93
+ interface LegacyConfigureAnalyticsOptions<State extends ConfigurationSection = StateNeededBySearchAnalyticsProvider> {
94
94
  logger: Logger;
95
95
  analyticsClientMiddleware?: AnalyticsClientSendEventHook;
96
96
  preprocessRequest?: PreprocessRequest;
97
97
  provider?: SearchPageClientProvider;
98
- getState(): StateNeededBySearchAnalyticsProvider;
98
+ getState(): State;
99
99
  }
100
- export declare const configureLegacyAnalytics: ({ logger, getState, analyticsClientMiddleware, preprocessRequest, provider, }: LegacyConfigureAnalyticsOptions) => CoveoSearchPageClient;
100
+ export declare const configureLegacyAnalytics: <State extends ConfigurationSection = StateNeededBySearchAnalyticsProvider>({ logger, getState, analyticsClientMiddleware, preprocessRequest, provider, }: LegacyConfigureAnalyticsOptions<State> & {
101
+ provider: SearchPageClientProvider;
102
+ }) => CoveoSearchPageClient;
101
103
  export declare const getPageID: () => string;
102
104
  export {};
@@ -130,6 +130,10 @@ export interface BaseProduct {
130
130
  * The length and offset of each word to highlight in the product excerpt string.
131
131
  */
132
132
  excerptsHighlights?: HighlightKeyword[];
133
+ /**
134
+ * The ID of the response that returned the product.
135
+ */
136
+ responseId?: string;
133
137
  }
134
138
  export interface Product extends BaseProduct {
135
139
  /**
@@ -0,0 +1,15 @@
1
+ import type { GeneratedContentFormat } from '../../features/generated-answer/generated-response-format.js';
2
+ import type { GeneratedAnswerCitation } from '../generated-answer/generated-answer-event-payload.js';
3
+ export interface GeneratedAnswerStream {
4
+ answerId?: string;
5
+ contentFormat?: GeneratedContentFormat;
6
+ answer?: string;
7
+ citations?: GeneratedAnswerCitation[];
8
+ generated?: boolean;
9
+ isStreaming: boolean;
10
+ isLoading: boolean;
11
+ error?: {
12
+ message: string;
13
+ code: number;
14
+ };
15
+ }
@@ -1,7 +1,7 @@
1
1
  import type { NavigatorContext } from '../../app/navigator-context-provider.js';
2
- import { type StateNeededByAnswerAPI } from './stream-answer-api.js';
2
+ import type { StreamAnswerAPIState } from './stream-answer-api-state.js';
3
3
  export declare const triggerSearchRequest: import("@reduxjs/toolkit").AsyncThunk<void, {
4
- state: StateNeededByAnswerAPI;
4
+ state: StreamAnswerAPIState;
5
5
  navigatorContext: NavigatorContext;
6
6
  }, {
7
7
  state?: unknown;
@@ -0,0 +1,6 @@
1
+ import type { SearchAppState } from '../../state/search-app-state.js';
2
+ import type { ConfigurationSection, GeneratedAnswerSection, GetAnswerQuerySection, InsightConfigurationSection, TabSection } from '../../state/state-sections.js';
3
+ export type StreamAnswerAPIState = {
4
+ searchHub: string;
5
+ pipeline: string;
6
+ } & GetAnswerQuerySection & ConfigurationSection & Partial<SearchAppState> & Partial<InsightConfigurationSection> & GeneratedAnswerSection & Partial<TabSection>;
@@ -1,30 +1,10 @@
1
1
  import { type ThunkDispatch, type UnknownAction } from '@reduxjs/toolkit';
2
2
  import { type NavigatorContext } from '../../app/navigator-context-provider.js';
3
- import type { GeneratedContentFormat } from '../../features/generated-answer/generated-response-format.js';
4
- import type { SearchAppState } from '../../state/search-app-state.js';
5
- import type { ConfigurationSection, GeneratedAnswerSection, InsightConfigurationSection, TabSection } from '../../state/state-sections.js';
6
3
  import type { EventSourceMessage } from '../../utils/fetch-event-source/parse.js';
7
- import type { GeneratedAnswerCitation } from '../generated-answer/generated-answer-event-payload.js';
8
4
  import type { SearchRequest } from '../search/search/search-request.js';
9
- export type StateNeededByAnswerAPI = {
10
- searchHub: string;
11
- pipeline: string;
12
- answer: ReturnType<typeof answerApi.reducer>;
13
- } & ConfigurationSection & Partial<SearchAppState> & Partial<InsightConfigurationSection> & GeneratedAnswerSection & Partial<TabSection>;
14
- export interface GeneratedAnswerStream {
15
- answerId?: string;
16
- contentFormat?: GeneratedContentFormat;
17
- answer?: string;
18
- citations?: GeneratedAnswerCitation[];
19
- generated?: boolean;
20
- isStreaming: boolean;
21
- isLoading: boolean;
22
- error?: {
23
- message: string;
24
- code: number;
25
- };
26
- }
27
- export declare const updateCacheWithEvent: (event: EventSourceMessage, draft: GeneratedAnswerStream, dispatch: ThunkDispatch<StateNeededByAnswerAPI, unknown, UnknownAction>) => void;
5
+ import type { GeneratedAnswerStream } from './generated-answer-stream.js';
6
+ import type { StreamAnswerAPIState } from './stream-answer-api-state.js';
7
+ export declare const updateCacheWithEvent: (event: EventSourceMessage, draft: GeneratedAnswerStream, dispatch: ThunkDispatch<StreamAnswerAPIState, unknown, UnknownAction>) => void;
28
8
  export declare const answerApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, {
29
9
  getAnswer: import("@reduxjs/toolkit/query").QueryDefinition<Partial<SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, GeneratedAnswerStream, "answer">;
30
10
  }, "answer", never, typeof import("@reduxjs/toolkit/query").coreModuleName>;
@@ -73,7 +53,7 @@ export declare const selectAnswerTriggerParams: ((state: any, ...params: any[])
73
53
  argsMemoize: typeof import("reselect").weakMapMemoize;
74
54
  memoize: typeof import("reselect").weakMapMemoize;
75
55
  };
76
- export declare const constructAnswerQueryParams: (state: StateNeededByAnswerAPI, usage: "fetch" | "select", navigatorContext: NavigatorContext) => {
56
+ export declare const constructAnswerQueryParams: (state: StreamAnswerAPIState, usage: "fetch" | "select", navigatorContext: NavigatorContext) => {
77
57
  analytics?: {
78
58
  actionCause?: string;
79
59
  customData?: object;
@@ -100,12 +80,12 @@ export declare const constructAnswerQueryParams: (state: StateNeededByAnswerAPI,
100
80
  } | undefined;
101
81
  enableDidYouMean?: boolean | undefined;
102
82
  fieldsToInclude?: string[] | undefined;
103
- facets?: (import("../../features/facets/facet-set/interfaces/request.js").FacetRequest | import("../../features/facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../../features/facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest | import("../../features/facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest)[] | undefined;
83
+ facets?: (import("../../features/facets/facet-set/interfaces/request.js").FacetRequest | import("../../features/facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../../features/facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest | import("../../features/facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest)[] | undefined;
104
84
  pipeline?: string | undefined;
105
85
  searchHub?: string | undefined;
106
86
  pipelineRuleParameters: {
107
87
  mlGenerativeQuestionAnswering: {
108
- responseFormat: import("../../features/generated-answer/generated-response-format.js").GeneratedResponseFormat;
88
+ responseFormat: import("../../index.js").GeneratedResponseFormat;
109
89
  citationsFieldToInclude: string[];
110
90
  };
111
91
  };
@@ -117,8 +97,8 @@ export declare const constructAnswerQueryParams: (state: StateNeededByAnswerAPI,
117
97
  aq?: string | undefined;
118
98
  q: string | undefined;
119
99
  };
120
- export declare const fetchAnswer: (state: StateNeededByAnswerAPI, navigatorContext: NavigatorContext) => import("redux-thunk").ThunkAction<import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<Partial<SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, GeneratedAnswerStream, "answer">>, any, any, UnknownAction>;
121
- export declare const selectAnswer: (state: StateNeededByAnswerAPI, navigatorContext?: NavigatorContext) => ({
100
+ export declare const fetchAnswer: (state: StreamAnswerAPIState, navigatorContext: NavigatorContext) => import("redux-thunk").ThunkAction<import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<Partial<SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, GeneratedAnswerStream, "answer">>, any, any, UnknownAction>;
101
+ export declare const selectAnswer: (state: StreamAnswerAPIState, navigatorContext?: NavigatorContext) => ({
122
102
  status: import("@reduxjs/toolkit/query").QueryStatus.uninitialized;
123
103
  originalArgs?: undefined | undefined;
124
104
  data?: undefined | undefined;
@@ -1,12 +1,12 @@
1
1
  /** biome-ignore-all lint/suspicious/noExplicitAny: <mock> */
2
- import type { StateNeededByAnswerAPI } from '../stream-answer-api.js';
3
- export declare const streamAnswerAPIStateMock: StateNeededByAnswerAPI;
4
- export declare const streamAnswerAPIStateMockWithATabWithAnExpression: StateNeededByAnswerAPI;
5
- export declare const streamAnswerAPIStateMockWithoutAnyTab: StateNeededByAnswerAPI;
6
- export declare const streamAnswerAPIStateMockWithStaticFiltersSelected: StateNeededByAnswerAPI;
7
- export declare const streamAnswerAPIStateMockWithNonValidFilters: StateNeededByAnswerAPI;
8
- export declare const streamAnswerAPIStateMockWithoutAnyFilters: StateNeededByAnswerAPI;
9
- export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpression: StateNeededByAnswerAPI;
2
+ import type { StreamAnswerAPIState } from '../stream-answer-api-state.js';
3
+ export declare const streamAnswerAPIStateMock: StreamAnswerAPIState;
4
+ export declare const streamAnswerAPIStateMockWithATabWithAnExpression: StreamAnswerAPIState;
5
+ export declare const streamAnswerAPIStateMockWithoutAnyTab: StreamAnswerAPIState;
6
+ export declare const streamAnswerAPIStateMockWithStaticFiltersSelected: StreamAnswerAPIState;
7
+ export declare const streamAnswerAPIStateMockWithNonValidFilters: StreamAnswerAPIState;
8
+ export declare const streamAnswerAPIStateMockWithoutAnyFilters: StreamAnswerAPIState;
9
+ export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpression: StreamAnswerAPIState;
10
10
  export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpressionWithEmptyCQ: {
11
11
  advancedSearchQueries: {
12
12
  cq: string;
@@ -26,9 +26,9 @@ export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpressionWi
26
26
  };
27
27
  searchHub: string;
28
28
  pipeline: string;
29
- answer: ReturnType<import("redux").Reducer<import("@reduxjs/toolkit/query").CombinedState<{
30
- getAnswer: import("@reduxjs/toolkit/query").QueryDefinition<Partial<import("../../search/search/search-request.js").SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, import("../stream-answer-api.js").GeneratedAnswerStream, "answer">;
31
- }, never, "answer">, import("redux").UnknownAction>>;
29
+ answer: import("@reduxjs/toolkit/query").CombinedState<{
30
+ getAnswer: import("@reduxjs/toolkit/query").QueryDefinition<Partial<import("../../search/search/search-request.js").SearchRequest>, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {} & import("@reduxjs/toolkit/query").RetryOptions, {}>, never, import("../generated-answer-stream.js").GeneratedAnswerStream, "answer">;
31
+ }, never, "answer">;
32
32
  configuration: import("../../../features/configuration/configuration-state.js").ConfigurationState;
33
33
  facetSet?: import("../../../features/facets/facet-set/facet-set-state.js").FacetSetState | undefined;
34
34
  dateFacetSet?: import("../../../features/facets/range-facets/date-facet-set/date-facet-set-state.js").DateFacetSetState | undefined;
@@ -66,7 +66,7 @@ export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpressionWi
66
66
  instantResults?: import("../../../features/instant-results/instant-results-state.js").InstantResultsState | undefined;
67
67
  insightConfiguration?: import("../../../features/insight-configuration/insight-configuration-state.js").InsightConfigurationState | undefined;
68
68
  };
69
- export declare const streamAnswerAPIStateMockWithoutSearchAction: StateNeededByAnswerAPI;
69
+ export declare const streamAnswerAPIStateMockWithoutSearchAction: StreamAnswerAPIState;
70
70
  export declare const expectedStreamAnswerAPIParam: {
71
71
  q: string;
72
72
  aq: string;
@@ -5,11 +5,11 @@ import type { DateRangeRequest } from '../../../../../features/facets/range-face
5
5
  export type DateRangeInput = AbsoluteDate | RelativeDate;
6
6
  export interface DateRangeOptions {
7
7
  /**
8
- * The starting value for the date range. A date range can be either absolute or [relative](https://docs.coveo.com/en/headless/latest/reference/search/controllers/date-facet/relative-date-format/).
8
+ * The starting value for the date range. A date range can be either absolute or [relative](https://docs.coveo.com/en/headless/latest/reference/documents/Search.DateFacet.relative-date-format.html).
9
9
  */
10
10
  start: DateRangeInput;
11
11
  /**
12
- * The ending value for the date range. A date range can be either absolute or [relative](https://docs.coveo.com/en/headless/latest/reference/search/controllers/date-facet/relative-date-format/).
12
+ * The ending value for the date range. A date range can be either absolute or [relative](https://docs.coveo.com/en/headless/latest/reference/documents/Search.DateFacet.relative-date-format.html).
13
13
  */
14
14
  end: DateRangeInput;
15
15
  /**
@@ -7,11 +7,11 @@ import type { BaseRangeFacetRequest } from '../../generic/interfaces/request.js'
7
7
  */
8
8
  export interface DateRangeRequest {
9
9
  /**
10
- * The starting value for the date range, formatted as `YYYY/MM/DD@HH:mm:ss` or the [Relative Date](https://docs.coveo.com/en/headless/latest/reference/search/controllers/date-facet/relative-date-format/) format "period-amount-unit".
10
+ * The starting value for the date range, formatted as `YYYY/MM/DD@HH:mm:ss` or the [Relative Date](https://docs.coveo.com/en/headless/latest/reference/documents/Search.DateFacet.relative-date-format.html) format "period-amount-unit".
11
11
  */
12
12
  start: string;
13
13
  /**
14
- * The ending value for the date range, formatted as `YYYY/MM/DD@HH:mm:ss` or the [Relative Date](https://docs.coveo.com/en/headless/latest/reference/search/controllers/date-facet/relative-date-format/) format "period-amount-unit".
14
+ * The ending value for the date range, formatted as `YYYY/MM/DD@HH:mm:ss` or the [Relative Date](https://docs.coveo.com/en/headless/latest/reference/documents/Search.DateFacet.relative-date-format.html) format "period-amount-unit".
15
15
  */
16
16
  end: string;
17
17
  /**
@@ -1,10 +1,7 @@
1
1
  import type { GeneratedAnswerCitation } from '../../controllers/generated-answer/headless-generated-answer.js';
2
2
  import type { SearchAppState } from '../../state/search-app-state.js';
3
3
  import type { GeneratedAnswerSection } from '../../state/state-sections.js';
4
- export declare const generativeQuestionAnsweringIdSelector: (state: Partial<SearchAppState>) => {
5
- answerAPIEnabled: boolean;
6
- id: string | undefined;
7
- };
4
+ export declare const generativeQuestionAnsweringIdSelector: (state: Partial<SearchAppState>) => string | undefined;
8
5
  export declare const selectFieldsToIncludeInCitation: (state: Partial<GeneratedAnswerSection>) => string[] | undefined;
9
6
  export declare const citationSourceSelector: ((state: Partial<GeneratedAnswerSection>, citationId: string) => GeneratedAnswerCitation | undefined) & {
10
7
  clearCache: () => void;
@@ -24,7 +24,7 @@ export declare const buildSearchRequest: (state: StateNeededBySearchRequest, eve
24
24
  facetOptions?: import("../../facet-options/facet-options.js").FacetOptions;
25
25
  numberOfResults?: number;
26
26
  firstResult?: number;
27
- facets?: (import("../../facets/facet-set/interfaces/request.js").FacetRequest | import("../../facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../../facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest | import("../../facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest)[] | undefined;
27
+ facets?: (import("../../facets/facet-set/interfaces/request.js").FacetRequest | import("../../facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../../facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest | import("../../facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest)[] | undefined;
28
28
  cq?: string;
29
29
  queryCorrection?: {
30
30
  enabled?: boolean;
@@ -25,7 +25,7 @@ export declare const buildSearchRequest: (state: StateNeededBySearchRequest, nav
25
25
  facetOptions?: import("../facet-options/facet-options.js").FacetOptions;
26
26
  numberOfResults?: number;
27
27
  firstResult?: number;
28
- facets?: (import("../facets/facet-set/interfaces/request.js").FacetRequest | import("../facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest | import("../facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest)[] | undefined;
28
+ facets?: (import("../facets/facet-set/interfaces/request.js").FacetRequest | import("../facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest | import("../facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest)[] | undefined;
29
29
  cq?: string;
30
30
  queryCorrection?: {
31
31
  enabled?: boolean;
@@ -93,7 +93,7 @@ export type { InstantProducts, InstantProductsDefinition, InstantProductsOptions
93
93
  export { defineInstantProducts } from './ssr-next/commerce/controllers/instant-products/headless-instant-products.ssr.js';
94
94
  export type { CorePaginationOptions, Pagination, PaginationOptions, PaginationProps, PaginationState, } from './ssr-next/commerce/controllers/pagination/headless-core-commerce-pagination.ssr.js';
95
95
  export { definePagination } from './ssr-next/commerce/controllers/pagination/headless-core-commerce-pagination.ssr.js';
96
- export type { CommerceSearchParameters, ParameterManager, ParameterManagerProps, ParameterManagerState, Parameters, ProductListingParameters, SSRParameterManagerProps, } from './ssr-next/commerce/controllers/parameter-manager/headless-core-parameter-manager.ssr.js';
96
+ export type { CommerceSearchParameters, ParameterManager, ParameterManagerDefinition, ParameterManagerProps, ParameterManagerState, Parameters, ProductListingParameters, SSRParameterManagerProps, } from './ssr-next/commerce/controllers/parameter-manager/headless-core-parameter-manager.ssr.js';
97
97
  export { defineParameterManager } from './ssr-next/commerce/controllers/parameter-manager/headless-core-parameter-manager.ssr.js';
98
98
  export type { ProductList, ProductListing, ProductListState, Search, } from './ssr-next/commerce/controllers/product-list/headless-product-list.ssr.js';
99
99
  export { defineProductList } from './ssr-next/commerce/controllers/product-list/headless-product-list.ssr.js';
@@ -1,19 +1,18 @@
1
1
  import type { UnknownAction } from '@reduxjs/toolkit';
2
2
  import type { Controller } from '../../controllers/controller/headless-controller.js';
3
- import type { ControllersMap } from '../common/types/controllers.js';
4
3
  import type { SSRCommerceEngine } from './factories/build-factory.js';
5
4
  import type { SolutionType } from './types/controller-constants.js';
6
- import type { ControllerDefinitionOption, ControllerDefinitionsMap, InferControllerStaticStateMapFromControllers } from './types/controller-definitions.js';
7
- import type { InferControllerPropsMapFromDefinitions, InferControllersMapFromDefinition } from './types/controller-inference.js';
5
+ import type { ControllerDefinitionOption, ControllerDefinitionsMap } from './types/controller-definitions.js';
6
+ import type { InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromDefinitionsWithSolutionType, InferControllersMapFromDefinition } from './types/controller-inference.js';
8
7
  import type { EngineStaticState } from './types/engine.js';
9
- export declare function createStaticState<TSearchAction extends UnknownAction>({ searchActions, controllers, }: {
8
+ export declare function createStaticState<TSearchAction extends UnknownAction, TControllerDefinitions extends ControllerDefinitionsMap<Controller>>({ searchActions, controllers, }: {
10
9
  searchActions: TSearchAction[];
11
- controllers: ControllersMap;
12
- }): EngineStaticState<TSearchAction, InferControllerStaticStateMapFromControllers<ControllersMap>>;
10
+ controllers: InferControllersMapFromDefinition<TControllerDefinitions, SolutionType>;
11
+ }): EngineStaticState<TSearchAction, InferControllerStaticStateMapFromDefinitionsWithSolutionType<TControllerDefinitions, SolutionType>>;
13
12
  export declare function buildControllerDefinitions<TControllerDefinitionsMap extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType>({ definitionsMap, engine, solutionType, propsMap, }: {
14
13
  definitionsMap: TControllerDefinitionsMap;
15
14
  engine: SSRCommerceEngine;
16
15
  solutionType: TSolutionType;
17
- propsMap: InferControllerPropsMapFromDefinitions<TControllerDefinitionsMap>;
16
+ propsMap?: InferControllerPropsMapFromDefinitions<TControllerDefinitionsMap>;
18
17
  }): InferControllersMapFromDefinition<TControllerDefinitionsMap, TSolutionType>;
19
18
  export declare function ensureAtLeastOneSolutionType(options?: ControllerDefinitionOption): void;
@@ -1,7 +1,9 @@
1
1
  import { type Context, type ContextOptions, type ContextProps, type ContextState, type UserLocation, type View } from '../../../../controllers/commerce/context/headless-context.js';
2
2
  import type { UniversalControllerDefinitionWithProps } from '../../types/controller-definitions.js';
3
3
  export type { Context, ContextProps, ContextState, View, UserLocation, ContextOptions, };
4
- export interface ContextDefinition extends UniversalControllerDefinitionWithProps<Context, ContextOptions> {
4
+ export interface ContextDefinition extends UniversalControllerDefinitionWithProps<Context, {
5
+ initialState: ContextOptions;
6
+ }> {
5
7
  }
6
8
  /**
7
9
  * Defines a `Context` controller instance.
@@ -4,13 +4,14 @@ import type { ProductListingParameters } from '../../../../features/commerce/pro
4
4
  import type { CommerceSearchParameters } from '../../../../features/commerce/search-parameters/search-parameters-actions.js';
5
5
  import type { ControllerDefinitionOption, SubControllerDefinitionWithProps } from '../../types/controller-definitions.js';
6
6
  export type { ParameterManager, ParameterManagerProps, ParameterManagerState, Parameters, ProductListingParameters, CommerceSearchParameters, };
7
+ export type ParameterManagerDefinition<TOptions extends ControllerDefinitionOption | undefined> = SubControllerDefinitionWithProps<ParameterManager<MappedParameterTypes<TOptions>>, TOptions, SSRParameterManagerProps<MappedParameterTypes<TOptions>>>;
7
8
  /**
8
9
  * Defines a `ParameterManager` controller instance.
9
10
  * @group Definers
10
11
  *
11
12
  * @returns The `ParameterManager` controller definition.
12
13
  */
13
- export declare function defineParameterManager<TOptions extends ControllerDefinitionOption | undefined>(options?: TOptions): SubControllerDefinitionWithProps<ParameterManager<MappedParameterTypes<TOptions>>, TOptions, SSRParameterManagerProps<MappedParameterTypes<TOptions>>>;
14
+ export declare function defineParameterManager<TOptions extends ControllerDefinitionOption | undefined>(options?: TOptions): ParameterManagerDefinition<TOptions>;
14
15
  export interface SSRParameterManagerProps<T extends Parameters> extends Omit<ParameterManagerProps<T>, 'excludeDefaultParameters'> {
15
16
  }
16
17
  type MappedParameterTypes<TOptions extends ControllerDefinitionOption | undefined> = TOptions extends {
@@ -8,7 +8,7 @@ export type InferStaticState<T extends {
8
8
  export type InferHydratedState<T extends {
9
9
  hydrateStaticState(...args: unknown[]): Promise<unknown>;
10
10
  }> = Awaited<ReturnType<T['hydrateStaticState']>>;
11
- export type InferControllerPropsFromDefinition<TController extends ControllerDefinition<Controller>> = TController extends ControllerDefinitionWithProps<Controller, infer Props> ? HasKey<TController, typeof recommendationInternalOptionKey> extends never ? Props : Props & RecommendationControllerSettings : TController extends ControllerDefinitionWithoutProps<Controller> ? HasKey<TController, typeof recommendationInternalOptionKey> extends never ? {} : RecommendationControllerSettings : unknown;
11
+ type InferControllerPropsFromDefinition<TController extends ControllerDefinition<Controller>> = TController extends ControllerDefinitionWithProps<Controller, infer Props> ? HasKey<TController, typeof recommendationInternalOptionKey> extends never ? Props : Props & RecommendationControllerSettings : TController extends ControllerDefinitionWithoutProps<Controller> ? HasKey<TController, typeof recommendationInternalOptionKey> extends never ? {} : RecommendationControllerSettings : unknown;
12
12
  export type InferControllerPropsMapFromDefinitions<TControllers extends ControllerDefinitionsMap<Controller>> = {
13
13
  [K in keyof TControllers as HasKeys<InferControllerPropsFromDefinition<TControllers[K]>> extends false ? never : K]: InferControllerPropsFromDefinition<TControllers[K]>;
14
14
  };
@@ -17,5 +17,6 @@ export type InferControllersMapFromDefinition<TControllers extends ControllerDef
17
17
  [K in keyof TControllers as HasKey<TControllers[K], TSolutionType> extends never ? never : K]: InferControllerFromDefinition<TControllers[K]>;
18
18
  };
19
19
  export type InferControllerStaticStateMapFromDefinitionsWithSolutionType<TControllers extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType> = {
20
- [K in keyof TControllers as HasKey<TControllers[K], TSolutionType> extends never ? never : K]: InferControllerStaticStateFromController<InferControllerFromDefinition<TControllers[K]>>;
20
+ [K in keyof TControllers as HasKey<TControllers[K], TSolutionType> extends never ? never : K]: InferControllerStaticStateFromController<InferControllerFromDefinition<TControllers[K]>> & InferControllerPropsFromDefinition<TControllers[K]>;
21
21
  };
22
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { CoreEngine, CoreEngineNext } from '../../../app/engine.js';
2
+ import type { Controller } from '../../../controllers/controller/headless-controller.js';
3
+ import type { BaseControllerDefinitionWithoutProps, BaseControllerDefinitionWithProps } from '../types/controllers.js';
4
+ /**
5
+ * Builder class for creating controllers from definitions
6
+ */
7
+ export declare class ControllerBuilder<TDefinition extends Partial<BaseControllerDefinitionWithoutProps<TEngine, TController>> & Partial<BaseControllerDefinitionWithProps<TEngine, TController, TProps>>, TEngine extends CoreEngine | CoreEngineNext, TProps, TController extends Controller = Controller> {
8
+ private _definition;
9
+ private _engine;
10
+ private _props?;
11
+ private _additionalArgs;
12
+ constructor(definition: TDefinition, engine: TEngine, props?: TProps);
13
+ withAdditionalArgs(additionalArgs?: unknown[]): this;
14
+ build(): TController;
15
+ private buildWithoutProps;
16
+ private buildWithProps;
17
+ }
@@ -0,0 +1,24 @@
1
+ import type { Controller } from '../../../controllers/controller/headless-controller.js';
2
+ import type { ControllerWithKind } from '../../commerce/types/controller-definitions.js';
3
+ import type { Kind } from '../../commerce/types/kind.js';
4
+ export type StaticControllerState = {
5
+ initialState?: Controller['state'];
6
+ _kind?: Kind;
7
+ } & Pick<ControllerWithKind, 'state'>;
8
+ /**
9
+ * Builder class for creating static controller
10
+ */
11
+ declare class StaticControllerBuilder {
12
+ private _state?;
13
+ private _kind?;
14
+ private _initialState?;
15
+ withState(state: StaticControllerState['state']): this;
16
+ withKind(kind: Kind): this;
17
+ withInitialState(initialState: StaticControllerState['initialState']): this;
18
+ /**
19
+ * Builds and returns the static controller state object
20
+ */
21
+ build(): StaticControllerState;
22
+ }
23
+ export declare function createStaticControllerBuilder<TController extends Controller>(controller: TController): StaticControllerBuilder;
24
+ export {};
@@ -1,15 +1,15 @@
1
1
  import type { UnknownAction } from '@reduxjs/toolkit';
2
2
  import type { CoreEngine, CoreEngineNext } from '../../app/engine.js';
3
3
  import type { Controller } from '../../controllers/controller/headless-controller.js';
4
- import type { ControllerDefinitionsMap, ControllersMap } from './types/controllers.js';
4
+ import type { ControllerDefinitionsMap } from './types/controllers.js';
5
5
  import type { EngineStaticState } from './types/engine.js';
6
- import type { InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromControllers, InferControllersMapFromDefinition } from './types/inference.js';
6
+ import type { InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromDefinitions, InferControllersMapFromDefinition } from './types/inference.js';
7
7
  export declare function buildControllerDefinitions<TControllerDefinitionsMap extends ControllerDefinitionsMap<CoreEngine | CoreEngineNext, Controller>, TEngine extends CoreEngine | CoreEngineNext>({ definitionsMap, engine, propsMap, }: {
8
8
  definitionsMap: TControllerDefinitionsMap;
9
9
  engine: TEngine;
10
- propsMap: InferControllerPropsMapFromDefinitions<TControllerDefinitionsMap>;
10
+ propsMap?: InferControllerPropsMapFromDefinitions<TControllerDefinitionsMap>;
11
11
  }): InferControllersMapFromDefinition<TControllerDefinitionsMap>;
12
- export declare function createStaticState<TSearchAction extends UnknownAction>({ searchAction, controllers, }: {
12
+ export declare function createStaticState<TSearchAction extends UnknownAction, TControllerDefinitions extends ControllerDefinitionsMap<CoreEngine | CoreEngineNext, Controller>>({ searchAction, controllers, }: {
13
13
  searchAction: TSearchAction;
14
- controllers: ControllersMap;
15
- }): EngineStaticState<TSearchAction, InferControllerStaticStateMapFromControllers<ControllersMap>>;
14
+ controllers: InferControllersMapFromDefinition<TControllerDefinitions>;
15
+ }): EngineStaticState<TSearchAction, InferControllerStaticStateMapFromDefinitions<TControllerDefinitions>>;
@@ -9,6 +9,12 @@ export interface ControllerStaticState<TState> {
9
9
  export interface ControllerStaticStateMap {
10
10
  [customName: string]: ControllerStaticState<unknown>;
11
11
  }
12
+ export interface BaseControllerDefinitionWithoutProps<TEngine, TController extends Controller> {
13
+ build(engine: TEngine, ...args: unknown[]): TController;
14
+ }
15
+ export interface BaseControllerDefinitionWithProps<TEngine, TController extends Controller, TProps> {
16
+ buildWithProps(engine: TEngine, props?: TProps, ...args: unknown[]): TController;
17
+ }
12
18
  export interface ControllerDefinitionWithoutProps<TEngine extends CoreEngine | CoreEngineNext, TController extends Controller> {
13
19
  /**
14
20
  * Creates an instance of the given controller.
@@ -2,7 +2,7 @@ import type { CoreEngine, CoreEngineNext } from '../../../app/engine.js';
2
2
  import type { Controller } from '../../../controllers/controller/headless-controller.js';
3
3
  import type { ControllerDefinition, ControllerDefinitionsMap, ControllerDefinitionWithoutProps, ControllerDefinitionWithProps, ControllerStaticState, ControllersMap } from './controllers.js';
4
4
  import type { HasKeys } from './utilities.js';
5
- export type InferControllerPropsFromDefinition<TController extends ControllerDefinition<CoreEngine | CoreEngineNext, Controller>> = TController extends ControllerDefinitionWithProps<CoreEngine | CoreEngineNext, Controller, infer Props> ? Props : TController extends ControllerDefinitionWithoutProps<CoreEngine | CoreEngineNext, Controller> ? {} : unknown;
5
+ type InferControllerPropsFromDefinition<TController extends ControllerDefinition<CoreEngine | CoreEngineNext, Controller>> = TController extends ControllerDefinitionWithProps<CoreEngine | CoreEngineNext, Controller, infer Props> ? Props : TController extends ControllerDefinitionWithoutProps<CoreEngine | CoreEngineNext, Controller> ? {} : unknown;
6
6
  export type InferControllerPropsMapFromDefinitions<TControllers extends ControllerDefinitionsMap<CoreEngine | CoreEngineNext, Controller>> = {
7
7
  [K in keyof TControllers as HasKeys<InferControllerPropsFromDefinition<TControllers[K]>> extends false ? never : K]: InferControllerPropsFromDefinition<TControllers[K]>;
8
8
  };
@@ -12,8 +12,9 @@ export type InferControllersMapFromDefinition<TControllers extends ControllerDef
12
12
  };
13
13
  export type InferControllerStaticStateFromController<TController extends Controller> = ControllerStaticState<TController['state']>;
14
14
  export type InferControllerStaticStateMapFromDefinitions<TControllers extends ControllerDefinitionsMap<CoreEngine | CoreEngineNext, Controller>> = {
15
- [K in keyof TControllers]: InferControllerStaticStateFromController<InferControllerFromDefinition<TControllers[K]>>;
15
+ [K in keyof TControllers]: InferControllerStaticStateFromController<InferControllerFromDefinition<TControllers[K]>> & InferControllerPropsFromDefinition<TControllers[K]>;
16
16
  };
17
17
  export type InferControllerStaticStateMapFromControllers<TControllers extends ControllersMap> = {
18
18
  [K in keyof TControllers]: InferControllerStaticStateFromController<TControllers[K]>;
19
19
  };
20
+ export {};
@@ -1,3 +1,6 @@
1
+ import type { BaseQueryFn, CombinedState, FetchArgs, FetchBaseQueryError, QueryDefinition, RetryOptions } from '@reduxjs/toolkit/query';
2
+ import type { GeneratedAnswerStream } from '../api/knowledge/generated-answer-stream.js';
3
+ import type { SearchRequest } from '../api/search/search/search-request.js';
1
4
  import type { StateWithHistory } from '../app/undoable.js';
2
5
  import type { AdvancedSearchQueriesState } from '../features/advanced-search-queries/advanced-search-queries-state.js';
3
6
  import type { AttachedResultsState } from '../features/attached-results/attached-results-state.js';
@@ -438,3 +441,8 @@ export interface InsightUserActionsSection {
438
441
  export interface ManualRangeSection {
439
442
  manualNumericFacetSet: ManualNumericFacetSetState;
440
443
  }
444
+ export interface GetAnswerQuerySection {
445
+ answer: CombinedState<{
446
+ getAnswer: QueryDefinition<Partial<SearchRequest>, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {} & RetryOptions, {}>, never, GeneratedAnswerStream, 'answer'>;
447
+ }, never, 'answer'>;
448
+ }
@@ -0,0 +1,9 @@
1
+ import type { CoreEngine, CoreEngineNext } from '../app/engine.js';
2
+ import type { Controller } from '../controllers/controller/headless-controller.js';
3
+ import type { SSRCommerceEngine } from '../ssr/commerce/factories/build-factory.js';
4
+ interface MockController {
5
+ initialState?: Record<string, unknown>;
6
+ }
7
+ export declare function buildMockController(): Controller;
8
+ export declare function buildMockControllerWithInitialState(_engine: CoreEngine | CoreEngineNext | SSRCommerceEngine, props: MockController): Controller;
9
+ export {};
@@ -0,0 +1,38 @@
1
+ import type { SearchEngine } from '../app/search-engine/search-engine.js';
2
+ import type { Controller } from '../controllers/controller/headless-controller.js';
3
+ import type { Kind } from '../ssr/commerce/types/kind.js';
4
+ import type { ControllerDefinitionWithoutProps, ControllerDefinitionWithProps } from '../ssr-next/common/types/controllers.js';
5
+ interface MockController {
6
+ initialState?: Record<string, unknown>;
7
+ }
8
+ interface MockControllerDefinitionWithoutProps extends ControllerDefinitionWithoutProps<SearchEngine, Controller> {
9
+ }
10
+ interface MockControllerDefinitionWithProps extends ControllerDefinitionWithProps<SearchEngine, Controller, MockController> {
11
+ }
12
+ type SolutionTypeAvailabilities = {
13
+ listing?: boolean;
14
+ search?: boolean;
15
+ standalone?: boolean;
16
+ recommendation?: boolean;
17
+ };
18
+ export declare function defineMockController(): MockControllerDefinitionWithoutProps;
19
+ export declare function defineMockControllerWithProps(): MockControllerDefinitionWithProps;
20
+ export declare function defineMockCommerceController(options?: SolutionTypeAvailabilities): {
21
+ build: import("vitest").Mock<(_engine: any) => Controller>;
22
+ listing: boolean;
23
+ search: boolean;
24
+ standalone: boolean;
25
+ recommendation: boolean;
26
+ };
27
+ export declare function defineMockCommerceControllerWithProps(options?: SolutionTypeAvailabilities): {
28
+ buildWithProps: import("vitest").Mock<(engine: any, props: any) => {
29
+ state: {};
30
+ subscribe(listener: () => void): import("redux").Unsubscribe;
31
+ _kind: Kind;
32
+ }>;
33
+ listing: boolean;
34
+ search: boolean;
35
+ standalone: boolean;
36
+ recommendation: boolean;
37
+ };
38
+ export {};
@@ -9,5 +9,5 @@ export declare function sortFacets<T extends {
9
9
  facetId: string;
10
10
  }>(facets: T[], sortOrder: string[]): T[];
11
11
  export declare const sortCriteriaMap: Record<string, SortCriteria>;
12
- export declare function getFacets(state: StateNeededBySearchRequest): (import("../features/facets/facet-set/interfaces/request.js").FacetRequest | import("../features/facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../features/facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest | import("../features/facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest)[];
12
+ export declare function getFacets(state: StateNeededBySearchRequest): (import("../features/facets/facet-set/interfaces/request.js").FacetRequest | import("../features/facets/category-facet-set/interfaces/request.js").CategoryFacetRequest | import("../features/facets/range-facets/date-facet-set/interfaces/request.js").DateFacetRequest | import("../features/facets/range-facets/numeric-facet-set/interfaces/request.js").NumericFacetRequest)[];
13
13
  export {};