@coveo/headless 3.29.0-pre.1d1e8ef192 → 3.29.0-pre.1e8854eed3

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 (29) hide show
  1. package/dist/cjs/case-assist/headless.cjs +1 -1
  2. package/dist/cjs/commerce/headless.cjs +1 -1
  3. package/dist/cjs/headless.cjs +1 -1
  4. package/dist/cjs/insight/headless.cjs +1 -1
  5. package/dist/cjs/recommendation/headless.cjs +1 -1
  6. package/dist/cjs/ssr/headless.cjs +1 -1
  7. package/dist/cjs/ssr-commerce/headless.cjs +1 -1
  8. package/dist/cjs/ssr-commerce-next/headless.cjs +1 -1
  9. package/dist/cjs/ssr-next/headless.cjs +1 -1
  10. package/dist/definitions/ssr-next/commerce/controller-utils.d.ts +7 -5
  11. package/dist/definitions/ssr-next/commerce/factories/build-factory.d.ts +5 -4
  12. package/dist/definitions/ssr-next/commerce/factories/hydrated-state-factory.d.ts +5 -2
  13. package/dist/definitions/ssr-next/commerce/factories/recommendation-hydrated-state-factory.d.ts +3 -1
  14. package/dist/definitions/ssr-next/commerce/factories/recommendation-static-state-factory.d.ts +12 -2
  15. package/dist/definitions/ssr-next/commerce/factories/static-state-factory.d.ts +7 -2
  16. package/dist/definitions/ssr-next/commerce/types/build.d.ts +4 -10
  17. package/dist/definitions/ssr-next/commerce/types/engine.d.ts +5 -12
  18. package/dist/definitions/ssr-next/commerce/utils/recommendation-filter.d.ts +1 -1
  19. package/dist/esm/ssr-next/commerce/factories/build-factory.js +8 -2
  20. package/dist/esm/ssr-next/commerce/factories/hydrated-state-factory.js +0 -3
  21. package/dist/esm/ssr-next/commerce/factories/recommendation-hydrated-state-factory.js +1 -4
  22. package/dist/esm/ssr-next/commerce/factories/recommendation-static-state-factory.js +2 -2
  23. package/dist/esm/utils/version.js +1 -1
  24. package/dist/quantic/case-assist/headless.js +1 -1
  25. package/dist/quantic/commerce/headless.js +1 -1
  26. package/dist/quantic/headless.js +1 -1
  27. package/dist/quantic/insight/headless.js +1 -1
  28. package/dist/quantic/recommendation/headless.js +1 -1
  29. package/package.json +1 -1
@@ -800,7 +800,7 @@ var import_bueno5 = require("@coveo/bueno");
800
800
  var import_toolkit7 = require("@reduxjs/toolkit");
801
801
 
802
802
  // src/utils/version.ts
803
- var VERSION = "3.29.0-pre.1d1e8ef192";
803
+ var VERSION = "3.29.0-pre.1e8854eed3";
804
804
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
805
805
 
806
806
  // src/features/configuration/configuration-actions.ts
@@ -1149,7 +1149,7 @@ var import_bueno6 = require("@coveo/bueno");
1149
1149
  var import_toolkit4 = require("@reduxjs/toolkit");
1150
1150
 
1151
1151
  // src/utils/version.ts
1152
- var VERSION = "3.29.0-pre.1d1e8ef192";
1152
+ var VERSION = "3.29.0-pre.1e8854eed3";
1153
1153
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
1154
1154
 
1155
1155
  // src/features/configuration/configuration-actions.ts
@@ -1374,7 +1374,7 @@ var import_toolkit2 = require("@reduxjs/toolkit");
1374
1374
  var import_toolkit = require("@reduxjs/toolkit");
1375
1375
 
1376
1376
  // src/utils/version.ts
1377
- var VERSION = "3.29.0-pre.1d1e8ef192";
1377
+ var VERSION = "3.29.0-pre.1e8854eed3";
1378
1378
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
1379
1379
 
1380
1380
  // src/api/analytics/analytics-selectors.ts
@@ -1278,7 +1278,7 @@ var import_toolkit2 = require("@reduxjs/toolkit");
1278
1278
  var import_toolkit = require("@reduxjs/toolkit");
1279
1279
 
1280
1280
  // src/utils/version.ts
1281
- var VERSION = "3.29.0-pre.1d1e8ef192";
1281
+ var VERSION = "3.29.0-pre.1e8854eed3";
1282
1282
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
1283
1283
 
1284
1284
  // src/api/analytics/analytics-selectors.ts
@@ -881,7 +881,7 @@ var validateObject = (engine, schema, obj, validationMessage, errorMessage) => {
881
881
  };
882
882
 
883
883
  // src/utils/version.ts
884
- var VERSION = "3.29.0-pre.1d1e8ef192";
884
+ var VERSION = "3.29.0-pre.1e8854eed3";
885
885
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
886
886
 
887
887
  // src/features/configuration/configuration-actions.ts
@@ -1306,7 +1306,7 @@ var import_toolkit2 = require("@reduxjs/toolkit");
1306
1306
  var import_toolkit = require("@reduxjs/toolkit");
1307
1307
 
1308
1308
  // src/utils/version.ts
1309
- var VERSION = "3.29.0-pre.1d1e8ef192";
1309
+ var VERSION = "3.29.0-pre.1e8854eed3";
1310
1310
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
1311
1311
 
1312
1312
  // src/api/analytics/analytics-selectors.ts
@@ -468,7 +468,7 @@ var import_bueno8 = require("@coveo/bueno");
468
468
  var import_toolkit3 = require("@reduxjs/toolkit");
469
469
 
470
470
  // src/utils/version.ts
471
- var VERSION = "3.29.0-pre.1d1e8ef192";
471
+ var VERSION = "3.29.0-pre.1e8854eed3";
472
472
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
473
473
 
474
474
  // src/features/configuration/configuration-actions.ts
@@ -468,7 +468,7 @@ var import_bueno8 = require("@coveo/bueno");
468
468
  var import_toolkit3 = require("@reduxjs/toolkit");
469
469
 
470
470
  // src/utils/version.ts
471
- var VERSION = "3.29.0-pre.1d1e8ef192";
471
+ var VERSION = "3.29.0-pre.1e8854eed3";
472
472
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
473
473
 
474
474
  // src/features/configuration/configuration-actions.ts
@@ -1306,7 +1306,7 @@ var import_toolkit2 = require("@reduxjs/toolkit");
1306
1306
  var import_toolkit = require("@reduxjs/toolkit");
1307
1307
 
1308
1308
  // src/utils/version.ts
1309
- var VERSION = "3.29.0-pre.1d1e8ef192";
1309
+ var VERSION = "3.29.0-pre.1e8854eed3";
1310
1310
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
1311
1311
 
1312
1312
  // src/api/analytics/analytics-selectors.ts
@@ -2,13 +2,15 @@ import type { UnknownAction } from '@reduxjs/toolkit';
2
2
  import type { Controller } from '../../controllers/controller/headless-controller.js';
3
3
  import type { SSRCommerceEngine } from './factories/build-factory.js';
4
4
  import type { SolutionType } from './types/controller-constants.js';
5
- import type { ControllerDefinitionOption, ControllerDefinitionsMap } from './types/controller-definitions.js';
5
+ import type { ControllerDefinitionOption, ControllerDefinitionsMap, FilteredBakedInControllers } from './types/controller-definitions.js';
6
6
  import type { InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromDefinitionsWithSolutionType, InferControllersMapFromDefinition } from './types/controller-inference.js';
7
- import type { EngineStaticState } from './types/engine.js';
8
- export declare function createStaticState<TSearchAction extends UnknownAction, TControllerDefinitions extends ControllerDefinitionsMap<Controller>>({ searchActions, controllers, }: {
7
+ export declare function createStaticState<TSearchAction extends UnknownAction, TControllerDefinitions extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType>({ searchActions, controllers, }: {
9
8
  searchActions: TSearchAction[];
10
- controllers: InferControllersMapFromDefinition<TControllerDefinitions, SolutionType>;
11
- }): EngineStaticState<TSearchAction, InferControllerStaticStateMapFromDefinitionsWithSolutionType<TControllerDefinitions, SolutionType>>;
9
+ controllers: Record<string, Controller>;
10
+ }): {
11
+ controllers: InferControllerStaticStateMapFromDefinitionsWithSolutionType<TControllerDefinitions, TSolutionType> & FilteredBakedInControllers<TSolutionType>;
12
+ searchActions: TSearchAction[];
13
+ };
12
14
  export declare function buildControllerDefinitions<TControllerDefinitionsMap extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType>({ definitionsMap, engine, solutionType, propsMap, }: {
13
15
  definitionsMap: TControllerDefinitionsMap;
14
16
  engine: SSRCommerceEngine;
@@ -3,8 +3,9 @@ import { type CommerceEngine } from '../../../app/commerce-engine/commerce-engin
3
3
  import type { Controller } from '../../../controllers/controller/headless-controller.js';
4
4
  import type { SSRCommerceEngineOptions } from '../types/build.js';
5
5
  import { SolutionType } from '../types/controller-constants.js';
6
- import type { ControllerDefinitionsMap } from '../types/controller-definitions.js';
7
- import type { BuildParameters, CommerceControllerDefinitionsMap, EngineDefinitionOptions } from '../types/engine.js';
6
+ import type { AugmentedControllerDefinition, BakedInControllers, ControllerDefinitionsMap } from '../types/controller-definitions.js';
7
+ import type { InferControllersMapFromDefinition } from '../types/controller-inference.js';
8
+ import type { CommerceControllerDefinitionsMap, EngineDefinitionOptions, FetchStaticStateParameters, HydrateStaticStateParameters } from '../types/engine.js';
8
9
  /**
9
10
  * The SSR commerce engine.
10
11
  *
@@ -17,7 +18,7 @@ export interface SSRCommerceEngine extends CommerceEngine {
17
18
  waitForRequestCompletedAction(): Promise<Action>[];
18
19
  }
19
20
  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<{
21
+ export declare const buildFactory: <TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>) => <TSolutionType extends SolutionType>(solutionType: TSolutionType) => (...[buildOptions]: FetchStaticStateParameters<TControllerDefinitions, TSolutionType> | HydrateStaticStateParameters<TControllerDefinitions, TSolutionType>) => Promise<{
21
22
  engine: SSRCommerceEngine;
22
- controllers: import("../types/controller-inference.js").InferControllersMapFromDefinition<TControllerDefinitions, T>;
23
+ controllers: InferControllersMapFromDefinition<TControllerDefinitions, TSolutionType> & BakedInControllers;
23
24
  }>;
@@ -1,5 +1,8 @@
1
1
  import type { SolutionType } from '../types/controller-constants.js';
2
2
  import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
3
- import type { CommerceControllerDefinitionsMap, HydrateStaticStateFunction } from '../types/engine.js';
3
+ import type { CommerceControllerDefinitionsMap, HydrateStaticStateParameters } from '../types/engine.js';
4
4
  import { type CommerceEngineDefinitionOptions } from './build-factory.js';
5
- export declare function hydratedStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): (solutionType: SolutionType) => HydrateStaticStateFunction<TControllerDefinitions>;
5
+ export declare function hydratedStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): <TSolutionType extends SolutionType>(solutionType: TSolutionType) => (...params: HydrateStaticStateParameters<TControllerDefinitions, TSolutionType>) => Promise<{
6
+ engine: import("./build-factory.js").SSRCommerceEngine;
7
+ controllers: import("../types/controller-inference.js").InferControllersMapFromDefinition<TControllerDefinitions, TSolutionType> & import("../types/controller-definitions.js").BakedInControllers;
8
+ }>;
@@ -1,3 +1,5 @@
1
+ import { SolutionType } from '../types/controller-constants.js';
2
+ import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
1
3
  import type { CommerceControllerDefinitionsMap, HydrateStaticStateFunction } from '../types/engine.js';
2
4
  import { type CommerceEngineDefinitionOptions } from './build-factory.js';
3
- export declare function hydratedRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: TControllerDefinitions, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): HydrateStaticStateFunction<TControllerDefinitions>;
5
+ export declare function hydratedRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): HydrateStaticStateFunction<TControllerDefinitions, SolutionType.recommendation>;
@@ -1,4 +1,14 @@
1
+ import type { UnknownAction } from '@reduxjs/toolkit';
2
+ import { SolutionType } from '../types/controller-constants.js';
1
3
  import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
2
- import type { CommerceControllerDefinitionsMap, FetchStaticStateFunction } from '../types/engine.js';
4
+ import type { CommerceControllerDefinitionsMap, FetchStaticStateParameters } from '../types/engine.js';
3
5
  import { type CommerceEngineDefinitionOptions } from './build-factory.js';
4
- export declare function fetchRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): FetchStaticStateFunction<TControllerDefinitions>;
6
+ export declare function fetchRecommendationStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): (...params: FetchStaticStateParameters<TControllerDefinitions, SolutionType.recommendation>) => Promise<{
7
+ controllers: import("../types/controller-inference.js").InferControllerStaticStateMapFromDefinitionsWithSolutionType<TControllerDefinitions, SolutionType.recommendation> & import("../types/controller-definitions.js").FilteredBakedInControllers<SolutionType.recommendation>;
8
+ searchActions: UnknownAction[];
9
+ context: import("../../../commerce.index.js").ContextOptions;
10
+ searchParams?: import("../../../commerce.index.js").ParameterManagerState<import("../../../commerce.index.js").Parameters>["parameters"];
11
+ cart?: import("../../../commerce.index.js").CartInitialState;
12
+ productId?: string;
13
+ 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]>[];
14
+ }>;
@@ -1,5 +1,10 @@
1
+ import type { UnknownAction } from '@reduxjs/toolkit';
2
+ import type { BuildConfig } from '../types/build.js';
1
3
  import { SolutionType } from '../types/controller-constants.js';
2
4
  import type { AugmentedControllerDefinition } from '../types/controller-definitions.js';
3
- import type { CommerceControllerDefinitionsMap, FetchStaticStateFunction } from '../types/engine.js';
5
+ import type { CommerceControllerDefinitionsMap, FetchStaticStateParameters } from '../types/engine.js';
4
6
  import { type CommerceEngineDefinitionOptions } from './build-factory.js';
5
- export declare function fetchStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): (solutionType: SolutionType) => FetchStaticStateFunction<TControllerDefinitions>;
7
+ export declare function fetchStaticStateFactory<TControllerDefinitions extends CommerceControllerDefinitionsMap>(controllerDefinitions: AugmentedControllerDefinition<TControllerDefinitions>, options: CommerceEngineDefinitionOptions<TControllerDefinitions>): <TSolutionType extends SolutionType>(solutionType: TSolutionType) => (...params: FetchStaticStateParameters<TControllerDefinitions, TSolutionType>) => Promise<BuildConfig<TControllerDefinitions, TSolutionType> & {
8
+ controllers: import("../types/controller-inference.js").InferControllerStaticStateMapFromDefinitionsWithSolutionType<TControllerDefinitions, TSolutionType> & import("../types/controller-definitions.js").FilteredBakedInControllers<TSolutionType>;
9
+ searchActions: UnknownAction[];
10
+ }>;
@@ -1,20 +1,18 @@
1
1
  import type { CommerceEngineOptions } from '../../../app/commerce-engine/commerce-engine.js';
2
2
  import type { Controller } from '../../../controllers/controller/headless-controller.js';
3
- import type { ControllersMap, ControllersPropsMap } from '../../common/types/controllers.js';
4
- import type { HasKey, OptionsTuple } from '../../common/types/utilities.js';
3
+ import type { HasKey } from '../../common/types/utilities.js';
5
4
  import type { CartInitialState } from '../controllers/cart/headless-cart.ssr.js';
6
5
  import type { ContextOptions } from '../controllers/context/headless-context.ssr.js';
7
6
  import type { ParameterManagerState, Parameters } from '../controllers/parameter-manager/headless-core-parameter-manager.ssr.js';
8
7
  import type { SolutionType } from './controller-constants.js';
9
- import type { ControllerDefinitionsMap, EngineDefinitionControllersPropsOption, IsRecommendationController } from './controller-definitions.js';
10
- import type { CommerceEngineDefinitionBuildResult } from './engine.js';
8
+ import type { ControllerDefinitionsMap, IsRecommendationController } from './controller-definitions.js';
11
9
  export interface SearchBuildConfig extends CommonBuildConfig {
12
10
  searchParams: ParameterManagerState<Parameters & {
13
11
  query: string;
14
12
  }>['parameters'];
15
13
  }
16
14
  /**
17
- * RecommendationBuildConfig defines the shape of the config object required when fetching static state for recommendations.
15
+ * The `RecommendationBuildConfig` type defines the shape of the configuration object required when fetching static state for recommendations.
18
16
  *
19
17
  * The `recommendations` property is a string array containing the names of the recommendation controllers
20
18
  * that were defined in your engine definition. This allows you to specify which recommendation controllers
@@ -51,7 +49,7 @@ export type RecommendationBuildConfig<TControllers extends ControllerDefinitions
51
49
  productId?: string;
52
50
  /**
53
51
  * An array of recommendation controller names from your engine definition to include in the SSR request.
54
- * Each name corresponds to the key used when defining recommendation controllers in your engine definition.
52
+ * Each name corresponds to a key used when defining recommendation controllers in your engine definition.
55
53
  * If not specified, no recommendation requests will be executed.
56
54
  */
57
55
  recommendations: Array<Extract<keyof TControllers, {
@@ -74,7 +72,3 @@ export type BuildConfig<TControllers extends ControllerDefinitionsMap<Controller
74
72
  export type SSRCommerceEngineOptions = Omit<CommerceEngineOptions, 'configuration'> & {
75
73
  configuration: Omit<CommerceEngineOptions['configuration'], 'context'>;
76
74
  };
77
- /**
78
- * @internal
79
- */
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>>;
@@ -4,7 +4,6 @@ import type { NavigatorContextProvider } from '../../../app/navigator-context-pr
4
4
  import type { Controller } from '../../../controllers/controller/headless-controller.js';
5
5
  import type { ControllerStaticStateMap, ControllersMap } from '../../common/types/controllers.js';
6
6
  import type { SSRCommerceEngine } from '../factories/build-factory.js';
7
- import type { Build } from './build.js';
8
7
  import type { SolutionType } from './controller-constants.js';
9
8
  import type { BakedInControllers, ControllerDefinitionsMap } from './controller-definitions.js';
10
9
  import type { InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromDefinitionsWithSolutionType, InferControllersMapFromDefinition } from './controller-inference.js';
@@ -58,14 +57,8 @@ export interface CommerceEngineDefinitionBuildResult<TControllers extends Contro
58
57
  controllers: TControllers & BakedInControllers;
59
58
  }
60
59
  export type CommerceControllerDefinitionsMap = ControllerDefinitionsMap<Controller>;
61
- type Definition<TControllerDefinitions extends CommerceControllerDefinitionsMap> = CommerceEngineDefinition<TControllerDefinitions, SolutionType>;
62
- export type FetchStaticStateFunction<TControllerDefinitions extends CommerceControllerDefinitionsMap> = Definition<TControllerDefinitions>['fetchStaticState'];
63
- export type HydrateStaticStateFunction<TControllerDefinitions extends CommerceControllerDefinitionsMap> = Definition<TControllerDefinitions>['hydrateStaticState'];
64
- export type BuildParameters<TControllerDefinitions extends CommerceControllerDefinitionsMap> = Parameters<Build<InferControllersMapFromDefinition<TControllerDefinitions, SolutionType>, InferControllerPropsMapFromDefinitions<TControllerDefinitions>, TControllerDefinitions, SolutionType>>;
65
- export type FetchStaticStateParameters<TControllerDefinitions extends CommerceControllerDefinitionsMap> = Parameters<FetchStaticStateFunction<TControllerDefinitions>>;
66
- export type HydrateStaticStateParameters<TControllerDefinitions extends CommerceControllerDefinitionsMap> = Parameters<HydrateStaticStateFunction<TControllerDefinitions>>;
67
- type Controllers<TControllerDefinitions extends CommerceControllerDefinitionsMap> = InferControllersMapFromDefinition<TControllerDefinitions, SolutionType>;
68
- export type BuildResult<TControllerDefinitions extends CommerceControllerDefinitionsMap> = {
69
- engine: SSRCommerceEngine;
70
- controllers: Controllers<TControllerDefinitions> & BakedInControllers;
71
- };
60
+ type Definition<TControllerDefinitions extends CommerceControllerDefinitionsMap, TSolutionType extends SolutionType> = CommerceEngineDefinition<TControllerDefinitions, TSolutionType>;
61
+ type FetchStaticStateFunction<TControllerDefinitions extends CommerceControllerDefinitionsMap, TSolutionType extends SolutionType> = Definition<TControllerDefinitions, TSolutionType>['fetchStaticState'];
62
+ 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>>;
@@ -20,5 +20,5 @@ export declare function filterRecommendationControllers<TControllerDefinitions e
20
20
  * @param controllers - A record of all controllers where the key is the controller name and the value is the controller instance.
21
21
  * @param controllerNames - A list of all recommendation controllers to refresh
22
22
  */
23
- refresh(whitelist?: string[]): void;
23
+ refresh(whitelist?: Array<keyof TControllerDefinitions>): void;
24
24
  };
@@ -73,13 +73,19 @@ export const buildFactory = (controllerDefinitions, options) => (solutionType) =
73
73
  };
74
74
  const engine = buildSSRCommerceEngine(solutionType, engineOptions, enabledRecommendationControllers);
75
75
  const controllers = buildControllerDefinitions({
76
- definitionsMap: (controllerDefinitions ?? {}),
76
+ definitionsMap: controllerDefinitions ?? {},
77
77
  engine,
78
78
  solutionType,
79
79
  propsMap: controllerProps,
80
80
  });
81
+ // If searchActions are provided (hydrate scenario), dispatch them
82
+ if (buildOptions && 'searchActions' in buildOptions) {
83
+ buildOptions.searchActions.forEach((action) => {
84
+ engine.dispatch(action);
85
+ });
86
+ }
81
87
  return {
82
88
  engine,
83
- controllers,
89
+ controllers: controllers,
84
90
  };
85
91
  };
@@ -3,9 +3,6 @@ export function hydratedStaticStateFactory(controllerDefinitions, options) {
3
3
  return (solutionType) => async (...params) => {
4
4
  const solutionTypeBuild = await buildFactory(controllerDefinitions, options)(solutionType);
5
5
  const { engine, controllers } = await solutionTypeBuild(...params);
6
- params[0].searchActions.forEach((action) => {
7
- engine.dispatch(action);
8
- });
9
6
  await engine.waitForRequestCompletedAction();
10
7
  return { engine, controllers };
11
8
  };
@@ -3,10 +3,7 @@ import { buildFactory, } from './build-factory.js';
3
3
  export function hydratedRecommendationStaticStateFactory(controllerDefinitions, options) {
4
4
  return async (...params) => {
5
5
  const solutionTypeBuild = await buildFactory(controllerDefinitions, options)(SolutionType.recommendation);
6
- const { engine, controllers } = (await solutionTypeBuild(...params));
7
- params[0].searchActions.forEach((action) => {
8
- engine.dispatch(action);
9
- });
6
+ const { engine, controllers } = await solutionTypeBuild(...params);
10
7
  await engine.waitForRequestCompletedAction();
11
8
  return { engine, controllers };
12
9
  };
@@ -5,9 +5,9 @@ import { buildFactory, } from './build-factory.js';
5
5
  export function fetchRecommendationStaticStateFactory(controllerDefinitions, options) {
6
6
  return async (...params) => {
7
7
  const [props] = params;
8
- const allowedRecommendationKeys = props.recommendations;
8
+ const allowedRecommendationKeys = props?.recommendations;
9
9
  const solutionTypeBuild = await buildFactory(controllerDefinitions, options)(SolutionType.recommendation);
10
- const { engine, controllers } = (await solutionTypeBuild(...params));
10
+ const { engine, controllers } = await solutionTypeBuild(...params);
11
11
  filterRecommendationControllers(controllers, controllerDefinitions ?? {}).refresh(allowedRecommendationKeys);
12
12
  const searchActions = await Promise.all(engine.waitForRequestCompletedAction());
13
13
  const staticState = createStaticState({
@@ -1,2 +1,2 @@
1
- export const VERSION = "3.29.0-pre.1d1e8ef192" || 'Test version';
1
+ export const VERSION = "3.29.0-pre.1e8854eed3" || 'Test version';
2
2
  export const COVEO_FRAMEWORK = ['@coveo/atomic', '@coveo/quantic'];