@coveo/quantic 3.29.4 → 3.29.5-pre.0a9e457670
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/force-app/main/default/staticresources/coveoheadless/case-assist/headless.js +10 -8
- package/force-app/main/default/staticresources/coveoheadless/definitions/api/analytics/search-analytics.d.ts +3 -5
- package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-actions.d.ts +2 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-api.d.ts +28 -8
- package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/tests/stream-answer-api-state-mock.d.ts +12 -12
- package/force-app/main/default/staticresources/coveoheadless/definitions/controllers/core/sort/headless-core-sort.d.ts +0 -12
- package/force-app/main/default/staticresources/coveoheadless/definitions/features/generated-answer/generated-answer-selectors.d.ts +4 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/features/search/legacy/search-request.d.ts +1 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/features/search/search-request.d.ts +1 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr/commerce/types/fetch-static-state.d.ts +4 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr/common/types/build.d.ts +3 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr/common/types/engine.d.ts +3 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-commerce-next.index.d.ts +3 -3
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/controllers/recommendations/headless-recommendations.ssr.d.ts +8 -4
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/factories/build-factory.d.ts +4 -3
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/factories/hydrated-state-factory.d.ts +2 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/factories/recommendation-hydrated-state-factory.d.ts +1 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/factories/recommendation-static-state-factory.d.ts +2 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/factories/static-state-factory.d.ts +2 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/build.d.ts +73 -7
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/controller-definitions.d.ts +35 -112
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/controller-inference.d.ts +3 -3
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/engine.d.ts +15 -8
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/fetch-static-state.d.ts +3 -3
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/hydrate-static-state.d.ts +2 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/utilities.d.ts +6 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/utils/controller-wiring.d.ts +51 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/utils/engine-wiring.d.ts +5 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/utils/recommendations/guards.d.ts +13 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/utils/recommendations/recommendation-helpers.d.ts +18 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/validation/controller-validation.d.ts +11 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/common/types/fetch-static-state.d.ts +1 -3
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/common/types/utilities.d.ts +0 -3
- package/force-app/main/default/staticresources/coveoheadless/definitions/state/state-sections.d.ts +0 -8
- package/force-app/main/default/staticresources/coveoheadless/definitions/test/mock-ssr-controller-definitions.d.ts +12 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/utils/facet-utils.d.ts +1 -1
- package/force-app/main/default/staticresources/coveoheadless/headless.js +12 -10
- package/force-app/main/default/staticresources/coveoheadless/insight/headless.js +11 -9
- package/force-app/main/default/staticresources/coveoheadless/recommendation/headless.js +9 -7
- package/package.json +2 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/generated-answer-stream.d.ts +0 -15
- package/force-app/main/default/staticresources/coveoheadless/definitions/api/knowledge/stream-answer-api-state.d.ts +0 -6
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/utils/recommendation-filter.d.ts +0 -11
|
@@ -90,15 +90,13 @@ 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 {
|
|
94
94
|
logger: Logger;
|
|
95
95
|
analyticsClientMiddleware?: AnalyticsClientSendEventHook;
|
|
96
96
|
preprocessRequest?: PreprocessRequest;
|
|
97
97
|
provider?: SearchPageClientProvider;
|
|
98
|
-
getState():
|
|
98
|
+
getState(): StateNeededBySearchAnalyticsProvider;
|
|
99
99
|
}
|
|
100
|
-
export declare const configureLegacyAnalytics:
|
|
101
|
-
provider: SearchPageClientProvider;
|
|
102
|
-
}) => CoveoSearchPageClient;
|
|
100
|
+
export declare const configureLegacyAnalytics: ({ logger, getState, analyticsClientMiddleware, preprocessRequest, provider, }: LegacyConfigureAnalyticsOptions) => CoveoSearchPageClient;
|
|
103
101
|
export declare const getPageID: () => string;
|
|
104
102
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { NavigatorContext } from '../../app/navigator-context-provider.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type StateNeededByAnswerAPI } from './stream-answer-api.js';
|
|
3
3
|
export declare const triggerSearchRequest: import("@reduxjs/toolkit").AsyncThunk<void, {
|
|
4
|
-
state:
|
|
4
|
+
state: StateNeededByAnswerAPI;
|
|
5
5
|
navigatorContext: NavigatorContext;
|
|
6
6
|
}, {
|
|
7
7
|
state?: unknown;
|
|
@@ -1,10 +1,30 @@
|
|
|
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';
|
|
3
6
|
import type { EventSourceMessage } from '../../utils/fetch-event-source/parse.js';
|
|
7
|
+
import type { GeneratedAnswerCitation } from '../generated-answer/generated-answer-event-payload.js';
|
|
4
8
|
import type { SearchRequest } from '../search/search/search-request.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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;
|
|
8
28
|
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, {}>, {
|
|
9
29
|
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">;
|
|
10
30
|
}, "answer", never, typeof import("@reduxjs/toolkit/query").coreModuleName>;
|
|
@@ -53,7 +73,7 @@ export declare const selectAnswerTriggerParams: ((state: any, ...params: any[])
|
|
|
53
73
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
54
74
|
memoize: typeof import("reselect").weakMapMemoize;
|
|
55
75
|
};
|
|
56
|
-
export declare const constructAnswerQueryParams: (state:
|
|
76
|
+
export declare const constructAnswerQueryParams: (state: StateNeededByAnswerAPI, usage: "fetch" | "select", navigatorContext: NavigatorContext) => {
|
|
57
77
|
analytics?: {
|
|
58
78
|
actionCause?: string;
|
|
59
79
|
customData?: object;
|
|
@@ -80,12 +100,12 @@ export declare const constructAnswerQueryParams: (state: StreamAnswerAPIState, u
|
|
|
80
100
|
} | undefined;
|
|
81
101
|
enableDidYouMean?: boolean | undefined;
|
|
82
102
|
fieldsToInclude?: string[] | 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/
|
|
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;
|
|
84
104
|
pipeline?: string | undefined;
|
|
85
105
|
searchHub?: string | undefined;
|
|
86
106
|
pipelineRuleParameters: {
|
|
87
107
|
mlGenerativeQuestionAnswering: {
|
|
88
|
-
responseFormat: import("../../
|
|
108
|
+
responseFormat: import("../../features/generated-answer/generated-response-format.js").GeneratedResponseFormat;
|
|
89
109
|
citationsFieldToInclude: string[];
|
|
90
110
|
};
|
|
91
111
|
};
|
|
@@ -97,8 +117,8 @@ export declare const constructAnswerQueryParams: (state: StreamAnswerAPIState, u
|
|
|
97
117
|
aq?: string | undefined;
|
|
98
118
|
q: string | undefined;
|
|
99
119
|
};
|
|
100
|
-
export declare const fetchAnswer: (state:
|
|
101
|
-
export declare const selectAnswer: (state:
|
|
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) => ({
|
|
102
122
|
status: import("@reduxjs/toolkit/query").QueryStatus.uninitialized;
|
|
103
123
|
originalArgs?: undefined | undefined;
|
|
104
124
|
data?: undefined | undefined;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/** biome-ignore-all lint/suspicious/noExplicitAny: <mock> */
|
|
2
|
-
import type {
|
|
3
|
-
export declare const streamAnswerAPIStateMock:
|
|
4
|
-
export declare const streamAnswerAPIStateMockWithATabWithAnExpression:
|
|
5
|
-
export declare const streamAnswerAPIStateMockWithoutAnyTab:
|
|
6
|
-
export declare const streamAnswerAPIStateMockWithStaticFiltersSelected:
|
|
7
|
-
export declare const streamAnswerAPIStateMockWithNonValidFilters:
|
|
8
|
-
export declare const streamAnswerAPIStateMockWithoutAnyFilters:
|
|
9
|
-
export declare const streamAnswerAPIStateMockWithStaticFiltersAndTabExpression:
|
|
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;
|
|
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: 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("../
|
|
31
|
-
}, never, "answer"
|
|
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>>;
|
|
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:
|
|
69
|
+
export declare const streamAnswerAPIStateMockWithoutSearchAction: StateNeededByAnswerAPI;
|
|
70
70
|
export declare const expectedStreamAnswerAPIParam: {
|
|
71
71
|
q: string;
|
|
72
72
|
aq: string;
|
|
@@ -32,18 +32,6 @@ export interface Sort extends Controller {
|
|
|
32
32
|
* Verifies whether the specified sort criterion is the currently active one.
|
|
33
33
|
*
|
|
34
34
|
* @param criterion - The sort criterion to evaluate.
|
|
35
|
-
* Can be a single criterion or an array of criteria.
|
|
36
|
-
* The criteria in an array will be applied sequentially. For example, if there's a tie on the 1st criterion, the API uses the 2nd criterion to break the tie. However, this only works when combining:
|
|
37
|
-
* `SortByRelevancy` followed by one or more `SortByField` or `SortByDate` criteria.
|
|
38
|
-
* `SortByQRE` followed by one or more `SortByField` or `SortByDate` criteria.
|
|
39
|
-
* Two or more `SortByField` criteria.
|
|
40
|
-
* A single `SortByDate` criterion and one or more `SortByField` criteria in any order.
|
|
41
|
-
*
|
|
42
|
-
* Examples:
|
|
43
|
-
* * `SortByRelevancy`, `SortByField`
|
|
44
|
-
* * `SortByQRE`, `SortByField`
|
|
45
|
-
* * `SortByDate`, `SortByField`, `SortByField`
|
|
46
|
-
*
|
|
47
35
|
* @returns `true` if the specified sort criterion is the currently active one; `false` otherwise.
|
|
48
36
|
*/
|
|
49
37
|
isSortedBy(criterion: SortCriterion | SortCriterion[]): boolean;
|
|
@@ -1,7 +1,10 @@
|
|
|
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>) =>
|
|
4
|
+
export declare const generativeQuestionAnsweringIdSelector: (state: Partial<SearchAppState>) => {
|
|
5
|
+
answerAPIEnabled: boolean;
|
|
6
|
+
id: string | undefined;
|
|
7
|
+
};
|
|
5
8
|
export declare const selectFieldsToIncludeInCitation: (state: Partial<GeneratedAnswerSection>) => string[] | undefined;
|
|
6
9
|
export declare const citationSourceSelector: ((state: Partial<GeneratedAnswerSection>, citationId: string) => GeneratedAnswerCitation | undefined) & {
|
|
7
10
|
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/
|
|
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;
|
|
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/
|
|
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;
|
|
29
29
|
cq?: string;
|
|
30
30
|
queryCorrection?: {
|
|
31
31
|
enabled?: boolean;
|
|
@@ -5,6 +5,10 @@ import type { SolutionType } from './controller-constants.js';
|
|
|
5
5
|
import type { ControllerDefinitionsMap, EngineDefinitionControllersPropsOption, OptionsTuple } from './controller-definitions.js';
|
|
6
6
|
import type { EngineStaticState } from './engine.js';
|
|
7
7
|
import type { FromBuildResult } from './from-build-result.js';
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated This interface will be remove on the next major version.
|
|
10
|
+
* Use BuildConfig interface instead
|
|
11
|
+
*/
|
|
8
12
|
export type FetchStaticStateOptions = {};
|
|
9
13
|
export type FetchStaticState<TControllers extends ControllersMap, TSearchAction extends UnknownAction, TControllersStaticState extends ControllerStaticStateMap, TControllersProps extends ControllersPropsMap, TControllersDefinitionsMap extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType> = {
|
|
10
14
|
/**
|
package/force-app/main/default/staticresources/coveoheadless/definitions/ssr/common/types/build.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ import type { ControllersMap, ControllersPropsMap } from './controllers.js';
|
|
|
3
3
|
import type { EngineDefinitionBuildResult, EngineDefinitionControllersPropsOption } from './engine.js';
|
|
4
4
|
import type { OptionsExtender, OptionsTuple } from './utilities.js';
|
|
5
5
|
interface BuildOptions<TEngineOptions> {
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated This option will be removed in the next major version.
|
|
8
|
+
*/
|
|
6
9
|
extend?: OptionsExtender<TEngineOptions>;
|
|
7
10
|
}
|
|
8
11
|
export type Build<TEngine extends CoreEngine | CoreEngineNext, TEngineOptions, TControllersMap extends ControllersMap, TControllersProps extends ControllersPropsMap> = (...params: OptionsTuple<BuildOptions<TEngineOptions> & EngineDefinitionControllersPropsOption<TControllersProps>>) => Promise<EngineDefinitionBuildResult<TEngine, TControllersMap>>;
|
|
@@ -38,6 +38,9 @@ export interface EngineDefinition<TEngine extends CoreEngine | CoreEngineNext, T
|
|
|
38
38
|
*/
|
|
39
39
|
build: Build<TEngine, TEngineOptions, InferControllersMapFromDefinition<TControllers>, InferControllerPropsMapFromDefinitions<TControllers>>;
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated Use SearchEngineDefinitionBuildResult or CommerceEngineDefinitionBuildResult instead
|
|
43
|
+
*/
|
|
41
44
|
export interface EngineDefinitionBuildResult<TEngine extends CoreEngine | CoreEngineNext, TControllers extends ControllersMap> {
|
|
42
45
|
engine: TEngine;
|
|
43
46
|
controllers: TControllers;
|
|
@@ -68,7 +68,6 @@
|
|
|
68
68
|
*/
|
|
69
69
|
export type { Relay } from '@coveo/relay';
|
|
70
70
|
export type { Middleware, Unsubscribe } from '@reduxjs/toolkit';
|
|
71
|
-
export type { CommerceEngineOptions } from './app/commerce-engine/commerce-engine.js';
|
|
72
71
|
export type { CommerceEngineConfiguration } from './app/commerce-engine/commerce-engine-configuration.js';
|
|
73
72
|
export { getSampleCommerceEngineConfiguration } from './app/commerce-engine/commerce-engine-configuration.js';
|
|
74
73
|
export type { CoreEngineNext, ExternalEngineOptions } from './app/engine.js';
|
|
@@ -119,10 +118,11 @@ export type { RedirectionTrigger, RedirectionTriggerDefinition, RedirectionTrigg
|
|
|
119
118
|
export { defineRedirectionTrigger } from './ssr-next/commerce/controllers/triggers/headless-redirection-trigger.ssr.js';
|
|
120
119
|
export { defineCommerceEngine } from './ssr-next/commerce/engine/commerce-engine.ssr.js';
|
|
121
120
|
export type { CommerceEngineDefinitionOptions, SSRCommerceEngine as CommerceEngine, } from './ssr-next/commerce/factories/build-factory.js';
|
|
121
|
+
export type { BuildConfig, SSRCommerceEngineOptions, } from './ssr-next/commerce/types/build.js';
|
|
122
122
|
export { SolutionType } from './ssr-next/commerce/types/controller-constants.js';
|
|
123
|
-
export type { ControllerDefinition, ControllerDefinitionsMap, ControllerWithKind,
|
|
123
|
+
export type { ControllerDefinition, ControllerDefinitionsMap, ControllerWithKind, EngineDefinitionControllersPropsOption, HydratedState, InferControllerStaticStateFromController, InferControllerStaticStateMapFromControllers, OptionsTuple, } from './ssr-next/commerce/types/controller-definitions.js';
|
|
124
124
|
export type { InferControllerFromDefinition, InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromDefinitionsWithSolutionType, InferControllersMapFromDefinition, InferHydratedState, InferStaticState, } from './ssr-next/commerce/types/controller-inference.js';
|
|
125
|
-
export type { CommerceEngineDefinition, EngineStaticState, FetchStaticState,
|
|
125
|
+
export type { CommerceEngineDefinition, CommerceEngineDefinitionBuildResult, EngineStaticState, FetchStaticState, HydrateStaticState, HydrateStaticStateOptions, } from './ssr-next/commerce/types/engine.js';
|
|
126
126
|
export { Kind } from './ssr-next/commerce/types/kind.js';
|
|
127
127
|
export type { CommerceAppState, CommerceProductListingParametersState, CommerceSearchParametersState, } from './state/commerce-app-state.js';
|
|
128
128
|
export * from './features/commerce/configuration/configuration-actions-loader.js';
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { type Recommendations, type RecommendationsOptions, type
|
|
1
|
+
import { type Recommendations, type RecommendationsOptions, type RecommendationsState } from '../../../../controllers/commerce/recommendations/headless-recommendations.js';
|
|
2
2
|
import { recommendationInternalOptionKey } from '../../types/controller-constants.js';
|
|
3
3
|
import type { RecommendationOnlyControllerDefinitionWithProps } from '../../types/controller-definitions.js';
|
|
4
4
|
export type { Recommendations, RecommendationsState };
|
|
5
5
|
export type RecommendationsDefinitionMeta = {
|
|
6
|
-
[recommendationInternalOptionKey]: {} &
|
|
6
|
+
[recommendationInternalOptionKey]: {} & RecommendationsOptions;
|
|
7
7
|
};
|
|
8
|
-
export interface RecommendationsDefinition extends RecommendationOnlyControllerDefinitionWithProps<Recommendations,
|
|
8
|
+
export interface RecommendationsDefinition extends RecommendationOnlyControllerDefinitionWithProps<Recommendations, {
|
|
9
|
+
initialState: Partial<RecommendationsOptions>;
|
|
10
|
+
}> {
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* Defines a `Recommendations` controller instance.
|
|
@@ -14,4 +16,6 @@ export interface RecommendationsDefinition extends RecommendationOnlyControllerD
|
|
|
14
16
|
* @param props - The configurable `Recommendations` properties.
|
|
15
17
|
* @returns The `Recommendations` controller definition.
|
|
16
18
|
* */
|
|
17
|
-
export declare function defineRecommendations(props:
|
|
19
|
+
export declare function defineRecommendations(props: {
|
|
20
|
+
options: Omit<RecommendationsOptions, 'productId'>;
|
|
21
|
+
}): RecommendationsDefinition & RecommendationsDefinitionMeta;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Action } from '@reduxjs/toolkit';
|
|
2
|
-
import { type CommerceEngine
|
|
2
|
+
import { type CommerceEngine } from '../../../app/commerce-engine/commerce-engine.js';
|
|
3
3
|
import type { Controller } from '../../../controllers/controller/headless-controller.js';
|
|
4
|
+
import type { SSRCommerceEngineOptions } from '../types/build.js';
|
|
4
5
|
import { SolutionType } from '../types/controller-constants.js';
|
|
5
6
|
import type { ControllerDefinitionsMap } from '../types/controller-definitions.js';
|
|
6
7
|
import type { BuildParameters, CommerceControllerDefinitionsMap, EngineDefinitionOptions } from '../types/engine.js';
|
|
@@ -15,8 +16,8 @@ export interface SSRCommerceEngine extends CommerceEngine {
|
|
|
15
16
|
*/
|
|
16
17
|
waitForRequestCompletedAction(): Promise<Action>[];
|
|
17
18
|
}
|
|
18
|
-
export type CommerceEngineDefinitionOptions<TControllers extends ControllerDefinitionsMap<Controller> = ControllerDefinitionsMap<Controller>> = EngineDefinitionOptions<
|
|
19
|
-
export declare const buildFactory: <TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions
|
|
19
|
+
export type CommerceEngineDefinitionOptions<TControllers extends ControllerDefinitionsMap<Controller> = ControllerDefinitionsMap<Controller>> = EngineDefinitionOptions<SSRCommerceEngineOptions, TControllers>;
|
|
20
|
+
export declare const buildFactory: <TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions, options: CommerceEngineDefinitionOptions<TControllerDefinitions>) => <T extends SolutionType>(solutionType: T) => (...[buildOptions]: BuildParameters<TControllerDefinitions>) => Promise<{
|
|
20
21
|
engine: SSRCommerceEngine;
|
|
21
22
|
controllers: import("../types/controller-inference.js").InferControllersMapFromDefinition<TControllerDefinitions, T>;
|
|
22
23
|
}>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SolutionType } from '../types/controller-constants.js';
|
|
2
|
+
import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
|
|
2
3
|
import type { CommerceControllerDefinitionsMap, HydrateStaticStateFunction } from '../types/engine.js';
|
|
3
4
|
import { type CommerceEngineDefinitionOptions } from './build-factory.js';
|
|
4
|
-
export declare function hydratedStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions
|
|
5
|
+
export declare function hydratedStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): (solutionType: SolutionType) => HydrateStaticStateFunction<TControllerDefinitions>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { CommerceControllerDefinitionsMap, HydrateStaticStateFunction } from '../types/engine.js';
|
|
2
2
|
import { type CommerceEngineDefinitionOptions } from './build-factory.js';
|
|
3
|
-
export declare function hydratedRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions
|
|
3
|
+
export declare function hydratedRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): HydrateStaticStateFunction<TControllerDefinitions>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
|
|
1
2
|
import type { CommerceControllerDefinitionsMap, FetchStaticStateFunction } from '../types/engine.js';
|
|
2
3
|
import { type CommerceEngineDefinitionOptions } from './build-factory.js';
|
|
3
|
-
export declare function fetchRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions
|
|
4
|
+
export declare function fetchRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): FetchStaticStateFunction<TControllerDefinitions>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SolutionType } from '../types/controller-constants.js';
|
|
2
|
+
import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
|
|
2
3
|
import type { CommerceControllerDefinitionsMap, FetchStaticStateFunction } from '../types/engine.js';
|
|
3
4
|
import { type CommerceEngineDefinitionOptions } from './build-factory.js';
|
|
4
|
-
export declare function fetchStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions
|
|
5
|
+
export declare function fetchStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): (solutionType: SolutionType) => FetchStaticStateFunction<TControllerDefinitions>;
|
|
@@ -1,14 +1,80 @@
|
|
|
1
|
+
import type { CurrencyCodeISO4217 } from '@coveo/relay-event-types';
|
|
2
|
+
import type { CommerceEngineOptions } from '../../../app/commerce-engine/commerce-engine.js';
|
|
1
3
|
import type { Controller } from '../../../controllers/controller/headless-controller.js';
|
|
2
4
|
import type { ControllersMap, ControllersPropsMap } from '../../common/types/controllers.js';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
+
import type { HasKey, OptionsTuple } from '../../common/types/utilities.js';
|
|
6
|
+
import type { CartInitialState } from '../controllers/cart/headless-cart.ssr.js';
|
|
7
|
+
import type { UserLocation } from '../controllers/context/headless-context.ssr.js';
|
|
8
|
+
import type { ParameterManagerState, Parameters } from '../controllers/parameter-manager/headless-core-parameter-manager.ssr.js';
|
|
5
9
|
import type { SolutionType } from './controller-constants.js';
|
|
6
|
-
import type { ControllerDefinitionsMap,
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
import type { ControllerDefinitionsMap, EngineDefinitionControllersPropsOption, IsRecommendationController } from './controller-definitions.js';
|
|
11
|
+
import type { CommerceEngineDefinitionBuildResult } from './engine.js';
|
|
12
|
+
export interface SearchBuildConfig extends CommonBuildConfig {
|
|
13
|
+
query: string;
|
|
9
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* RecommendationBuildConfig defines the shape of the config object required when fetching static state for recommendations.
|
|
17
|
+
*
|
|
18
|
+
* The `recommendations` property is a string array containing the names of the recommendation controllers
|
|
19
|
+
* that were defined in your engine definition. This allows you to specify which recommendation controllers
|
|
20
|
+
* should be included in the SSR request.
|
|
21
|
+
*
|
|
22
|
+
* For example, given the following engine definition:
|
|
23
|
+
*
|
|
24
|
+
* ```ts
|
|
25
|
+
* const {recommendationEngineDefinition} = defineCommerceEngine({
|
|
26
|
+
* controllers: {
|
|
27
|
+
* popularViewed: defineRecommendations({options: {slotId: '...'}}),
|
|
28
|
+
* popularBought: defineRecommendations({options: {slotId: '...'}}),
|
|
29
|
+
* viewedTogether: defineRecommendations({options: {slotId: '...'}}),
|
|
30
|
+
* // ...other controllers
|
|
31
|
+
* },
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* // When fetching static state for recommendations:
|
|
35
|
+
* const staticState = await recommendationEngineDefinition.fetchStaticState({
|
|
36
|
+
* recommendations: ['popularBought', 'viewedTogether'],
|
|
37
|
+
* // ...other config
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* In this example, only the `popularBought` and `viewedTogether` recommendation controllers will be included in the SSR request.
|
|
42
|
+
*/
|
|
43
|
+
export type RecommendationBuildConfig<TControllers extends ControllerDefinitionsMap<Controller>> = CommonBuildConfig & {
|
|
44
|
+
/**
|
|
45
|
+
* The unique identifier of the product to use for seeded recommendations.
|
|
46
|
+
*/
|
|
47
|
+
productId?: string;
|
|
48
|
+
/**
|
|
49
|
+
* An array of recommendation controller names from your engine definition to include in the SSR request.
|
|
50
|
+
* Each name corresponds to the key used when defining recommendation controllers in your engine definition.
|
|
51
|
+
* If not specified, no recommendation requests will be executed.
|
|
52
|
+
*/
|
|
53
|
+
recommendations: Array<Extract<keyof TControllers, {
|
|
54
|
+
[K in keyof TControllers]: HasKey<TControllers[K], SolutionType.recommendation> extends never ? never : IsRecommendationController<TControllers[K]> extends never ? never : K;
|
|
55
|
+
}[keyof TControllers]>>;
|
|
56
|
+
};
|
|
57
|
+
export interface ListingBuildConfig extends CommonBuildConfig {
|
|
58
|
+
}
|
|
59
|
+
export interface StandaloneBuildConfig extends CommonBuildConfig {
|
|
60
|
+
}
|
|
61
|
+
export interface CommonBuildConfig {
|
|
62
|
+
url: string;
|
|
63
|
+
language: string;
|
|
64
|
+
country: string;
|
|
65
|
+
currency: CurrencyCodeISO4217;
|
|
66
|
+
location?: UserLocation;
|
|
67
|
+
cart?: CartInitialState;
|
|
68
|
+
searchParams?: Omit<ParameterManagerState<Parameters>['parameters'], 'q'>;
|
|
69
|
+
}
|
|
70
|
+
export type BuildConfig<TControllers extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType> = TSolutionType extends SolutionType.search ? SearchBuildConfig : TSolutionType extends SolutionType.listing ? ListingBuildConfig : TSolutionType extends SolutionType.recommendation ? RecommendationBuildConfig<TControllers> : TSolutionType extends SolutionType.standalone ? CommonBuildConfig : never;
|
|
71
|
+
/**
|
|
72
|
+
* Commerce engine options for SSR scenarios where context is defined when fetching static state.
|
|
73
|
+
*/
|
|
74
|
+
export type SSRCommerceEngineOptions = Omit<CommerceEngineOptions, 'configuration'> & {
|
|
75
|
+
configuration: Omit<CommerceEngineOptions['configuration'], 'context'>;
|
|
76
|
+
};
|
|
10
77
|
/**
|
|
11
78
|
* @internal
|
|
12
79
|
*/
|
|
13
|
-
export type Build<
|
|
14
|
-
export {};
|
|
80
|
+
export type Build<TControllersMap extends ControllersMap, TControllersProps extends ControllersPropsMap, TControllersDefinitionsMap extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType> = (...params: OptionsTuple<BuildConfig<TControllersDefinitionsMap, TSolutionType> & EngineDefinitionControllersPropsOption<TControllersDefinitionsMap, TControllersProps, TSolutionType>>) => Promise<CommerceEngineDefinitionBuildResult<TControllersMap>>;
|