@coveo/headless 3.29.1 → 3.29.2-pre.0e2721db97

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 (157) hide show
  1. package/dist/cjs/case-assist/headless.cjs +1 -1
  2. package/dist/cjs/case-assist/node.cjs.stats.json +1 -1
  3. package/dist/cjs/commerce/headless.cjs +1 -1
  4. package/dist/cjs/commerce/node.cjs.stats.json +1 -1
  5. package/dist/cjs/headless.cjs +1 -1
  6. package/dist/cjs/insight/headless.cjs +1 -1
  7. package/dist/cjs/insight/node.cjs.stats.json +1 -1
  8. package/dist/cjs/node.cjs.stats.json +1 -1
  9. package/dist/cjs/recommendation/headless.cjs +1 -1
  10. package/dist/cjs/recommendation/node.cjs.stats.json +1 -1
  11. package/dist/cjs/ssr/headless.cjs +1 -1
  12. package/dist/cjs/ssr/node.cjs.stats.json +1 -1
  13. package/dist/cjs/ssr-commerce/headless.cjs +1 -1
  14. package/dist/cjs/ssr-commerce/node.cjs.stats.json +1 -1
  15. package/dist/cjs/ssr-commerce-next/headless.cjs +1 -1
  16. package/dist/cjs/ssr-commerce-next/node.cjs.stats.json +1 -1
  17. package/dist/cjs/ssr-next/headless.cjs +1 -1
  18. package/dist/cjs/ssr-next/node.cjs.stats.json +1 -1
  19. package/dist/definitions/ssr/commerce/types/controller-definitions.d.ts +3 -0
  20. package/dist/definitions/ssr-commerce-next.index.d.ts +11 -11
  21. package/dist/definitions/ssr-commerce.index.d.ts +1 -1
  22. package/dist/definitions/ssr-next/commerce/controller-utils.d.ts +1 -2
  23. package/dist/definitions/ssr-next/commerce/controllers/breadcrumb-manager/headless-core-breadcrumb-manager.ssr.d.ts +3 -2
  24. package/dist/definitions/ssr-next/commerce/controllers/cart/headless-cart.ssr.d.ts +1 -2
  25. package/dist/definitions/ssr-next/commerce/controllers/context/headless-context.ssr.d.ts +2 -3
  26. package/dist/definitions/ssr-next/commerce/controllers/did-you-mean/headless-did-you-mean.ssr.d.ts +2 -1
  27. package/dist/definitions/ssr-next/commerce/controllers/filter-suggestions/headless-filter-suggestions-generator.ssr.d.ts +1 -2
  28. package/dist/definitions/ssr-next/commerce/controllers/generator/headless-commerce-facet-generator.ssr.d.ts +3 -2
  29. package/dist/definitions/ssr-next/commerce/controllers/instant-products/headless-instant-products.ssr.d.ts +1 -2
  30. package/dist/definitions/ssr-next/commerce/controllers/pagination/headless-core-commerce-pagination.ssr.d.ts +3 -2
  31. package/dist/definitions/ssr-next/commerce/controllers/parameter-manager/headless-core-parameter-manager.ssr.d.ts +3 -13
  32. package/dist/definitions/ssr-next/commerce/controllers/product-list/headless-product-list.ssr.d.ts +3 -2
  33. package/dist/definitions/ssr-next/commerce/controllers/product-view/headless-product-view.ssr.d.ts +1 -3
  34. package/dist/definitions/ssr-next/commerce/controllers/recent-queries-list/headless-recent-queries-list.ssr.d.ts +1 -2
  35. package/dist/definitions/ssr-next/commerce/controllers/recommendations/headless-recommendations.ssr.d.ts +8 -4
  36. package/dist/definitions/ssr-next/commerce/controllers/search-box/headless-search-box.ssr.d.ts +1 -2
  37. package/dist/definitions/ssr-next/commerce/controllers/sort/headless-core-commerce-sort.ssr.d.ts +3 -2
  38. package/dist/definitions/ssr-next/commerce/controllers/standalone-search-box/headless-standalone-search-box.ssr.d.ts +1 -2
  39. package/dist/definitions/ssr-next/commerce/controllers/summary/headless-core-summary.ssr.d.ts +3 -2
  40. package/dist/definitions/ssr-next/commerce/controllers/triggers/headless-notify-trigger.ssr.d.ts +1 -2
  41. package/dist/definitions/ssr-next/commerce/controllers/triggers/headless-query-trigger.ssr.d.ts +1 -2
  42. package/dist/definitions/ssr-next/commerce/controllers/triggers/headless-redirection-trigger.ssr.d.ts +1 -2
  43. package/dist/definitions/ssr-next/commerce/engine/commerce-engine.ssr.d.ts +1 -2
  44. package/dist/definitions/ssr-next/commerce/factories/build-factory.d.ts +1 -5
  45. package/dist/definitions/ssr-next/commerce/factories/hydrated-state-factory.d.ts +3 -3
  46. package/dist/definitions/ssr-next/commerce/factories/recommendation-hydrated-state-factory.d.ts +1 -2
  47. package/dist/definitions/ssr-next/commerce/factories/recommendation-static-state-factory.d.ts +1 -2
  48. package/dist/definitions/ssr-next/commerce/factories/static-state-factory.d.ts +1 -2
  49. package/dist/definitions/ssr-next/commerce/types/build.d.ts +60 -16
  50. package/dist/definitions/ssr-next/commerce/types/controller-definitions.d.ts +10 -170
  51. package/dist/definitions/ssr-next/commerce/types/controller-inference.d.ts +5 -10
  52. package/dist/definitions/ssr-next/commerce/types/engine.d.ts +7 -5
  53. package/dist/definitions/ssr-next/commerce/types/fetch-static-state.d.ts +2 -2
  54. package/dist/definitions/ssr-next/commerce/types/hydrate-static-state.d.ts +5 -4
  55. package/dist/definitions/ssr-next/commerce/utils/controller-wiring.d.ts +29 -2
  56. package/dist/definitions/ssr-next/commerce/utils/engine-wiring.d.ts +2 -3
  57. package/dist/definitions/ssr-next/commerce/utils/recommendation-filter.d.ts +14 -1
  58. package/dist/definitions/ssr-next/common/types/controller-inference.d.ts +6 -0
  59. package/dist/definitions/ssr-next/common/types/controllers.d.ts +0 -24
  60. package/dist/definitions/ssr-next/common/types/engine.d.ts +2 -44
  61. package/dist/definitions/ssr-next/common/types/utilities.d.ts +0 -3
  62. package/dist/definitions/ssr-next/{common → search}/controller-utils.d.ts +3 -3
  63. package/dist/definitions/ssr-next/search/controllers/breadcrumb-manager/headless-breadcrumb-manager.ssr.d.ts +1 -1
  64. package/dist/definitions/ssr-next/search/controllers/context/headless-context.ssr.d.ts +1 -1
  65. package/dist/definitions/ssr-next/search/controllers/dictionary-field-context/headless-dictionary-field-context.ssr.d.ts +1 -1
  66. package/dist/definitions/ssr-next/search/controllers/did-you-mean/headless-did-you-mean.ssr.d.ts +1 -1
  67. package/dist/definitions/ssr-next/search/controllers/facet-manager/headless-facet-manager.ssr.d.ts +1 -1
  68. package/dist/definitions/ssr-next/search/controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.ssr.d.ts +1 -1
  69. package/dist/definitions/ssr-next/search/controllers/facets/category-facet/headless-category-facet.ssr.d.ts +1 -1
  70. package/dist/definitions/ssr-next/search/controllers/facets/facet/headless-facet.ssr.d.ts +1 -1
  71. package/dist/definitions/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-facet.ssr.d.ts +1 -1
  72. package/dist/definitions/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-filter.ssr.d.ts +1 -1
  73. package/dist/definitions/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-facet.ssr.d.ts +1 -1
  74. package/dist/definitions/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-filter.ssr.d.ts +1 -1
  75. package/dist/definitions/ssr-next/search/controllers/field-suggestions/category-facet/headless-category-field-suggestions.ssr.d.ts +1 -1
  76. package/dist/definitions/ssr-next/search/controllers/field-suggestions/facet/headless-field-suggestions.ssr.d.ts +1 -1
  77. package/dist/definitions/ssr-next/search/controllers/folded-result-list/headless-folded-result-list.ssr.d.ts +1 -1
  78. package/dist/definitions/ssr-next/search/controllers/history-manager/headless-history-manager.ssr.d.ts +1 -1
  79. package/dist/definitions/ssr-next/search/controllers/instant-results/instant-results.ssr.d.ts +1 -1
  80. package/dist/definitions/ssr-next/search/controllers/pager/headless-pager.ssr.d.ts +1 -1
  81. package/dist/definitions/ssr-next/search/controllers/query-error/headless-query-error.ssr.d.ts +1 -1
  82. package/dist/definitions/ssr-next/search/controllers/query-summary/headless-query-summary.ssr.d.ts +1 -1
  83. package/dist/definitions/ssr-next/search/controllers/quickview/headless-quickview.ssr.d.ts +1 -1
  84. package/dist/definitions/ssr-next/search/controllers/recent-queries-list/headless-recent-queries-list.ssr.d.ts +1 -1
  85. package/dist/definitions/ssr-next/search/controllers/recent-results-list/headless-recent-results-list.ssr.d.ts +1 -1
  86. package/dist/definitions/ssr-next/search/controllers/relevance-inspector/headless-relevance-inspector.ssr.d.ts +1 -1
  87. package/dist/definitions/ssr-next/search/controllers/result-list/headless-result-list.ssr.d.ts +1 -1
  88. package/dist/definitions/ssr-next/search/controllers/results-per-page/headless-results-per-page.ssr.d.ts +1 -1
  89. package/dist/definitions/ssr-next/search/controllers/search-box/headless-search-box.ssr.d.ts +1 -1
  90. package/dist/definitions/ssr-next/search/controllers/search-parameter-manager/headless-search-parameter-manager.ssr.d.ts +1 -1
  91. package/dist/definitions/ssr-next/search/controllers/search-status/headless-search-status.ssr.d.ts +1 -1
  92. package/dist/definitions/ssr-next/search/controllers/smart-snippet/headless-smart-snippet.ssr.d.ts +1 -1
  93. package/dist/definitions/ssr-next/search/controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.ssr.d.ts +1 -1
  94. package/dist/definitions/ssr-next/search/controllers/sort/headless-sort.ssr.d.ts +1 -1
  95. package/dist/definitions/ssr-next/search/controllers/standalone-search-box/headless-standalone-search-box.ssr.d.ts +1 -1
  96. package/dist/definitions/ssr-next/search/controllers/static-filter/headless-static-filter.ssr.d.ts +1 -1
  97. package/dist/definitions/ssr-next/search/controllers/tab/headless-tab.ssr.d.ts +1 -1
  98. package/dist/definitions/ssr-next/search/controllers/tab-manager/headless-tab-manager.ssr.d.ts +1 -1
  99. package/dist/definitions/ssr-next/search/controllers/triggers/headless-execute-trigger.ssr.d.ts +1 -1
  100. package/dist/definitions/ssr-next/search/controllers/triggers/headless-notify-trigger.ssr.d.ts +1 -1
  101. package/dist/definitions/ssr-next/search/controllers/triggers/headless-query-trigger.ssr.d.ts +1 -1
  102. package/dist/definitions/ssr-next/search/controllers/triggers/headless-redirection-trigger.ssr.d.ts +1 -1
  103. package/dist/definitions/ssr-next/search/controllers/url-manager/headless-url-manager.ssr.d.ts +1 -1
  104. package/dist/definitions/ssr-next/search/engine/search-engine.ssr.d.ts +6 -13
  105. package/dist/definitions/ssr-next/search/types/build.d.ts +12 -0
  106. package/dist/definitions/ssr-next/search/types/controller-definition.d.ts +28 -0
  107. package/dist/definitions/ssr-next/{common/types/inference.d.ts → search/types/controller-inference.d.ts} +3 -6
  108. package/dist/definitions/ssr-next/search/types/engine.d.ts +52 -0
  109. package/dist/definitions/ssr-next/{common → search}/types/fetch-static-state.d.ts +5 -4
  110. package/dist/definitions/ssr-next/{common → search}/types/hydrate-static-state.d.ts +5 -6
  111. package/dist/definitions/ssr-next.index.d.ts +6 -4
  112. package/dist/definitions/test/mock-ssr-controller-definitions.d.ts +13 -1
  113. package/dist/esm/ssr-next/commerce/controller-utils.js +0 -6
  114. package/dist/esm/ssr-next/commerce/controllers/breadcrumb-manager/headless-core-breadcrumb-manager.ssr.js +1 -4
  115. package/dist/esm/ssr-next/commerce/controllers/generator/headless-commerce-facet-generator.ssr.js +1 -4
  116. package/dist/esm/ssr-next/commerce/controllers/pagination/headless-core-commerce-pagination.ssr.js +0 -2
  117. package/dist/esm/ssr-next/commerce/controllers/parameter-manager/headless-core-parameter-manager.ssr.js +1 -4
  118. package/dist/esm/ssr-next/commerce/controllers/product-list/headless-product-list.ssr.js +1 -4
  119. package/dist/esm/ssr-next/commerce/controllers/recommendations/headless-recommendations.ssr.js +1 -1
  120. package/dist/esm/ssr-next/commerce/controllers/sort/headless-core-commerce-sort.ssr.js +0 -2
  121. package/dist/esm/ssr-next/commerce/controllers/summary/headless-core-summary.ssr.js +1 -4
  122. package/dist/esm/ssr-next/commerce/factories/build-factory.js +4 -9
  123. package/dist/esm/ssr-next/commerce/factories/hydrated-state-factory.js +2 -4
  124. package/dist/esm/ssr-next/commerce/factories/recommendation-hydrated-state-factory.js +2 -4
  125. package/dist/esm/ssr-next/commerce/factories/recommendation-static-state-factory.js +7 -11
  126. package/dist/esm/ssr-next/commerce/factories/static-state-factory.js +5 -2
  127. package/dist/esm/ssr-next/commerce/utils/controller-wiring.js +161 -3
  128. package/dist/esm/ssr-next/commerce/utils/engine-wiring.js +9 -3
  129. package/dist/esm/ssr-next/commerce/utils/recommendation-filter.js +27 -8
  130. package/dist/esm/ssr-next/{common → search}/controller-utils.js +2 -2
  131. package/dist/esm/ssr-next/search/engine/search-engine.ssr.js +1 -1
  132. package/dist/esm/ssr-next/search/types/engine.js +1 -0
  133. package/dist/esm/ssr-next/search/types/fetch-static-state.js +1 -0
  134. package/dist/esm/ssr-next/search/types/hydrate-static-state.js +1 -0
  135. package/dist/esm/test/mock-ssr-controller-definitions.js +15 -0
  136. package/dist/esm/utils/version.js +1 -1
  137. package/dist/quantic/browser.cjs.stats.json +1 -1
  138. package/dist/quantic/case-assist/browser.cjs.stats.json +1 -1
  139. package/dist/quantic/case-assist/headless.js +1 -1
  140. package/dist/quantic/case-assist/headless.js.map +1 -1
  141. package/dist/quantic/commerce/browser.cjs.stats.json +1 -1
  142. package/dist/quantic/commerce/headless.js +1 -1
  143. package/dist/quantic/commerce/headless.js.map +1 -1
  144. package/dist/quantic/headless.js +1 -1
  145. package/dist/quantic/headless.js.map +1 -1
  146. package/dist/quantic/insight/browser.cjs.stats.json +1 -1
  147. package/dist/quantic/insight/headless.js +1 -1
  148. package/dist/quantic/insight/headless.js.map +1 -1
  149. package/dist/quantic/recommendation/browser.cjs.stats.json +1 -1
  150. package/dist/quantic/recommendation/headless.js +1 -1
  151. package/dist/quantic/recommendation/headless.js.map +1 -1
  152. package/package.json +1 -1
  153. package/dist/definitions/ssr-next/common/types/build.d.ts +0 -12
  154. /package/dist/esm/ssr-next/common/types/{build.js → controller-inference.js} +0 -0
  155. /package/dist/esm/ssr-next/{common/types/fetch-static-state.js → search/types/build.js} +0 -0
  156. /package/dist/esm/ssr-next/{common/types/hydrate-static-state.js → search/types/controller-definition.js} +0 -0
  157. /package/dist/esm/ssr-next/{common/types/inference.js → search/types/controller-inference.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type Context } from '../../../../controllers/context/headless-context.js';
3
3
  import type { ContextProps } from '../../../../controllers/core/context/headless-core-context.js';
4
- import type { ControllerDefinitionWithProps } from '../../../common/types/controllers.js';
4
+ import type { ControllerDefinitionWithProps } from '../../types/controller-definition.js';
5
5
  export * from '../../../../controllers/context/headless-context.js';
6
6
  export interface ContextDefinition extends ControllerDefinitionWithProps<SearchEngine, Context, ContextProps> {
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import type { CoreEngine } from '../../../../app/engine.js';
2
2
  import { type DictionaryFieldContext } from '../../../../controllers/dictionary-field-context/headless-dictionary-field-context.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/dictionary-field-context/headless-dictionary-field-context.js';
5
5
  export interface DictionaryFieldContextDefinition extends ControllerDefinitionWithoutProps<CoreEngine, DictionaryFieldContext> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type DidYouMean } from '../../../../controllers/did-you-mean/headless-did-you-mean.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/did-you-mean/headless-did-you-mean.js';
5
5
  export interface DidYouMeanDefinition extends ControllerDefinitionWithoutProps<SearchEngine, DidYouMean> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type FacetManager } from '../../../../controllers/facet-manager/headless-facet-manager.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/facet-manager/headless-facet-manager.js';
5
5
  export interface FacetManagerDefinition extends ControllerDefinitionWithoutProps<SearchEngine, FacetManager> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../../app/search-engine/search-engine.js';
2
2
  import { type AutomaticFacetGenerator, type AutomaticFacetGeneratorProps } from '../../../../../controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../../types/controller-definition.js';
4
4
  export * from '../../../../../controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.js';
5
5
  export interface AutomaticFacetGeneratorDefinition extends ControllerDefinitionWithoutProps<SearchEngine, AutomaticFacetGenerator> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../../app/search-engine/search-engine.js';
2
2
  import { type CategoryFacet, type CategoryFacetProps } from '../../../../../controllers/facets/category-facet/headless-category-facet.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../../types/controller-definition.js';
4
4
  export * from '../../../../../controllers/facets/category-facet/headless-category-facet.js';
5
5
  export interface CategoryFacetDefinition extends ControllerDefinitionWithoutProps<SearchEngine, CategoryFacet> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../../app/search-engine/search-engine.js';
2
2
  import { type Facet, type FacetProps } from '../../../../../controllers/facets/facet/headless-facet.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../../types/controller-definition.js';
4
4
  export * from '../../../../../controllers/facets/facet/headless-facet.js';
5
5
  export interface FacetDefinition extends ControllerDefinitionWithoutProps<SearchEngine, Facet> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../../../app/search-engine/search-engine.js';
2
2
  import { type DateFacet, type DateFacetProps } from '../../../../../../controllers/facets/range-facet/date-facet/headless-date-facet.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../../../types/controller-definition.js';
4
4
  export * from '../../../../../../controllers/facets/range-facet/date-facet/headless-date-facet.js';
5
5
  export { buildDateRange } from '../../../../../../controllers/facets/range-facet/date-facet/headless-date-facet.js';
6
6
  export interface DateFacetDefinition extends ControllerDefinitionWithoutProps<SearchEngine, DateFacet> {
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../../../app/search-engine/search-engine.js';
2
2
  import { type DateFilter, type DateFilterProps } from '../../../../../../controllers/facets/range-facet/date-facet/headless-date-filter.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../../../types/controller-definition.js';
4
4
  export * from '../../../../../../controllers/facets/range-facet/date-facet/headless-date-filter.js';
5
5
  export interface DateFilterDefinition extends ControllerDefinitionWithoutProps<SearchEngine, DateFilter> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../../../app/search-engine/search-engine.js';
2
2
  import { type NumericFacet, type NumericFacetProps } from '../../../../../../controllers/facets/range-facet/numeric-facet/headless-numeric-facet.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../../../types/controller-definition.js';
4
4
  export * from '../../../../../../controllers/facets/range-facet/numeric-facet/headless-numeric-facet.js';
5
5
  export { buildNumericRange } from '../../../../../../controllers/facets/range-facet/numeric-facet/headless-numeric-facet.js';
6
6
  export interface NumericFacetDefinition extends ControllerDefinitionWithoutProps<SearchEngine, NumericFacet> {
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../../../app/search-engine/search-engine.js';
2
2
  import { type NumericFilter, type NumericFilterProps } from '../../../../../../controllers/facets/range-facet/numeric-facet/headless-numeric-filter.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../../../types/controller-definition.js';
4
4
  export * from '../../../../../../controllers/facets/range-facet/numeric-facet/headless-numeric-filter.js';
5
5
  export interface NumericFilterDefinition extends ControllerDefinitionWithoutProps<SearchEngine, NumericFilter> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../../app/search-engine/search-engine.js';
2
2
  import { type CategoryFieldSuggestions, type CategoryFieldSuggestionsProps } from '../../../../../controllers/field-suggestions/category-facet/headless-category-field-suggestions.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../../types/controller-definition.js';
4
4
  export * from '../../../../../controllers/field-suggestions/category-facet/headless-category-field-suggestions.js';
5
5
  export interface CategoryFieldSuggestionsDefinition extends ControllerDefinitionWithoutProps<SearchEngine, CategoryFieldSuggestions> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../../app/search-engine/search-engine.js';
2
2
  import { type FieldSuggestions, type FieldSuggestionsProps } from '../../../../../controllers/field-suggestions/facet/headless-field-suggestions.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../../types/controller-definition.js';
4
4
  export * from '../../../../../controllers/field-suggestions/facet/headless-field-suggestions.js';
5
5
  export interface FieldSuggestionsDefinition extends ControllerDefinitionWithoutProps<SearchEngine, FieldSuggestions> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type FoldedResultList, type FoldedResultListProps } from '../../../../controllers/folded-result-list/headless-folded-result-list.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/folded-result-list/headless-folded-result-list.js';
5
5
  export interface FoldedResultListDefinition extends ControllerDefinitionWithoutProps<SearchEngine, FoldedResultList> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type HistoryManager } from '../../../../controllers/history-manager/headless-history-manager.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/history-manager/headless-history-manager.js';
5
5
  export interface HistoryManagerDefinition extends ControllerDefinitionWithoutProps<SearchEngine, HistoryManager> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type InstantResultProps, type InstantResults } from '../../../../controllers/instant-results/instant-results.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/instant-results/instant-results.js';
5
5
  export interface InstantResultsDefinition extends ControllerDefinitionWithoutProps<SearchEngine, InstantResults> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type Pager, type PagerProps } from '../../../../controllers/pager/headless-pager.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/pager/headless-pager.js';
5
5
  export interface PagerDefinition extends ControllerDefinitionWithoutProps<SearchEngine, Pager> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type QueryError } from '../../../../controllers/query-error/headless-query-error.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/query-error/headless-query-error.js';
5
5
  export interface QueryErrorDefinition extends ControllerDefinitionWithoutProps<SearchEngine, QueryError> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type QuerySummary } from '../../../../controllers/query-summary/headless-query-summary.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/query-summary/headless-query-summary.js';
5
5
  export interface QuerySummaryDefinition extends ControllerDefinitionWithoutProps<SearchEngine, QuerySummary> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type Quickview, type QuickviewProps } from '../../../../controllers/quickview/headless-quickview.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/quickview/headless-quickview.js';
5
5
  export interface QuickviewDefinition extends ControllerDefinitionWithoutProps<SearchEngine, Quickview> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type RecentQueriesList, type RecentQueriesListProps } from '../../../../controllers/recent-queries-list/headless-recent-queries-list.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/recent-queries-list/headless-recent-queries-list.js';
5
5
  export interface RecentQueriesListDefinition extends ControllerDefinitionWithoutProps<SearchEngine, RecentQueriesList> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type RecentResultsList, type RecentResultsListProps } from '../../../../controllers/recent-results-list/headless-recent-results-list.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/recent-results-list/headless-recent-results-list.js';
5
5
  export interface RecentResultsListDefinition extends ControllerDefinitionWithoutProps<SearchEngine, RecentResultsList> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type RelevanceInspector, type RelevanceInspectorProps } from '../../../../controllers/relevance-inspector/headless-relevance-inspector.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/relevance-inspector/headless-relevance-inspector.js';
5
5
  export interface RelevanceInspectorDefinition extends ControllerDefinitionWithoutProps<SearchEngine, RelevanceInspector> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type ResultList, type ResultListProps } from '../../../../controllers/result-list/headless-result-list.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/result-list/headless-result-list.js';
5
5
  export interface ResultListDefinition extends ControllerDefinitionWithoutProps<SearchEngine, ResultList> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type ResultsPerPage, type ResultsPerPageProps } from '../../../../controllers/results-per-page/headless-results-per-page.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/results-per-page/headless-results-per-page.js';
5
5
  export interface ResultsPerPageDefinition extends ControllerDefinitionWithoutProps<SearchEngine, ResultsPerPage> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type SearchBox, type SearchBoxProps } from '../../../../controllers/search-box/headless-search-box.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/search-box/headless-search-box.js';
5
5
  export interface SearchBoxDefinition extends ControllerDefinitionWithoutProps<SearchEngine, SearchBox> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type SearchParameterManager, type SearchParameterManagerInitialState } from '../../../../controllers/search-parameter-manager/headless-search-parameter-manager.js';
3
- import type { ControllerDefinitionWithProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/search-parameter-manager/headless-search-parameter-manager.js';
5
5
  export interface SearchParameterManagerBuildProps {
6
6
  initialState: SearchParameterManagerInitialState;
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type SearchStatus } from '../../../../controllers/search-status/headless-search-status.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/search-status/headless-search-status.js';
5
5
  export interface SearchStatusDefinition extends ControllerDefinitionWithoutProps<SearchEngine, SearchStatus> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type SmartSnippet, type SmartSnippetProps } from '../../../../controllers/smart-snippet/headless-smart-snippet.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/smart-snippet/headless-smart-snippet.js';
5
5
  export interface SmartSnippetDefinition extends ControllerDefinitionWithoutProps<SearchEngine, SmartSnippet> {
6
6
  }
@@ -1,7 +1,7 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import type { SmartSnippetQuestionsListProps } from '../../../../controllers/core/smart-snippet-questions-list/headless-core-smart-snippet-questions-list.js';
3
3
  import { type SmartSnippetQuestionsList } from '../../../../controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.js';
4
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
4
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
5
5
  export * from '../../../../controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.js';
6
6
  export interface SmartSnippetQuestionsListDefinition extends ControllerDefinitionWithoutProps<SearchEngine, SmartSnippetQuestionsList> {
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type Sort, type SortProps } from '../../../../controllers/sort/headless-sort.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/sort/headless-sort.js';
5
5
  export interface SortDefinition extends ControllerDefinitionWithoutProps<SearchEngine, Sort> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type StandaloneSearchBox, type StandaloneSearchBoxProps } from '../../../../controllers/standalone-search-box/headless-standalone-search-box.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/standalone-search-box/headless-standalone-search-box.js';
5
5
  export interface StandaloneSearchBoxDefinition extends ControllerDefinitionWithoutProps<SearchEngine, StandaloneSearchBox> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type StaticFilter, type StaticFilterProps } from '../../../../controllers/static-filter/headless-static-filter.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/static-filter/headless-static-filter.js';
5
5
  export { buildStaticFilterValue } from '../../../../controllers/static-filter/headless-static-filter.js';
6
6
  export interface StaticFilterDefinition extends ControllerDefinitionWithoutProps<SearchEngine, StaticFilter> {
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type Tab, type TabProps } from '../../../../controllers/tab/headless-tab.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/tab/headless-tab.js';
5
5
  export interface TabDefinition extends ControllerDefinitionWithoutProps<SearchEngine, Tab> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type TabManager } from '../../../../controllers/tab-manager/headless-tab-manager.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/tab-manager/headless-tab-manager.js';
5
5
  interface TabManagerDefinition extends ControllerDefinitionWithoutProps<SearchEngine, TabManager> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type ExecuteTrigger } from '../../../../controllers/triggers/headless-execute-trigger.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/triggers/headless-execute-trigger.js';
5
5
  export interface ExecuteTriggerDefinition extends ControllerDefinitionWithoutProps<SearchEngine, ExecuteTrigger> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import type { NotifyTrigger } from '../../../../controllers/core/triggers/headless-core-notify-trigger.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export type { NotifyTrigger, NotifyTriggerState, } from '../../../../controllers/core/triggers/headless-core-notify-trigger.js';
5
5
  export interface NotifyTriggerDefinition extends ControllerDefinitionWithoutProps<SearchEngine, NotifyTrigger> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import type { QueryTrigger } from '../../../../controllers/core/triggers/headless-core-query-trigger.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export type { QueryTrigger, QueryTriggerState, } from '../../../../controllers/core/triggers/headless-core-query-trigger.js';
5
5
  export * from '../../../../controllers/triggers/headless-query-trigger.js';
6
6
  export interface QueryTriggerDefinition extends ControllerDefinitionWithoutProps<SearchEngine, QueryTrigger> {
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import type { RedirectionTrigger } from '../../../../controllers/core/triggers/headless-core-redirection-trigger.js';
3
- import type { ControllerDefinitionWithoutProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithoutProps } from '../../types/controller-definition.js';
4
4
  export type { RedirectionTrigger, RedirectionTriggerState, } from '../../../../controllers/core/triggers/headless-core-redirection-trigger.js';
5
5
  export interface RedirectionTriggerDefinition extends ControllerDefinitionWithoutProps<SearchEngine, RedirectionTrigger> {
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import type { SearchEngine } from '../../../../app/search-engine/search-engine.js';
2
2
  import { type UrlManager, type UrlManagerInitialState } from '../../../../controllers/url-manager/headless-url-manager.js';
3
- import type { ControllerDefinitionWithProps } from '../../../common/types/controllers.js';
3
+ import type { ControllerDefinitionWithProps } from '../../types/controller-definition.js';
4
4
  export * from '../../../../controllers/url-manager/headless-url-manager.js';
5
5
  /**
6
6
  * @internal
@@ -1,10 +1,10 @@
1
1
  import type { NavigatorContextProvider } from '../../../app/navigator-context-provider.js';
2
- import { type SearchEngine, type SearchEngineOptions } from '../../../app/search-engine/search-engine.js';
2
+ import { type SearchEngine } from '../../../app/search-engine/search-engine.js';
3
3
  import type { Controller } from '../../../controllers/controller/headless-controller.js';
4
4
  import type { LegacySearchAction } from '../../../features/analytics/analytics-utils.js';
5
- import type { ControllerDefinitionsMap } from '../../common/types/controllers.js';
6
- import type { EngineDefinition, EngineDefinitionOptions } from '../../common/types/engine.js';
7
- import type { InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromDefinitions } from '../../common/types/inference.js';
5
+ import type { ControllerDefinitionsMap } from '../types/controller-definition.js';
6
+ import type { InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromDefinitions } from '../types/controller-inference.js';
7
+ import type { SearchEngineDefinitionOptions } from '../types/engine.js';
8
8
  /**
9
9
  * The SSR search engine.
10
10
  *
@@ -16,14 +16,7 @@ export interface SSRSearchEngine extends SearchEngine {
16
16
  */
17
17
  waitForSearchCompletedAction(): Promise<SearchCompletedAction>;
18
18
  }
19
- /**
20
- * The options to create a search engine definition in SSR.
21
- *
22
- * @group Engine
23
- */
24
- export type SearchEngineDefinitionOptions<TControllers extends ControllerDefinitionsMap<SSRSearchEngine, Controller>> = EngineDefinitionOptions<SearchEngineOptions, TControllers>;
25
19
  export type SearchCompletedAction = ReturnType<LegacySearchAction['fulfilled' | 'rejected']>;
26
- export type SearchEngineDefinition<TControllers extends ControllerDefinitionsMap<SSRSearchEngine, Controller>> = EngineDefinition<SSRSearchEngine, TControllers>;
27
20
  /**
28
21
  * Initializes a Search engine definition in SSR with given controllers definitions and search engine config.
29
22
  *
@@ -34,7 +27,7 @@ export type SearchEngineDefinition<TControllers extends ControllerDefinitionsMap
34
27
  * @group Engine
35
28
  */
36
29
  export declare function defineSearchEngine<TControllerDefinitions extends ControllerDefinitionsMap<SearchEngine, Controller>>(options: SearchEngineDefinitionOptions<TControllerDefinitions>): {
37
- fetchStaticState: import("../../common/types/fetch-static-state.js").FetchStaticState<import("redux").AnyAction, InferControllerStaticStateMapFromDefinitions<TControllerDefinitions>, InferControllerPropsMapFromDefinitions<TControllerDefinitions>>;
38
- hydrateStaticState: import("../../common/types/hydrate-static-state.js").HydrateStaticState<SSRSearchEngine, import("../../common/types/inference.js").InferControllersMapFromDefinition<TControllerDefinitions>, import("redux").AnyAction, InferControllerPropsMapFromDefinitions<TControllerDefinitions>>;
30
+ fetchStaticState: import("../types/fetch-static-state.js").FetchStaticState<import("redux").AnyAction, InferControllerStaticStateMapFromDefinitions<TControllerDefinitions>, InferControllerPropsMapFromDefinitions<TControllerDefinitions>>;
31
+ hydrateStaticState: import("../types/hydrate-static-state.js").HydrateStaticState<SSRSearchEngine, import("../types/controller-inference.js").InferControllersMapFromDefinition<TControllerDefinitions>, import("redux").AnyAction, InferControllerPropsMapFromDefinitions<TControllerDefinitions>>;
39
32
  setNavigatorContextProvider: (navigatorContextProvider: NavigatorContextProvider) => void;
40
33
  };
@@ -0,0 +1,12 @@
1
+ import type { CoreEngine, CoreEngineNext } from '../../../app/engine.js';
2
+ import type { ControllersMap, ControllersPropsMap } from '../../common/types/controllers.js';
3
+ import type { OptionsExtender, OptionsTuple } from '../../common/types/utilities.js';
4
+ import type { SearchEngineDefinitionBuildResult, SearchEngineDefinitionControllersPropsOption } from './engine.js';
5
+ interface BuildOptions<TEngineOptions> {
6
+ extend?: OptionsExtender<TEngineOptions>;
7
+ }
8
+ /**
9
+ * @internal
10
+ */
11
+ export type Build<TEngine extends CoreEngine | CoreEngineNext, TEngineOptions, TControllersMap extends ControllersMap, TControllersProps extends ControllersPropsMap> = (...params: OptionsTuple<BuildOptions<TEngineOptions> & SearchEngineDefinitionControllersPropsOption<TControllersProps>>) => Promise<SearchEngineDefinitionBuildResult<TEngine, TControllersMap>>;
12
+ export {};
@@ -0,0 +1,28 @@
1
+ import type { CoreEngine, CoreEngineNext } from '../../../app/engine.js';
2
+ import type { Controller } from '../../../controllers/controller/headless-controller.js';
3
+ import type { InferControllerStaticStateFromController, InferControllerStaticStateMapFromControllers } from '../../common/types/controller-inference.js';
4
+ import type { InferHydratedState, InferStaticState } from '../../common/types/engine.js';
5
+ export type { InferStaticState, InferHydratedState, InferControllerStaticStateFromController, InferControllerStaticStateMapFromControllers, };
6
+ export interface ControllerDefinitionWithoutProps<TEngine extends CoreEngine | CoreEngineNext, TController extends Controller> {
7
+ /**
8
+ * Creates an instance of the given controller.
9
+ *
10
+ * @param engine - The search engine.
11
+ * @returns The controller.
12
+ */
13
+ build(engine: TEngine): TController;
14
+ }
15
+ export interface ControllerDefinitionWithProps<TEngine extends CoreEngine | CoreEngineNext, TController extends Controller, TProps> {
16
+ /**
17
+ * Creates an instance of the given controller.
18
+ *
19
+ * @param engine - The search engine.
20
+ * @param props - The controller properties.
21
+ * @returns The controller.
22
+ */
23
+ buildWithProps(engine: TEngine, props?: TProps): TController;
24
+ }
25
+ export type ControllerDefinition<TEngine extends CoreEngine | CoreEngineNext, TController extends Controller> = ControllerDefinitionWithoutProps<TEngine, TController> | ControllerDefinitionWithProps<TEngine, TController, unknown>;
26
+ export interface ControllerDefinitionsMap<TEngine extends CoreEngine | CoreEngineNext, TController extends Controller> {
27
+ [customName: string]: ControllerDefinition<TEngine, TController>;
28
+ }
@@ -1,7 +1,8 @@
1
1
  import type { CoreEngine, CoreEngineNext } from '../../../app/engine.js';
2
2
  import type { Controller } from '../../../controllers/controller/headless-controller.js';
3
- import type { ControllerDefinition, ControllerDefinitionsMap, ControllerDefinitionWithoutProps, ControllerDefinitionWithProps, ControllerStaticState, ControllersMap } from './controllers.js';
4
- import type { HasKeys } from './utilities.js';
3
+ import type { InferControllerStaticStateFromController } from '../../common/types/controller-inference.js';
4
+ import type { HasKeys } from '../../common/types/utilities.js';
5
+ import type { ControllerDefinition, ControllerDefinitionsMap, ControllerDefinitionWithoutProps, ControllerDefinitionWithProps } from './controller-definition.js';
5
6
  type InferControllerPropsFromDefinition<TController extends ControllerDefinition<CoreEngine | CoreEngineNext, Controller>> = TController extends ControllerDefinitionWithProps<CoreEngine | CoreEngineNext, Controller, infer Props> ? Props : TController extends ControllerDefinitionWithoutProps<CoreEngine | CoreEngineNext, Controller> ? {} : unknown;
6
7
  export type InferControllerPropsMapFromDefinitions<TControllers extends ControllerDefinitionsMap<CoreEngine | CoreEngineNext, Controller>> = {
7
8
  [K in keyof TControllers as HasKeys<InferControllerPropsFromDefinition<TControllers[K]>> extends false ? never : K]: InferControllerPropsFromDefinition<TControllers[K]>;
@@ -10,11 +11,7 @@ export type InferControllerFromDefinition<TDefinition extends ControllerDefiniti
10
11
  export type InferControllersMapFromDefinition<TControllers extends ControllerDefinitionsMap<CoreEngine | CoreEngineNext, Controller>> = {
11
12
  [K in keyof TControllers]: InferControllerFromDefinition<TControllers[K]>;
12
13
  };
13
- export type InferControllerStaticStateFromController<TController extends Controller> = ControllerStaticState<TController['state']>;
14
14
  export type InferControllerStaticStateMapFromDefinitions<TControllers extends ControllerDefinitionsMap<CoreEngine | CoreEngineNext, Controller>> = {
15
15
  [K in keyof TControllers]: InferControllerStaticStateFromController<InferControllerFromDefinition<TControllers[K]>> & InferControllerPropsFromDefinition<TControllers[K]>;
16
16
  };
17
- export type InferControllerStaticStateMapFromControllers<TControllers extends ControllersMap> = {
18
- [K in keyof TControllers]: InferControllerStaticStateFromController<TControllers[K]>;
19
- };
20
17
  export {};
@@ -0,0 +1,52 @@
1
+ import type { AnyAction } from '@reduxjs/toolkit';
2
+ import type { CoreEngine, CoreEngineNext } from '../../../app/engine.js';
3
+ import type { NavigatorContextProvider } from '../../../app/navigator-context-provider.js';
4
+ import type { SearchEngineOptions } from '../../../app/search-engine/search-engine.js';
5
+ import type { Controller } from '../../../controllers/controller/headless-controller.js';
6
+ import type { ControllersMap, ControllersPropsMap } from '../../common/types/controllers.js';
7
+ import type { HasKeys } from '../../common/types/utilities.js';
8
+ import type { SSRSearchEngine } from '../engine/search-engine.ssr.js';
9
+ import type { Build } from './build.js';
10
+ import type { ControllerDefinitionsMap } from './controller-definition.js';
11
+ import type { InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromDefinitions, InferControllersMapFromDefinition } from './controller-inference.js';
12
+ import type { FetchStaticState } from './fetch-static-state.js';
13
+ import type { HydrateStaticState } from './hydrate-static-state.js';
14
+ export type EngineBuildResult<TEngine extends CoreEngine | CoreEngineNext, TControllers extends ControllerDefinitionsMap<TEngine, Controller>, TEngineOptions> = Build<TEngine, TEngineOptions, InferControllersMapFromDefinition<TControllers>, InferControllerPropsMapFromDefinitions<TControllers>>;
15
+ /**
16
+ * The options to create a search engine definition in SSR.
17
+ *
18
+ * @group Engine
19
+ */
20
+ export type SearchEngineDefinitionOptions<TControllers extends ControllerDefinitionsMap<SSRSearchEngine, Controller>> = SearchEngineOptions & {
21
+ /**
22
+ * The controllers to initialize with the search engine.
23
+ */
24
+ controllers?: TControllers;
25
+ };
26
+ export interface SearchEngineDefinition<TEngine extends CoreEngine | CoreEngineNext, TControllers extends ControllerDefinitionsMap<TEngine, Controller>> {
27
+ /**
28
+ * Fetches the static state on the server side using your engine definition.
29
+ */
30
+ fetchStaticState: FetchStaticState<AnyAction, InferControllerStaticStateMapFromDefinitions<TControllers>, InferControllerPropsMapFromDefinitions<TControllers>>;
31
+ /**
32
+ * Fetches the hydrated state on the client side using your engine definition and the static state.
33
+ */
34
+ 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
+ }
43
+ /**
44
+ * This type defines the required and optional controller props for the commerce engine definition.
45
+ */
46
+ export type SearchEngineDefinitionControllersPropsOption<TControllersPropsMap extends ControllersPropsMap> = HasKeys<TControllersPropsMap> extends false ? {} : {
47
+ controllers: TControllersPropsMap;
48
+ };
49
+ export interface SearchEngineDefinitionBuildResult<TEngine extends CoreEngine | CoreEngineNext, TControllers extends ControllersMap> {
50
+ engine: TEngine;
51
+ controllers: TControllers;
52
+ }
@@ -1,10 +1,11 @@
1
1
  import type { UnknownAction } from '@reduxjs/toolkit';
2
- import type { ControllerStaticStateMap, ControllersPropsMap } from './controllers.js';
3
- import type { EngineDefinitionControllersPropsOption, EngineStaticState } from './engine.js';
4
- import type { OptionsTuple } from './utilities.js';
2
+ import type { ControllerStaticStateMap, ControllersPropsMap } from '../../common/types/controllers.js';
3
+ import type { EngineStaticState } from '../../common/types/engine.js';
4
+ import type { OptionsTuple } from '../../common/types/utilities.js';
5
+ import type { SearchEngineDefinitionControllersPropsOption } from './engine.js';
5
6
  /**
6
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.
7
8
  *
8
9
  * Useful for static generation and server-side rendering.
9
10
  */
10
- export type FetchStaticState<TSearchAction extends UnknownAction, TControllersStaticState extends ControllerStaticStateMap, TControllersProps extends ControllersPropsMap> = (...params: OptionsTuple<EngineDefinitionControllersPropsOption<TControllersProps>>) => Promise<EngineStaticState<TSearchAction, TControllersStaticState>>;
11
+ export type FetchStaticState<TSearchAction extends UnknownAction, TControllersStaticState extends ControllerStaticStateMap, TControllersProps extends ControllersPropsMap> = (...params: OptionsTuple<SearchEngineDefinitionControllersPropsOption<TControllersProps>>) => Promise<EngineStaticState<TSearchAction, TControllersStaticState>>;