@coveo/quantic 3.30.3-pre.fffcaa9cfe → 3.30.4-pre.003bd2b1f2
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 +8 -8
- package/force-app/main/default/staticresources/coveoheadless/definitions/app/navigator-context-provider.d.ts +6 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr/commerce/types/engine.d.ts +2 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr/common/types/engine.d.ts +2 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr/common/types/utilities.d.ts +3 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-commerce-next.index.d.ts +6 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/engine/commerce-engine.ssr.d.ts +9 -3
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/factories/build-factory.d.ts +1 -1
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/factories/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 +4 -6
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/factories/static-state-factory.d.ts +1 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/build.d.ts +2 -5
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/controller-definitions.d.ts +2 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/engine.d.ts +2 -10
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/fetch-static-state.d.ts +2 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/types/hydrate-static-state.d.ts +2 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/commerce/utils/engine-wiring.d.ts +2 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/common/augment-preprocess-request.d.ts +2 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/common/types/utilities.d.ts +0 -5
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/search/engine/search-engine.ssr.d.ts +10 -4
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/search/types/build.d.ts +5 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/search/types/engine.d.ts +0 -8
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/search/types/fetch-static-state.d.ts +2 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next/search/types/hydrate-static-state.d.ts +2 -2
- package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next.index.d.ts +6 -5
- package/force-app/main/default/staticresources/coveoheadless/definitions/test/mock-context.d.ts +2 -0
- package/force-app/main/default/staticresources/coveoheadless/definitions/test/mock-navigator-context.d.ts +2 -0
- package/force-app/main/default/staticresources/coveoheadless/headless.js +10 -10
- package/force-app/main/default/staticresources/coveoheadless/insight/headless.js +9 -9
- package/force-app/main/default/staticresources/coveoheadless/recommendation/headless.js +7 -7
- package/package.json +2 -10
- package/scripts/npm/check-sfdx-project.js +1 -1
- package/scripts/npm/setup-quantic.js +2 -2
|
@@ -36,6 +36,12 @@ export interface NavigatorContext {
|
|
|
36
36
|
*/
|
|
37
37
|
capture?: boolean;
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* The navigator context provider.
|
|
41
|
+
* This provider is essential for retrieving navigation-related data such as referrer, userAgent, location, and clientId, which are crucial for handling both server-side and client-side API requests effectively.
|
|
42
|
+
*
|
|
43
|
+
* Note: The implementation specifics of the navigator context provider depend on the Node.js framework being used. It is the developer's responsibility to define and implement the navigator context provider to ensure accurate navigation context is available in the application. If the user fails to provide a navigator context provider, a warning will be logged either in the server or the browser console.
|
|
44
|
+
*/
|
|
39
45
|
export type NavigatorContextProvider = () => NavigatorContext;
|
|
40
46
|
export type BrowserNavigatorContextProvider = (clientId: string) => NavigatorContext;
|
|
41
47
|
export declare const defaultNodeJSNavigatorContextProvider: NavigatorContextProvider;
|
|
@@ -43,6 +43,8 @@ export interface EngineDefinition<TControllers extends ControllerDefinitionsMap<
|
|
|
43
43
|
*/
|
|
44
44
|
build: Build<TEngineOptions, InferControllersMapFromDefinition<TControllers, TSolutionType>, InferControllerPropsMapFromDefinitions<TControllers>, TControllers, TSolutionType>;
|
|
45
45
|
/**
|
|
46
|
+
* @deprecated This method will be removed in a future major version. Navigator context should be provided directly when fetching the static state.
|
|
47
|
+
*
|
|
46
48
|
* Sets the navigator context provider.
|
|
47
49
|
* This provider is essential for retrieving navigation-related data such as referrer, userAgent, location, and clientId, which are crucial for handling both server-side and client-side API requests effectively.
|
|
48
50
|
*
|
|
@@ -27,6 +27,8 @@ export interface EngineDefinition<TEngine extends CoreEngine | CoreEngineNext, T
|
|
|
27
27
|
*/
|
|
28
28
|
hydrateStaticState: HydrateStaticState<TEngine, InferControllersMapFromDefinition<TControllers>, AnyAction, InferControllerPropsMapFromDefinitions<TControllers>>;
|
|
29
29
|
/**
|
|
30
|
+
* @deprecated This method will be removed in a future major version. Navigator context should be provided directly when fetching the static state
|
|
31
|
+
*
|
|
30
32
|
* Sets the navigator context provider.
|
|
31
33
|
* This provider is essential for retrieving navigation-related data such as referrer, userAgent, location, and clientId, which are crucial for handling both server-side and client-side API requests effectively.
|
|
32
34
|
*
|
|
@@ -9,6 +9,9 @@ export type HasOptionalKeys<TObject> = TObject extends {} ? {
|
|
|
9
9
|
type ExtractRequiredOptions<TOptions> = {
|
|
10
10
|
[TKey in keyof TOptions as Pick<TOptions, TKey> extends Required<Pick<TOptions, TKey>> ? TKey : never]: TOptions[TKey];
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated This type will be removed in the next major version.
|
|
14
|
+
*/
|
|
12
15
|
export type OptionsTuple<TOptions> = HasKeys<TOptions> extends false ? [] : HasKeys<ExtractRequiredOptions<TOptions>> extends false ? [options?: TOptions] : [options: TOptions];
|
|
13
16
|
export type OptionsExtender<TOptions> = (options: TOptions) => TOptions | Promise<TOptions>;
|
|
14
17
|
export {};
|
|
@@ -44,6 +44,11 @@
|
|
|
44
44
|
* standaloneEngineDefinition,
|
|
45
45
|
* } = engineDefinition;
|
|
46
46
|
*
|
|
47
|
+
* await listingEngineDefinition.fetchStaticState({
|
|
48
|
+
* navigatorContextProvider: () => {/*...* /},
|
|
49
|
+
* context: {/*...* /},
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
47
52
|
* export type ListingStaticState = InferStaticState<
|
|
48
53
|
* typeof listingEngineDefinition
|
|
49
54
|
* >;
|
|
@@ -120,7 +125,7 @@ export { defineCommerceEngine } from './ssr-next/commerce/engine/commerce-engine
|
|
|
120
125
|
export type { SSRCommerceEngine as CommerceEngine } from './ssr-next/commerce/factories/build-factory.js';
|
|
121
126
|
export type { BuildConfig, SSRCommerceEngineOptions as CommerceEngineOptions, } from './ssr-next/commerce/types/build.js';
|
|
122
127
|
export { SolutionType } from './ssr-next/commerce/types/controller-constants.js';
|
|
123
|
-
export type { AugmentedControllerDefinition, CommerceEngineDefinitionControllersPropsOption as EngineDefinitionControllersPropsOption, ControllerDefinition, ControllerDefinitionsMap, HydratedState, InferControllerStaticStateFromController, InferControllerStaticStateMapFromControllers,
|
|
128
|
+
export type { AugmentedControllerDefinition, CommerceEngineDefinitionControllersPropsOption as EngineDefinitionControllersPropsOption, ControllerDefinition, ControllerDefinitionsMap, HydratedState, InferControllerStaticStateFromController, InferControllerStaticStateMapFromControllers, } from './ssr-next/commerce/types/controller-definitions.js';
|
|
124
129
|
export type { InferControllerFromDefinition, InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromDefinitionsWithSolutionType, InferControllersMapFromDefinition, InferHydratedState, InferStaticState, } from './ssr-next/commerce/types/controller-inference.js';
|
|
125
130
|
export type { CommerceEngineDefinition, CommerceEngineDefinitionBuildResult, CommerceEngineDefinitionOptions, EngineStaticState, FetchStaticState, HydrateStaticState, HydrateStaticStateOptions, } from './ssr-next/commerce/types/engine.js';
|
|
126
131
|
export type { CommerceAppState, CommerceProductListingParametersState, CommerceSearchParametersState, } from './state/commerce-app-state.js';
|
|
@@ -17,9 +17,15 @@ import type { CommerceEngineDefinition, CommerceEngineDefinitionOptions } from '
|
|
|
17
17
|
*
|
|
18
18
|
* @example
|
|
19
19
|
* ```ts
|
|
20
|
-
* const
|
|
21
|
-
*
|
|
22
|
-
*
|
|
20
|
+
* const { listingEngineDefinition } = defineCommerceEngine(engineConfig);
|
|
21
|
+
*
|
|
22
|
+
* const staticState = await listingEngineDefinition.fetchStaticState({
|
|
23
|
+
* navigatorContext: {/*...* /},
|
|
24
|
+
* context: {/*...* /},
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* type SearchStaticState = InferStaticState<typeof listingEngineDefinition>;
|
|
28
|
+
* type SearchHydratedState = InferHydratedState<typeof listingEngineDefinition>;
|
|
23
29
|
* ```
|
|
24
30
|
*
|
|
25
31
|
* @group Engine
|
|
@@ -15,7 +15,7 @@ export interface SSRCommerceEngine extends CommerceEngine {
|
|
|
15
15
|
*/
|
|
16
16
|
waitForRequestCompletedAction(): Promise<Action>[];
|
|
17
17
|
}
|
|
18
|
-
export declare const buildFactory: <TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions, options: CommerceEngineDefinitionOptions<TControllerDefinitions>) => <TSolutionType extends SolutionType>(solutionType: TSolutionType) => (
|
|
18
|
+
export declare const buildFactory: <TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions, options: CommerceEngineDefinitionOptions<TControllerDefinitions>) => <TSolutionType extends SolutionType>(solutionType: TSolutionType) => (buildOptions: FetchStaticStateParameters<TControllerDefinitions, TSolutionType> | HydrateStaticStateParameters<TControllerDefinitions, TSolutionType>) => Promise<{
|
|
19
19
|
engine: SSRCommerceEngine;
|
|
20
20
|
controllers: InferControllersMapFromDefinition<TControllerDefinitions, TSolutionType> & BakedInControllers;
|
|
21
21
|
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SolutionType } from '../types/controller-constants.js';
|
|
2
2
|
import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
|
|
3
3
|
import type { CommerceControllerDefinitionsMap, CommerceEngineDefinitionOptions, HydrateStaticStateParameters } from '../types/engine.js';
|
|
4
|
-
export declare function hydratedStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): <TSolutionType extends SolutionType>(solutionType: TSolutionType) => (
|
|
4
|
+
export declare function hydratedStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): <TSolutionType extends SolutionType>(solutionType: TSolutionType) => (params: HydrateStaticStateParameters<TControllerDefinitions, TSolutionType>) => Promise<{
|
|
5
5
|
engine: import("./build-factory.js").SSRCommerceEngine;
|
|
6
6
|
controllers: import("../types/controller-inference.js").InferControllersMapFromDefinition<TControllerDefinitions, TSolutionType> & import("../types/controller-definitions.js").BakedInControllers;
|
|
7
7
|
}>;
|
|
@@ -2,12 +2,10 @@ import type { UnknownAction } from '@reduxjs/toolkit';
|
|
|
2
2
|
import { SolutionType } from '../types/controller-constants.js';
|
|
3
3
|
import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
|
|
4
4
|
import type { CommerceControllerDefinitionsMap, CommerceEngineDefinitionOptions, FetchStaticStateParameters } from '../types/engine.js';
|
|
5
|
-
export declare function fetchRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): (
|
|
6
|
-
controllers: import("../types/controller-inference.js").InferControllerStaticStateMapFromDefinitionsWithSolutionType<TControllerDefinitions, SolutionType.recommendation> & import("../types/controller-definitions.js").FilteredBakedInControllers<SolutionType.recommendation>;
|
|
7
|
-
searchActions: UnknownAction[];
|
|
8
|
-
context: import("../../../commerce.index.js").ContextOptions;
|
|
9
|
-
searchParams?: import("../../../commerce.index.js").ParameterManagerState<import("../../../commerce.index.js").Parameters>["parameters"];
|
|
10
|
-
cart?: import("../../../commerce.index.js").CartInitialState;
|
|
5
|
+
export declare function fetchRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): (params: FetchStaticStateParameters<TControllerDefinitions, SolutionType.recommendation>) => Promise<import("../types/build.js").CommonBuildConfig & {
|
|
11
6
|
productId?: string;
|
|
12
7
|
recommendations: Extract<keyof TControllerDefinitions, { [K in keyof TControllerDefinitions]: import("../../common/types/utilities.js").HasKey<TControllerDefinitions[K], SolutionType.recommendation> extends never ? never : import("../../common/types/utilities.js").HasKey<TControllerDefinitions[K], typeof import("../types/controller-constants.js").recommendationInternalOptionKey> extends never ? never : K; }[keyof TControllerDefinitions]>[];
|
|
8
|
+
} & { [K_1 in keyof TControllerDefinitions as import("../../common/types/utilities.js").HasKey<TControllerDefinitions[K_1], SolutionType.recommendation> extends never ? never : import("../../common/types/utilities.js").HasKey<TControllerDefinitions[K_1], typeof import("../types/controller-constants.js").recommendationInternalOptionKey> extends never ? import("../../common/types/utilities.js").HasRequiredKeys<import("../types/controller-inference.js").InferControllerPropsMapFromDefinitions<TControllerDefinitions> extends infer T extends import("../../common/types/controllers.js").ControllersPropsMap ? { [I in keyof T as I extends K_1 ? I : never]: import("../types/controller-inference.js").InferControllerPropsMapFromDefinitions<TControllerDefinitions>[I]; } : never> extends false ? never : "controllers" : never]: import("../types/controller-inference.js").InferControllerPropsMapFromDefinitions<TControllerDefinitions> extends infer T_1 extends import("../../common/types/controllers.js").ControllersPropsMap ? { [I in keyof T_1 as I extends K_1 ? I : never]: import("../types/controller-inference.js").InferControllerPropsMapFromDefinitions<TControllerDefinitions>[I]; } : never; } & {
|
|
9
|
+
controllers: import("../types/controller-inference.js").InferControllerStaticStateMapFromDefinitionsWithSolutionType<TControllerDefinitions, SolutionType.recommendation> & import("../types/controller-definitions.js").FilteredBakedInControllers<SolutionType.recommendation>;
|
|
10
|
+
searchActions: UnknownAction[];
|
|
13
11
|
}>;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { UnknownAction } from '@reduxjs/toolkit';
|
|
2
|
-
import type { BuildConfig } from '../types/build.js';
|
|
3
2
|
import { SolutionType } from '../types/controller-constants.js';
|
|
4
3
|
import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
|
|
5
4
|
import type { CommerceControllerDefinitionsMap, CommerceEngineDefinitionOptions, FetchStaticStateParameters } from '../types/engine.js';
|
|
6
|
-
export declare function fetchStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): <TSolutionType extends SolutionType>(solutionType: TSolutionType) => (
|
|
5
|
+
export declare function fetchStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): <TSolutionType extends SolutionType>(solutionType: TSolutionType) => (params: FetchStaticStateParameters<TControllerDefinitions, TSolutionType>) => Promise<import("../types/build.js").BuildConfig<TControllerDefinitions, TSolutionType> & { [K in keyof TControllerDefinitions as import("../../common/types/utilities.js").HasKey<TControllerDefinitions[K], TSolutionType> extends never ? never : import("../../common/types/utilities.js").HasKey<TControllerDefinitions[K], typeof import("../types/controller-constants.js").recommendationInternalOptionKey> extends never ? import("../../common/types/utilities.js").HasRequiredKeys<import("../types/controller-inference.js").InferControllerPropsMapFromDefinitions<TControllerDefinitions> extends infer T extends import("../../common/types/controllers.js").ControllersPropsMap ? { [I in keyof T as I extends K ? I : never]: import("../types/controller-inference.js").InferControllerPropsMapFromDefinitions<TControllerDefinitions>[I]; } : never> extends false ? never : "controllers" : never]: import("../types/controller-inference.js").InferControllerPropsMapFromDefinitions<TControllerDefinitions> extends infer T_1 extends import("../../common/types/controllers.js").ControllersPropsMap ? { [I in keyof T_1 as I extends K ? I : never]: import("../types/controller-inference.js").InferControllerPropsMapFromDefinitions<TControllerDefinitions>[I]; } : never; } & {
|
|
7
6
|
controllers: import("../types/controller-inference.js").InferControllerStaticStateMapFromDefinitionsWithSolutionType<TControllerDefinitions, TSolutionType> & import("../types/controller-definitions.js").FilteredBakedInControllers<TSolutionType>;
|
|
8
7
|
searchActions: UnknownAction[];
|
|
9
8
|
}>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CommerceEngineOptions } from '../../../app/commerce-engine/commerce-engine.js';
|
|
2
|
+
import type { NavigatorContext } from '../../../app/navigator-context-provider.js';
|
|
2
3
|
import type { Controller } from '../../../controllers/controller/headless-controller.js';
|
|
3
4
|
import type { HasKey } from '../../common/types/utilities.js';
|
|
4
5
|
import type { CartInitialState } from '../controllers/cart/headless-cart.ssr.js';
|
|
@@ -15,11 +16,6 @@ export interface ListingBuildConfig extends CommonBuildConfig {
|
|
|
15
16
|
}
|
|
16
17
|
export interface StandaloneBuildConfig extends CommonBuildConfig {
|
|
17
18
|
}
|
|
18
|
-
export interface CommonBuildConfig {
|
|
19
|
-
context: ContextOptions;
|
|
20
|
-
searchParams?: ParameterManagerState<Parameters>['parameters'];
|
|
21
|
-
cart?: CartInitialState;
|
|
22
|
-
}
|
|
23
19
|
/**
|
|
24
20
|
* Commerce engine options for SSR scenarios where context is defined when fetching static state.
|
|
25
21
|
*/
|
|
@@ -76,6 +72,7 @@ export interface ListingBuildConfig extends CommonBuildConfig {
|
|
|
76
72
|
export interface StandaloneBuildConfig extends CommonBuildConfig {
|
|
77
73
|
}
|
|
78
74
|
export interface CommonBuildConfig {
|
|
75
|
+
navigatorContext: NavigatorContext;
|
|
79
76
|
context: ContextOptions;
|
|
80
77
|
searchParams?: ParameterManagerState<Parameters>['parameters'];
|
|
81
78
|
cart?: CartInitialState;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Controller } from '../../../controllers/controller/headless-controller.js';
|
|
2
2
|
import type { InferControllerStaticStateFromController, InferControllerStaticStateMapFromControllers } from '../../common/types/controller-inference.js';
|
|
3
3
|
import type { ControllersPropsMap } from '../../common/types/controllers.js';
|
|
4
|
-
import type { HasKey, HasRequiredKeys
|
|
4
|
+
import type { HasKey, HasRequiredKeys } from '../../common/types/utilities.js';
|
|
5
5
|
import type { CartDefinition } from '../controllers/cart/headless-cart.ssr.js';
|
|
6
6
|
import type { ContextDefinition } from '../controllers/context/headless-context.ssr.js';
|
|
7
7
|
import type { ParameterManagerDefinition } from '../controllers/parameter-manager/headless-core-parameter-manager.ssr.js';
|
|
@@ -10,7 +10,7 @@ import { type recommendationInternalOptionKey, SolutionType } from './controller
|
|
|
10
10
|
import type { ListingAndStandaloneController, NonRecommendationController, RecommendationOnlyController, SearchAndListingController, SearchOnlyController, UniversalController } from './controller-scopes.js';
|
|
11
11
|
import type { HydratedState } from './hydrate-static-state.js';
|
|
12
12
|
import type { HasSolutionType } from './utilities.js';
|
|
13
|
-
export type { HydratedState,
|
|
13
|
+
export type { HydratedState, InferControllerStaticStateFromController, InferControllerStaticStateMapFromControllers, };
|
|
14
14
|
export interface ControllerDefinitionWithoutProps<TController extends Controller> {
|
|
15
15
|
/**
|
|
16
16
|
* Creates an instance of the given controller.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { UnknownAction } from '@reduxjs/toolkit';
|
|
2
|
-
import type { NavigatorContextProvider } from '../../../app/navigator-context-provider.js';
|
|
3
2
|
import type { Controller } from '../../../controllers/controller/headless-controller.js';
|
|
4
3
|
import type { ControllersMap } from '../../common/types/controllers.js';
|
|
5
4
|
import type { EngineStaticState } from '../../common/types/engine.js';
|
|
@@ -35,13 +34,6 @@ export interface CommerceEngineDefinition<TControllers extends ControllerDefinit
|
|
|
35
34
|
* Fetches the hydrated state on the client side using your engine definition and the static state.
|
|
36
35
|
*/
|
|
37
36
|
hydrateStaticState: HydrateStaticState<InferControllersMapFromDefinition<TControllers, TSolutionType>, UnknownAction, InferControllerPropsMapFromDefinitions<TControllers>, TControllers, TSolutionType>;
|
|
38
|
-
/**
|
|
39
|
-
* Sets the navigator context provider.
|
|
40
|
-
* This provider is essential for retrieving navigation-related data such as referrer, userAgent, location, and clientId, which are crucial for handling both server-side and client-side API requests effectively.
|
|
41
|
-
*
|
|
42
|
-
* Note: The implementation specifics of the navigator context provider depend on the Node.js framework being utilized. It is the developer's responsibility to appropriately define and implement the navigator context provider to ensure accurate navigation context is available throughout the application. If the user fails to provide a navigator context provider, a warning will be logged either on the server or the browser console.
|
|
43
|
-
*/
|
|
44
|
-
setNavigatorContextProvider: (navigatorContextProvider: NavigatorContextProvider) => void;
|
|
45
37
|
/**
|
|
46
38
|
* Returns the access token.
|
|
47
39
|
*/
|
|
@@ -60,5 +52,5 @@ export type CommerceControllerDefinitionsMap = ControllerDefinitionsMap<Controll
|
|
|
60
52
|
type Definition<TControllerDefinitions extends CommerceControllerDefinitionsMap, TSolutionType extends SolutionType> = CommerceEngineDefinition<TControllerDefinitions, TSolutionType>;
|
|
61
53
|
type FetchStaticStateFunction<TControllerDefinitions extends CommerceControllerDefinitionsMap, TSolutionType extends SolutionType> = Definition<TControllerDefinitions, TSolutionType>['fetchStaticState'];
|
|
62
54
|
export type HydrateStaticStateFunction<TControllerDefinitions extends CommerceControllerDefinitionsMap, TSolutionType extends SolutionType> = Definition<TControllerDefinitions, TSolutionType>['hydrateStaticState'];
|
|
63
|
-
export type FetchStaticStateParameters<TControllerDefinitions extends CommerceControllerDefinitionsMap, TSolutionType extends SolutionType> = Parameters<FetchStaticStateFunction<TControllerDefinitions, TSolutionType
|
|
64
|
-
export type HydrateStaticStateParameters<TControllerDefinitions extends CommerceControllerDefinitionsMap, TSolutionType extends SolutionType> = Parameters<HydrateStaticStateFunction<TControllerDefinitions, TSolutionType
|
|
55
|
+
export type FetchStaticStateParameters<TControllerDefinitions extends CommerceControllerDefinitionsMap, TSolutionType extends SolutionType> = Parameters<FetchStaticStateFunction<TControllerDefinitions, TSolutionType>>[0];
|
|
56
|
+
export type HydrateStaticStateParameters<TControllerDefinitions extends CommerceControllerDefinitionsMap, TSolutionType extends SolutionType> = Parameters<HydrateStaticStateFunction<TControllerDefinitions, TSolutionType>>[0];
|
|
@@ -4,10 +4,10 @@ import type { ControllerStaticStateMap, ControllersPropsMap } from '../../common
|
|
|
4
4
|
import type { EngineStaticState } from '../../common/types/engine.js';
|
|
5
5
|
import type { BuildConfig } from './build.js';
|
|
6
6
|
import type { SolutionType } from './controller-constants.js';
|
|
7
|
-
import type { CommerceEngineDefinitionControllersPropsOption, ControllerDefinitionsMap, FilteredBakedInControllers
|
|
7
|
+
import type { CommerceEngineDefinitionControllersPropsOption, ControllerDefinitionsMap, FilteredBakedInControllers } from './controller-definitions.js';
|
|
8
8
|
/**
|
|
9
9
|
* Executes only the initial search for a given configuration, then returns a resumable snapshot of engine state along with the state of the controllers.
|
|
10
10
|
*
|
|
11
11
|
* Useful for static generation and server-side rendering.
|
|
12
12
|
*/
|
|
13
|
-
export type FetchStaticState<TSearchAction extends UnknownAction, TControllersStaticState extends ControllerStaticStateMap, TControllersProps extends ControllersPropsMap, TControllersDefinitionsMap extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType> = (
|
|
13
|
+
export type FetchStaticState<TSearchAction extends UnknownAction, TControllersStaticState extends ControllerStaticStateMap, TControllersProps extends ControllersPropsMap, TControllersDefinitionsMap extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType> = (params: BuildConfig<TControllersDefinitionsMap, TSolutionType> & CommerceEngineDefinitionControllersPropsOption<TControllersDefinitionsMap, TControllersProps, TSolutionType>) => Promise<EngineStaticState<TSearchAction, TControllersStaticState & FilteredBakedInControllers<TSolutionType>> & BuildConfig<TControllersDefinitionsMap, TSolutionType>>;
|
|
@@ -3,7 +3,7 @@ import type { Controller } from '../../../controllers/controller/headless-contro
|
|
|
3
3
|
import type { ControllersMap, ControllersPropsMap } from '../../common/types/controllers.js';
|
|
4
4
|
import type { BuildConfig } from './build.js';
|
|
5
5
|
import type { SolutionType } from './controller-constants.js';
|
|
6
|
-
import type { CommerceEngineDefinitionControllersPropsOption, ControllerDefinitionsMap
|
|
6
|
+
import type { CommerceEngineDefinitionControllersPropsOption, ControllerDefinitionsMap } from './controller-definitions.js';
|
|
7
7
|
import type { CommerceEngineDefinitionBuildResult } from './engine.js';
|
|
8
8
|
export type HydratedState<TControllers extends ControllersMap> = CommerceEngineDefinitionBuildResult<TControllers>;
|
|
9
9
|
export interface HydrateStaticStateOptions<TSearchAction> {
|
|
@@ -14,4 +14,4 @@ export interface HydrateStaticStateOptions<TSearchAction> {
|
|
|
14
14
|
*
|
|
15
15
|
* Useful when hydrating a server-side-rendered engine.
|
|
16
16
|
*/
|
|
17
|
-
export type HydrateStaticState<TControllers extends ControllersMap, TSearchAction extends UnknownAction, TControllersProps extends ControllersPropsMap, TControllersDefinitionsMap extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType> = (
|
|
17
|
+
export type HydrateStaticState<TControllers extends ControllersMap, TSearchAction extends UnknownAction, TControllersProps extends ControllersPropsMap, TControllersDefinitionsMap extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType> = (params: HydrateStaticStateOptions<TSearchAction> & BuildConfig<TControllersDefinitionsMap, TSolutionType> & CommerceEngineDefinitionControllersPropsOption<TControllersDefinitionsMap, TControllersProps, TSolutionType>) => Promise<HydratedState<TControllers>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CommerceEngineOptions } from '../../../app/commerce-engine/commerce-engine.js';
|
|
2
2
|
import type { CommonBuildConfig } from '../types/build.js';
|
|
3
3
|
import type { CommerceControllerDefinitionsMap, CommerceEngineDefinitionOptions } from '../types/engine.js';
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function augmentCommerceEngineOptions<TControllerDefinitions extends CommerceControllerDefinitionsMap>(engineOptions: CommerceEngineDefinitionOptions<TControllerDefinitions>, buildConfig: CommonBuildConfig): CommerceEngineOptions;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { PlatformClientOrigin, PlatformRequestOptions, PreprocessRequest, RequestMetadata } from '../../api/preprocess-request.js';
|
|
2
2
|
import { type LoggerOptions } from '../../app/logger.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { NavigatorContext } from '../../app/navigator-context-provider.js';
|
|
4
4
|
export interface AugmentPreprocessRequestOptions {
|
|
5
|
+
navigatorContext: NavigatorContext;
|
|
5
6
|
preprocessRequest?: PreprocessRequest;
|
|
6
|
-
navigatorContextProvider?: NavigatorContextProvider;
|
|
7
7
|
loggerOptions?: LoggerOptions;
|
|
8
8
|
}
|
|
9
9
|
export declare function augmentPreprocessRequestWithForwardedFor(options: AugmentPreprocessRequestOptions): (request: PlatformRequestOptions, clientOrigin: PlatformClientOrigin, metadata?: RequestMetadata) => Promise<PlatformRequestOptions>;
|
|
@@ -3,8 +3,3 @@ export type HasKeys<TObject> = TObject extends {} ? keyof TObject extends never
|
|
|
3
3
|
export type HasRequiredKeys<TObject> = TObject extends {} ? {
|
|
4
4
|
[K in keyof TObject]-?: {} extends Pick<TObject, K> ? never : K;
|
|
5
5
|
}[keyof TObject] extends never ? false : true : boolean;
|
|
6
|
-
type ExtractRequiredOptions<TOptions> = {
|
|
7
|
-
[TKey in keyof TOptions as Pick<TOptions, TKey> extends Required<Pick<TOptions, TKey>> ? TKey : never]: TOptions[TKey];
|
|
8
|
-
};
|
|
9
|
-
export type OptionsTuple<TOptions> = HasKeys<TOptions> extends false ? [] : HasKeys<ExtractRequiredOptions<TOptions>> extends false ? [options?: TOptions] : [options: TOptions];
|
|
10
|
-
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { NavigatorContextProvider } from '../../../app/navigator-context-provider.js';
|
|
2
1
|
import { type SearchEngine } from '../../../app/search-engine/search-engine.js';
|
|
3
2
|
import type { Controller } from '../../../controllers/controller/headless-controller.js';
|
|
4
3
|
import type { LegacySearchAction } from '../../../features/analytics/analytics-utils.js';
|
|
@@ -21,13 +20,20 @@ export type SearchCompletedAction = ReturnType<LegacySearchAction['fulfilled' |
|
|
|
21
20
|
* Initializes a Search engine definition in SSR with given controllers definitions and search engine config.
|
|
22
21
|
*
|
|
23
22
|
* @param options - The search engine definition
|
|
24
|
-
* @returns
|
|
25
|
-
*
|
|
23
|
+
* @returns Two utility functions to fetch the initial state of the engine in SSR and hydrate the state in CSR.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* const searchEngine = defineSearchEngine(config);
|
|
28
|
+
*
|
|
29
|
+
* const staticState = await searchEngine.fetchStaticState({
|
|
30
|
+
* navigatorContextProvider: () => {/*...* /},
|
|
31
|
+
* });
|
|
32
|
+
* ```
|
|
26
33
|
*
|
|
27
34
|
* @group Engine
|
|
28
35
|
*/
|
|
29
36
|
export declare function defineSearchEngine<TControllerDefinitions extends ControllerDefinitionsMap<SearchEngine, Controller>>(options: SearchEngineDefinitionOptions<TControllerDefinitions>): {
|
|
30
37
|
fetchStaticState: import("../types/fetch-static-state.js").FetchStaticState<import("redux").AnyAction, InferControllerStaticStateMapFromDefinitions<TControllerDefinitions>, InferControllerPropsMapFromDefinitions<TControllerDefinitions>>;
|
|
31
38
|
hydrateStaticState: import("../types/hydrate-static-state.js").HydrateStaticState<SSRSearchEngine, import("../types/controller-inference.js").InferControllersMapFromDefinition<TControllerDefinitions>, import("redux").AnyAction, InferControllerPropsMapFromDefinitions<TControllerDefinitions>>;
|
|
32
|
-
setNavigatorContextProvider: (navigatorContextProvider: NavigatorContextProvider) => void;
|
|
33
39
|
};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { CoreEngine, CoreEngineNext } from '../../../app/engine.js';
|
|
2
|
+
import type { NavigatorContext } from '../../../app/navigator-context-provider.js';
|
|
2
3
|
import type { ControllersMap, ControllersPropsMap } from '../../common/types/controllers.js';
|
|
3
|
-
import type { OptionsTuple } from '../../common/types/utilities.js';
|
|
4
4
|
import type { SearchEngineDefinitionBuildResult, SearchEngineDefinitionControllersPropsOption } from './engine.js';
|
|
5
|
+
export type BuildConfig = {
|
|
6
|
+
navigatorContext: NavigatorContext;
|
|
7
|
+
};
|
|
5
8
|
/**
|
|
6
9
|
* @internal
|
|
7
10
|
*/
|
|
8
|
-
export type Build<TEngine extends CoreEngine | CoreEngineNext, TControllersMap extends ControllersMap, TControllersProps extends ControllersPropsMap> = (
|
|
11
|
+
export type Build<TEngine extends CoreEngine | CoreEngineNext, TControllersMap extends ControllersMap, TControllersProps extends ControllersPropsMap> = (props: SearchEngineDefinitionControllersPropsOption<TControllersProps>) => Promise<SearchEngineDefinitionBuildResult<TEngine, TControllersMap>>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { AnyAction } from '@reduxjs/toolkit';
|
|
2
2
|
import type { CoreEngine, CoreEngineNext } from '../../../app/engine.js';
|
|
3
|
-
import type { NavigatorContextProvider } from '../../../app/navigator-context-provider.js';
|
|
4
3
|
import type { SearchEngineOptions } from '../../../app/search-engine/search-engine.js';
|
|
5
4
|
import type { Controller } from '../../../controllers/controller/headless-controller.js';
|
|
6
5
|
import type { ControllersMap, ControllersPropsMap } from '../../common/types/controllers.js';
|
|
@@ -32,13 +31,6 @@ export interface SearchEngineDefinition<TEngine extends CoreEngine | CoreEngineN
|
|
|
32
31
|
* Fetches the hydrated state on the client side using your engine definition and the static state.
|
|
33
32
|
*/
|
|
34
33
|
hydrateStaticState: HydrateStaticState<TEngine, InferControllersMapFromDefinition<TControllers>, AnyAction, InferControllerPropsMapFromDefinitions<TControllers>>;
|
|
35
|
-
/**
|
|
36
|
-
* Sets the navigator context provider.
|
|
37
|
-
* This provider is essential for retrieving navigation-related data such as referrer, userAgent, location, and clientId, which are crucial for handling both server-side and client-side API requests effectively.
|
|
38
|
-
*
|
|
39
|
-
* Note: The implementation specifics of the navigator context provider depend on the Node.js framework being utilized. It is the developer's responsibility to appropriately define and implement the navigator context provider to ensure accurate navigation context is available throughout the application. If the user fails to provide a navigator context provider, a warning will be logged either on the server or the browser console.
|
|
40
|
-
*/
|
|
41
|
-
setNavigatorContextProvider: (navigatorContextProvider: NavigatorContextProvider) => void;
|
|
42
34
|
}
|
|
43
35
|
/**
|
|
44
36
|
* This type defines the required and optional controller props for the search engine definition.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { UnknownAction } from '@reduxjs/toolkit';
|
|
2
2
|
import type { ControllerStaticStateMap, ControllersPropsMap } from '../../common/types/controllers.js';
|
|
3
3
|
import type { EngineStaticState } from '../../common/types/engine.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { BuildConfig } from './build.js';
|
|
5
5
|
import type { SearchEngineDefinitionControllersPropsOption } from './engine.js';
|
|
6
6
|
/**
|
|
7
7
|
* Executes only the initial search for a given configuration, then returns a resumable snapshot of engine state along with the state of the controllers.
|
|
8
8
|
*
|
|
9
9
|
* Useful for static generation and server-side rendering.
|
|
10
10
|
*/
|
|
11
|
-
export type FetchStaticState<TSearchAction extends UnknownAction, TControllersStaticState extends ControllerStaticStateMap, TControllersProps extends ControllersPropsMap> = (
|
|
11
|
+
export type FetchStaticState<TSearchAction extends UnknownAction, TControllersStaticState extends ControllerStaticStateMap, TControllersProps extends ControllersPropsMap> = (params: BuildConfig & SearchEngineDefinitionControllersPropsOption<TControllersProps>) => Promise<EngineStaticState<TSearchAction, TControllersStaticState> & BuildConfig>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { UnknownAction } from '@reduxjs/toolkit';
|
|
2
2
|
import type { CoreEngine, CoreEngineNext } from '../../../app/engine.js';
|
|
3
3
|
import type { ControllersMap, ControllersPropsMap } from '../../common/types/controllers.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { BuildConfig } from './build.js';
|
|
5
5
|
import type { SearchEngineDefinitionBuildResult, SearchEngineDefinitionControllersPropsOption } from './engine.js';
|
|
6
6
|
export type HydratedState<TEngine extends CoreEngine | CoreEngineNext, TControllers extends ControllersMap> = SearchEngineDefinitionBuildResult<TEngine, TControllers>;
|
|
7
7
|
interface HydrateStaticStateOptions<TSearchAction> {
|
|
@@ -12,5 +12,5 @@ interface HydrateStaticStateOptions<TSearchAction> {
|
|
|
12
12
|
*
|
|
13
13
|
* Useful when hydrating a server-side-rendered engine.
|
|
14
14
|
*/
|
|
15
|
-
export type HydrateStaticState<TEngine extends CoreEngine | CoreEngineNext, TControllers extends ControllersMap, TSearchAction extends UnknownAction, TControllersProps extends ControllersPropsMap> = (
|
|
15
|
+
export type HydrateStaticState<TEngine extends CoreEngine | CoreEngineNext, TControllers extends ControllersMap, TSearchAction extends UnknownAction, TControllersProps extends ControllersPropsMap> = (params: BuildConfig & HydrateStaticStateOptions<TSearchAction> & SearchEngineDefinitionControllersPropsOption<TControllersProps>) => Promise<HydratedState<TEngine, TControllers>>;
|
|
16
16
|
export {};
|
package/force-app/main/default/staticresources/coveoheadless/definitions/ssr-next.index.d.ts
CHANGED
|
@@ -36,11 +36,12 @@
|
|
|
36
36
|
* export type SearchStaticState = InferStaticState<typeof engineDefinition>;
|
|
37
37
|
* export type SearchHydratedState = InferHydratedState<typeof engineDefinition>;
|
|
38
38
|
*
|
|
39
|
-
* export const {
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* }
|
|
39
|
+
* export const {fetchStaticState, hydrateStaticState} = engineDefinition;
|
|
40
|
+
*
|
|
41
|
+
* await fetchStaticState({
|
|
42
|
+
* navigatorContextProvider: () => {/*...* /},
|
|
43
|
+
* context: {/*...* /},
|
|
44
|
+
* });
|
|
44
45
|
|
|
45
46
|
* ```
|
|
46
47
|
* @module SSR Search
|