@coveo/headless 3.30.0-pre.402acfe52c → 3.30.0-pre.ea0fa3a1da

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.
@@ -46,9 +46,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
46
46
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
47
47
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
48
48
 
49
- // src/ssr.index.ts
50
- var ssr_index_exports = {};
51
- __export(ssr_index_exports, {
49
+ // src/ssr-next.index.ts
50
+ var ssr_next_index_exports = {};
51
+ __export(ssr_next_index_exports, {
52
52
  DefaultFieldsToInclude: () => DefaultFieldsToInclude,
53
53
  EcommerceDefaultFieldsToInclude: () => EcommerceDefaultFieldsToInclude,
54
54
  MinimumFieldsToInclude: () => MinimumFieldsToInclude,
@@ -162,7 +162,7 @@ __export(ssr_index_exports, {
162
162
  parseCriterionExpression: () => parseCriterionExpression,
163
163
  validateRelativeDate: () => validateRelativeDate
164
164
  });
165
- module.exports = __toCommonJS(ssr_index_exports);
165
+ module.exports = __toCommonJS(ssr_next_index_exports);
166
166
 
167
167
  // src/utils/fetch-event-source/parse.ts
168
168
  async function getBytes(stream, onChunk) {
@@ -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.30.0-pre.402acfe52c";
1309
+ var VERSION = "3.30.0-pre.ea0fa3a1da";
1310
1310
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
1311
1311
 
1312
1312
  // src/api/analytics/analytics-selectors.ts
@@ -11275,7 +11275,7 @@ function loadBreadcrumbManagerReducers(engine) {
11275
11275
  return true;
11276
11276
  }
11277
11277
 
11278
- // src/ssr/search/controllers/breadcrumb-manager/headless-breadcrumb-manager.ssr.ts
11278
+ // src/ssr-next/search/controllers/breadcrumb-manager/headless-breadcrumb-manager.ssr.ts
11279
11279
  function defineBreadcrumbManager() {
11280
11280
  return {
11281
11281
  build: (engine) => buildBreadcrumbManager(engine)
@@ -11423,13 +11423,7 @@ function buildContext(engine, props) {
11423
11423
  return buildCoreContext(engine, props);
11424
11424
  }
11425
11425
 
11426
- // src/ssr/commerce/types/controller-constants.ts
11427
- var recommendationOptionKey = "recommendation-internal-options";
11428
- var recommendationInternalOptionKey = Symbol.for(
11429
- recommendationOptionKey
11430
- );
11431
-
11432
- // src/ssr/common/errors.ts
11426
+ // src/ssr-next/common/errors.ts
11433
11427
  var MissingControllerProps = class extends Error {
11434
11428
  constructor(controller) {
11435
11429
  super();
@@ -11438,7 +11432,7 @@ var MissingControllerProps = class extends Error {
11438
11432
  }
11439
11433
  };
11440
11434
 
11441
- // src/ssr/search/controllers/context/headless-context.ssr.ts
11435
+ // src/ssr-next/search/controllers/context/headless-context.ssr.ts
11442
11436
  function defineContext() {
11443
11437
  return {
11444
11438
  buildWithProps: (engine, props) => {
@@ -11545,7 +11539,7 @@ function loadReducers(engine) {
11545
11539
  return true;
11546
11540
  }
11547
11541
 
11548
- // src/ssr/search/controllers/dictionary-field-context/headless-dictionary-field-context.ssr.ts
11542
+ // src/ssr-next/search/controllers/dictionary-field-context/headless-dictionary-field-context.ssr.ts
11549
11543
  function defineDictionaryFieldContext() {
11550
11544
  return {
11551
11545
  build: (engine) => buildDictionaryFieldContext(engine)
@@ -11693,7 +11687,7 @@ function buildDidYouMean(engine, props = {}) {
11693
11687
  };
11694
11688
  }
11695
11689
 
11696
- // src/ssr/search/controllers/did-you-mean/headless-did-you-mean.ssr.ts
11690
+ // src/ssr-next/search/controllers/did-you-mean/headless-did-you-mean.ssr.ts
11697
11691
  function defineDidYouMean() {
11698
11692
  return {
11699
11693
  build: (engine) => buildDidYouMean(engine)
@@ -11783,7 +11777,7 @@ function buildFacetManager(engine) {
11783
11777
  return buildCoreFacetManager(engine);
11784
11778
  }
11785
11779
 
11786
- // src/ssr/search/controllers/facet-manager/headless-facet-manager.ssr.ts
11780
+ // src/ssr-next/search/controllers/facet-manager/headless-facet-manager.ssr.ts
11787
11781
  function defineFacetManager() {
11788
11782
  return {
11789
11783
  build: (engine) => buildFacetManager(engine)
@@ -12002,7 +11996,7 @@ function loadAutomaticFacetGeneratorReducers(engine) {
12002
11996
  return true;
12003
11997
  }
12004
11998
 
12005
- // src/ssr/search/controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.ssr.ts
11999
+ // src/ssr-next/search/controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.ssr.ts
12006
12000
  function defineAutomaticFacetGenerator(props) {
12007
12001
  return {
12008
12002
  build: (engine) => buildAutomaticFacetGenerator(engine, props)
@@ -13674,7 +13668,7 @@ function getToggleSelectAnalyticsAction(selection) {
13674
13668
  return isSelected ? facetDeselect() : facetSelect();
13675
13669
  }
13676
13670
 
13677
- // src/ssr/search/controllers/facets/category-facet/headless-category-facet.ssr.ts
13671
+ // src/ssr-next/search/controllers/facets/category-facet/headless-category-facet.ssr.ts
13678
13672
  function defineCategoryFacet(props) {
13679
13673
  return {
13680
13674
  build: (engine) => buildCategoryFacet(engine, props)
@@ -14244,7 +14238,7 @@ function loadFacetReducers2(engine) {
14244
14238
  return true;
14245
14239
  }
14246
14240
 
14247
- // src/ssr/search/controllers/facets/facet/headless-facet.ssr.ts
14241
+ // src/ssr-next/search/controllers/facets/facet/headless-facet.ssr.ts
14248
14242
  function defineFacet(props) {
14249
14243
  return {
14250
14244
  build: (engine) => buildFacet(engine, props)
@@ -14537,7 +14531,7 @@ function buildDateFacet(engine, props) {
14537
14531
  };
14538
14532
  }
14539
14533
 
14540
- // src/ssr/search/controllers/facets/range-facet/date-facet/headless-date-facet.ssr.ts
14534
+ // src/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-facet.ssr.ts
14541
14535
  function defineDateFacet(props) {
14542
14536
  return {
14543
14537
  build: (engine) => buildDateFacet(engine, props)
@@ -14669,7 +14663,7 @@ function loadDateFilterReducer2(engine) {
14669
14663
  return true;
14670
14664
  }
14671
14665
 
14672
- // src/ssr/search/controllers/facets/range-facet/date-facet/headless-date-filter.ssr.ts
14666
+ // src/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-filter.ssr.ts
14673
14667
  function defineDateFilter(props) {
14674
14668
  return {
14675
14669
  build: (engine) => buildDateFilter(engine, props)
@@ -14845,7 +14839,7 @@ function loadNumericFacetReducers2(engine) {
14845
14839
  return true;
14846
14840
  }
14847
14841
 
14848
- // src/ssr/search/controllers/facets/range-facet/numeric-facet/headless-numeric-facet.ssr.ts
14842
+ // src/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-facet.ssr.ts
14849
14843
  function defineNumericFacet(props) {
14850
14844
  return {
14851
14845
  build: (engine) => buildNumericFacet(engine, props)
@@ -14977,7 +14971,7 @@ function loadNumericFilterReducer2(engine) {
14977
14971
  return true;
14978
14972
  }
14979
14973
 
14980
- // src/ssr/search/controllers/facets/range-facet/numeric-facet/headless-numeric-filter.ssr.ts
14974
+ // src/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-filter.ssr.ts
14981
14975
  function defineNumericFilter(props) {
14982
14976
  return {
14983
14977
  build: (engine) => buildNumericFilter(engine, props)
@@ -15036,7 +15030,7 @@ function loadCategoryFieldSuggestionsReducers(engine) {
15036
15030
  return true;
15037
15031
  }
15038
15032
 
15039
- // src/ssr/search/controllers/field-suggestions/category-facet/headless-category-field-suggestions.ssr.ts
15033
+ // src/ssr-next/search/controllers/field-suggestions/category-facet/headless-category-field-suggestions.ssr.ts
15040
15034
  function defineCategoryFieldSuggestions(props) {
15041
15035
  return {
15042
15036
  build: (engine) => buildCategoryFieldSuggestions(engine, props)
@@ -15109,7 +15103,7 @@ function loadFieldSuggestionsReducers(engine) {
15109
15103
  return true;
15110
15104
  }
15111
15105
 
15112
- // src/ssr/search/controllers/field-suggestions/facet/headless-field-suggestions.ssr.ts
15106
+ // src/ssr-next/search/controllers/field-suggestions/facet/headless-field-suggestions.ssr.ts
15113
15107
  function defineFieldSuggestions(props) {
15114
15108
  return {
15115
15109
  build: (engine) => buildFieldSuggestions(engine, props)
@@ -15773,7 +15767,7 @@ function buildFoldedResultList(engine, props = {}) {
15773
15767
  };
15774
15768
  }
15775
15769
 
15776
- // src/ssr/search/controllers/folded-result-list/headless-folded-result-list.ssr.ts
15770
+ // src/ssr-next/search/controllers/folded-result-list/headless-folded-result-list.ssr.ts
15777
15771
  function defineFoldedResultList(props) {
15778
15772
  return {
15779
15773
  build: (engine) => buildFoldedResultList(engine, props)
@@ -16171,7 +16165,7 @@ function loadHistoryManagerReducers(engine) {
16171
16165
  return true;
16172
16166
  }
16173
16167
 
16174
- // src/ssr/search/controllers/history-manager/headless-history-manager.ssr.ts
16168
+ // src/ssr-next/search/controllers/history-manager/headless-history-manager.ssr.ts
16175
16169
  function defineHistoryManager() {
16176
16170
  return {
16177
16171
  build: (engine) => buildHistoryManager(engine)
@@ -16391,7 +16385,7 @@ function loadInstantResultsReducers(engine) {
16391
16385
  return true;
16392
16386
  }
16393
16387
 
16394
- // src/ssr/search/controllers/instant-results/instant-results.ssr.ts
16388
+ // src/ssr-next/search/controllers/instant-results/instant-results.ssr.ts
16395
16389
  function defineInstantResults(props) {
16396
16390
  return {
16397
16391
  build: (engine) => buildInstantResults(engine, props)
@@ -16688,7 +16682,7 @@ function buildPager(engine, props = {}) {
16688
16682
  };
16689
16683
  }
16690
16684
 
16691
- // src/ssr/search/controllers/pager/headless-pager.ssr.ts
16685
+ // src/ssr-next/search/controllers/pager/headless-pager.ssr.ts
16692
16686
  function definePager(props) {
16693
16687
  return {
16694
16688
  build: (engine) => buildPager(engine, props)
@@ -16722,7 +16716,7 @@ function buildQueryError(engine) {
16722
16716
  return buildCoreQueryError(engine);
16723
16717
  }
16724
16718
 
16725
- // src/ssr/search/controllers/query-error/headless-query-error.ssr.ts
16719
+ // src/ssr-next/search/controllers/query-error/headless-query-error.ssr.ts
16726
16720
  function defineQueryError() {
16727
16721
  return {
16728
16722
  build: (engine) => buildQueryError(engine)
@@ -16768,7 +16762,7 @@ function buildQuerySummary(engine) {
16768
16762
  return buildCoreQuerySummary(engine);
16769
16763
  }
16770
16764
 
16771
- // src/ssr/search/controllers/query-summary/headless-query-summary.ssr.ts
16765
+ // src/ssr-next/search/controllers/query-summary/headless-query-summary.ssr.ts
16772
16766
  function defineQuerySummary() {
16773
16767
  return {
16774
16768
  build: (engine) => buildQuerySummary(engine)
@@ -17054,7 +17048,7 @@ function loadSearchQuickviewReducers(engine) {
17054
17048
  return true;
17055
17049
  }
17056
17050
 
17057
- // src/ssr/search/controllers/quickview/headless-quickview.ssr.ts
17051
+ // src/ssr-next/search/controllers/quickview/headless-quickview.ssr.ts
17058
17052
  function defineQuickview(props) {
17059
17053
  return {
17060
17054
  build: (engine) => buildQuickview(engine, props)
@@ -17251,7 +17245,7 @@ function loadRecentQueriesListReducer(engine) {
17251
17245
  return true;
17252
17246
  }
17253
17247
 
17254
- // src/ssr/search/controllers/recent-queries-list/headless-recent-queries-list.ssr.ts
17248
+ // src/ssr-next/search/controllers/recent-queries-list/headless-recent-queries-list.ssr.ts
17255
17249
  function defineRecentQueriesList(props) {
17256
17250
  return {
17257
17251
  build: (engine) => buildRecentQueriesList(engine, props)
@@ -17390,7 +17384,7 @@ function loadRecentResultsListReducer(engine) {
17390
17384
  return true;
17391
17385
  }
17392
17386
 
17393
- // src/ssr/search/controllers/recent-results-list/headless-recent-results-list.ssr.ts
17387
+ // src/ssr-next/search/controllers/recent-results-list/headless-recent-results-list.ssr.ts
17394
17388
  function defineRecentResultsList(props) {
17395
17389
  return {
17396
17390
  build: (engine) => buildRecentResultsList(engine, props)
@@ -17606,7 +17600,7 @@ function loadRelevanceInspectorReducers(engine) {
17606
17600
  return true;
17607
17601
  }
17608
17602
 
17609
- // src/ssr/search/controllers/relevance-inspector/headless-relevance-inspector.ssr.ts
17603
+ // src/ssr-next/search/controllers/relevance-inspector/headless-relevance-inspector.ssr.ts
17610
17604
  function defineRelevanceInspector(props) {
17611
17605
  return {
17612
17606
  build: (engine) => buildRelevanceInspector(engine, props)
@@ -17621,7 +17615,7 @@ function buildResultList(engine, props) {
17621
17615
  });
17622
17616
  }
17623
17617
 
17624
- // src/ssr/search/controllers/result-list/headless-result-list.ssr.ts
17618
+ // src/ssr-next/search/controllers/result-list/headless-result-list.ssr.ts
17625
17619
  function defineResultList(props) {
17626
17620
  return {
17627
17621
  build: (engine) => buildResultList(engine, props)
@@ -17695,7 +17689,7 @@ function loadResultsPerPageReducers2(engine) {
17695
17689
  return true;
17696
17690
  }
17697
17691
 
17698
- // src/ssr/search/controllers/results-per-page/headless-results-per-page.ssr.ts
17692
+ // src/ssr-next/search/controllers/results-per-page/headless-results-per-page.ssr.ts
17699
17693
  function defineResultsPerPage(props) {
17700
17694
  return {
17701
17695
  build: (engine) => buildResultsPerPage(engine, props)
@@ -18146,7 +18140,7 @@ function buildSearchBox(engine, props = {}) {
18146
18140
  };
18147
18141
  }
18148
18142
 
18149
- // src/ssr/search/controllers/search-box/headless-search-box.ssr.ts
18143
+ // src/ssr-next/search/controllers/search-box/headless-search-box.ssr.ts
18150
18144
  function defineSearchBox(props) {
18151
18145
  return {
18152
18146
  build: (engine) => buildSearchBox(engine, props)
@@ -18886,7 +18880,7 @@ function activateTabIfIdExists(state, id) {
18886
18880
  });
18887
18881
  }
18888
18882
 
18889
- // src/ssr/search/controllers/search-parameter-manager/headless-search-parameter-manager.ssr.ts
18883
+ // src/ssr-next/search/controllers/search-parameter-manager/headless-search-parameter-manager.ssr.ts
18890
18884
  function defineSearchParameterManager() {
18891
18885
  return {
18892
18886
  buildWithProps: (engine, props) => {
@@ -18927,7 +18921,7 @@ function buildSearchStatus(engine) {
18927
18921
  return buildCoreStatus(engine);
18928
18922
  }
18929
18923
 
18930
- // src/ssr/search/controllers/search-status/headless-search-status.ssr.ts
18924
+ // src/ssr-next/search/controllers/search-status/headless-search-status.ssr.ts
18931
18925
  function defineSearchStatus() {
18932
18926
  return {
18933
18927
  build: (engine) => buildSearchStatus(engine)
@@ -19734,7 +19728,7 @@ function buildSmartSnippet(engine, props) {
19734
19728
  };
19735
19729
  }
19736
19730
 
19737
- // src/ssr/search/controllers/smart-snippet/headless-smart-snippet.ssr.ts
19731
+ // src/ssr-next/search/controllers/smart-snippet/headless-smart-snippet.ssr.ts
19738
19732
  function defineSmartSnippet(props) {
19739
19733
  return {
19740
19734
  build: (engine) => buildSmartSnippet(engine, props)
@@ -19910,7 +19904,7 @@ function buildSmartSnippetQuestionsList(engine, props) {
19910
19904
  };
19911
19905
  }
19912
19906
 
19913
- // src/ssr/search/controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.ssr.ts
19907
+ // src/ssr-next/search/controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.ssr.ts
19914
19908
  function defineSmartSnippetQuestionsList(props) {
19915
19909
  return {
19916
19910
  build: (engine) => buildSmartSnippetQuestionsList(engine, props)
@@ -19991,7 +19985,7 @@ function buildSort(engine, props = {}) {
19991
19985
  };
19992
19986
  }
19993
19987
 
19994
- // src/ssr/search/controllers/sort/headless-sort.ssr.ts
19988
+ // src/ssr-next/search/controllers/sort/headless-sort.ssr.ts
19995
19989
  function defineSort(props) {
19996
19990
  return {
19997
19991
  build: (engine) => buildSort(engine, props)
@@ -20290,7 +20284,7 @@ function loadStandaloneSearchBoxReducers(engine) {
20290
20284
  return true;
20291
20285
  }
20292
20286
 
20293
- // src/ssr/search/controllers/standalone-search-box/headless-standalone-search-box.ssr.ts
20287
+ // src/ssr-next/search/controllers/standalone-search-box/headless-standalone-search-box.ssr.ts
20294
20288
  function defineStandaloneSearchBox(props) {
20295
20289
  return {
20296
20290
  build: (engine) => buildStandaloneSearchBox(engine, props)
@@ -20401,7 +20395,7 @@ function getLegacyAnalyticsActionForToggledValue(id, value) {
20401
20395
  });
20402
20396
  }
20403
20397
 
20404
- // src/ssr/search/controllers/static-filter/headless-static-filter.ssr.ts
20398
+ // src/ssr-next/search/controllers/static-filter/headless-static-filter.ssr.ts
20405
20399
  function defineStaticFilter(props) {
20406
20400
  return {
20407
20401
  build: (engine) => buildStaticFilter(engine, props)
@@ -20497,7 +20491,7 @@ function buildTab(engine, props) {
20497
20491
  };
20498
20492
  }
20499
20493
 
20500
- // src/ssr/search/controllers/tab/headless-tab.ssr.ts
20494
+ // src/ssr-next/search/controllers/tab/headless-tab.ssr.ts
20501
20495
  function defineTab(props) {
20502
20496
  return {
20503
20497
  build: (engine) => buildTab(engine, props)
@@ -20541,7 +20535,7 @@ function buildTabManager(engine) {
20541
20535
  };
20542
20536
  }
20543
20537
 
20544
- // src/ssr/search/controllers/tab-manager/headless-tab-manager.ssr.ts
20538
+ // src/ssr-next/search/controllers/tab-manager/headless-tab-manager.ssr.ts
20545
20539
  function defineTabManager() {
20546
20540
  return {
20547
20541
  build: (engine) => buildTabManager(engine)
@@ -20663,7 +20657,7 @@ function loadExecuteTriggerReducers(engine) {
20663
20657
  return true;
20664
20658
  }
20665
20659
 
20666
- // src/ssr/search/controllers/triggers/headless-execute-trigger.ssr.ts
20660
+ // src/ssr-next/search/controllers/triggers/headless-execute-trigger.ssr.ts
20667
20661
  function defineExecuteTrigger() {
20668
20662
  return {
20669
20663
  build: (engine) => buildExecuteTrigger(engine)
@@ -20718,7 +20712,7 @@ function buildNotifyTrigger(engine) {
20718
20712
  });
20719
20713
  }
20720
20714
 
20721
- // src/ssr/search/controllers/triggers/headless-notify-trigger.ssr.ts
20715
+ // src/ssr-next/search/controllers/triggers/headless-notify-trigger.ssr.ts
20722
20716
  function defineNotifyTrigger() {
20723
20717
  return {
20724
20718
  build: (engine) => buildNotifyTrigger(engine)
@@ -20762,7 +20756,7 @@ function loadQueryTriggerReducers(engine) {
20762
20756
  return true;
20763
20757
  }
20764
20758
 
20765
- // src/ssr/search/controllers/triggers/headless-query-trigger.ssr.ts
20759
+ // src/ssr-next/search/controllers/triggers/headless-query-trigger.ssr.ts
20766
20760
  function defineQueryTrigger() {
20767
20761
  return {
20768
20762
  build: (engine) => buildQueryTrigger(engine)
@@ -20804,7 +20798,7 @@ function loadRedirectionReducers(engine) {
20804
20798
  return true;
20805
20799
  }
20806
20800
 
20807
- // src/ssr/search/controllers/triggers/headless-redirection-trigger.ssr.ts
20801
+ // src/ssr-next/search/controllers/triggers/headless-redirection-trigger.ssr.ts
20808
20802
  function defineRedirectionTrigger() {
20809
20803
  return {
20810
20804
  build: (engine) => buildRedirectionTrigger(engine)
@@ -21126,7 +21120,7 @@ function loadUrlManagerReducers(engine) {
21126
21120
  return true;
21127
21121
  }
21128
21122
 
21129
- // src/ssr/search/controllers/url-manager/headless-url-manager.ssr.ts
21123
+ // src/ssr-next/search/controllers/url-manager/headless-url-manager.ssr.ts
21130
21124
  var defineUrlManager = () => ({
21131
21125
  buildWithProps: (engine, props) => {
21132
21126
  if (props === void 0) {
@@ -21141,7 +21135,7 @@ function isBrowser2() {
21141
21135
  return typeof window !== "undefined" && typeof document !== "undefined";
21142
21136
  }
21143
21137
 
21144
- // src/ssr/common/augment-preprocess-request.ts
21138
+ // src/ssr-next/common/augment-preprocess-request.ts
21145
21139
  function augmentPreprocessRequestWithForwardedFor(options) {
21146
21140
  const originalPreprocessRequest = options.preprocessRequest;
21147
21141
  return async (request, clientOrigin, metadata) => {
@@ -21165,48 +21159,109 @@ function augmentPreprocessRequestWithForwardedFor(options) {
21165
21159
  };
21166
21160
  }
21167
21161
 
21168
- // src/ssr/common/controller-utils.ts
21169
- function buildControllerFromDefinition({
21170
- definition: definition4,
21171
- engine,
21172
- props
21173
- }) {
21174
- return "build" in definition4 ? definition4.build(engine) : definition4.buildWithProps(engine, props);
21162
+ // src/ssr-next/common/builders/controller-builder.ts
21163
+ var ControllerBuilder = class {
21164
+ constructor(definition4, engine, props) {
21165
+ __publicField(this, "_definition");
21166
+ __publicField(this, "_engine");
21167
+ __publicField(this, "_props");
21168
+ __publicField(this, "_additionalArgs", []);
21169
+ this._definition = definition4;
21170
+ this._engine = engine;
21171
+ this._props = props;
21172
+ }
21173
+ withAdditionalArgs(additionalArgs = []) {
21174
+ this._additionalArgs = additionalArgs;
21175
+ return this;
21176
+ }
21177
+ build() {
21178
+ if ("build" in this._definition && typeof this._definition.build === "function") {
21179
+ return this.buildWithoutProps();
21180
+ }
21181
+ if ("buildWithProps" in this._definition && typeof this._definition.buildWithProps === "function") {
21182
+ return this.buildWithProps();
21183
+ }
21184
+ throw new Error(
21185
+ "Controller definition must have a build or buildWithProps method."
21186
+ );
21187
+ }
21188
+ buildWithoutProps() {
21189
+ const buildFn = this._definition.build;
21190
+ return buildFn(this._engine, ...this._additionalArgs);
21191
+ }
21192
+ buildWithProps() {
21193
+ const buildWithPropsFn = this._definition.buildWithProps;
21194
+ const controller = buildWithPropsFn(
21195
+ this._engine,
21196
+ this._props,
21197
+ ...this._additionalArgs
21198
+ );
21199
+ return { ...controller, initialState: controller.state };
21200
+ }
21201
+ };
21202
+
21203
+ // src/ssr-next/common/builders/static-controller-builder.ts
21204
+ var StaticControllerBuilder = class {
21205
+ constructor() {
21206
+ __publicField(this, "_state");
21207
+ __publicField(this, "_initialState");
21208
+ }
21209
+ withState(state) {
21210
+ this._state = clone(state);
21211
+ return this;
21212
+ }
21213
+ withInitialState(initialState) {
21214
+ this._initialState = clone(initialState);
21215
+ return this;
21216
+ }
21217
+ /**
21218
+ * Builds and returns the static controller state object
21219
+ */
21220
+ build() {
21221
+ const result = {
21222
+ state: this._state
21223
+ };
21224
+ if (this._initialState) {
21225
+ result.initialState = this._initialState;
21226
+ }
21227
+ return result;
21228
+ }
21229
+ };
21230
+ function createStaticControllerBuilder(controller) {
21231
+ const builder = new StaticControllerBuilder().withState(controller.state);
21232
+ if ("initialState" in controller) {
21233
+ builder.withInitialState(
21234
+ controller.initialState
21235
+ );
21236
+ }
21237
+ return builder;
21175
21238
  }
21239
+
21240
+ // src/ssr-next/search/controller-utils.ts
21176
21241
  function buildControllerDefinitions({
21177
21242
  definitionsMap,
21178
21243
  engine,
21179
21244
  propsMap
21180
21245
  }) {
21181
- return mapObject(
21182
- definitionsMap,
21183
- (definition4, key) => buildControllerFromDefinition({
21184
- definition: definition4,
21185
- engine,
21186
- props: propsMap?.[key]
21187
- })
21188
- );
21246
+ return mapObject(definitionsMap, (definition4, key) => {
21247
+ const props = propsMap?.[key];
21248
+ return new ControllerBuilder(definition4, engine, props).build();
21249
+ });
21189
21250
  }
21190
21251
  function createStaticState({
21191
21252
  searchAction,
21192
21253
  controllers
21193
21254
  }) {
21194
21255
  return {
21195
- controllers: mapObject(controllers, (controller) => ({
21196
- state: clone(controller.state)
21197
- })),
21256
+ controllers: mapObject(
21257
+ controllers,
21258
+ (controller) => createStaticControllerBuilder(controller).build()
21259
+ ),
21198
21260
  searchAction: clone(searchAction)
21199
21261
  };
21200
21262
  }
21201
- function composeFunction(parentFunction, children) {
21202
- const newFunction = (...params) => parentFunction(...params);
21203
- for (const [key, value] of Object.entries(children)) {
21204
- newFunction[key] = value;
21205
- }
21206
- return newFunction;
21207
- }
21208
21263
 
21209
- // src/ssr/search/engine/search-engine.ssr.ts
21264
+ // src/ssr-next/search/engine/search-engine.ssr.ts
21210
21265
  function isSearchCompletedAction(action) {
21211
21266
  return /^search\/executeSearch\/(fulfilled|rejected)$/.test(
21212
21267
  action.type
@@ -21245,9 +21300,7 @@ function defineSearchEngine(options) {
21245
21300
  "[WARNING] Missing navigator context in server-side code. Make sure to set it with `setNavigatorContextProvider` before calling fetchStaticState()"
21246
21301
  );
21247
21302
  }
21248
- const engine = buildSSRSearchEngine(
21249
- buildOptions2?.extend ? await buildOptions2.extend(getOptions()) : getOptions()
21250
- );
21303
+ const engine = buildSSRSearchEngine(getOptions());
21251
21304
  const controllers = buildControllerDefinitions({
21252
21305
  definitionsMap: controllerDefinitions ?? {},
21253
21306
  engine,
@@ -21258,59 +21311,27 @@ function defineSearchEngine(options) {
21258
21311
  controllers
21259
21312
  };
21260
21313
  };
21261
- const fetchStaticState = composeFunction(
21262
- async (...params) => {
21263
- const buildResult = await build(...params);
21264
- const staticState = await fetchStaticState.fromBuildResult({
21265
- buildResult
21266
- });
21267
- options.configuration.preprocessRequest = augmentPreprocessRequestWithForwardedFor({
21268
- preprocessRequest: options.configuration.preprocessRequest,
21269
- navigatorContextProvider: options.navigatorContextProvider,
21270
- loggerOptions: options.loggerOptions
21271
- });
21272
- return staticState;
21273
- },
21274
- {
21275
- fromBuildResult: async (...params) => {
21276
- const [
21277
- {
21278
- buildResult: { engine, controllers }
21279
- }
21280
- ] = params;
21281
- engine.executeFirstSearch();
21282
- return createStaticState({
21283
- searchAction: await engine.waitForSearchCompletedAction(),
21284
- controllers
21285
- });
21286
- }
21287
- }
21288
- );
21289
- const hydrateStaticState = composeFunction(
21290
- async (...params) => {
21291
- const buildResult = await build(...params);
21292
- const staticState = await hydrateStaticState.fromBuildResult({
21293
- buildResult,
21294
- searchAction: params[0].searchAction
21295
- });
21296
- return staticState;
21297
- },
21298
- {
21299
- fromBuildResult: async (...params) => {
21300
- const [
21301
- {
21302
- buildResult: { engine, controllers },
21303
- searchAction
21304
- }
21305
- ] = params;
21306
- engine.dispatch(searchAction);
21307
- await engine.waitForSearchCompletedAction();
21308
- return { engine, controllers };
21309
- }
21310
- }
21311
- );
21314
+ const fetchStaticState = async (...params) => {
21315
+ const { engine, controllers } = await build(...params);
21316
+ options.configuration.preprocessRequest = augmentPreprocessRequestWithForwardedFor({
21317
+ preprocessRequest: options.configuration.preprocessRequest,
21318
+ navigatorContextProvider: options.navigatorContextProvider,
21319
+ loggerOptions: options.loggerOptions
21320
+ });
21321
+ engine.executeFirstSearch();
21322
+ const staticState = createStaticState({
21323
+ searchAction: await engine.waitForSearchCompletedAction(),
21324
+ controllers
21325
+ });
21326
+ return staticState;
21327
+ };
21328
+ const hydrateStaticState = async (...params) => {
21329
+ const { engine, controllers } = await build(...params);
21330
+ engine.dispatch(params[0].searchAction);
21331
+ await engine.waitForSearchCompletedAction();
21332
+ return { engine, controllers };
21333
+ };
21312
21334
  return {
21313
- build,
21314
21335
  fetchStaticState,
21315
21336
  hydrateStaticState,
21316
21337
  setNavigatorContextProvider