From d9491e155a0157085d11e6ef3a2fb02b19e28985 Mon Sep 17 00:00:00 2001 From: Haroen Viaene Date: Mon, 22 Jan 2024 17:06:19 +0100 Subject: [PATCH 1/4] fix(perf): remove usage of SearchParameters.clearRefinements (#6004) This functions is much slower than individually clearing the specified refinements. In a test with DynamicWidgets + 118 RefinementLists the initial mount goes from 600ms to 350ms in my tests. I've looked around to see if there's good tools for these improvements, to ensure we don't regress, but i couldn't find much (perf is mainly focused on apps). Unfortunately I can't really deprecate the method as we still use it in a non-hot path inside the helper itself to create the right queries in queryBuilder. We'll just have to rely on "seeing other examples" to avoid using parameters.clearRefinements. As widgets can't be mixed across the same attribute, there's no actual risk in this change AFAICT. --- .../numeric-menu/connectNumericMenu.ts | 16 ++++++++-------- .../connectors/rating-menu/connectRatingMenu.ts | 7 ++++--- .../refinement-list/connectRefinementList.ts | 10 ++++++---- .../toggle-refinement/connectToggleRefinement.ts | 4 ++-- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/packages/instantsearch.js/src/connectors/numeric-menu/connectNumericMenu.ts b/packages/instantsearch.js/src/connectors/numeric-menu/connectNumericMenu.ts index d7ded02311..7c931bf9c2 100644 --- a/packages/instantsearch.js/src/connectors/numeric-menu/connectNumericMenu.ts +++ b/packages/instantsearch.js/src/connectors/numeric-menu/connectNumericMenu.ts @@ -214,7 +214,7 @@ const connectNumericMenu: NumericMenuConnector = function connectNumericMenu( dispose({ state }) { unmountFn(); - return state.clearRefinements(attribute); + return state.removeNumericRefinement(attribute); }, getWidgetUiState(uiState, { searchParameters }) { @@ -250,15 +250,15 @@ const connectNumericMenu: NumericMenuConnector = function connectNumericMenu( getWidgetSearchParameters(searchParameters, { uiState }) { const value = uiState.numericMenu && uiState.numericMenu[attribute]; - const withoutRefinements = searchParameters.clearRefinements(attribute); + const withoutRefinements = searchParameters.setQueryParameters({ + numericRefinements: { + ...searchParameters.numericRefinements, + [attribute]: {}, + }, + }); if (!value) { - return withoutRefinements.setQueryParameters({ - numericRefinements: { - ...withoutRefinements.numericRefinements, - [attribute]: {}, - }, - }); + return withoutRefinements; } const isExact = value.indexOf(':') === -1; diff --git a/packages/instantsearch.js/src/connectors/rating-menu/connectRatingMenu.ts b/packages/instantsearch.js/src/connectors/rating-menu/connectRatingMenu.ts index ed2d3855cd..1d7d5c0627 100644 --- a/packages/instantsearch.js/src/connectors/rating-menu/connectRatingMenu.ts +++ b/packages/instantsearch.js/src/connectors/rating-menu/connectRatingMenu.ts @@ -454,9 +454,10 @@ const connectRatingMenu: RatingMenuConnector = function connectRatingMenu( getWidgetSearchParameters(searchParameters, { uiState }) { const value = uiState.ratingMenu && uiState.ratingMenu[attribute]; - const withoutRefinements = searchParameters.clearRefinements(attribute); - const withDisjunctiveFacet = - withoutRefinements.addDisjunctiveFacet(attribute); + const withDisjunctiveFacet = searchParameters + .addDisjunctiveFacet(attribute) + .removeNumericRefinement(attribute) + .removeDisjunctiveFacetRefinement(attribute); if (!value) { return withDisjunctiveFacet.setQueryParameters({ diff --git a/packages/instantsearch.js/src/connectors/refinement-list/connectRefinementList.ts b/packages/instantsearch.js/src/connectors/refinement-list/connectRefinementList.ts index 37d4295806..87c5b15dd6 100644 --- a/packages/instantsearch.js/src/connectors/refinement-list/connectRefinementList.ts +++ b/packages/instantsearch.js/src/connectors/refinement-list/connectRefinementList.ts @@ -517,11 +517,13 @@ As this is not supported, please make sure to only use this attribute with one o const values = uiState.refinementList && uiState.refinementList[attribute]; - const withoutRefinements = - searchParameters.clearRefinements(attribute); const withFacetConfiguration = isDisjunctive - ? withoutRefinements.addDisjunctiveFacet(attribute) - : withoutRefinements.addFacet(attribute); + ? searchParameters + .addDisjunctiveFacet(attribute) + .removeDisjunctiveFacetRefinement(attribute) + : searchParameters + .addFacet(attribute) + .removeFacetRefinement(attribute); const currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0; diff --git a/packages/instantsearch.js/src/connectors/toggle-refinement/connectToggleRefinement.ts b/packages/instantsearch.js/src/connectors/toggle-refinement/connectToggleRefinement.ts index 55d64dfd68..bbc2799fe3 100644 --- a/packages/instantsearch.js/src/connectors/toggle-refinement/connectToggleRefinement.ts +++ b/packages/instantsearch.js/src/connectors/toggle-refinement/connectToggleRefinement.ts @@ -455,8 +455,8 @@ As this is not supported, please make sure to remove this other widget or this T } let withFacetConfiguration = searchParameters - .clearRefinements(attribute) - .addDisjunctiveFacet(attribute); + .addDisjunctiveFacet(attribute) + .removeDisjunctiveFacetRefinement(attribute); const isRefined = Boolean( uiState.toggle && uiState.toggle[attribute] From 31dbf874faa582b930ada59781c56642436ad35c Mon Sep 17 00:00:00 2001 From: Dhaya <154633+dhayab@users.noreply.github.com> Date: Mon, 22 Jan 2024 17:33:05 +0100 Subject: [PATCH 2/4] fix(requestBuilder): sort facet refinements in a non-mutating manner (#6012) introduced in #5764, but wasn't an issue until merge/setQueryParameters doesn't make a new copy constantly of the parameters. Essentially what's going on: - when you build the requests, it's sorting the facet values - this then gets updated in the parameters as well as it's the same object - with this fix, the sorting is done non-mutating (similar to .toSorted) to avoid the sorting of the parameters for cache to have a potential impact on the UI Co-authored-by: Haroen Viaene --- .../algoliasearch-helper/src/requestBuilder.js | 18 ++++++++++++------ .../SearchParameters/search.dataset.js | 3 ++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/algoliasearch-helper/src/requestBuilder.js b/packages/algoliasearch-helper/src/requestBuilder.js index b3fa36b065..8d8c2a8df3 100644 --- a/packages/algoliasearch-helper/src/requestBuilder.js +++ b/packages/algoliasearch-helper/src/requestBuilder.js @@ -277,9 +277,12 @@ var requestBuilder = { .sort() .forEach(function (facetName) { var facetValues = facetsRefinements[facetName] || []; - facetValues.sort().forEach(function (facetValue) { - facetFilters.push(facetName + ':' + facetValue); - }); + facetValues + .slice() + .sort() + .forEach(function (facetValue) { + facetFilters.push(facetName + ':' + facetValue); + }); }); var facetsExcludes = state.facetsExcludes || {}; @@ -302,9 +305,12 @@ var requestBuilder = { } var orFilters = []; - facetValues.sort().forEach(function (facetValue) { - orFilters.push(facetName + ':' + facetValue); - }); + facetValues + .slice() + .sort() + .forEach(function (facetValue) { + orFilters.push(facetName + ':' + facetValue); + }); facetFilters.push(orFilters); }); diff --git a/packages/algoliasearch-helper/test/datasets/SearchParameters/search.dataset.js b/packages/algoliasearch-helper/test/datasets/SearchParameters/search.dataset.js index 92e7bb3393..7ab07b44df 100644 --- a/packages/algoliasearch-helper/test/datasets/SearchParameters/search.dataset.js +++ b/packages/algoliasearch-helper/test/datasets/SearchParameters/search.dataset.js @@ -188,7 +188,8 @@ function getData() { index: 'test_hotels-node', disjunctiveFacets: ['city'], disjunctiveFacetsRefinements: { - city: ['New York', 'Paris'], + // Note: these are in the same order as the refinements above, not sorted + city: ['Paris', 'New York'], }, }); From d1aa720c8e4e1aad2d7b64e385a29b258240c7df Mon Sep 17 00:00:00 2001 From: Haroen Viaene Date: Wed, 17 Jan 2024 12:30:31 +0100 Subject: [PATCH 3/4] fix(perf): improve speed of setQueryParameters inside setQueryParameters (used in many cases), we have _parseNumbers, which is always used with the arguments of setQueryParameters or new SearchParameters TODO: find out why CurrentRefinements > RefinementList changes its order with this change. Not sure yet --- packages/algoliasearch-helper/src/SearchParameters/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/algoliasearch-helper/src/SearchParameters/index.js b/packages/algoliasearch-helper/src/SearchParameters/index.js index 618ff6ed24..87bedb044a 100644 --- a/packages/algoliasearch-helper/src/SearchParameters/index.js +++ b/packages/algoliasearch-helper/src/SearchParameters/index.js @@ -300,7 +300,7 @@ SearchParameters._parseNumbers = function (partialState) { numbers.numericRefinements = numericRefinements; } - return merge({}, partialState, numbers); + return merge(partialState, numbers); }; /** From 3f061b181adf4358629406027eec8f79d2577196 Mon Sep 17 00:00:00 2001 From: "InstantSearch [bot]" <66688561+instantsearch-bot@users.noreply.github.com> Date: Wed, 24 Jan 2024 10:50:25 +0100 Subject: [PATCH 4/4] chore: release (#6017) --- examples/js/calendar-widget/package.json | 4 ++-- examples/js/e-commerce-umd/package.json | 4 ++-- examples/js/e-commerce/package.json | 4 ++-- examples/js/getting-started/package.json | 4 ++-- examples/js/media/package.json | 4 ++-- examples/js/tourism/package.json | 4 ++-- examples/react/default-theme/package.json | 6 +++--- examples/react/e-commerce/package.json | 6 +++--- examples/react/getting-started/package.json | 6 +++--- examples/react/next-app-router/package.json | 8 ++++---- examples/react/next-routing/package.json | 6 +++--- examples/react/next/package.json | 6 +++--- examples/react/react-native/package.json | 6 +++--- examples/react/ssr/package.json | 4 ++-- examples/vue/default-theme/package.json | 6 +++--- examples/vue/e-commerce/package.json | 6 +++--- examples/vue/getting-started/package.json | 6 +++--- examples/vue/media/package.json | 6 +++--- examples/vue/nuxt/package.json | 4 ++-- examples/vue/ssr/package.json | 4 ++-- packages/algoliasearch-helper/CHANGELOG.md | 12 ++++++++++++ packages/algoliasearch-helper/package.json | 2 +- packages/algoliasearch-helper/src/version.js | 2 +- packages/create-instantsearch-app/CHANGELOG.md | 8 ++++++++ packages/create-instantsearch-app/package.json | 4 ++-- packages/instantsearch.js/CHANGELOG.md | 12 ++++++++++++ packages/instantsearch.js/package.json | 10 +++++----- packages/instantsearch.js/src/lib/version.ts | 2 +- packages/react-instantsearch-core/CHANGELOG.md | 11 +++++++++++ packages/react-instantsearch-core/package.json | 6 +++--- packages/react-instantsearch-core/src/version.ts | 2 +- packages/react-instantsearch-nextjs/CHANGELOG.md | 11 +++++++++++ packages/react-instantsearch-nextjs/package.json | 6 +++--- .../react-instantsearch-router-nextjs/CHANGELOG.md | 8 ++++++++ .../react-instantsearch-router-nextjs/package.json | 6 +++--- packages/react-instantsearch/CHANGELOG.md | 8 ++++++++ packages/react-instantsearch/package.json | 6 +++--- packages/vue-instantsearch/CHANGELOG.md | 11 +++++++++++ packages/vue-instantsearch/package.json | 6 +++--- tests/common/package.json | 4 ++-- tests/mocks/package.json | 6 +++--- tests/utils/package.json | 4 ++-- 42 files changed, 166 insertions(+), 85 deletions(-) diff --git a/examples/js/calendar-widget/package.json b/examples/js/calendar-widget/package.json index 478ad83d73..7a14e74900 100644 --- a/examples/js/calendar-widget/package.json +++ b/examples/js/calendar-widget/package.json @@ -1,6 +1,6 @@ { "name": "example-instantsearch-calendar-widget", - "version": "1.0.37", + "version": "1.0.38", "private": true, "scripts": { "start": "BABEL_ENV=parcel parcel index.html --port 3000", @@ -9,7 +9,7 @@ }, "dependencies": { "algoliasearch": "4.14.3", - "instantsearch.js": "4.64.0" + "instantsearch.js": "4.64.1" }, "devDependencies": { "@babel/core": "7.15.5", diff --git a/examples/js/e-commerce-umd/package.json b/examples/js/e-commerce-umd/package.json index b811fe59dc..6af6ac2456 100644 --- a/examples/js/e-commerce-umd/package.json +++ b/examples/js/e-commerce-umd/package.json @@ -1,6 +1,6 @@ { "name": "example-instantsearch-ecommerce-umd", - "version": "1.24.0", + "version": "1.25.0", "private": true, "scripts": { "start": "BABEL_ENV=parcel parcel index.html --port 3000", @@ -10,7 +10,7 @@ "browserslist": "firefox 68, chrome 78, IE 11", "dependencies": { "algoliasearch": "4.14.3", - "instantsearch.js": "4.64.0" + "instantsearch.js": "4.64.1" }, "devDependencies": { "@babel/core": "7.15.5", diff --git a/examples/js/e-commerce/package.json b/examples/js/e-commerce/package.json index e08624fd83..f31f68d4ab 100644 --- a/examples/js/e-commerce/package.json +++ b/examples/js/e-commerce/package.json @@ -1,6 +1,6 @@ { "name": "example-instantsearch-ecommerce", - "version": "1.36.0", + "version": "1.37.0", "private": true, "scripts": { "start": "BABEL_ENV=parcel parcel index.html --port 3000", @@ -10,7 +10,7 @@ "browserslist": "firefox 68, chrome 78, IE 11", "dependencies": { "algoliasearch": "4.14.3", - "instantsearch.js": "4.64.0" + "instantsearch.js": "4.64.1" }, "devDependencies": { "@babel/core": "7.15.5", diff --git a/examples/js/getting-started/package.json b/examples/js/getting-started/package.json index 2665fac1ba..1c9b2088a4 100644 --- a/examples/js/getting-started/package.json +++ b/examples/js/getting-started/package.json @@ -1,6 +1,6 @@ { "name": "example-instantsearch-getting-started", - "version": "1.0.23", + "version": "1.0.24", "private": true, "scripts": { "start": "BABEL_ENV=parcel parcel index.html --port 3000", @@ -10,7 +10,7 @@ }, "dependencies": { "algoliasearch": "4.14.3", - "instantsearch.js": "4.64.0" + "instantsearch.js": "4.64.1" }, "devDependencies": { "@babel/core": "7.15.5", diff --git a/examples/js/media/package.json b/examples/js/media/package.json index ee4de98f58..29e8215988 100644 --- a/examples/js/media/package.json +++ b/examples/js/media/package.json @@ -1,6 +1,6 @@ { "name": "example-instantsearch-media", - "version": "1.36.0", + "version": "1.37.0", "private": true, "scripts": { "start": "BABEL_ENV=parcel parcel index.html --port 3000", @@ -10,7 +10,7 @@ "dependencies": { "algoliasearch": "4.14.3", "date-fns": "2.25.0", - "instantsearch.js": "4.64.0" + "instantsearch.js": "4.64.1" }, "devDependencies": { "@babel/core": "7.15.5", diff --git a/examples/js/tourism/package.json b/examples/js/tourism/package.json index 80d7aa0d6f..bb0382d56b 100644 --- a/examples/js/tourism/package.json +++ b/examples/js/tourism/package.json @@ -1,6 +1,6 @@ { "name": "example-instantsearch-tourism", - "version": "1.0.37", + "version": "1.0.38", "private": true, "scripts": { "start": "BABEL_ENV=parcel parcel index.html --port 3000", @@ -9,7 +9,7 @@ }, "dependencies": { "algoliasearch": "4.14.3", - "instantsearch.js": "4.64.0" + "instantsearch.js": "4.64.1" }, "devDependencies": { "@babel/core": "7.15.5", diff --git a/examples/react/default-theme/package.json b/examples/react/default-theme/package.json index 4fda708cbd..fac0bfc0ed 100644 --- a/examples/react/default-theme/package.json +++ b/examples/react/default-theme/package.json @@ -1,6 +1,6 @@ { "name": "example-react-instantsearch-default-theme", - "version": "19.0.0", + "version": "20.0.0", "private": true, "scripts": { "build": "BABEL_ENV=parcel parcel build index.html", @@ -8,10 +8,10 @@ }, "dependencies": { "algoliasearch": "4.14.3", - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-instantsearch": "7.5.2" + "react-instantsearch": "7.5.3" }, "devDependencies": { "@parcel/core": "2.10.0", diff --git a/examples/react/e-commerce/package.json b/examples/react/e-commerce/package.json index 50b565eb62..39521fa548 100644 --- a/examples/react/e-commerce/package.json +++ b/examples/react/e-commerce/package.json @@ -1,6 +1,6 @@ { "name": "example-react-instantsearch-e-commerce", - "version": "19.0.0", + "version": "20.0.0", "private": true, "scripts": { "build": "BABEL_ENV=parcel parcel build index.html", @@ -10,11 +10,11 @@ "browserslist": "firefox 68, chrome 78, IE 11", "dependencies": { "algoliasearch": "4.14.3", - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "react": "18.2.0", "react-compound-slider": "3.4.0", "react-dom": "18.2.0", - "react-instantsearch": "7.5.2" + "react-instantsearch": "7.5.3" }, "devDependencies": { "@parcel/core": "2.10.0", diff --git a/examples/react/getting-started/package.json b/examples/react/getting-started/package.json index 7a14053ee2..73246a1ec5 100644 --- a/examples/react/getting-started/package.json +++ b/examples/react/getting-started/package.json @@ -1,6 +1,6 @@ { "name": "example-react-instantsearch-getting-started", - "version": "6.51.0", + "version": "6.52.0", "private": true, "scripts": { "build": "BABEL_ENV=parcel parcel build index.html", @@ -8,10 +8,10 @@ }, "dependencies": { "algoliasearch": "4.14.3", - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-instantsearch": "7.5.2" + "react-instantsearch": "7.5.3" }, "devDependencies": { "@parcel/core": "2.10.0", diff --git a/examples/react/next-app-router/package.json b/examples/react/next-app-router/package.json index d318dd4468..60a210591c 100644 --- a/examples/react/next-app-router/package.json +++ b/examples/react/next-app-router/package.json @@ -1,6 +1,6 @@ { "name": "example-react-instantsearch-next-app-dir-example", - "version": "8.10.0", + "version": "8.11.0", "private": true, "scripts": { "dev": "next dev", @@ -14,9 +14,9 @@ "next": "13.5.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-instantsearch": "7.5.2", - "react-instantsearch-nextjs": "0.1.9", - "react-instantsearch-router-nextjs": "7.5.2" + "react-instantsearch": "7.5.3", + "react-instantsearch-nextjs": "0.1.10", + "react-instantsearch-router-nextjs": "7.5.3" }, "devDependencies": { "@types/node": "17.0.40", diff --git a/examples/react/next-routing/package.json b/examples/react/next-routing/package.json index 3bb2b71102..359440478c 100644 --- a/examples/react/next-routing/package.json +++ b/examples/react/next-routing/package.json @@ -1,6 +1,6 @@ { "name": "example-react-instantsearch-next-routing-example", - "version": "6.70.0", + "version": "6.71.0", "private": true, "scripts": { "dev": "next dev", @@ -14,8 +14,8 @@ "next": "13.5.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-instantsearch": "7.5.2", - "react-instantsearch-router-nextjs": "7.5.2" + "react-instantsearch": "7.5.3", + "react-instantsearch-router-nextjs": "7.5.3" }, "devDependencies": { "@types/node": "17.0.40", diff --git a/examples/react/next/package.json b/examples/react/next/package.json index 8a7252a799..a1e19b3d3b 100644 --- a/examples/react/next/package.json +++ b/examples/react/next/package.json @@ -1,6 +1,6 @@ { "name": "example-react-instantsearch-next-example", - "version": "19.0.0", + "version": "20.0.0", "private": true, "scripts": { "dev": "next dev", @@ -14,8 +14,8 @@ "next": "13.5.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-instantsearch": "7.5.2", - "react-instantsearch-router-nextjs": "7.5.2" + "react-instantsearch": "7.5.3", + "react-instantsearch-router-nextjs": "7.5.3" }, "devDependencies": { "@types/node": "17.0.40", diff --git a/examples/react/react-native/package.json b/examples/react/react-native/package.json index 6fece7f78e..e4ea6c981c 100644 --- a/examples/react/react-native/package.json +++ b/examples/react/react-native/package.json @@ -1,6 +1,6 @@ { "name": "example-react-instantsearch-react-native-example", - "version": "19.0.0", + "version": "20.0.0", "private": true, "main": "node_modules/expo/AppEntry.js", "scripts": { @@ -14,9 +14,9 @@ "algoliasearch": "4.14.3", "expo": "~44.0.0", "expo-status-bar": "~1.2.0", - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "react": "17.0.1", - "react-instantsearch-core": "7.5.2", + "react-instantsearch-core": "7.5.3", "react-native": "0.64.3", "react-native-web": "0.17.1" }, diff --git a/examples/react/ssr/package.json b/examples/react/ssr/package.json index dc80f09d3d..a40bbb6e7a 100644 --- a/examples/react/ssr/package.json +++ b/examples/react/ssr/package.json @@ -1,6 +1,6 @@ { "name": "example-react-instantsearch-server-side-rendering", - "version": "6.51.0", + "version": "6.52.0", "private": true, "license": "MIT", "scripts": { @@ -26,6 +26,6 @@ "express": "4.17.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-instantsearch": "7.5.2" + "react-instantsearch": "7.5.3" } } diff --git a/examples/vue/default-theme/package.json b/examples/vue/default-theme/package.json index 817e896970..4eda04f94c 100644 --- a/examples/vue/default-theme/package.json +++ b/examples/vue/default-theme/package.json @@ -1,6 +1,6 @@ { "name": "example-vue-instantsearch-default-theme", - "version": "0.37.0", + "version": "0.38.0", "private": true, "scripts": { "serve": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve", @@ -10,9 +10,9 @@ "dependencies": { "algoliasearch": "4.14.3", "core-js": "2", - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "vue": "2.7.14", - "vue-instantsearch": "4.13.4" + "vue-instantsearch": "4.13.5" }, "devDependencies": { "@vue/cli-plugin-babel": "3.12.1", diff --git a/examples/vue/e-commerce/package.json b/examples/vue/e-commerce/package.json index b450650c30..4149f63c3f 100644 --- a/examples/vue/e-commerce/package.json +++ b/examples/vue/e-commerce/package.json @@ -1,6 +1,6 @@ { "name": "example-vue-instantsearch-e-commerce", - "version": "0.37.0", + "version": "0.38.0", "private": true, "scripts": { "serve": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve", @@ -10,9 +10,9 @@ "dependencies": { "algoliasearch": "4.14.3", "core-js": "2", - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "vue": "2.7.14", - "vue-instantsearch": "4.13.4", + "vue-instantsearch": "4.13.5", "vue-slider-component": "3.0.32" }, "devDependencies": { diff --git a/examples/vue/getting-started/package.json b/examples/vue/getting-started/package.json index e8d0f2e78b..7e4f753fb9 100644 --- a/examples/vue/getting-started/package.json +++ b/examples/vue/getting-started/package.json @@ -1,6 +1,6 @@ { "name": "example-vue-instantsearch-getting-started", - "version": "1.0.23", + "version": "1.0.24", "private": true, "scripts": { "start": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve --port 3000", @@ -9,9 +9,9 @@ "dependencies": { "algoliasearch": "4.14.3", "core-js": "2", - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "vue": "2.7.14", - "vue-instantsearch": "4.13.4" + "vue-instantsearch": "4.13.5" }, "devDependencies": { "@vue/cli-plugin-babel": "3.12.1", diff --git a/examples/vue/media/package.json b/examples/vue/media/package.json index 95fbe9e49d..6b37b8c311 100644 --- a/examples/vue/media/package.json +++ b/examples/vue/media/package.json @@ -1,6 +1,6 @@ { "name": "example-vue-instantsearch-media", - "version": "0.37.0", + "version": "0.38.0", "private": true, "scripts": { "serve": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve", @@ -10,9 +10,9 @@ "dependencies": { "algoliasearch": "4.14.3", "core-js": "2", - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "vue": "2.7.14", - "vue-instantsearch": "4.13.4" + "vue-instantsearch": "4.13.5" }, "devDependencies": { "@vue/cli-plugin-babel": "3.12.1", diff --git a/examples/vue/nuxt/package.json b/examples/vue/nuxt/package.json index f0373b3879..dbabf235dd 100644 --- a/examples/vue/nuxt/package.json +++ b/examples/vue/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "example-vue-instantsearch-nuxt", - "version": "1.36.0", + "version": "1.37.0", "description": "Vue InstantSearch & Nuxt", "private": true, "scripts": { @@ -15,7 +15,7 @@ "cross-env": "^5.2.0", "css-loader": "^4.3.0", "nuxt": "^2.4.5", - "vue-instantsearch": "4.13.4", + "vue-instantsearch": "4.13.5", "vue-server-renderer": "2.7.14" } } diff --git a/examples/vue/ssr/package.json b/examples/vue/ssr/package.json index 434241489a..a41250462b 100644 --- a/examples/vue/ssr/package.json +++ b/examples/vue/ssr/package.json @@ -1,6 +1,6 @@ { "name": "example-vue-instantsearch-ssr", - "version": "0.37.0", + "version": "0.38.0", "private": true, "scripts": { "build": "NODE_OPTIONS=--openssl-legacy-provider -cli-service ssr:build", @@ -13,7 +13,7 @@ "instantsearch.css": "8.1.0", "qs": "6.9.7", "vue": "2.7.14", - "vue-instantsearch": "4.13.4", + "vue-instantsearch": "4.13.5", "vue-router": "^3.0.2", "vue-server-renderer": "2.7.14" }, diff --git a/packages/algoliasearch-helper/CHANGELOG.md b/packages/algoliasearch-helper/CHANGELOG.md index a140c01cb2..0c88071794 100644 --- a/packages/algoliasearch-helper/CHANGELOG.md +++ b/packages/algoliasearch-helper/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.16.2](https://github.com/algolia/instantsearch/compare/algoliasearch-helper@3.16.1...algoliasearch-helper@3.16.2) (2024-01-23) + + +### Bug Fixes + +* **perf:** improve speed of setQueryParameters ([d1aa720](https://github.com/algolia/instantsearch/commit/d1aa720c8e4e1aad2d7b64e385a29b258240c7df)) +* **requestBuilder:** sort facet refinements in a non-mutating manner ([#6012](https://github.com/algolia/instantsearch/issues/6012)) ([31dbf87](https://github.com/algolia/instantsearch/commit/31dbf874faa582b930ada59781c56642436ad35c)), closes [#5764](https://github.com/algolia/instantsearch/issues/5764) + + + + + ## [3.16.1](https://github.com/algolia/instantsearch/compare/algoliasearch-helper@3.16.0...algoliasearch-helper@3.16.1) (2023-12-19) **Note:** Version bump only for package algoliasearch-helper diff --git a/packages/algoliasearch-helper/package.json b/packages/algoliasearch-helper/package.json index 4c731daad1..1342302c86 100644 --- a/packages/algoliasearch-helper/package.json +++ b/packages/algoliasearch-helper/package.json @@ -1,6 +1,6 @@ { "name": "algoliasearch-helper", - "version": "3.16.1", + "version": "3.16.2", "description": "Helper for implementing advanced search features with algolia", "main": "index.js", "types": "index.d.ts", diff --git a/packages/algoliasearch-helper/src/version.js b/packages/algoliasearch-helper/src/version.js index 946b90aaaa..26d77da08f 100644 --- a/packages/algoliasearch-helper/src/version.js +++ b/packages/algoliasearch-helper/src/version.js @@ -1,3 +1,3 @@ 'use strict'; -module.exports = '3.16.1'; +module.exports = '3.16.2'; diff --git a/packages/create-instantsearch-app/CHANGELOG.md b/packages/create-instantsearch-app/CHANGELOG.md index aed516e51f..ee8614a638 100644 --- a/packages/create-instantsearch-app/CHANGELOG.md +++ b/packages/create-instantsearch-app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.4.1](https://github.com/algolia/instantsearch/compare/create-instantsearch-app@7.4.0...create-instantsearch-app@7.4.1) (2024-01-23) + +**Note:** Version bump only for package create-instantsearch-app + + + + + # [7.4.0](https://github.com/algolia/instantsearch/compare/create-instantsearch-app@7.3.3...create-instantsearch-app@7.4.0) (2024-01-16) diff --git a/packages/create-instantsearch-app/package.json b/packages/create-instantsearch-app/package.json index 4ce5d9fe4f..84f5954318 100644 --- a/packages/create-instantsearch-app/package.json +++ b/packages/create-instantsearch-app/package.json @@ -1,6 +1,6 @@ { "name": "create-instantsearch-app", - "version": "7.4.0", + "version": "7.4.1", "license": "MIT", "description": "⚡️ Build InstantSearch apps at the speed of thought", "keywords": [ @@ -49,7 +49,7 @@ "validate-npm-package-name": "3.0.0" }, "devDependencies": { - "@instantsearch/testutils": "1.23.0", + "@instantsearch/testutils": "1.24.0", "jest-image-snapshot": "2.12.0", "walk-sync": "2.0.2" } diff --git a/packages/instantsearch.js/CHANGELOG.md b/packages/instantsearch.js/CHANGELOG.md index 230d532b8b..495e6201e0 100644 --- a/packages/instantsearch.js/CHANGELOG.md +++ b/packages/instantsearch.js/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.64.1](https://github.com/algolia/instantsearch/compare/instantsearch.js@4.64.0...instantsearch.js@4.64.1) (2024-01-23) + + +### Bug Fixes + +* **hydration:** generate cache with search parameters from server-side request ([#5991](https://github.com/algolia/instantsearch/issues/5991)) ([968cf43](https://github.com/algolia/instantsearch/commit/968cf433511eb172acee8eaf6a7c90740f7ee0a6)) +* **perf:** remove usage of SearchParameters.clearRefinements ([#6004](https://github.com/algolia/instantsearch/issues/6004)) ([d9491e1](https://github.com/algolia/instantsearch/commit/d9491e155a0157085d11e6ef3a2fb02b19e28985)) + + + + + # [4.64.0](https://github.com/algolia/instantsearch/compare/instantsearch.js@4.63.1...instantsearch.js@4.64.0) (2024-01-16) diff --git a/packages/instantsearch.js/package.json b/packages/instantsearch.js/package.json index 1ffaa210b7..e15593e077 100644 --- a/packages/instantsearch.js/package.json +++ b/packages/instantsearch.js/package.json @@ -1,6 +1,6 @@ { "name": "instantsearch.js", - "version": "4.64.0", + "version": "4.64.1", "description": "InstantSearch.js is a JavaScript library for building performant and instant search experiences with Algolia.", "homepage": "https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/", "types": "es/index.d.ts", @@ -33,7 +33,7 @@ "@types/google.maps": "^3.45.3", "@types/hogan.js": "^3.0.0", "@types/qs": "^6.5.3", - "algoliasearch-helper": "3.16.1", + "algoliasearch-helper": "3.16.2", "hogan.js": "^3.0.2", "htm": "^3.0.0", "preact": "^10.10.0", @@ -55,9 +55,9 @@ "version": "./scripts/version/update-version.js" }, "devDependencies": { - "@instantsearch/mocks": "1.34.0", - "@instantsearch/tests": "1.34.0", - "@instantsearch/testutils": "1.23.0", + "@instantsearch/mocks": "1.35.0", + "@instantsearch/tests": "1.35.0", + "@instantsearch/testutils": "1.24.0", "@storybook/html": "5.3.9", "@types/scriptjs": "0.0.2", "algoliasearch": "4.14.3", diff --git a/packages/instantsearch.js/src/lib/version.ts b/packages/instantsearch.js/src/lib/version.ts index cd86087c6e..81b00db70e 100644 --- a/packages/instantsearch.js/src/lib/version.ts +++ b/packages/instantsearch.js/src/lib/version.ts @@ -1 +1 @@ -export default '4.64.0'; +export default '4.64.1'; diff --git a/packages/react-instantsearch-core/CHANGELOG.md b/packages/react-instantsearch-core/CHANGELOG.md index eeb74b711e..8df1b3cd39 100644 --- a/packages/react-instantsearch-core/CHANGELOG.md +++ b/packages/react-instantsearch-core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.5.3](https://github.com/algolia/instantsearch/compare/react-instantsearch-core@7.5.2...react-instantsearch-core@7.5.3) (2024-01-23) + + +### Bug Fixes + +* **hydration:** generate cache with search parameters from server-side request ([#5991](https://github.com/algolia/instantsearch/issues/5991)) ([968cf43](https://github.com/algolia/instantsearch/commit/968cf433511eb172acee8eaf6a7c90740f7ee0a6)) + + + + + ## [7.5.2](https://github.com/algolia/instantsearch/compare/react-instantsearch-core@7.5.1...react-instantsearch-core@7.5.2) (2024-01-16) **Note:** Version bump only for package react-instantsearch-core diff --git a/packages/react-instantsearch-core/package.json b/packages/react-instantsearch-core/package.json index 6ad1e31332..ab85311ae0 100644 --- a/packages/react-instantsearch-core/package.json +++ b/packages/react-instantsearch-core/package.json @@ -1,6 +1,6 @@ { "name": "react-instantsearch-core", - "version": "7.5.2", + "version": "7.5.3", "description": "⚡ Lightning-fast search for React, by Algolia", "source": "src/index.ts", "types": "dist/es/index.d.ts", @@ -49,8 +49,8 @@ }, "dependencies": { "@babel/runtime": "^7.1.2", - "algoliasearch-helper": "3.16.1", - "instantsearch.js": "4.64.0", + "algoliasearch-helper": "3.16.2", + "instantsearch.js": "4.64.1", "use-sync-external-store": "^1.0.0" }, "devDependencies": { diff --git a/packages/react-instantsearch-core/src/version.ts b/packages/react-instantsearch-core/src/version.ts index 4c340567e8..634a9cc663 100644 --- a/packages/react-instantsearch-core/src/version.ts +++ b/packages/react-instantsearch-core/src/version.ts @@ -1 +1 @@ -export default '7.5.2'; +export default '7.5.3'; diff --git a/packages/react-instantsearch-nextjs/CHANGELOG.md b/packages/react-instantsearch-nextjs/CHANGELOG.md index ecd2ec8a60..7d02cbce84 100644 --- a/packages/react-instantsearch-nextjs/CHANGELOG.md +++ b/packages/react-instantsearch-nextjs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.10](https://github.com/algolia/instantsearch/compare/react-instantsearch-nextjs@0.1.9...react-instantsearch-nextjs@0.1.10) (2024-01-23) + + +### Bug Fixes + +* **hydration:** generate cache with search parameters from server-side request ([#5991](https://github.com/algolia/instantsearch/issues/5991)) ([968cf43](https://github.com/algolia/instantsearch/commit/968cf433511eb172acee8eaf6a7c90740f7ee0a6)) + + + + + ## [0.1.9](https://github.com/algolia/instantsearch/compare/react-instantsearch-nextjs@0.1.8...react-instantsearch-nextjs@0.1.9) (2024-01-16) **Note:** Version bump only for package react-instantsearch-nextjs diff --git a/packages/react-instantsearch-nextjs/package.json b/packages/react-instantsearch-nextjs/package.json index f22cad87fc..17beb47240 100644 --- a/packages/react-instantsearch-nextjs/package.json +++ b/packages/react-instantsearch-nextjs/package.json @@ -1,6 +1,6 @@ { "name": "react-instantsearch-nextjs", - "version": "0.1.9", + "version": "0.1.10", "description": "React InstantSearch SSR utilities for Next.js", "source": "src/index.ts", "types": "dist/es/index.d.ts", @@ -48,9 +48,9 @@ "test:exports": "node ./__tests__/module/is-es-module.mjs && node ./__tests__/module/is-cjs-module.cjs" }, "devDependencies": { - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "next": "13.5.1", - "react-instantsearch-core": "7.5.2" + "react-instantsearch-core": "7.5.3" }, "peerDependencies": { "next": ">= 13.4 && < 15", diff --git a/packages/react-instantsearch-router-nextjs/CHANGELOG.md b/packages/react-instantsearch-router-nextjs/CHANGELOG.md index c4121e7938..6d7e474b50 100644 --- a/packages/react-instantsearch-router-nextjs/CHANGELOG.md +++ b/packages/react-instantsearch-router-nextjs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.5.3](https://github.com/algolia/instantsearch/compare/react-instantsearch-router-nextjs@7.5.2...react-instantsearch-router-nextjs@7.5.3) (2024-01-23) + +**Note:** Version bump only for package react-instantsearch-router-nextjs + + + + + ## [7.5.2](https://github.com/algolia/instantsearch/compare/react-instantsearch-router-nextjs@7.5.1...react-instantsearch-router-nextjs@7.5.2) (2024-01-16) **Note:** Version bump only for package react-instantsearch-router-nextjs diff --git a/packages/react-instantsearch-router-nextjs/package.json b/packages/react-instantsearch-router-nextjs/package.json index 56acad0fd4..7f94e32cd4 100644 --- a/packages/react-instantsearch-router-nextjs/package.json +++ b/packages/react-instantsearch-router-nextjs/package.json @@ -1,6 +1,6 @@ { "name": "react-instantsearch-router-nextjs", - "version": "7.5.2", + "version": "7.5.3", "description": "React InstantSearch Router for Next.js", "source": "src/index.ts", "types": "dist/es/index.d.ts", @@ -49,8 +49,8 @@ "test:e2e:saucelabs": "start-server-and-test test:start-server 3000 'wdio run ./wdio.saucelabs.conf.cjs'" }, "dependencies": { - "instantsearch.js": "4.64.0", - "react-instantsearch-core": "7.5.2" + "instantsearch.js": "4.64.1", + "react-instantsearch-core": "7.5.3" }, "devDependencies": { "@types/jasmine": "3.3.16", diff --git a/packages/react-instantsearch/CHANGELOG.md b/packages/react-instantsearch/CHANGELOG.md index 0156d5a1fd..c78d6e388a 100644 --- a/packages/react-instantsearch/CHANGELOG.md +++ b/packages/react-instantsearch/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.5.3](https://github.com/algolia/instantsearch/compare/react-instantsearch@7.5.2...react-instantsearch@7.5.3) (2024-01-23) + +**Note:** Version bump only for package react-instantsearch + + + + + ## [7.5.2](https://github.com/algolia/instantsearch/compare/react-instantsearch@7.5.1...react-instantsearch@7.5.2) (2024-01-16) **Note:** Version bump only for package react-instantsearch diff --git a/packages/react-instantsearch/package.json b/packages/react-instantsearch/package.json index a61e2a316f..a39f4d14d5 100644 --- a/packages/react-instantsearch/package.json +++ b/packages/react-instantsearch/package.json @@ -1,6 +1,6 @@ { "name": "react-instantsearch", - "version": "7.5.2", + "version": "7.5.3", "description": "⚡ Lightning-fast search for React, by Algolia", "source": "src/index.ts", "types": "dist/es/index.d.ts", @@ -48,8 +48,8 @@ }, "dependencies": { "@babel/runtime": "^7.1.2", - "instantsearch.js": "4.64.0", - "react-instantsearch-core": "7.5.2" + "instantsearch.js": "4.64.1", + "react-instantsearch-core": "7.5.3" }, "peerDependencies": { "algoliasearch": ">= 3.1 < 5", diff --git a/packages/vue-instantsearch/CHANGELOG.md b/packages/vue-instantsearch/CHANGELOG.md index 03a1b7c34e..51cb194a03 100644 --- a/packages/vue-instantsearch/CHANGELOG.md +++ b/packages/vue-instantsearch/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.13.5](https://github.com/algolia/instantsearch/compare/vue-instantsearch@4.13.4...vue-instantsearch@4.13.5) (2024-01-23) + + +### Bug Fixes + +* **hydration:** generate cache with search parameters from server-side request ([#5991](https://github.com/algolia/instantsearch/issues/5991)) ([968cf43](https://github.com/algolia/instantsearch/commit/968cf433511eb172acee8eaf6a7c90740f7ee0a6)) + + + + + ## [4.13.4](https://github.com/algolia/instantsearch/compare/vue-instantsearch@4.13.3...vue-instantsearch@4.13.4) (2024-01-16) **Note:** Version bump only for package vue-instantsearch diff --git a/packages/vue-instantsearch/package.json b/packages/vue-instantsearch/package.json index b025bbb729..e6241fbaf5 100644 --- a/packages/vue-instantsearch/package.json +++ b/packages/vue-instantsearch/package.json @@ -16,7 +16,7 @@ "autocomplete" ], "license": "MIT", - "version": "4.13.4", + "version": "4.13.5", "files": [ "vue2", "vue3", @@ -35,7 +35,7 @@ "test:exports:vue3": "node ./test/module/vue3/is-es-module.mjs && node ./test/module/vue3/is-cjs-module.cjs" }, "dependencies": { - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "mitt": "^2.1.0" }, "peerDependencies": { @@ -60,7 +60,7 @@ "@vue/test-utils": "1.3.0", "@vue/test-utils2": "npm:@vue/test-utils@2.0.0-rc.11", "algoliasearch": "4.14.3", - "algoliasearch-helper": "3.16.1", + "algoliasearch-helper": "3.16.2", "instantsearch.css": "8.1.0", "rollup": "1.32.1", "rollup-plugin-babel": "4.4.0", diff --git a/tests/common/package.json b/tests/common/package.json index 13e646bc2a..94feec8ebd 100644 --- a/tests/common/package.json +++ b/tests/common/package.json @@ -1,9 +1,9 @@ { "name": "@instantsearch/tests", "private": true, - "version": "1.34.0", + "version": "1.35.0", "description": "Common tests for all InstantSearch flavors.", "dependencies": { - "instantsearch.js": "4.64.0" + "instantsearch.js": "4.64.1" } } diff --git a/tests/mocks/package.json b/tests/mocks/package.json index fde330b175..9fcd9e39bc 100644 --- a/tests/mocks/package.json +++ b/tests/mocks/package.json @@ -1,9 +1,9 @@ { "name": "@instantsearch/mocks", - "version": "1.34.0", + "version": "1.35.0", "private": true, "dependencies": { - "algoliasearch-helper": "3.16.1", - "instantsearch.js": "4.64.0" + "algoliasearch-helper": "3.16.2", + "instantsearch.js": "4.64.1" } } diff --git a/tests/utils/package.json b/tests/utils/package.json index 5069bc7d2a..ee936608f3 100644 --- a/tests/utils/package.json +++ b/tests/utils/package.json @@ -1,13 +1,13 @@ { "name": "@instantsearch/testutils", - "version": "1.23.0", + "version": "1.24.0", "private": true, "dependencies": { "@types/enzyme": "3.1.15", "enzyme": "3.11.0", "enzyme-adapter-preact-pure": "2.2.0", "enzyme-to-json": "3.6.2", - "instantsearch.js": "4.64.0", + "instantsearch.js": "4.64.1", "jest-serializer-html": "7.1.0", "preact": "^10.10.0" }