@coveo/headless 4.0.0-pre.c6ea281e26 → 4.0.0-pre.d5bddfb706

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 = "4.0.0-pre.c6ea281e26";
1309
+ var VERSION = "4.0.0-pre.d5bddfb706";
1310
1310
  var COVEO_FRAMEWORK = ["@coveo/atomic", "@coveo/quantic"];
1311
1311
 
1312
1312
  // src/api/analytics/analytics-selectors.ts
@@ -11169,7 +11169,7 @@ function loadBreadcrumbManagerReducers(engine) {
11169
11169
  return true;
11170
11170
  }
11171
11171
 
11172
- // src/ssr/search/controllers/breadcrumb-manager/headless-breadcrumb-manager.ssr.ts
11172
+ // src/ssr-next/search/controllers/breadcrumb-manager/headless-breadcrumb-manager.ssr.ts
11173
11173
  function defineBreadcrumbManager() {
11174
11174
  return {
11175
11175
  build: (engine) => buildBreadcrumbManager(engine)
@@ -11317,13 +11317,7 @@ function buildContext(engine, props) {
11317
11317
  return buildCoreContext(engine, props);
11318
11318
  }
11319
11319
 
11320
- // src/ssr/commerce/types/controller-constants.ts
11321
- var recommendationOptionKey = "recommendation-internal-options";
11322
- var recommendationInternalOptionKey = Symbol.for(
11323
- recommendationOptionKey
11324
- );
11325
-
11326
- // src/ssr/common/errors.ts
11320
+ // src/ssr-next/common/errors.ts
11327
11321
  var MissingControllerProps = class extends Error {
11328
11322
  constructor(controller) {
11329
11323
  super();
@@ -11332,7 +11326,7 @@ var MissingControllerProps = class extends Error {
11332
11326
  }
11333
11327
  };
11334
11328
 
11335
- // src/ssr/search/controllers/context/headless-context.ssr.ts
11329
+ // src/ssr-next/search/controllers/context/headless-context.ssr.ts
11336
11330
  function defineContext() {
11337
11331
  return {
11338
11332
  buildWithProps: (engine, props) => {
@@ -11439,7 +11433,7 @@ function loadReducers(engine) {
11439
11433
  return true;
11440
11434
  }
11441
11435
 
11442
- // src/ssr/search/controllers/dictionary-field-context/headless-dictionary-field-context.ssr.ts
11436
+ // src/ssr-next/search/controllers/dictionary-field-context/headless-dictionary-field-context.ssr.ts
11443
11437
  function defineDictionaryFieldContext() {
11444
11438
  return {
11445
11439
  build: (engine) => buildDictionaryFieldContext(engine)
@@ -11587,7 +11581,7 @@ function buildDidYouMean(engine, props = {}) {
11587
11581
  };
11588
11582
  }
11589
11583
 
11590
- // src/ssr/search/controllers/did-you-mean/headless-did-you-mean.ssr.ts
11584
+ // src/ssr-next/search/controllers/did-you-mean/headless-did-you-mean.ssr.ts
11591
11585
  function defineDidYouMean() {
11592
11586
  return {
11593
11587
  build: (engine) => buildDidYouMean(engine)
@@ -11677,7 +11671,7 @@ function buildFacetManager(engine) {
11677
11671
  return buildCoreFacetManager(engine);
11678
11672
  }
11679
11673
 
11680
- // src/ssr/search/controllers/facet-manager/headless-facet-manager.ssr.ts
11674
+ // src/ssr-next/search/controllers/facet-manager/headless-facet-manager.ssr.ts
11681
11675
  function defineFacetManager() {
11682
11676
  return {
11683
11677
  build: (engine) => buildFacetManager(engine)
@@ -11896,7 +11890,7 @@ function loadAutomaticFacetGeneratorReducers(engine) {
11896
11890
  return true;
11897
11891
  }
11898
11892
 
11899
- // src/ssr/search/controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.ssr.ts
11893
+ // src/ssr-next/search/controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.ssr.ts
11900
11894
  function defineAutomaticFacetGenerator(props) {
11901
11895
  return {
11902
11896
  build: (engine) => buildAutomaticFacetGenerator(engine, props)
@@ -13568,7 +13562,7 @@ function getToggleSelectAnalyticsAction(selection) {
13568
13562
  return isSelected ? facetDeselect() : facetSelect();
13569
13563
  }
13570
13564
 
13571
- // src/ssr/search/controllers/facets/category-facet/headless-category-facet.ssr.ts
13565
+ // src/ssr-next/search/controllers/facets/category-facet/headless-category-facet.ssr.ts
13572
13566
  function defineCategoryFacet(props) {
13573
13567
  return {
13574
13568
  build: (engine) => buildCategoryFacet(engine, props)
@@ -14138,7 +14132,7 @@ function loadFacetReducers2(engine) {
14138
14132
  return true;
14139
14133
  }
14140
14134
 
14141
- // src/ssr/search/controllers/facets/facet/headless-facet.ssr.ts
14135
+ // src/ssr-next/search/controllers/facets/facet/headless-facet.ssr.ts
14142
14136
  function defineFacet(props) {
14143
14137
  return {
14144
14138
  build: (engine) => buildFacet(engine, props)
@@ -14431,7 +14425,7 @@ function buildDateFacet(engine, props) {
14431
14425
  };
14432
14426
  }
14433
14427
 
14434
- // src/ssr/search/controllers/facets/range-facet/date-facet/headless-date-facet.ssr.ts
14428
+ // src/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-facet.ssr.ts
14435
14429
  function defineDateFacet(props) {
14436
14430
  return {
14437
14431
  build: (engine) => buildDateFacet(engine, props)
@@ -14563,7 +14557,7 @@ function loadDateFilterReducer2(engine) {
14563
14557
  return true;
14564
14558
  }
14565
14559
 
14566
- // src/ssr/search/controllers/facets/range-facet/date-facet/headless-date-filter.ssr.ts
14560
+ // src/ssr-next/search/controllers/facets/range-facet/date-facet/headless-date-filter.ssr.ts
14567
14561
  function defineDateFilter(props) {
14568
14562
  return {
14569
14563
  build: (engine) => buildDateFilter(engine, props)
@@ -14739,7 +14733,7 @@ function loadNumericFacetReducers2(engine) {
14739
14733
  return true;
14740
14734
  }
14741
14735
 
14742
- // src/ssr/search/controllers/facets/range-facet/numeric-facet/headless-numeric-facet.ssr.ts
14736
+ // src/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-facet.ssr.ts
14743
14737
  function defineNumericFacet(props) {
14744
14738
  return {
14745
14739
  build: (engine) => buildNumericFacet(engine, props)
@@ -14871,7 +14865,7 @@ function loadNumericFilterReducer2(engine) {
14871
14865
  return true;
14872
14866
  }
14873
14867
 
14874
- // src/ssr/search/controllers/facets/range-facet/numeric-facet/headless-numeric-filter.ssr.ts
14868
+ // src/ssr-next/search/controllers/facets/range-facet/numeric-facet/headless-numeric-filter.ssr.ts
14875
14869
  function defineNumericFilter(props) {
14876
14870
  return {
14877
14871
  build: (engine) => buildNumericFilter(engine, props)
@@ -14930,7 +14924,7 @@ function loadCategoryFieldSuggestionsReducers(engine) {
14930
14924
  return true;
14931
14925
  }
14932
14926
 
14933
- // src/ssr/search/controllers/field-suggestions/category-facet/headless-category-field-suggestions.ssr.ts
14927
+ // src/ssr-next/search/controllers/field-suggestions/category-facet/headless-category-field-suggestions.ssr.ts
14934
14928
  function defineCategoryFieldSuggestions(props) {
14935
14929
  return {
14936
14930
  build: (engine) => buildCategoryFieldSuggestions(engine, props)
@@ -15003,7 +14997,7 @@ function loadFieldSuggestionsReducers(engine) {
15003
14997
  return true;
15004
14998
  }
15005
14999
 
15006
- // src/ssr/search/controllers/field-suggestions/facet/headless-field-suggestions.ssr.ts
15000
+ // src/ssr-next/search/controllers/field-suggestions/facet/headless-field-suggestions.ssr.ts
15007
15001
  function defineFieldSuggestions(props) {
15008
15002
  return {
15009
15003
  build: (engine) => buildFieldSuggestions(engine, props)
@@ -15667,7 +15661,7 @@ function buildFoldedResultList(engine, props = {}) {
15667
15661
  };
15668
15662
  }
15669
15663
 
15670
- // src/ssr/search/controllers/folded-result-list/headless-folded-result-list.ssr.ts
15664
+ // src/ssr-next/search/controllers/folded-result-list/headless-folded-result-list.ssr.ts
15671
15665
  function defineFoldedResultList(props) {
15672
15666
  return {
15673
15667
  build: (engine) => buildFoldedResultList(engine, props)
@@ -16065,7 +16059,7 @@ function loadHistoryManagerReducers(engine) {
16065
16059
  return true;
16066
16060
  }
16067
16061
 
16068
- // src/ssr/search/controllers/history-manager/headless-history-manager.ssr.ts
16062
+ // src/ssr-next/search/controllers/history-manager/headless-history-manager.ssr.ts
16069
16063
  function defineHistoryManager() {
16070
16064
  return {
16071
16065
  build: (engine) => buildHistoryManager(engine)
@@ -16285,7 +16279,7 @@ function loadInstantResultsReducers(engine) {
16285
16279
  return true;
16286
16280
  }
16287
16281
 
16288
- // src/ssr/search/controllers/instant-results/instant-results.ssr.ts
16282
+ // src/ssr-next/search/controllers/instant-results/instant-results.ssr.ts
16289
16283
  function defineInstantResults(props) {
16290
16284
  return {
16291
16285
  build: (engine) => buildInstantResults(engine, props)
@@ -16582,7 +16576,7 @@ function buildPager(engine, props = {}) {
16582
16576
  };
16583
16577
  }
16584
16578
 
16585
- // src/ssr/search/controllers/pager/headless-pager.ssr.ts
16579
+ // src/ssr-next/search/controllers/pager/headless-pager.ssr.ts
16586
16580
  function definePager(props) {
16587
16581
  return {
16588
16582
  build: (engine) => buildPager(engine, props)
@@ -16616,7 +16610,7 @@ function buildQueryError(engine) {
16616
16610
  return buildCoreQueryError(engine);
16617
16611
  }
16618
16612
 
16619
- // src/ssr/search/controllers/query-error/headless-query-error.ssr.ts
16613
+ // src/ssr-next/search/controllers/query-error/headless-query-error.ssr.ts
16620
16614
  function defineQueryError() {
16621
16615
  return {
16622
16616
  build: (engine) => buildQueryError(engine)
@@ -16662,7 +16656,7 @@ function buildQuerySummary(engine) {
16662
16656
  return buildCoreQuerySummary(engine);
16663
16657
  }
16664
16658
 
16665
- // src/ssr/search/controllers/query-summary/headless-query-summary.ssr.ts
16659
+ // src/ssr-next/search/controllers/query-summary/headless-query-summary.ssr.ts
16666
16660
  function defineQuerySummary() {
16667
16661
  return {
16668
16662
  build: (engine) => buildQuerySummary(engine)
@@ -16948,7 +16942,7 @@ function loadSearchQuickviewReducers(engine) {
16948
16942
  return true;
16949
16943
  }
16950
16944
 
16951
- // src/ssr/search/controllers/quickview/headless-quickview.ssr.ts
16945
+ // src/ssr-next/search/controllers/quickview/headless-quickview.ssr.ts
16952
16946
  function defineQuickview(props) {
16953
16947
  return {
16954
16948
  build: (engine) => buildQuickview(engine, props)
@@ -17145,7 +17139,7 @@ function loadRecentQueriesListReducer(engine) {
17145
17139
  return true;
17146
17140
  }
17147
17141
 
17148
- // src/ssr/search/controllers/recent-queries-list/headless-recent-queries-list.ssr.ts
17142
+ // src/ssr-next/search/controllers/recent-queries-list/headless-recent-queries-list.ssr.ts
17149
17143
  function defineRecentQueriesList(props) {
17150
17144
  return {
17151
17145
  build: (engine) => buildRecentQueriesList(engine, props)
@@ -17284,7 +17278,7 @@ function loadRecentResultsListReducer(engine) {
17284
17278
  return true;
17285
17279
  }
17286
17280
 
17287
- // src/ssr/search/controllers/recent-results-list/headless-recent-results-list.ssr.ts
17281
+ // src/ssr-next/search/controllers/recent-results-list/headless-recent-results-list.ssr.ts
17288
17282
  function defineRecentResultsList(props) {
17289
17283
  return {
17290
17284
  build: (engine) => buildRecentResultsList(engine, props)
@@ -17500,7 +17494,7 @@ function loadRelevanceInspectorReducers(engine) {
17500
17494
  return true;
17501
17495
  }
17502
17496
 
17503
- // src/ssr/search/controllers/relevance-inspector/headless-relevance-inspector.ssr.ts
17497
+ // src/ssr-next/search/controllers/relevance-inspector/headless-relevance-inspector.ssr.ts
17504
17498
  function defineRelevanceInspector(props) {
17505
17499
  return {
17506
17500
  build: (engine) => buildRelevanceInspector(engine, props)
@@ -17515,7 +17509,7 @@ function buildResultList(engine, props) {
17515
17509
  });
17516
17510
  }
17517
17511
 
17518
- // src/ssr/search/controllers/result-list/headless-result-list.ssr.ts
17512
+ // src/ssr-next/search/controllers/result-list/headless-result-list.ssr.ts
17519
17513
  function defineResultList(props) {
17520
17514
  return {
17521
17515
  build: (engine) => buildResultList(engine, props)
@@ -17589,7 +17583,7 @@ function loadResultsPerPageReducers2(engine) {
17589
17583
  return true;
17590
17584
  }
17591
17585
 
17592
- // src/ssr/search/controllers/results-per-page/headless-results-per-page.ssr.ts
17586
+ // src/ssr-next/search/controllers/results-per-page/headless-results-per-page.ssr.ts
17593
17587
  function defineResultsPerPage(props) {
17594
17588
  return {
17595
17589
  build: (engine) => buildResultsPerPage(engine, props)
@@ -18040,7 +18034,7 @@ function buildSearchBox(engine, props = {}) {
18040
18034
  };
18041
18035
  }
18042
18036
 
18043
- // src/ssr/search/controllers/search-box/headless-search-box.ssr.ts
18037
+ // src/ssr-next/search/controllers/search-box/headless-search-box.ssr.ts
18044
18038
  function defineSearchBox(props) {
18045
18039
  return {
18046
18040
  build: (engine) => buildSearchBox(engine, props)
@@ -18780,7 +18774,7 @@ function activateTabIfIdExists(state, id) {
18780
18774
  });
18781
18775
  }
18782
18776
 
18783
- // src/ssr/search/controllers/search-parameter-manager/headless-search-parameter-manager.ssr.ts
18777
+ // src/ssr-next/search/controllers/search-parameter-manager/headless-search-parameter-manager.ssr.ts
18784
18778
  function defineSearchParameterManager() {
18785
18779
  return {
18786
18780
  buildWithProps: (engine, props) => {
@@ -18821,7 +18815,7 @@ function buildSearchStatus(engine) {
18821
18815
  return buildCoreStatus(engine);
18822
18816
  }
18823
18817
 
18824
- // src/ssr/search/controllers/search-status/headless-search-status.ssr.ts
18818
+ // src/ssr-next/search/controllers/search-status/headless-search-status.ssr.ts
18825
18819
  function defineSearchStatus() {
18826
18820
  return {
18827
18821
  build: (engine) => buildSearchStatus(engine)
@@ -19628,7 +19622,7 @@ function buildSmartSnippet(engine, props) {
19628
19622
  };
19629
19623
  }
19630
19624
 
19631
- // src/ssr/search/controllers/smart-snippet/headless-smart-snippet.ssr.ts
19625
+ // src/ssr-next/search/controllers/smart-snippet/headless-smart-snippet.ssr.ts
19632
19626
  function defineSmartSnippet(props) {
19633
19627
  return {
19634
19628
  build: (engine) => buildSmartSnippet(engine, props)
@@ -19804,7 +19798,7 @@ function buildSmartSnippetQuestionsList(engine, props) {
19804
19798
  };
19805
19799
  }
19806
19800
 
19807
- // src/ssr/search/controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.ssr.ts
19801
+ // src/ssr-next/search/controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.ssr.ts
19808
19802
  function defineSmartSnippetQuestionsList(props) {
19809
19803
  return {
19810
19804
  build: (engine) => buildSmartSnippetQuestionsList(engine, props)
@@ -19885,7 +19879,7 @@ function buildSort(engine, props = {}) {
19885
19879
  };
19886
19880
  }
19887
19881
 
19888
- // src/ssr/search/controllers/sort/headless-sort.ssr.ts
19882
+ // src/ssr-next/search/controllers/sort/headless-sort.ssr.ts
19889
19883
  function defineSort(props) {
19890
19884
  return {
19891
19885
  build: (engine) => buildSort(engine, props)
@@ -20184,7 +20178,7 @@ function loadStandaloneSearchBoxReducers(engine) {
20184
20178
  return true;
20185
20179
  }
20186
20180
 
20187
- // src/ssr/search/controllers/standalone-search-box/headless-standalone-search-box.ssr.ts
20181
+ // src/ssr-next/search/controllers/standalone-search-box/headless-standalone-search-box.ssr.ts
20188
20182
  function defineStandaloneSearchBox(props) {
20189
20183
  return {
20190
20184
  build: (engine) => buildStandaloneSearchBox(engine, props)
@@ -20295,7 +20289,7 @@ function getLegacyAnalyticsActionForToggledValue(id, value) {
20295
20289
  });
20296
20290
  }
20297
20291
 
20298
- // src/ssr/search/controllers/static-filter/headless-static-filter.ssr.ts
20292
+ // src/ssr-next/search/controllers/static-filter/headless-static-filter.ssr.ts
20299
20293
  function defineStaticFilter(props) {
20300
20294
  return {
20301
20295
  build: (engine) => buildStaticFilter(engine, props)
@@ -20391,7 +20385,7 @@ function buildTab(engine, props) {
20391
20385
  };
20392
20386
  }
20393
20387
 
20394
- // src/ssr/search/controllers/tab/headless-tab.ssr.ts
20388
+ // src/ssr-next/search/controllers/tab/headless-tab.ssr.ts
20395
20389
  function defineTab(props) {
20396
20390
  return {
20397
20391
  build: (engine) => buildTab(engine, props)
@@ -20435,7 +20429,7 @@ function buildTabManager(engine) {
20435
20429
  };
20436
20430
  }
20437
20431
 
20438
- // src/ssr/search/controllers/tab-manager/headless-tab-manager.ssr.ts
20432
+ // src/ssr-next/search/controllers/tab-manager/headless-tab-manager.ssr.ts
20439
20433
  function defineTabManager() {
20440
20434
  return {
20441
20435
  build: (engine) => buildTabManager(engine)
@@ -20557,7 +20551,7 @@ function loadExecuteTriggerReducers(engine) {
20557
20551
  return true;
20558
20552
  }
20559
20553
 
20560
- // src/ssr/search/controllers/triggers/headless-execute-trigger.ssr.ts
20554
+ // src/ssr-next/search/controllers/triggers/headless-execute-trigger.ssr.ts
20561
20555
  function defineExecuteTrigger() {
20562
20556
  return {
20563
20557
  build: (engine) => buildExecuteTrigger(engine)
@@ -20612,7 +20606,7 @@ function buildNotifyTrigger(engine) {
20612
20606
  });
20613
20607
  }
20614
20608
 
20615
- // src/ssr/search/controllers/triggers/headless-notify-trigger.ssr.ts
20609
+ // src/ssr-next/search/controllers/triggers/headless-notify-trigger.ssr.ts
20616
20610
  function defineNotifyTrigger() {
20617
20611
  return {
20618
20612
  build: (engine) => buildNotifyTrigger(engine)
@@ -20656,7 +20650,7 @@ function loadQueryTriggerReducers(engine) {
20656
20650
  return true;
20657
20651
  }
20658
20652
 
20659
- // src/ssr/search/controllers/triggers/headless-query-trigger.ssr.ts
20653
+ // src/ssr-next/search/controllers/triggers/headless-query-trigger.ssr.ts
20660
20654
  function defineQueryTrigger() {
20661
20655
  return {
20662
20656
  build: (engine) => buildQueryTrigger(engine)
@@ -20698,7 +20692,7 @@ function loadRedirectionReducers(engine) {
20698
20692
  return true;
20699
20693
  }
20700
20694
 
20701
- // src/ssr/search/controllers/triggers/headless-redirection-trigger.ssr.ts
20695
+ // src/ssr-next/search/controllers/triggers/headless-redirection-trigger.ssr.ts
20702
20696
  function defineRedirectionTrigger() {
20703
20697
  return {
20704
20698
  build: (engine) => buildRedirectionTrigger(engine)
@@ -21020,7 +21014,7 @@ function loadUrlManagerReducers(engine) {
21020
21014
  return true;
21021
21015
  }
21022
21016
 
21023
- // src/ssr/search/controllers/url-manager/headless-url-manager.ssr.ts
21017
+ // src/ssr-next/search/controllers/url-manager/headless-url-manager.ssr.ts
21024
21018
  var defineUrlManager = () => ({
21025
21019
  buildWithProps: (engine, props) => {
21026
21020
  if (props === void 0) {
@@ -21035,7 +21029,7 @@ function isBrowser2() {
21035
21029
  return typeof window !== "undefined" && typeof document !== "undefined";
21036
21030
  }
21037
21031
 
21038
- // src/ssr/common/augment-preprocess-request.ts
21032
+ // src/ssr-next/common/augment-preprocess-request.ts
21039
21033
  function augmentPreprocessRequestWithForwardedFor(options) {
21040
21034
  const originalPreprocessRequest = options.preprocessRequest;
21041
21035
  return async (request, clientOrigin, metadata) => {
@@ -21059,48 +21053,109 @@ function augmentPreprocessRequestWithForwardedFor(options) {
21059
21053
  };
21060
21054
  }
21061
21055
 
21062
- // src/ssr/common/controller-utils.ts
21063
- function buildControllerFromDefinition({
21064
- definition: definition4,
21065
- engine,
21066
- props
21067
- }) {
21068
- return "build" in definition4 ? definition4.build(engine) : definition4.buildWithProps(engine, props);
21056
+ // src/ssr-next/common/builders/controller-builder.ts
21057
+ var ControllerBuilder = class {
21058
+ constructor(definition4, engine, props) {
21059
+ __publicField(this, "_definition");
21060
+ __publicField(this, "_engine");
21061
+ __publicField(this, "_props");
21062
+ __publicField(this, "_additionalArgs", []);
21063
+ this._definition = definition4;
21064
+ this._engine = engine;
21065
+ this._props = props;
21066
+ }
21067
+ withAdditionalArgs(additionalArgs = []) {
21068
+ this._additionalArgs = additionalArgs;
21069
+ return this;
21070
+ }
21071
+ build() {
21072
+ if ("build" in this._definition && typeof this._definition.build === "function") {
21073
+ return this.buildWithoutProps();
21074
+ }
21075
+ if ("buildWithProps" in this._definition && typeof this._definition.buildWithProps === "function") {
21076
+ return this.buildWithProps();
21077
+ }
21078
+ throw new Error(
21079
+ "Controller definition must have a build or buildWithProps method."
21080
+ );
21081
+ }
21082
+ buildWithoutProps() {
21083
+ const buildFn = this._definition.build;
21084
+ return buildFn(this._engine, ...this._additionalArgs);
21085
+ }
21086
+ buildWithProps() {
21087
+ const buildWithPropsFn = this._definition.buildWithProps;
21088
+ const controller = buildWithPropsFn(
21089
+ this._engine,
21090
+ this._props,
21091
+ ...this._additionalArgs
21092
+ );
21093
+ return { ...controller, initialState: controller.state };
21094
+ }
21095
+ };
21096
+
21097
+ // src/ssr-next/common/builders/static-controller-builder.ts
21098
+ var StaticControllerBuilder = class {
21099
+ constructor() {
21100
+ __publicField(this, "_state");
21101
+ __publicField(this, "_initialState");
21102
+ }
21103
+ withState(state) {
21104
+ this._state = clone(state);
21105
+ return this;
21106
+ }
21107
+ withInitialState(initialState) {
21108
+ this._initialState = clone(initialState);
21109
+ return this;
21110
+ }
21111
+ /**
21112
+ * Builds and returns the static controller state object
21113
+ */
21114
+ build() {
21115
+ const result = {
21116
+ state: this._state
21117
+ };
21118
+ if (this._initialState) {
21119
+ result.initialState = this._initialState;
21120
+ }
21121
+ return result;
21122
+ }
21123
+ };
21124
+ function createStaticControllerBuilder(controller) {
21125
+ const builder = new StaticControllerBuilder().withState(controller.state);
21126
+ if ("initialState" in controller) {
21127
+ builder.withInitialState(
21128
+ controller.initialState
21129
+ );
21130
+ }
21131
+ return builder;
21069
21132
  }
21133
+
21134
+ // src/ssr-next/search/controller-utils.ts
21070
21135
  function buildControllerDefinitions({
21071
21136
  definitionsMap,
21072
21137
  engine,
21073
21138
  propsMap
21074
21139
  }) {
21075
- return mapObject(
21076
- definitionsMap,
21077
- (definition4, key) => buildControllerFromDefinition({
21078
- definition: definition4,
21079
- engine,
21080
- props: propsMap?.[key]
21081
- })
21082
- );
21140
+ return mapObject(definitionsMap, (definition4, key) => {
21141
+ const props = propsMap?.[key];
21142
+ return new ControllerBuilder(definition4, engine, props).build();
21143
+ });
21083
21144
  }
21084
21145
  function createStaticState({
21085
- searchAction,
21146
+ searchActions,
21086
21147
  controllers
21087
21148
  }) {
21088
21149
  return {
21089
- controllers: mapObject(controllers, (controller) => ({
21090
- state: clone(controller.state)
21091
- })),
21092
- searchAction: clone(searchAction)
21150
+ controllers: mapObject(
21151
+ controllers,
21152
+ (controller) => createStaticControllerBuilder(controller).build()
21153
+ ),
21154
+ searchActions: clone(searchActions)
21093
21155
  };
21094
21156
  }
21095
- function composeFunction(parentFunction, children) {
21096
- const newFunction = (...params) => parentFunction(...params);
21097
- for (const [key, value] of Object.entries(children)) {
21098
- newFunction[key] = value;
21099
- }
21100
- return newFunction;
21101
- }
21102
21157
 
21103
- // src/ssr/search/engine/search-engine.ssr.ts
21158
+ // src/ssr-next/search/engine/search-engine.ssr.ts
21104
21159
  function isSearchCompletedAction(action) {
21105
21160
  return /^search\/executeSearch\/(fulfilled|rejected)$/.test(
21106
21161
  action.type
@@ -21139,9 +21194,7 @@ function defineSearchEngine(options) {
21139
21194
  "[WARNING] Missing navigator context in server-side code. Make sure to set it with `setNavigatorContextProvider` before calling fetchStaticState()"
21140
21195
  );
21141
21196
  }
21142
- const engine = buildSSRSearchEngine(
21143
- buildOptions2?.extend ? await buildOptions2.extend(getOptions()) : getOptions()
21144
- );
21197
+ const engine = buildSSRSearchEngine(getOptions());
21145
21198
  const controllers = buildControllerDefinitions({
21146
21199
  definitionsMap: controllerDefinitions ?? {},
21147
21200
  engine,
@@ -21152,59 +21205,29 @@ function defineSearchEngine(options) {
21152
21205
  controllers
21153
21206
  };
21154
21207
  };
21155
- const fetchStaticState = composeFunction(
21156
- async (...params) => {
21157
- const buildResult = await build(...params);
21158
- const staticState = await fetchStaticState.fromBuildResult({
21159
- buildResult
21160
- });
21161
- options.configuration.preprocessRequest = augmentPreprocessRequestWithForwardedFor({
21162
- preprocessRequest: options.configuration.preprocessRequest,
21163
- navigatorContextProvider: options.navigatorContextProvider,
21164
- loggerOptions: options.loggerOptions
21165
- });
21166
- return staticState;
21167
- },
21168
- {
21169
- fromBuildResult: async (...params) => {
21170
- const [
21171
- {
21172
- buildResult: { engine, controllers }
21173
- }
21174
- ] = params;
21175
- engine.executeFirstSearch();
21176
- return createStaticState({
21177
- searchAction: await engine.waitForSearchCompletedAction(),
21178
- controllers
21179
- });
21180
- }
21181
- }
21182
- );
21183
- const hydrateStaticState = composeFunction(
21184
- async (...params) => {
21185
- const buildResult = await build(...params);
21186
- const staticState = await hydrateStaticState.fromBuildResult({
21187
- buildResult,
21188
- searchAction: params[0].searchAction
21189
- });
21190
- return staticState;
21191
- },
21192
- {
21193
- fromBuildResult: async (...params) => {
21194
- const [
21195
- {
21196
- buildResult: { engine, controllers },
21197
- searchAction
21198
- }
21199
- ] = params;
21200
- engine.dispatch(searchAction);
21201
- await engine.waitForSearchCompletedAction();
21202
- return { engine, controllers };
21203
- }
21204
- }
21205
- );
21208
+ const fetchStaticState = async (...params) => {
21209
+ const { engine, controllers } = await build(...params);
21210
+ options.configuration.preprocessRequest = augmentPreprocessRequestWithForwardedFor({
21211
+ preprocessRequest: options.configuration.preprocessRequest,
21212
+ navigatorContextProvider: options.navigatorContextProvider,
21213
+ loggerOptions: options.loggerOptions
21214
+ });
21215
+ engine.executeFirstSearch();
21216
+ const staticState = createStaticState({
21217
+ searchActions: [await engine.waitForSearchCompletedAction()],
21218
+ controllers
21219
+ });
21220
+ return staticState;
21221
+ };
21222
+ const hydrateStaticState = async (...params) => {
21223
+ const { engine, controllers } = await build(...params);
21224
+ params[0].searchActions.forEach((action) => {
21225
+ engine.dispatch(action);
21226
+ });
21227
+ await engine.waitForSearchCompletedAction();
21228
+ return { engine, controllers };
21229
+ };
21206
21230
  return {
21207
- build,
21208
21231
  fetchStaticState,
21209
21232
  hydrateStaticState,
21210
21233
  setNavigatorContextProvider