react-instantsearch 7.13.8 → 7.13.9

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.
@@ -7,7 +7,7 @@
7
7
 
8
8
  var React__default = 'default' in React ? React['default'] : React;
9
9
 
10
- var version = '7.13.8';
10
+ var version = '7.13.9';
11
11
 
12
12
  // Copyright Joyent, Inc. and other Node contributors.
13
13
  //
@@ -1176,7 +1176,7 @@
1176
1176
 
1177
1177
  mod[attribute] = facetRefinement;
1178
1178
 
1179
- return defaultsPure({}, mod, refinementList);
1179
+ return defaultsPure(mod, refinementList);
1180
1180
  },
1181
1181
  /**
1182
1182
  * Removes refinement(s) for an attribute:
@@ -2510,7 +2510,6 @@
2510
2510
 
2511
2511
  return this.setQueryParameters({
2512
2512
  hierarchicalFacetsRefinements: defaultsPure(
2513
- {},
2514
2513
  mod,
2515
2514
  this.hierarchicalFacetsRefinements
2516
2515
  ),
@@ -2538,7 +2537,6 @@
2538
2537
  mod[facet] = [path];
2539
2538
  return this.setQueryParameters({
2540
2539
  hierarchicalFacetsRefinements: defaultsPure(
2541
- {},
2542
2540
  mod,
2543
2541
  this.hierarchicalFacetsRefinements
2544
2542
  ),
@@ -2559,7 +2557,6 @@
2559
2557
  mod[facet] = [];
2560
2558
  return this.setQueryParameters({
2561
2559
  hierarchicalFacetsRefinements: defaultsPure(
2562
- {},
2563
2560
  mod,
2564
2561
  this.hierarchicalFacetsRefinements
2565
2562
  ),
@@ -3557,12 +3554,9 @@
3557
3554
  });
3558
3555
 
3559
3556
  // Make every key of the result options reachable from the instance
3560
- var opts = merge_1(
3561
- {
3562
- persistHierarchicalRootCount: false,
3563
- },
3564
- options
3565
- );
3557
+ var opts = defaultsPure(options, {
3558
+ persistHierarchicalRootCount: false,
3559
+ });
3566
3560
  Object.keys(opts).forEach(function (key) {
3567
3561
  self[key] = opts[key];
3568
3562
  });
@@ -3829,11 +3823,16 @@
3829
3823
  return;
3830
3824
  }
3831
3825
 
3832
- self.hierarchicalFacets[position][attributeIndex].data = merge_1(
3833
- {},
3834
- self.hierarchicalFacets[position][attributeIndex].data,
3835
- facetResults
3836
- );
3826
+ self.hierarchicalFacets[position][attributeIndex].data =
3827
+ self.persistHierarchicalRootCount
3828
+ ? defaultsPure(
3829
+ self.hierarchicalFacets[position][attributeIndex].data,
3830
+ facetResults
3831
+ )
3832
+ : defaultsPure(
3833
+ facetResults,
3834
+ self.hierarchicalFacets[position][attributeIndex].data
3835
+ );
3837
3836
  } else {
3838
3837
  position = disjunctiveFacetsIndices[dfacet];
3839
3838
 
@@ -3842,7 +3841,7 @@
3842
3841
 
3843
3842
  self.disjunctiveFacets[position] = {
3844
3843
  name: dfacet,
3845
- data: defaultsPure({}, facetResults, dataFromMainRequest),
3844
+ data: defaultsPure(dataFromMainRequest, facetResults),
3846
3845
  exhaustive: result.exhaustiveFacetsCount,
3847
3846
  };
3848
3847
  assignFacetStats(
@@ -4240,7 +4239,7 @@
4240
4239
  return undefined;
4241
4240
  }
4242
4241
 
4243
- var options = defaultsPure({}, opts, {
4242
+ var options = defaultsPure(opts, {
4244
4243
  sortBy: SearchResults.DEFAULT_SORT,
4245
4244
  // if no sortBy is given, attempt to sort based on facetOrdering
4246
4245
  // if it is given, we still allow to sort via facet ordering first
@@ -4531,7 +4530,7 @@
4531
4530
 
4532
4531
  var sortAndMergeRecommendations_1 = sortAndMergeRecommendations;
4533
4532
 
4534
- var version$1 = '3.22.5';
4533
+ var version$1 = '3.22.6';
4535
4534
 
4536
4535
  var escapeFacetValue$3 = escapeFacetValue_1.escapeFacetValue;
4537
4536
 
@@ -7902,8 +7901,9 @@
7902
7901
  }
7903
7902
  return res;
7904
7903
  }
7905
- function getRefinements(results, state) {
7904
+ function getRefinements(_results, state) {
7906
7905
  var includesQuery = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7906
+ var results = _results || {};
7907
7907
  var refinements = [];
7908
7908
  var _state$facetsRefineme = state.facetsRefinements,
7909
7909
  facetsRefinements = _state$facetsRefineme === void 0 ? {} : _state$facetsRefineme,
@@ -10184,7 +10184,6 @@
10184
10184
  // TODO: emit "change" event when events for Recommend are implemented
10185
10185
  }
10186
10186
  }
10187
-
10188
10187
  function getLocalWidgetsUiState(widgets, widgetStateOptions) {
10189
10188
  var initialUiState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
10190
10189
  return widgets.reduce(function (uiState, widget) {
@@ -11205,7 +11204,6 @@
11205
11204
  $$internal = _props$$$internal === void 0 ? false : _props$$$internal,
11206
11205
  _props$$$automatic = props.$$automatic,
11207
11206
  $$automatic = _props$$$automatic === void 0 ? false : _props$$$automatic;
11208
- var currentTokenType;
11209
11207
  var potentialInsightsClient = _insightsClient;
11210
11208
  if (!_insightsClient && _insightsClient !== null) {
11211
11209
  safelyRunOnBrowser(function (_ref) {
@@ -11251,9 +11249,7 @@
11251
11249
  apiKey = _getAppIdAndApiKey2[1];
11252
11250
  var queuedInitParams = undefined;
11253
11251
  var queuedUserToken = undefined;
11254
- var queuedAuthenticatedUserToken = undefined;
11255
11252
  var userTokenBeforeInit = undefined;
11256
- var authenticatedUserTokenBeforeInit = undefined;
11257
11253
  var queue = insightsClient.queue;
11258
11254
  if (Array.isArray(queue)) {
11259
11255
  // Context: The umd build of search-insights is asynchronously loaded by the snippet.
@@ -11266,7 +11262,7 @@
11266
11262
  // At this point, even though `search-insights` is not loaded yet,
11267
11263
  // we still want to read the token from the queue.
11268
11264
  // Otherwise, the first search call will be fired without the token.
11269
- var _map = ['setUserToken', 'setAuthenticatedUserToken', 'init'].map(function (key) {
11265
+ var _map = ['setUserToken', 'init'].map(function (key) {
11270
11266
  var _ref3 = find$1(queue.slice().reverse(), function (_ref5) {
11271
11267
  var _ref6 = _slicedToArray$7(_ref5, 1),
11272
11268
  method = _ref6[0];
@@ -11276,23 +11272,18 @@
11276
11272
  value = _ref4[1];
11277
11273
  return value;
11278
11274
  });
11279
- var _map2 = _slicedToArray$7(_map, 3);
11275
+ var _map2 = _slicedToArray$7(_map, 2);
11280
11276
  queuedUserToken = _map2[0];
11281
- queuedAuthenticatedUserToken = _map2[1];
11282
- queuedInitParams = _map2[2];
11277
+ queuedInitParams = _map2[1];
11283
11278
  }
11284
11279
 
11285
- // If user called `aa('setUserToken')` or `aa('setAuthenticatedUserToken')`
11286
- // before creating the Insights middleware, we temporarily store the token
11287
- // and set it later on.
11280
+ // If user called `aa('setUserToken')` before creating the Insights middleware,
11281
+ // we temporarily store the token and set it later on.
11288
11282
  //
11289
11283
  // Otherwise, the `init` call might override them with anonymous user token.
11290
11284
  insightsClient('getUserToken', null, function (_error, userToken) {
11291
11285
  userTokenBeforeInit = normalizeUserToken(userToken);
11292
11286
  });
11293
- insightsClient('getAuthenticatedUserToken', null, function (_error, userToken) {
11294
- authenticatedUserTokenBeforeInit = normalizeUserToken(userToken);
11295
- });
11296
11287
 
11297
11288
  // Only `init` if the `insightsInitParams` option is passed or
11298
11289
  // if the `insightsClient` version doesn't supports optional `init` calling.
@@ -11332,7 +11323,7 @@
11332
11323
  helper = instantSearchInstance.mainHelper;
11333
11324
  var queueAtStart = insightsClient.queue;
11334
11325
  if (Array.isArray(queueAtStart)) {
11335
- var _map3 = ['setUserToken', 'setAuthenticatedUserToken', 'init'].map(function (key) {
11326
+ var _map3 = ['setUserToken', 'init'].map(function (key) {
11336
11327
  var _ref7 = find$1(queueAtStart.slice().reverse(), function (_ref9) {
11337
11328
  var _ref10 = _slicedToArray$7(_ref9, 1),
11338
11329
  method = _ref10[0];
@@ -11342,15 +11333,11 @@
11342
11333
  value = _ref8[1];
11343
11334
  return value;
11344
11335
  });
11345
- var _map4 = _slicedToArray$7(_map3, 3);
11336
+ var _map4 = _slicedToArray$7(_map3, 2);
11346
11337
  queuedUserToken = _map4[0];
11347
- queuedAuthenticatedUserToken = _map4[1];
11348
- queuedInitParams = _map4[2];
11338
+ queuedInitParams = _map4[1];
11349
11339
  }
11350
- initialParameters = {
11351
- userToken: helper.state.userToken,
11352
- clickAnalytics: helper.state.clickAnalytics
11353
- };
11340
+ initialParameters = getInitialParameters(instantSearchInstance);
11354
11341
 
11355
11342
  // We don't want to force clickAnalytics when the insights is enabled from the search response.
11356
11343
  // This means we don't enable insights for indices that don't opt in
@@ -11362,9 +11349,8 @@
11362
11349
  if (!$$internal) {
11363
11350
  instantSearchInstance.scheduleSearch();
11364
11351
  }
11365
- var setUserTokenToSearch = function setUserTokenToSearch(userToken, tokenType) {
11366
- var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
11367
- var unsetAuthenticatedUserToken = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
11352
+ var setUserTokenToSearch = function setUserTokenToSearch(userToken) {
11353
+ var immediate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
11368
11354
  var normalizedUserToken = normalizeUserToken(userToken);
11369
11355
  if (!normalizedUserToken) {
11370
11356
  return;
@@ -11377,13 +11363,6 @@
11377
11363
  if (existingToken && existingToken !== userToken) {
11378
11364
  instantSearchInstance.scheduleSearch();
11379
11365
  }
11380
- currentTokenType = tokenType;
11381
- }
11382
-
11383
- // the authenticated user token cannot be overridden by a user or anonymous token
11384
- // for instant search query requests
11385
- if (currentTokenType && currentTokenType === 'authenticated' && tokenType === 'default' && !unsetAuthenticatedUserToken) {
11386
- return;
11387
11366
  }
11388
11367
 
11389
11368
  // Delay the token application to the next render cycle
@@ -11393,14 +11372,9 @@
11393
11372
  applyToken();
11394
11373
  }
11395
11374
  };
11396
- function setUserToken(token, userToken, authenticatedUserToken) {
11397
- setUserTokenToSearch(token, authenticatedUserToken ? 'authenticated' : 'default', true);
11398
- if (userToken) {
11399
- insightsClient('setUserToken', userToken);
11400
- }
11401
- if (authenticatedUserToken) {
11402
- insightsClient('setAuthenticatedUserToken', authenticatedUserToken);
11403
- }
11375
+ function setUserToken(token) {
11376
+ setUserTokenToSearch(token, true);
11377
+ insightsClient('setUserToken', token);
11404
11378
  }
11405
11379
  var anonymousUserToken = undefined;
11406
11380
  var anonymousTokenFromInsights = getInsightsAnonymousUserTokenInternal();
@@ -11414,7 +11388,6 @@
11414
11388
  var token = "anonymous-".concat(createUUID());
11415
11389
  anonymousUserToken = token;
11416
11390
  }
11417
- var authenticatedUserTokenFromInit;
11418
11391
  var userTokenFromInit;
11419
11392
 
11420
11393
  // With SSR, the token could be be set on the state. We make sure
@@ -11422,36 +11395,25 @@
11422
11395
  // insights lib on the server.
11423
11396
  var tokenFromSearchParameters = initialParameters.userToken;
11424
11397
 
11425
- // When the first query is sent, the token is possibly not yet be set by
11398
+ // When the first query is sent, the token is possibly not yet set by
11426
11399
  // the insights onChange callbacks (if insights isn't yet loaded).
11427
11400
  // It is explicitly being set here so that the first query has the
11428
11401
  // initial tokens set and ensure a second query isn't automatically
11429
11402
  // made when the onChange callback actually changes the state.
11430
- if (insightsInitParams) {
11431
- if (insightsInitParams.authenticatedUserToken) {
11432
- authenticatedUserTokenFromInit = insightsInitParams.authenticatedUserToken;
11433
- } else if (insightsInitParams.userToken) {
11434
- userTokenFromInit = insightsInitParams.userToken;
11435
- }
11403
+ if (insightsInitParams !== null && insightsInitParams !== void 0 && insightsInitParams.userToken) {
11404
+ userTokenFromInit = insightsInitParams.userToken;
11436
11405
  }
11437
-
11438
- // We consider the `userToken` or `authenticatedUserToken` before an
11439
- // `init` call of higher importance than one from the queue and ones set
11440
- // from the init props to be higher than that.
11441
- var tokenFromInit = authenticatedUserTokenFromInit || userTokenFromInit;
11442
- var tokenBeforeInit = authenticatedUserTokenBeforeInit || userTokenBeforeInit;
11443
- var tokenFromQueue = queuedAuthenticatedUserToken || queuedUserToken;
11444
- if (tokenFromInit) {
11445
- setUserToken(tokenFromInit, userTokenFromInit, authenticatedUserTokenFromInit);
11406
+ if (userTokenFromInit) {
11407
+ setUserToken(userTokenFromInit);
11446
11408
  } else if (tokenFromSearchParameters) {
11447
- setUserToken(tokenFromSearchParameters, tokenFromSearchParameters, undefined);
11448
- } else if (tokenBeforeInit) {
11449
- setUserToken(tokenBeforeInit, userTokenBeforeInit, authenticatedUserTokenBeforeInit);
11450
- } else if (tokenFromQueue) {
11451
- setUserToken(tokenFromQueue, queuedUserToken, queuedAuthenticatedUserToken);
11409
+ setUserToken(tokenFromSearchParameters);
11410
+ } else if (userTokenBeforeInit) {
11411
+ setUserToken(userTokenBeforeInit);
11412
+ } else if (queuedUserToken) {
11413
+ setUserToken(queuedUserToken);
11452
11414
  } else if (anonymousUserToken) {
11453
11415
  var _queuedInitParams;
11454
- setUserToken(anonymousUserToken, anonymousUserToken, undefined);
11416
+ setUserToken(anonymousUserToken);
11455
11417
  if (insightsInitParams !== null && insightsInitParams !== void 0 && insightsInitParams.useCookie || (_queuedInitParams = queuedInitParams) !== null && _queuedInitParams !== void 0 && _queuedInitParams.useCookie) {
11456
11418
  var _queuedInitParams2;
11457
11419
  saveTokenAsCookie(anonymousUserToken, (insightsInitParams === null || insightsInitParams === void 0 ? void 0 : insightsInitParams.cookieDuration) || ((_queuedInitParams2 = queuedInitParams) === null || _queuedInitParams2 === void 0 ? void 0 : _queuedInitParams2.cookieDuration));
@@ -11460,20 +11422,7 @@
11460
11422
 
11461
11423
  // This updates userToken which is set explicitly by `aa('setUserToken', userToken)`
11462
11424
  insightsClient('onUserTokenChange', function (token) {
11463
- return setUserTokenToSearch(token, 'default', true);
11464
- }, {
11465
- immediate: true
11466
- });
11467
-
11468
- // This updates userToken which is set explicitly by `aa('setAuthenticatedtUserToken', authenticatedUserToken)`
11469
- insightsClient('onAuthenticatedUserTokenChange', function (authenticatedUserToken) {
11470
- // If we're unsetting the `authenticatedUserToken`, we revert to the `userToken`
11471
- if (!authenticatedUserToken) {
11472
- insightsClient('getUserToken', null, function (_, userToken) {
11473
- setUserTokenToSearch(userToken, 'default', true, true);
11474
- });
11475
- }
11476
- setUserTokenToSearch(authenticatedUserToken, 'authenticated', true);
11425
+ return setUserTokenToSearch(token, true);
11477
11426
  }, {
11478
11427
  immediate: true
11479
11428
  });
@@ -11495,7 +11444,7 @@
11495
11444
  var lastQueryId;
11496
11445
  instantSearchInstance.mainHelper.derivedHelpers[0].on('result', function (_ref11) {
11497
11446
  var results = _ref11.results;
11498
- if (!results.queryID || results.queryID !== lastQueryId) {
11447
+ if (results && (!results.queryID || results.queryID !== lastQueryId)) {
11499
11448
  lastQueryId = results.queryID;
11500
11449
  viewedObjectIDs.clear();
11501
11450
  }
@@ -11532,7 +11481,6 @@
11532
11481
  },
11533
11482
  unsubscribe: function unsubscribe() {
11534
11483
  insightsClient('onUserTokenChange', undefined);
11535
- insightsClient('onAuthenticatedUserTokenChange', undefined);
11536
11484
  instantSearchInstance.sendEventToInsights = noop$1;
11537
11485
  if (helper && initialParameters) {
11538
11486
  helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread$g(_objectSpread$g({}, helper.state), initialParameters));
@@ -11542,6 +11490,16 @@
11542
11490
  };
11543
11491
  };
11544
11492
  }
11493
+ function getInitialParameters(instantSearchInstance) {
11494
+ var _instantSearchInstanc, _instantSearchInstanc2;
11495
+ // in SSR, the initial state we use in this domain is set on the main index
11496
+ var stateFromInitialResults = ((_instantSearchInstanc = instantSearchInstance._initialResults) === null || _instantSearchInstanc === void 0 ? void 0 : (_instantSearchInstanc2 = _instantSearchInstanc[instantSearchInstance.indexName]) === null || _instantSearchInstanc2 === void 0 ? void 0 : _instantSearchInstanc2.state) || {};
11497
+ var stateFromHelper = instantSearchInstance.mainHelper.state;
11498
+ return {
11499
+ userToken: stateFromInitialResults.userToken || stateFromHelper.userToken,
11500
+ clickAnalytics: stateFromInitialResults.clickAnalytics || stateFromHelper.clickAnalytics
11501
+ };
11502
+ }
11545
11503
  function saveTokenAsCookie(token, cookieDuration) {
11546
11504
  var MONTH = 30 * 24 * 60 * 60 * 1000;
11547
11505
  var d = new Date();
@@ -13207,7 +13165,7 @@
13207
13165
  };
13208
13166
  }
13209
13167
 
13210
- var version$3 = '4.75.5';
13168
+ var version$3 = '4.75.6';
13211
13169
 
13212
13170
  function _typeof$q(obj) {
13213
13171
  "@babel/helpers - typeof";
@@ -13367,9 +13325,11 @@
13367
13325
  // this purposely breaks typescript's type inference to ensure it's not used
13368
13326
  // as it's used for a default parameter for example
13369
13327
  // source: https://github.com/Microsoft/TypeScript/issues/14829#issuecomment-504042546
13328
+
13370
13329
  /**
13371
13330
  * Global options for an InstantSearch instance.
13372
13331
  */
13332
+
13373
13333
  var INSTANTSEARCH_FUTURE_DEFAULTS = {
13374
13334
  preserveSharedStateOnUnmount: false,
13375
13335
  persistHierarchicalRootCount: false
@@ -14130,7 +14090,6 @@
14130
14090
  // manually inject the routing middleware in this library, and not rely
14131
14091
  // on the provided `routing` prop.
14132
14092
  }
14133
-
14134
14093
  var cleanupTimerRef = React.useRef(null);
14135
14094
  var store = shim_1(React.useCallback(function () {
14136
14095
  var search = searchRef.current;
@@ -14984,7 +14943,7 @@
14984
14943
  function getItems() {
14985
14944
  if (!results) {
14986
14945
  return transformItems(getRefinementsItems({
14987
- results: {},
14946
+ results: null,
14988
14947
  helper: helper,
14989
14948
  indexId: helper.state.index,
14990
14949
  includedAttributes: includedAttributes,
@@ -16606,7 +16565,7 @@
16606
16565
  sendEvent: sendEvent,
16607
16566
  bindEvent: bindEvent,
16608
16567
  banner: banner,
16609
- results: results,
16568
+ results: results || undefined,
16610
16569
  showPrevious: showPrevious,
16611
16570
  showMore: showMore,
16612
16571
  isFirstPage: isFirstPage,
@@ -20390,12 +20349,15 @@
20390
20349
  var searchResults = widget.getResults();
20391
20350
  var recommendResults = (_widget$getHelper = widget.getHelper()) === null || _widget$getHelper === void 0 ? void 0 : _widget$getHelper.lastRecommendResults;
20392
20351
  if (searchResults || recommendResults) {
20393
- var _searchResults$_rawRe;
20352
+ var _searchResults$_rawRe, _requestParams$, _requestParams$2;
20394
20353
  var resultsCount = (searchResults === null || searchResults === void 0 ? void 0 : (_searchResults$_rawRe = searchResults._rawResults) === null || _searchResults$_rawRe === void 0 ? void 0 : _searchResults$_rawRe.length) || 0;
20395
20354
  var requestParams = resultsCount ? requestParamsList === null || requestParamsList === void 0 ? void 0 : requestParamsList.slice(requestParamsIndex, requestParamsIndex + resultsCount) : [];
20396
20355
  requestParamsIndex += resultsCount;
20397
20356
  initialResults[widget.getIndexId()] = _objectSpread$J(_objectSpread$J(_objectSpread$J({}, searchResults && {
20398
- state: _objectSpread$J({}, searchResults._state),
20357
+ state: _objectSpread$J(_objectSpread$J({}, searchResults._state), {}, {
20358
+ clickAnalytics: requestParams === null || requestParams === void 0 ? void 0 : (_requestParams$ = requestParams[0]) === null || _requestParams$ === void 0 ? void 0 : _requestParams$.clickAnalytics,
20359
+ userToken: requestParams === null || requestParams === void 0 ? void 0 : (_requestParams$2 = requestParams[0]) === null || _requestParams$2 === void 0 ? void 0 : _requestParams$2.userToken
20360
+ }),
20399
20361
  results: searchResults._rawResults
20400
20362
  }), recommendResults && {
20401
20363
  recommendResults: {
@@ -20470,7 +20432,7 @@
20470
20432
  searchRef = _ref3.searchRef,
20471
20433
  skipRecommend = _ref3.skipRecommend;
20472
20434
  return Promise.resolve().then(function () {
20473
- renderToString( /*#__PURE__*/React__default.createElement(InstantSearchServerContext.Provider, {
20435
+ renderToString(/*#__PURE__*/React__default.createElement(InstantSearchServerContext.Provider, {
20474
20436
  value: {
20475
20437
  notifyServer: notifyServer
20476
20438
  }