instantsearch.js 4.38.0 → 4.39.1

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 (30) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/cjs/connectors/hits/connectHits.js +1 -1
  3. package/cjs/connectors/infinite-hits/connectInfiniteHits.js +3 -2
  4. package/cjs/lib/routers/history.js +44 -29
  5. package/cjs/lib/version.js +1 -1
  6. package/cjs/middlewares/createMetadataMiddleware.js +3 -1
  7. package/dist/instantsearch.development.d.ts +51 -36
  8. package/dist/instantsearch.development.js +53 -35
  9. package/dist/instantsearch.development.js.map +1 -1
  10. package/dist/instantsearch.production.d.ts +51 -36
  11. package/dist/instantsearch.production.min.d.ts +51 -36
  12. package/dist/instantsearch.production.min.js +2 -2
  13. package/dist/instantsearch.production.min.js.map +1 -1
  14. package/es/components/ToggleRefinement/ToggleRefinement.d.ts +3 -0
  15. package/es/components/ToggleRefinement/ToggleRefinement.js +4 -0
  16. package/es/connectors/hits/connectHits.d.ts +10 -10
  17. package/es/connectors/hits/connectHits.js +1 -1
  18. package/es/connectors/hits/connectHitsWithInsights.d.ts +1 -1
  19. package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +21 -21
  20. package/es/connectors/infinite-hits/connectInfiniteHits.js +3 -2
  21. package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.d.ts +1 -1
  22. package/es/lib/routers/history.d.ts +11 -0
  23. package/es/lib/routers/history.js +44 -29
  24. package/es/lib/utils/createSendEventForHits.d.ts +3 -0
  25. package/es/lib/utils/createSendEventForHits.js +3 -0
  26. package/es/lib/version.d.ts +1 -1
  27. package/es/lib/version.js +1 -1
  28. package/es/middlewares/createMetadataMiddleware.js +3 -1
  29. package/es/types/results.d.ts +8 -5
  30. package/package.json +4 -4
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
1
4
  /** @jsx h */
2
5
  import { h } from 'preact';
3
6
  import type { ToggleRefinementRenderState, ToggleRefinementValue } from '../../connectors/toggle-refinement/connectToggleRefinement';
@@ -1,5 +1,9 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
+ /**
4
+ * @jest-environment jsdom
5
+ */
6
+
3
7
  /** @jsx h */
4
8
  import { h } from 'preact';
5
9
  import Template from "../Template/Template.js";
@@ -1,15 +1,15 @@
1
1
  import type { SendEventForHits, BindEventForHits } from '../../lib/utils';
2
- import type { TransformItems, Connector, Hits, Hit, WidgetRenderState } from '../../types';
2
+ import type { TransformItems, Connector, Hit, WidgetRenderState, BaseHit } from '../../types';
3
3
  import type { SearchResults } from 'algoliasearch-helper';
4
- export declare type HitsRenderState = {
4
+ export declare type HitsRenderState<THit extends BaseHit = BaseHit> = {
5
5
  /**
6
6
  * The matched hits from Algolia API.
7
7
  */
8
- hits: Hits;
8
+ hits: Array<Hit<THit>>;
9
9
  /**
10
10
  * The response from the Algolia API.
11
11
  */
12
- results?: SearchResults<Hit>;
12
+ results?: SearchResults<Hit<THit>>;
13
13
  /**
14
14
  * Sends an event to the Insights middleware.
15
15
  */
@@ -19,7 +19,7 @@ export declare type HitsRenderState = {
19
19
  */
20
20
  bindEvent: BindEventForHits;
21
21
  };
22
- export declare type HitsConnectorParams = {
22
+ export declare type HitsConnectorParams<THit extends BaseHit = BaseHit> = {
23
23
  /**
24
24
  * Whether to escape HTML tags from hits string values.
25
25
  *
@@ -29,15 +29,15 @@ export declare type HitsConnectorParams = {
29
29
  /**
30
30
  * Function to transform the items passed to the templates.
31
31
  */
32
- transformItems?: TransformItems<Hit>;
32
+ transformItems?: TransformItems<Hit<THit>>;
33
33
  };
34
- export declare type HitsWidgetDescription = {
34
+ export declare type HitsWidgetDescription<THit extends BaseHit = BaseHit> = {
35
35
  $$type: 'ais.hits';
36
- renderState: HitsRenderState;
36
+ renderState: HitsRenderState<THit>;
37
37
  indexRenderState: {
38
- hits: WidgetRenderState<HitsRenderState, HitsConnectorParams>;
38
+ hits: WidgetRenderState<HitsRenderState<THit>, HitsConnectorParams<THit>>;
39
39
  };
40
40
  };
41
- export declare type HitsConnector = Connector<HitsWidgetDescription, HitsConnectorParams>;
41
+ export declare type HitsConnector<THit extends BaseHit = BaseHit> = Connector<HitsWidgetDescription<THit>, HitsConnectorParams<THit>>;
42
42
  declare const connectHits: HitsConnector;
43
43
  export default connectHits;
@@ -33,10 +33,10 @@ var connectHits = function connectHits(renderFn) {
33
33
  },
34
34
  render: function render(renderOptions) {
35
35
  var renderState = this.getWidgetRenderState(renderOptions);
36
- renderState.sendEvent('view', renderState.hits);
37
36
  renderFn(_objectSpread(_objectSpread({}, renderState), {}, {
38
37
  instantSearchInstance: renderOptions.instantSearchInstance
39
38
  }), false);
39
+ renderState.sendEvent('view', renderState.hits);
40
40
  },
41
41
  getRenderState: function getRenderState(renderState, renderOptions) {
42
42
  return _objectSpread(_objectSpread({}, renderState), {}, {
@@ -1,2 +1,2 @@
1
- declare const connectHitsWithInsights: import("./connectHits").HitsConnector;
1
+ declare const connectHitsWithInsights: import("./connectHits").HitsConnector<import("../../types").BaseHit>;
2
2
  export default connectHitsWithInsights;
@@ -1,21 +1,21 @@
1
1
  import type { PlainSearchParameters, SearchResults } from 'algoliasearch-helper';
2
- import type { Hits, Connector, TransformItems, Hit, WidgetRenderState } from '../../types';
2
+ import type { Connector, TransformItems, Hit, WidgetRenderState, BaseHit } from '../../types';
3
3
  import type { SendEventForHits, BindEventForHits } from '../../lib/utils';
4
- export declare type InfiniteHitsCachedHits = {
5
- [page: number]: Hits;
4
+ export declare type InfiniteHitsCachedHits<THit extends BaseHit> = {
5
+ [page: number]: Array<Hit<THit>>;
6
6
  };
7
- declare type Read = ({ state, }: {
7
+ declare type Read<THit extends BaseHit> = ({ state, }: {
8
8
  state: PlainSearchParameters;
9
- }) => InfiniteHitsCachedHits | null;
10
- declare type Write = ({ state, hits, }: {
9
+ }) => InfiniteHitsCachedHits<THit> | null;
10
+ declare type Write<THit extends BaseHit> = ({ state, hits, }: {
11
11
  state: PlainSearchParameters;
12
- hits: InfiniteHitsCachedHits;
12
+ hits: InfiniteHitsCachedHits<THit>;
13
13
  }) => void;
14
- export declare type InfiniteHitsCache = {
15
- read: Read;
16
- write: Write;
14
+ export declare type InfiniteHitsCache<THit extends BaseHit = BaseHit> = {
15
+ read: Read<THit>;
16
+ write: Write<THit>;
17
17
  };
18
- export declare type InfiniteHitsConnectorParams = {
18
+ export declare type InfiniteHitsConnectorParams<THit extends BaseHit = BaseHit> = {
19
19
  /**
20
20
  * Escapes HTML entities from hits string values.
21
21
  *
@@ -32,15 +32,15 @@ export declare type InfiniteHitsConnectorParams = {
32
32
  * Receives the items, and is called before displaying them.
33
33
  * Useful for mapping over the items to transform, and remove or reorder them.
34
34
  */
35
- transformItems?: TransformItems<Hit>;
35
+ transformItems?: TransformItems<Hit<THit>>;
36
36
  /**
37
37
  * Reads and writes hits from/to cache.
38
38
  * When user comes back to the search page after leaving for product page,
39
39
  * this helps restore InfiniteHits and its scroll position.
40
40
  */
41
- cache?: InfiniteHitsCache;
41
+ cache?: InfiniteHitsCache<THit>;
42
42
  };
43
- export declare type InfiniteHitsRenderState = {
43
+ export declare type InfiniteHitsRenderState<THit extends BaseHit = BaseHit> = {
44
44
  /**
45
45
  * Loads the previous results.
46
46
  */
@@ -68,26 +68,26 @@ export declare type InfiniteHitsRenderState = {
68
68
  /**
69
69
  * Hits for the current page
70
70
  */
71
- currentPageHits: Hits;
71
+ currentPageHits: Array<Hit<THit>>;
72
72
  /**
73
73
  * Hits for current and cached pages
74
74
  */
75
- hits: Hits;
75
+ hits: Array<Hit<THit>>;
76
76
  /**
77
77
  * The response from the Algolia API.
78
78
  */
79
- results?: SearchResults<Hit>;
79
+ results?: SearchResults<Hit<THit>>;
80
80
  };
81
- export declare type InfiniteHitsWidgetDescription = {
81
+ export declare type InfiniteHitsWidgetDescription<THit extends BaseHit = BaseHit> = {
82
82
  $$type: 'ais.infiniteHits';
83
- renderState: InfiniteHitsRenderState;
83
+ renderState: InfiniteHitsRenderState<THit>;
84
84
  indexRenderState: {
85
- infiniteHits: WidgetRenderState<InfiniteHitsRenderState, InfiniteHitsConnectorParams>;
85
+ infiniteHits: WidgetRenderState<InfiniteHitsRenderState<THit>, InfiniteHitsConnectorParams<THit>>;
86
86
  };
87
87
  indexUiState: {
88
88
  page: number;
89
89
  };
90
90
  };
91
- export declare type InfiniteHitsConnector = Connector<InfiniteHitsWidgetDescription, InfiniteHitsConnectorParams>;
91
+ export declare type InfiniteHitsConnector<THit extends BaseHit = BaseHit> = Connector<InfiniteHitsWidgetDescription<THit>, InfiniteHitsConnectorParams<THit>>;
92
92
  declare const connectInfiniteHits: InfiniteHitsConnector;
93
93
  export default connectInfiniteHits;
@@ -61,7 +61,8 @@ function extractHitsFromCachedHits(cachedHits) {
61
61
 
62
62
  var connectInfiniteHits = function connectInfiniteHits(renderFn) {
63
63
  var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
64
- checkRendering(renderFn, withUsage());
64
+ checkRendering(renderFn, withUsage()); // @TODO: this should be a generic, but a Connector can not yet be generic itself
65
+
65
66
  return function (widgetParams) {
66
67
  var _ref4 = widgetParams || {},
67
68
  _ref4$escapeHTML = _ref4.escapeHTML,
@@ -132,10 +133,10 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
132
133
  render: function render(renderOptions) {
133
134
  var instantSearchInstance = renderOptions.instantSearchInstance;
134
135
  var widgetRenderState = this.getWidgetRenderState(renderOptions);
135
- sendEvent('view', widgetRenderState.currentPageHits);
136
136
  renderFn(_objectSpread(_objectSpread({}, widgetRenderState), {}, {
137
137
  instantSearchInstance: instantSearchInstance
138
138
  }), false);
139
+ sendEvent('view', widgetRenderState.currentPageHits);
139
140
  },
140
141
  getRenderState: function getRenderState(renderState, renderOptions) {
141
142
  return _objectSpread(_objectSpread({}, renderState), {}, {
@@ -1,2 +1,2 @@
1
- declare const connectInfiniteHitsWithInsights: import("./connectInfiniteHits").InfiniteHitsConnector;
1
+ declare const connectInfiniteHitsWithInsights: import("./connectInfiniteHits").InfiniteHitsConnector<import("../../types").BaseHit>;
2
2
  export default connectInfiniteHitsWithInsights;
@@ -51,6 +51,17 @@ declare class BrowserHistory<TRouteState> implements Router<TRouteState> {
51
51
  * It needs to avoid pushing state to history in case of back/forward in browser
52
52
  */
53
53
  private shouldPushState;
54
+ /**
55
+ * Indicates whether the history router is disposed or not.
56
+ */
57
+ private isDisposed;
58
+ /**
59
+ * Indicates the window.history.length before the last call to
60
+ * window.history.pushState (called in `write`).
61
+ * It allows to determine if a `pushState` has been triggered elsewhere,
62
+ * and thus to prevent the `write` method from calling `pushState`.
63
+ */
64
+ private latestAcknowledgedHistory;
54
65
  /**
55
66
  * Initializes a new storage provider that syncs the search state to the URL
56
67
  * using web APIs (`window.location.pushState` and `onpopstate` event).
@@ -48,16 +48,23 @@ var BrowserHistory = /*#__PURE__*/function () {
48
48
 
49
49
  _defineProperty(this, "shouldPushState", true);
50
50
 
51
+ _defineProperty(this, "isDisposed", false);
52
+
53
+ _defineProperty(this, "latestAcknowledgedHistory", 0);
54
+
51
55
  this.windowTitle = windowTitle;
52
56
  this.writeTimer = undefined;
53
57
  this.writeDelay = writeDelay;
54
58
  this._createURL = createURL;
55
59
  this.parseURL = parseURL;
56
60
  this.getLocation = getLocation;
57
- safelyRunOnBrowser(function () {
61
+ safelyRunOnBrowser(function (_ref2) {
62
+ var window = _ref2.window;
63
+
58
64
  var title = _this.windowTitle && _this.windowTitle(_this.read());
59
65
 
60
66
  setWindowTitle(title);
67
+ _this.latestAcknowledgedHistory = window.history.length;
61
68
  });
62
69
  }
63
70
  /**
@@ -82,8 +89,8 @@ var BrowserHistory = /*#__PURE__*/function () {
82
89
  value: function write(routeState) {
83
90
  var _this2 = this;
84
91
 
85
- safelyRunOnBrowser(function (_ref2) {
86
- var window = _ref2.window;
92
+ safelyRunOnBrowser(function (_ref3) {
93
+ var window = _ref3.window;
87
94
 
88
95
  var url = _this2.createURL(routeState);
89
96
 
@@ -94,10 +101,17 @@ var BrowserHistory = /*#__PURE__*/function () {
94
101
  }
95
102
 
96
103
  _this2.writeTimer = setTimeout(function () {
97
- setWindowTitle(title);
104
+ setWindowTitle(title); // We do want to `pushState` if:
105
+ // - the router is not disposed, IS.js needs to update the URL
106
+ // OR
107
+ // - the last write was from InstantSearch.js
108
+ // (unlike a SPA, where it would have last written)
109
+
110
+ var lastPushWasByISAfterDispose = !_this2.isDisposed || _this2.latestAcknowledgedHistory === window.history.length;
98
111
 
99
- if (_this2.shouldPushState) {
112
+ if (_this2.shouldPushState && lastPushWasByISAfterDispose) {
100
113
  window.history.pushState(routeState, title || '', url);
114
+ _this2.latestAcknowledgedHistory = window.history.length;
101
115
  }
102
116
 
103
117
  _this2.shouldPushState = true;
@@ -133,8 +147,8 @@ var BrowserHistory = /*#__PURE__*/function () {
133
147
  }
134
148
  };
135
149
 
136
- safelyRunOnBrowser(function (_ref3) {
137
- var window = _ref3.window;
150
+ safelyRunOnBrowser(function (_ref4) {
151
+ var window = _ref4.window;
138
152
  window.addEventListener('popstate', _this3._onPopState);
139
153
  });
140
154
  }
@@ -164,8 +178,9 @@ var BrowserHistory = /*#__PURE__*/function () {
164
178
  value: function dispose() {
165
179
  var _this4 = this;
166
180
 
167
- safelyRunOnBrowser(function (_ref4) {
168
- var window = _ref4.window;
181
+ this.isDisposed = true;
182
+ safelyRunOnBrowser(function (_ref5) {
183
+ var window = _ref5.window;
169
184
 
170
185
  if (_this4._onPopState) {
171
186
  window.removeEventListener('popstate', _this4._onPopState);
@@ -184,12 +199,12 @@ var BrowserHistory = /*#__PURE__*/function () {
184
199
  }();
185
200
 
186
201
  export default function historyRouter() {
187
- var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
188
- _ref5$createURL = _ref5.createURL,
189
- createURL = _ref5$createURL === void 0 ? function (_ref6) {
190
- var qsModule = _ref6.qsModule,
191
- routeState = _ref6.routeState,
192
- location = _ref6.location;
202
+ var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
203
+ _ref6$createURL = _ref6.createURL,
204
+ createURL = _ref6$createURL === void 0 ? function (_ref7) {
205
+ var qsModule = _ref7.qsModule,
206
+ routeState = _ref7.routeState,
207
+ location = _ref7.location;
193
208
  var protocol = location.protocol,
194
209
  hostname = location.hostname,
195
210
  _location$port = location.port,
@@ -205,11 +220,11 @@ export default function historyRouter() {
205
220
  }
206
221
 
207
222
  return "".concat(protocol, "//").concat(hostname).concat(portWithPrefix).concat(pathname, "?").concat(queryString).concat(hash);
208
- } : _ref5$createURL,
209
- _ref5$parseURL = _ref5.parseURL,
210
- parseURL = _ref5$parseURL === void 0 ? function (_ref7) {
211
- var qsModule = _ref7.qsModule,
212
- location = _ref7.location;
223
+ } : _ref6$createURL,
224
+ _ref6$parseURL = _ref6.parseURL,
225
+ parseURL = _ref6$parseURL === void 0 ? function (_ref8) {
226
+ var qsModule = _ref8.qsModule,
227
+ location = _ref8.location;
213
228
  // `qs` by default converts arrays with more than 20 items to an object.
214
229
  // We want to avoid this because the data structure manipulated can therefore vary.
215
230
  // Setting the limit to `100` seems a good number because the engine's default is 100
@@ -223,21 +238,21 @@ export default function historyRouter() {
223
238
  return qsModule.parse(location.search.slice(1), {
224
239
  arrayLimit: 99
225
240
  });
226
- } : _ref5$parseURL,
227
- _ref5$writeDelay = _ref5.writeDelay,
228
- writeDelay = _ref5$writeDelay === void 0 ? 400 : _ref5$writeDelay,
229
- windowTitle = _ref5.windowTitle,
230
- _ref5$getLocation = _ref5.getLocation,
231
- getLocation = _ref5$getLocation === void 0 ? function () {
232
- return safelyRunOnBrowser(function (_ref8) {
233
- var window = _ref8.window;
241
+ } : _ref6$parseURL,
242
+ _ref6$writeDelay = _ref6.writeDelay,
243
+ writeDelay = _ref6$writeDelay === void 0 ? 400 : _ref6$writeDelay,
244
+ windowTitle = _ref6.windowTitle,
245
+ _ref6$getLocation = _ref6.getLocation,
246
+ getLocation = _ref6$getLocation === void 0 ? function () {
247
+ return safelyRunOnBrowser(function (_ref9) {
248
+ var window = _ref9.window;
234
249
  return window.location;
235
250
  }, {
236
251
  fallback: function fallback() {
237
252
  throw new Error('You need to provide `getLocation` to the `history` router in environments where `window` does not exist.');
238
253
  }
239
254
  });
240
- } : _ref5$getLocation;
255
+ } : _ref6$getLocation;
241
256
 
242
257
  return new BrowserHistory({
243
258
  createURL: createURL,
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
1
4
  import type { InstantSearch, Hit, Hits } from '../../types';
2
5
  declare type BuiltInSendEventForHits = (eventType: string, hits: Hit | Hits, eventName?: string) => void;
3
6
  declare type CustomSendEventForHits = (customPayload: any) => void;
@@ -1,5 +1,8 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
2
 
3
+ /**
4
+ * @jest-environment jsdom
5
+ */
3
6
  import { serializePayload } from "./serializer.js";
4
7
 
5
8
  function chunk(arr) {
@@ -1,2 +1,2 @@
1
- declare const _default: "4.38.0";
1
+ declare const _default: "4.39.1";
2
2
  export default _default;
package/es/lib/version.js CHANGED
@@ -1 +1 @@
1
- export default '4.38.0';
1
+ export default '4.39.1';
@@ -46,8 +46,10 @@ function extractPayload(widgets, instantSearchInstance, payload) {
46
46
 
47
47
  export function isMetadataEnabled() {
48
48
  return safelyRunOnBrowser(function (_ref) {
49
+ var _window$navigator, _window$navigator$use;
50
+
49
51
  var window = _ref.window;
50
- return window.navigator.userAgent.indexOf('Algolia Crawler') > -1;
52
+ return ((_window$navigator = window.navigator) === null || _window$navigator === void 0 ? void 0 : (_window$navigator$use = _window$navigator.userAgent) === null || _window$navigator$use === void 0 ? void 0 : _window$navigator$use.indexOf('Algolia Crawler')) > -1;
51
53
  }, {
52
54
  fallback: function fallback() {
53
55
  return false;
@@ -16,8 +16,7 @@ export declare type GeoLoc = {
16
16
  lat: number;
17
17
  lng: number;
18
18
  };
19
- export declare type AlgoliaHit = {
20
- [attribute: string]: any;
19
+ export declare type AlgoliaHit<THit extends BaseHit = Record<string, any>> = {
21
20
  objectID: string;
22
21
  _highlightResult?: HitHighlightResult;
23
22
  _snippetResult?: HitSnippetResult;
@@ -40,11 +39,15 @@ export declare type AlgoliaHit = {
40
39
  };
41
40
  _distinctSeqID?: number;
42
41
  _geoLoc?: GeoLoc;
43
- };
44
- export declare type Hit = {
42
+ } & THit;
43
+ export declare type BaseHit = Record<string, unknown>;
44
+ export declare type Hit<THit extends BaseHit = Record<string, any>> = {
45
45
  __position: number;
46
46
  __queryID?: string;
47
- } & AlgoliaHit;
47
+ } & AlgoliaHit<THit>;
48
+ /**
49
+ * @deprecated use Hit[] directly instead
50
+ */
48
51
  export declare type Hits = Hit[];
49
52
  export declare type EscapedHits<THit = Hit> = THit[] & {
50
53
  __escaped: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instantsearch.js",
3
- "version": "4.38.0",
3
+ "version": "4.39.1",
4
4
  "description": "InstantSearch.js is a JavaScript library for building performant and instant search experiences with Algolia.",
5
5
  "homepage": "https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/",
6
6
  "types": "es/index.d.ts",
@@ -39,8 +39,8 @@
39
39
  "test": "jest",
40
40
  "test:watch": "jest --watch --bail",
41
41
  "test:e2e": "yarn test:e2e:local",
42
- "test:e2e:local": "wdio wdio.local.conf.js",
43
- "test:e2e:saucelabs": "wdio wdio.saucelabs.conf.js",
42
+ "test:e2e:local": "wdio scripts/wdio/local.conf.js",
43
+ "test:e2e:saucelabs": "wdio scripts/wdio/saucelabs.conf.js",
44
44
  "test:size": "bundlesize",
45
45
  "test:argos": "argos upload functional-tests/screenshots --token $ARGOS_TOKEN || true",
46
46
  "test:exports": "node test/module/is-es-module.mjs",
@@ -120,7 +120,7 @@
120
120
  "eslint-plugin-prettier": "3.4.0",
121
121
  "eslint-plugin-react": "7.18.0",
122
122
  "eslint-plugin-react-hooks": "2.3.0",
123
- "instantsearch-e2e-tests": "algolia/instantsearch-e2e-tests#1.3.0",
123
+ "instantsearch-e2e-tests": "algolia/instantsearch-e2e-tests#2.0.2",
124
124
  "jest": "27.1.0",
125
125
  "jest-diff": "27.1.0",
126
126
  "jest-environment-jsdom": "27.1.0",