diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt
index c0061e4e..01f683b2 100644
--- a/THIRD_PARTY.txt
+++ b/THIRD_PARTY.txt
@@ -45,7 +45,7 @@ https://cdn.datatables.net/select/1.3.3/js/dataTables.select.min.js
https://cdn.embed.ly/player-0.1.0.min.js
https://cdnjs.cloudflare.com/ajax/libs/ajax-bootstrap-select/1.4.5/js/ajax-bootstrap-select.min.js
https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/3.35.1/algoliasearch.min.js
-https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/4.10.3/algoliasearch.umd.min.js
+https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/4.10.4/algoliasearch.umd.min.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/2.8.2/alpine.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.2.4/cdn.min.js
https://cdnjs.cloudflare.com/ajax/libs/angucomplete-alt/3.0.0/angucomplete-alt.min.js
diff --git a/modules/internal/targets.js b/modules/internal/targets.js
index a3ce977f..ff8ec924 100644
--- a/modules/internal/targets.js
+++ b/modules/internal/targets.js
@@ -76,7 +76,7 @@ targets.setLastVersion = function (type, version) {
} else if (type.startsWith('/algoliasearch/3.')) {
return '3.35.1';
} else if (type.startsWith('/algoliasearch/4.')) {
- return '4.10.3';
+ return '4.10.4';
} else if (type.startsWith('/alpinejs/2.')) {
return '2.8.2';
} else if (type.startsWith('/alpinejs/3.')) {
diff --git a/pages/updates/updates.html b/pages/updates/updates.html
index 83ad2ca5..84cb51d2 100644
--- a/pages/updates/updates.html
+++ b/pages/updates/updates.html
@@ -38,6 +38,7 @@
hls.js v1.0.9 -> v1.0.10 (#638)
libphonenumber-js v1.9.23 -> v1.9.24 (#639)
Google Material Icons v94 -> v98 (#640)
+ algoliasearch v4.10.3 -> v4.10.4 (#643)
diff --git a/resources/algoliasearch/4.10.3/algoliasearch.min.jsm b/resources/algoliasearch/4.10.3/algoliasearch.min.jsm
deleted file mode 100644
index c575a787..00000000
--- a/resources/algoliasearch/4.10.3/algoliasearch.min.jsm
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).algoliasearch=e()}(this,function(){"use strict";function e(e,t){var r,n=Object.keys(e);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(e),t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)),n}function g(n){for(var t=1;t
=t.nbPages)throw{name:"ObjectNotFoundError",message:"Object not found."};return o()})}()}}function Ct(r){return function(t,e){return r.transporter.read({method:i,path:v("1/indexes/%s/%s",r.indexName,t)},e)}}function Ut(){return function(t,e){for(var r=0,n=Object.entries(t.hits);rn.OPENED&&void 0===e&&(clearTimeout(a),e=t(o.responseTimeout,"Socket timeout"))},n.onerror=function(){0===n.status&&(clearTimeout(a),clearTimeout(e),r({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=function(){clearTimeout(a),clearTimeout(e),r({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(o.data)})}},logger:{debug:function(t,e){return Promise.resolve()},info:function(t,e){return Promise.resolve()},error:function(t,e){return console.error(t,e),Promise.resolve()}},responsesCache:h(),requestsCache:h({serializable:!1}),hostsCache:function n(t){var a=b(t.caches),o=a.shift();return void 0===o?{get:function(t,e){var r=2=t.nbPages)throw{name:"ObjectNotFoundError",message:"Object not found."};return o()})}()}}function Et(r){return function(t,e){return r.transporter.read({method:o,path:v("1/indexes/%s/%s",r.indexName,t)},e)}}function Rt(){return function(t,e){for(var r=0,n=Object.entries(t.hits);rn.OPENED&&void 0===e&&(clearTimeout(a),e=t(o.responseTimeout,"Socket timeout"))},n.onerror=function(){0===n.status&&(clearTimeout(a),clearTimeout(e),r({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=function(){clearTimeout(a),clearTimeout(e),r({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(o.data)})}},logger:{debug:function(t,e){return Promise.resolve()},info:function(t,e){return Promise.resolve()},error:function(t,e){return console.error(t,e),Promise.resolve()}},responsesCache:h(),requestsCache:h({serializable:!1}),hostsCache:function n(t){var a=b(t.caches),o=a.shift();return void 0===o?{get:function(t,e){var r=2