diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index ba9eb0a7..f44d329c 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,4 +1,4 @@ -## Please note the following tips +## Please read this text carefully(!) * Only Firefox: Does the website work after you activate the HTML filter? @@ -6,9 +6,11 @@ * For the most common problems and solutions I have created an online tool. Please test the broken website there: https://www.localcdn.org/test/check -### If none of the points apply -* delete this template and describe the problem +## If none of the points apply * write the URL in the title * one or two screenshots can be helpful +## Please delete this text(!) +## and describe the problem + Thank you for your understanding diff --git a/README.md b/README.md index 94d143da..6b30adb5 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ LocalCDN is a fork of Decentraleyes and a web browser extension that emulates Co * Removes integrity and crossorigin tags from embedded script and style elements to replace even more frameworks * Font Awesome * Google Material Icons -* jQuery up to 3.5.1 +* jQuery * Bootstrap CSS * Bootstrap JavaScript * AngularJS, AngularJS-Animate, AngularJS-Sanitize, AngularJS-Cookies and AngularJS-Touch @@ -18,7 +18,7 @@ LocalCDN is a fork of Decentraleyes and a web browser extension that emulates Co * MathJax (minimal) * TinyMCE (without plugins) * Internal statistics about CDNs and frameworks (day, week, month, year) -* Export/Import your config (day, week, month, year) +* Export/Import your config * Prepared rules for uBlock Origin, uMatrix, AdGuard and NoScript > **Note:** LocalCDN is no silver bullet, but it does prevent a lot of websites from making you send these kinds of requests. Ultimately, you can make LocalCDN block requests for any missing CDN resources, too. diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt index b8917976..a8c21c81 100644 --- a/THIRD_PARTY.txt +++ b/THIRD_PARTY.txt @@ -131,7 +131,7 @@ https://cdn.embed.ly/player-0.1.0.min.js https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.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.14.1/algoliasearch.umd.min.js +https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/4.14.2/algoliasearch.umd.min.js https://cdnjs.cloudflare.com/ajax/libs/alpinejs/2.8.2/alpine.js https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.10.3/cdn.min.js https://cdnjs.cloudflare.com/ajax/libs/angucomplete-alt/3.0.0/angucomplete-alt.min.js @@ -298,7 +298,7 @@ https://cdnjs.cloudflare.com/ajax/libs/bootstrap-vue/2.22.0/bootstrap-vue.min.cs https://cdnjs.cloudflare.com/ajax/libs/bootstrap-vue/2.22.0/bootstrap-vue.min.js https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.4.0/flatly/bootstrap.min.css https://cdnjs.cloudflare.com/ajax/libs/bootswatch/4.6.1/flatly/bootstrap.min.css -https://cdnjs.cloudflare.com/ajax/libs/bootswatch/5.1.3/flatly/bootstrap.min.css +https://cdnjs.cloudflare.com/ajax/libs/bootswatch/5.2.0/flatly/bootstrap.min.css https://cdnjs.cloudflare.com/ajax/libs/bowser/1.9.4/bowser.min.js https://cdnjs.cloudflare.com/ajax/libs/bowser/2.11.0/bundled.min.js https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.4/css/bulma.min.css @@ -404,12 +404,12 @@ https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/js/all.min.js https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/webfonts/fa-brands-400.woff2 https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/webfonts/fa-regular-400.woff2 https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/webfonts/fa-solid-900.woff2 -https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css -https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/v4-shims.min.css -https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/js/all.min.js -https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/webfonts/fa-brands-400.woff2 -https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/webfonts/fa-regular-400.woff2 -https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/webfonts/fa-solid-900.woff2 +https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css +https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/v4-shims.min.css +https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/js/all.min.js +https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/webfonts/fa-brands-400.woff2 +https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/webfonts/fa-regular-400.woff2 +https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/webfonts/fa-solid-900.woff2 https://cdnjs.cloudflare.com/ajax/libs/fork-awesome/1.2.0/css/fork-awesome.min.css https://cdnjs.cloudflare.com/ajax/libs/fork-awesome/1.2.0/fonts/forkawesome-webfont.woff2 https://cdnjs.cloudflare.com/ajax/libs/foundation/5.5.3/css/foundation.min.css @@ -1150,7 +1150,7 @@ https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.5/styles/zenburn.min.cs https://cdnjs.cloudflare.com/ajax/libs/history/4.10.1/history.min.js https://cdnjs.cloudflare.com/ajax/libs/history/5.3.0/history.production.min.js https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.14.17/hls.min.js -https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.1.5/hls.min.js +https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.2.0/hls.min.js https://cdnjs.cloudflare.com/ajax/libs/hogan.js/3.0.2/hogan.min.js https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/3.7.0/instantsearch.production.min.js https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/4.43.1/instantsearch.production.min.js @@ -1228,7 +1228,7 @@ https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.3/js/jquery.table https://cdnjs.cloudflare.com/ajax/libs/jquery-timeago/1.6.7/jquery.timeago.min.js https://cdnjs.cloudflare.com/ajax/libs/jquery-tiny-pubsub/0.7.0/ba-tiny-pubsub.min.js https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js -https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js +https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.8.24/jquery-ui.min.js https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.8.24/themes/base/minified/jquery-ui.min.css https://cdnjs.cloudflare.com/ajax/libs/jquery-ujs/1.2.3/rails.min.js @@ -1242,11 +1242,13 @@ https://cdnjs.cloudflare.com/ajax/libs/lazysizes/4.1.8/lazysizes.min.js https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/leaflet.css https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/leaflet.js +https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.css +https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.js https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.8.0/leaflet.css https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.8.0/leaflet.js https://cdnjs.cloudflare.com/ajax/libs/Leaflet.EasyButton/2.4.0/easy-button.min.js https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster/1.5.3/leaflet.markercluster.js -https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.10.9/libphonenumber-js.min.js +https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.10.11/libphonenumber-js.min.js https://cdnjs.cloudflare.com/ajax/libs/libsodium-wrappers/0.5.4/sodium.min.js https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.3/js/lightbox.min.js https://cdnjs.cloudflare.com/ajax/libs/lightcase/2.5.0/css/lightcase.min.css @@ -1261,6 +1263,7 @@ https://cdnjs.cloudflare.com/ajax/libs/lightgallery/2.5.0/lightgallery.min.js https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js https://cdnjs.cloudflare.com/ajax/libs/lozad.js/1.16.0/lozad.min.js +https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min.js https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.min.css https://cdnjs.cloudflare.com/ajax/libs/markdown-it/13.0.1/markdown-it.min.js @@ -1276,6 +1279,7 @@ https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS_CHTML.js https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS_HTML-full.js https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-MML-AM_CHTML.js +https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-MML-AM_SVG.js https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/extensions/asciimath2jax.js https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/extensions/MathEvents.js https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/extensions/MathMenu.js @@ -1343,8 +1347,8 @@ https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.20.0/css/mdb.min.css https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.20.0/js/mdb.min.js https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.11.0/mdb.min.css https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.11.0/mdb.min.js -https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/4.3.0/mdb.min.css -https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/4.3.0/mdb.min.js +https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/4.4.0/mdb.min.css +https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/4.4.0/mdb.min.js https://cdnjs.cloudflare.com/ajax/libs/Modaal/0.4.4/css/modaal.min.css https://cdnjs.cloudflare.com/ajax/libs/Modaal/0.4.4/js/modaal.min.js https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js @@ -1691,32 +1695,32 @@ https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.10.5/skins/ui/oxide/skin.shadow https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.10.5/themes/mobile/theme.min.js https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.10.5/themes/silver/theme.min.js https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.10.5/tinymce.min.js -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/icons/default/icons.min.js -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/models/dom/model.min.js -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/content/dark/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/content/default/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/content/document/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/content/tinymce-5/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/content/tinymce-5-dark/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/content/writer/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/oxide/content.inline.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/oxide/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/oxide-dark/content.inline.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/oxide-dark/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/oxide-dark/skin.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/oxide-dark/skin.shadowdom.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/oxide/skin.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/oxide/skin.shadowdom.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/tinymce-5/content.inline.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/tinymce-5/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/tinymce-5-dark/content.inline.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/tinymce-5-dark/content.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/tinymce-5-dark/skin.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/tinymce-5-dark/skin.shadowdom.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/tinymce-5/skin.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/skins/ui/tinymce-5/skin.shadowdom.min.css -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/themes/silver/theme.min.js -https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.0/tinymce.min.js +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/icons/default/icons.min.js +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/models/dom/model.min.js +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/content/dark/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/content/default/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/content/document/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/content/tinymce-5/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/content/tinymce-5-dark/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/content/writer/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/oxide/content.inline.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/oxide/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/oxide-dark/content.inline.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/oxide-dark/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/oxide-dark/skin.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/oxide-dark/skin.shadowdom.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/oxide/skin.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/oxide/skin.shadowdom.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/tinymce-5/content.inline.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/tinymce-5/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/tinymce-5-dark/content.inline.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/tinymce-5-dark/content.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/tinymce-5-dark/skin.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/tinymce-5/skin.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/skins/ui/tinymce-5/skin.shadowdom.min.css +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/themes/silver/theme.min.js +https://cdnjs.cloudflare.com/ajax/libs/tinymce/6.1.2/tinymce.min.js https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.1.4/toastr.min.css https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.1.4/toastr.min.js https://cdnjs.cloudflare.com/ajax/libs/tooltipster/3.3.0/js/jquery.tooltipster.min.js @@ -1760,11 +1764,11 @@ https://cdnjs.cloudflare.com/ajax/libs/video.js/5.20.5/video-js.min.css https://cdnjs.cloudflare.com/ajax/libs/video.js/5.20.5/video.min.js https://cdnjs.cloudflare.com/ajax/libs/video.js/6.13.0/video-js.min.css https://cdnjs.cloudflare.com/ajax/libs/video.js/6.13.0/video.min.js -https://cdnjs.cloudflare.com/ajax/libs/video.js/7.20.1/video-js.min.css -https://cdnjs.cloudflare.com/ajax/libs/video.js/7.20.1/video.min.js +https://cdnjs.cloudflare.com/ajax/libs/video.js/7.20.2/video-js.min.css +https://cdnjs.cloudflare.com/ajax/libs/video.js/7.20.2/video.min.js https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.37/vue.global.prod.js https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/8.27.2/vue-i18n.min.js -https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/9.1.10/vue-i18n.cjs.min.js +https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/9.2.2/vue-i18n.cjs.min.js https://cdnjs.cloudflare.com/ajax/libs/vuex/3.6.2/vuex.min.js https://cdnjs.cloudflare.com/ajax/libs/vuex/4.0.2/vuex.cjs.min.js https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js @@ -1788,10 +1792,10 @@ https://cdn.jsdelivr.net/npm/anchor-js@3.2.2/anchor.min.js https://cdn.jsdelivr.net/npm/anchor-js@4.3.1/anchor.min.js https://cdn.jsdelivr.net/npm/angular-stripe-checkout@5.1.0/angular-stripe-checkout.min.js https://cdn.jsdelivr.net/npm/appboy-web-sdk@3.5.1/appboy.min.js -https://cdn.jsdelivr.net/npm/chart.js@3.8.0/dist/chart.min.js -https://cdn.jsdelivr.net/npm/docsify-themeable@0.8.6/dist/css/theme-defaults.css -https://cdn.jsdelivr.net/npm/docsify-themeable@0.8.6/dist/css/theme-simple.css -https://cdn.jsdelivr.net/npm/docsify-themeable@0.8.6/dist/css/theme-simple-dark.css +https://cdn.jsdelivr.net/npm/chart.js@3.9.1/dist/chart.min.js +https://cdn.jsdelivr.net/npm/docsify-themeable@0.9.0/dist/css/theme-defaults.css +https://cdn.jsdelivr.net/npm/docsify-themeable@0.9.0/dist/css/theme-simple.css +https://cdn.jsdelivr.net/npm/docsify-themeable@0.9.0/dist/css/theme-simple-dark.css https://cdn.jsdelivr.net/npm/ethjs@0.4.0/dist/ethjs.min.js https://cdn.jsdelivr.net/npm/@findify/bundle@6.17.0/dist/autocomplete.js https://cdn.jsdelivr.net/npm/@findify/bundle@6.17.0/dist/bundle.js @@ -1813,26 +1817,28 @@ https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/styles.css https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/vendors~components~initializer.js https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/vendors~initializer.js https://cdn.jsdelivr.net/npm/@findify/bundle@6.9.15/dist/vendors~sentry.js -https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/autocomplete.js -https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/bundle.js -https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/initializer.js -https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/polyfill.js -https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/raw.css -https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/recommendation.js -https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/search.js -https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/sentry.js -https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.55/dist/styles.css +https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.56/dist/autocomplete.js +https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.56/dist/bundle.js +https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.56/dist/initializer.js +https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.56/dist/polyfill.js +https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.56/dist/raw.css +https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.56/dist/recommendation.js +https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.56/dist/search.js +https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.56/dist/sentry.js +https://cdn.jsdelivr.net/npm/@findify/bundle@7.1.56/dist/styles.css https://cdn.jsdelivr.net/npm/instantsearch.css@7.4.5/themes/algolia-min.css https://cdn.jsdelivr.net/npm/leaflet.featuregroup.subgroup@1.0.2/dist/leaflet.featuregroup.subgroup.js https://cdn.jsdelivr.net/npm/ngx-bootstrap@6.2.0/datepicker/bs-datepicker.css https://cdn.jsdelivr.net/npm/ngx-bootstrap@7.1.2/datepicker/bs-datepicker.css https://cdn.jsdelivr.net/npm/ngx-bootstrap@8.0.0/datepicker/bs-datepicker.css +https://cdn.jsdelivr.net/npm/ngx-bootstrap@9.0.0/datepicker/bs-datepicker.css https://cdn.jsdelivr.net/npm/object-assign@4.1.1/index.js https://cdn.jsdelivr.net/npm/p2p-media-loader-core@0.6.2/build/p2p-media-loader-core.min.js https://cdn.jsdelivr.net/npm/p2p-media-loader-hlsjs@0.6.2/build/p2p-media-loader-hlsjs.min.js https://cdn.jsdelivr.net/npm/plyr@3.7.2/dist/plyr.css https://cdn.jsdelivr.net/npm/plyr@3.7.2/dist/plyr.min.js https://cdn.jsdelivr.net/npm/raven-js@3.27.2/dist/raven.min.js +https://cdn.jsdelivr.net/npm/react-intl@6.0.5/react-intl.iife.min.js https://cdn.jsdelivr.net/npm/react-lifecycles-compat@3.0.4/react-lifecycles-compat.min.js https://cdn.jsdelivr.net/npm/search-insights@1.8.0/dist/search-insights.min.js https://cdn.jsdelivr.net/npm/search-insights@2.2.1/dist/search-insights.min.js @@ -1840,8 +1846,8 @@ https://cdn.jsdelivr.net/npm/swiper@6.8.4/swiper-bundle.min.css https://cdn.jsdelivr.net/npm/swiper@6.8.4/swiper-bundle.min.js https://cdn.jsdelivr.net/npm/swiper@7.4.1/swiper-bundle.min.css https://cdn.jsdelivr.net/npm/swiper@7.4.1/swiper-bundle.min.js -https://cdn.jsdelivr.net/npm/swiper@8.3.1/swiper-bundle.min.css -https://cdn.jsdelivr.net/npm/swiper@8.3.1/swiper-bundle.min.js +https://cdn.jsdelivr.net/npm/swiper@8.3.2/swiper-bundle.min.css +https://cdn.jsdelivr.net/npm/swiper@8.3.2/swiper-bundle.min.js https://cdn.jsdelivr.net/npm/urlize.js/urlize.js https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.8.3/dist/lazyload.min.js https://cdn.jsdelivr.net/npm/videojs-seek-buttons@1.6.0/dist/videojs-seek-buttons.css diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 620a9c26..cf3108d7 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -136,7 +136,7 @@ "description": "Internal statistics" }, "internalStatisticsDescription": { - "message": "Эта функция находится в эеспериментальном состоянии. Данные не передаются. Все хранится только на вашем устройстве.", + "message": "Эта функция находится в экспериментальном состоянии. Данные не передаются. Все хранится только на вашем устройстве.", "description": "No data transmission. It’s all local on your device." }, "headerStatistics": { @@ -408,7 +408,7 @@ "description": "What will be synchronized when I select »sync« as storage type?" }, "helpSyncDescription": { - "message": "Синхронизация будет работать только в том случае, если вы вошли в систему с учетной записью Firefox на устройстве и разрешили синхронизацию расширений в настройках. Также будет работать отдельный сервер синхронизации под вашим контролем. Это синхронизирует большинство настроек LocalCDN на всех устройствах.", + "message": "Синхронизация будет работать только в том случае, если вы вошли в учетную запись Firefox на устройстве и разрешили синхронизацию расширений в настройках. Также будет работать отдельный сервер синхронизации под вашим контролем. Это синхронизирует большинство настроек LocalCDN на всех устройствах.", "description": "Sync will only work if you are logged in with a Firefox account on the device and have allowed add-ons to sync in the settings. A separate sync server under your control will also work. This will synchronize most of the settings of LocalCDN across all devices." }, "helpSyncAccount": { diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index c1b62bbc..55d5c6bf 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -104,7 +104,7 @@ "description": "Enable this option to always apply the HTML filter. The domains in the list will be ignored then. If this option is disabled, the HTML filter is only applied to domains in the list." }, "negateHtmlFilterListWarning": { - "message": "Ця функція може зламати веб-сайти. Будь ласка, зверніть увагу на інформацію у вікі-сторінці.", + "message": "Ця функція може зламати веб-сайти. Будь ласка, примічайте інформацію у вікі-сторінці.", "description": "This function can break websites. Please note the information on the Wiki page." }, "htmlFilterDomainsTitleExclude": { @@ -400,7 +400,7 @@ "description": "How do I know that‘s true?" }, "helpStatisticsTruthDescription": { - "message": "Сховище розширень можна продивитися безпосередньо в браузері Firefox. Відкрийте URL-адресу \"about:debugging\", перейдіть на \"Сховище\" і оберіть \"Сховище розширень\". Під ключем \"internalStatisticsData\" ви знайдете всі зібрані дані. Скопіюйте їх та помістить в JSON PrettyPrinter для того, щоб зробити їх більш зрозумілими. Зверніть увагу, що ви повинні спочатку прибрати перші та останні лапки і ключ до неї. Ви побачите все ясно побачите на цьому відео.", + "message": "Сховище розширень можна продивитися безпосередньо в браузері Firefox. Відкрийте URL-адресу \"about:debugging\", перейдіть на \"Сховище\" і оберіть \"Сховище розширень\". Під ключем \"internalStatisticsData\" ви знайдете всі зібрані дані. Скопіюйте їх та помістить в JSON PrettyPrinter для того, щоб зробити їх більш зрозумілими. Будь ласка, завбачте, що ви повинні спочатку прибрати перші та останні лапки і ключ до неї. Ви побачите все ясно побачите на цьому відео.", "description": "The extension storage can be viewed directly with the Firefox browser. Open the URL »about:debugging«, switch to »Storage« and select »Extension Storage«. Under the key »internalStatisticsData« you will find the collected data. Just copy it and put it into a JSON PrettyPrinter to make it more readable. Please note that you have to remove the first and last quotation mark and the key to it. You should be able to see this clearly in this video." }, "helpSyncTitle": { diff --git a/audit/audit.sh b/audit/audit.sh index 78424d04..0014c9a0 100755 --- a/audit/audit.sh +++ b/audit/audit.sh @@ -716,6 +716,8 @@ function create_url() { url="$CREATEJS/$version/createjs.min.js" elif [ "$folder" = "moment.js" ] && [ "$version" = "2.5.1" ];then url="$CLOUDFLARE/$folder/$version/moment-with-langs.min.js" + elif [ "$folder" = "react-intl" ]; then + url="$JSDELIVR/npm/react-intl@$version/react-intl.iife.min.js" # -------------------------------------------------------------------------- else if [ "$subfile" = "$jfile" ]; then diff --git a/core/constants.js b/core/constants.js index b1b26c9a..91e5ea3d 100644 --- a/core/constants.js +++ b/core/constants.js @@ -262,7 +262,7 @@ const Regex = { 'FONT_AWESOME_WITH_CODE': /use\.fontawesome\.com\/[a-z0-9]{10}\.(js|css)/, 'FONT_AWESOME_FONTS_ONLY': /\/font-?awesome\/(?:\d{1,2}\.){1,3}\d{1,2}\/fonts\//, 'BOOTSTRAP_FONTS_ONLY': /\/bootstrap\/(?:\d{1,2}\.){1,3}\d{1,2}\/fonts\//, - 'ROCKET_LOADER': /ajax\.cloudflare\.com\/cdn-cgi\/scripts\/[\d\w]{8}\/cloudflare-static\/rocket-loader\.min\.js/ + 'ROCKET_LOADER': /ajax\.cloudflare\.com\/cdn-cgi\/scripts\/[a-zA-Z0-9]{8}\/cloudflare-static\/rocket-loader\.min\.js/ }; const MaterialIcons = { @@ -343,6 +343,7 @@ const MathJaxFiles = { 'config/TeX-AMS_HTML-full.js': true, 'config/TeX-AMS-MML_HTMLorMML.js': true, 'config/TeX-MML-AM_CHTML.js': true, + 'config/TeX-MML-AM_SVG.js': true, 'extensions/TeX/begingroup.js': true, 'extensions/TeX/cancel.js': true, 'extensions/TeX/color.js': true, diff --git a/core/interceptor.js b/core/interceptor.js index 2ee1407c..fe72c264 100644 --- a/core/interceptor.js +++ b/core/interceptor.js @@ -76,13 +76,6 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) { 'cancel': false }; } - } else if (!BrowserType.FIREFOX && (isGoogleFont || isGoogleMaterialIcons)) { - initiatorDomain = helpers.extractDomainFromUrl(tab.url, true); - isListed = helpers.checkAllowlisted(initiatorDomain, interceptor.allowedDomainsGoogleFonts); - // Check if the website is allowed to load Google Fonts - return { - 'cancel': interceptor.blockGoogleFonts === true && isListed === false - }; } if (targetDetails['result'] === false) { diff --git a/core/mappings.js b/core/mappings.js index 5a5ba9e1..d1ae8e05 100644 --- a/core/mappings.js +++ b/core/mappings.js @@ -385,6 +385,7 @@ mappings.cdn = { 'lightgallery/{version}/css/lightgallery.': resources.lightGalleryCSS, 'lodash.js/{version}/lodash.': resources.lodashJS, 'lozad.js/{version}/lozad.': resources.lozad, + 'lunr.js/{version}/lunr.': resources.lunrJS, 'magnific-popup.js/{version}/jquery.magnific-popup.min.js': resources.magnificPopupJS, 'magnific-popup.js/{version}/jquery.magnific-popup.js': resources.magnificPopupJS, 'magnific-popup.js/{version}/magnific-popup.css': resources.magnificPopupCSS, @@ -618,6 +619,7 @@ mappings.cdn = { 'leaflet.featuregroup.subgroup@{version}/dist/leaflet.featuregroup.subgroup.': resources.leafletFeatureGroupSubGroup, 'lodash@{version}/lodash.min.js': resources.lodashJS, 'lozad': resources.lozad, + 'lunr@{version}/lunr.': resources.lunrJS, 'npm-modernizr@{version}/modernizr.': resources.modernizr, 'npm-modernizr@{version}/modernizr.min.': resources.modernizr, 'markdown-it@{version}/dist/markdown-it.': resources.markdownIt, @@ -642,6 +644,7 @@ mappings.cdn = { 'purecss@{version}/build/': resources.pureCSS, 'redux@{version}/dist/redux.': resources.redux, 'react-dom@{version}/umd/react-dom.production.min.js': resources.reactDOM, + 'react-intl@{version}/react-intl.iife.': resources.reactIntl, 'react@{version}/umd/react.production.min.js': resources.react, 'search-insights@{version}/dist/search-insights.': resources.searchInsights, 'select2@{version}/': resources.select2, @@ -1169,6 +1172,14 @@ mappings.cdn['cdn.bootcdn.net'] = mappings.cdn['cdnjs.cloudflare.com']; // CDN for the "Block Google Fonts" option (see: https://codeberg.org/nobody/LocalCDN/issues/269) mappings.cdn['fonts.gstatic.com'] = mappings.cdn['fonts.googleapis.com']; + +// Remove Google Fonts Endpoints for Chromium browsers (https://codeberg.org/nobody/LocalCDN/issues/1085) +if (!BrowserType.FIREFOX) { + delete mappings.cdn['fonts.gstatic.com']; + delete mappings.cdn['fonts.googleapis.com']; +} + + /** * List of CNAME CDNs * https://codeberg.org/nobody/LocalCDN/issues/816 diff --git a/core/request-analyzer.js b/core/request-analyzer.js index c3a16bde..b71dfa22 100644 --- a/core/request-analyzer.js +++ b/core/request-analyzer.js @@ -57,12 +57,6 @@ requestAnalyzer.isValidCandidate = function (requestDetails, tabDetails) { log.append(tabDetails.url, requestDetails.url, LogString.FONT_AWESOME, true); return false; } - if (requestAnalyzer.isGoogleMaterialIcons(requestedDomain, requestDetails.url)) { - // also valid for Google Material icons - console.warn(`${LogString.PREFIX} ${LogString.GOOGLE_MATERIAL_ICONS}`); - log.append(tabDetails.url, requestDetails.url, LogString.GOOGLE_MATERIAL_ICONS, true); - return false; - } } // Ignore requests if website is 'yandex.com' and CDN is 'yastatic.net', because website and CDN are the same. @@ -238,37 +232,61 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel requestAnalyzer._getPathOfBundle = function (initiator, channelHost, channelPath, targetPath, bundle) { let filename = channelPath.split('/').pop(); + if (bundle === 'MathJax (Bundle)' && filename !== 'MathJax.js') { - filename = channelPath.replace(Resource.MATHJAX, ''); - if (filename.startsWith('/npm/mathjax@3')) { - filename = filename.replace('/npm/mathjax@3/', ''); - } - if (filename === 'config/TeX-AMS_HTML.js') { - filename = 'config/TeX-AMS_HTML-full.js'; - } - if (!MathJaxFiles[filename] && !MathJax3Files[filename]) { - console.warn(`${LogString.PREFIX} ${LogString.MISSING_RESOURCE} ${channelHost + channelPath}`); - log.append(initiator, channelHost + channelPath, '-', true); - return { - 'result': false, - }; - } + filename = requestAnalyzer._handleMathJax(filename, channelPath, channelHost, initiator); + } else if (bundle === 'TinyMCE (Bundle)' && filename !== 'tinymce.min.js') { + filename = requestAnalyzer._handleTinyMCE(filename, channelPath, channelHost, initiator); + } else if (bundle === 'DataTables (Bundle)') { + filename = requestAnalyzer._handleDataTables(filename); } - if (bundle === 'TinyMCE (Bundle)' && filename !== 'tinymce.min.js') { - filename = channelPath.replace(Resource.TINYMCE, ''); - if (filename.startsWith('plugins/')) { - console.warn(`${LogString.PREFIX} ${LogString.MISSING_RESOURCE} ${channelHost + channelPath}`); - log.append(initiator, channelHost + channelPath, '-', true); - return { - 'result': false, - }; - } + + if (filename === false) { + return { + 'result': false, + }; } + return helpers.formatFilename(filename.endsWith('.js') ? `${targetPath + filename}m` : targetPath + filename); }; +requestAnalyzer._handleMathJax = function (filename, channelPath, channelHost, initiator) { + filename = channelPath.replace(Resource.MATHJAX, ''); + if (filename.startsWith('/npm/mathjax@3')) { + filename = filename.replace('/npm/mathjax@3/', ''); + } + if (filename === 'config/TeX-AMS_HTML.js') { + filename = 'config/TeX-AMS_HTML-full.js'; + } + if (!MathJaxFiles[filename] && !MathJax3Files[filename]) { + console.warn(`${LogString.PREFIX} ${LogString.MISSING_RESOURCE} ${channelHost + channelPath}`); + log.append(initiator, channelHost + channelPath, '-', true); + return false; + } + return filename; +}; + +requestAnalyzer._handleDataTables = function (filename) { + if (!filename.endsWith('.min.js') && filename.endsWith('.js')) { + return filename.replace('.js', '.min.js'); + } else if (!filename.endsWith('.min.css') && filename.endsWith('.css')) { + return filename.replace('.css', '.min.css'); + } + return filename; +}; + +requestAnalyzer._handleTinyMCE = function (filename, channelPath, channelHost, initiator) { + filename = channelPath.replace(Resource.TINYMCE, ''); + if (filename.startsWith('plugins/')) { + console.warn(`${LogString.PREFIX} ${LogString.MISSING_RESOURCE} ${channelHost + channelPath}`); + log.append(initiator, channelHost + channelPath, '-', true); + return false; + } + return filename; +}; + requestAnalyzer._applyAllowlistedDomains = function () { storageManager.type.get(Setting.ALLOWLISTED_DOMAINS, function (items) { requestAnalyzer.allowlistedDomains = items.allowlistedDomains || {}; diff --git a/core/resources.js b/core/resources.js index b12bb83a..430ac1b9 100644 --- a/core/resources.js +++ b/core/resources.js @@ -711,6 +711,10 @@ var resources = { 'lozad': { 'path': 'resources/lozad.js/{version}/lozad.min.jsm' }, + // lunr.js + 'lunrJS': { + 'path': 'resources/lunr.js/{version}/lunr.min.jsm' + }, // MathJax 'mathJax': { 'path': 'resources/mathjax/{version}/' @@ -885,6 +889,10 @@ var resources = { 'reactDOM': { 'path': 'resources/react-dom/{version}/umd/react-dom.production.min.jsm' }, + // react-intl + 'reactIntl': { + 'path': 'resources/react-intl/{version}/react-intl.iife.min.jsm' + }, // react-lifecycles-compat 'reactLifecyclesCompat': { 'path': 'resources/react-lifecycles-compat/{version}/react-lifecycles-compat.min.jsm' diff --git a/core/storage-manager.js b/core/storage-manager.js index 4453ec52..d88d62f4 100644 --- a/core/storage-manager.js +++ b/core/storage-manager.js @@ -212,7 +212,7 @@ storageManager._validateDomainsAndStatistics = function (type, obj) { if (type === 'allowedDomainsGoogleFonts' || type === 'domainsManipulateDOM' || type === 'allowlistedDomains') { for (const [key, value] of Object.entries(obj)) { // eslint-disable-next-line no-useless-escape - if ((/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,24}/.test(key) || key === '') && value === true) { + if (((/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,24}/).test(key) || key === '') && value === true) { valid[key] = value; } else { alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${key}`); @@ -221,7 +221,7 @@ storageManager._validateDomainsAndStatistics = function (type, obj) { } } else if (type === 'internalStatisticsData') { for (const [date, values] of Object.entries(obj)) { - if (/((2[0-9])[0-9]{2})-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])/.test(date)) { + if ((/((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/).test(date)) { for (const [types, category] of Object.entries(values)) { if (types === 'frameworks') { for (const [name, counter] of Object.entries(category)) { @@ -258,9 +258,9 @@ storageManager._validateDomainsAndStatistics = function (type, obj) { }; storageManager._validateStrings = function (value) { - if (/((2[0-9])[0-9]{2})-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])/.test(value)) { + if ((/((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/).test(value)) { return value; - } else if (/#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/.test(value)) { + } else if ((/#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/).test(value)) { return value; } else if (value === 'Default' || value === 'Light' || value === 'Grey') { return value; diff --git a/manifest.json b/manifest.json index deda21fc..fca0d351 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "LocalCDN", - "version": "2.6.31", + "version": "2.6.32", "browser_specific_settings": { "gecko": { "id": "{b86e4813-687a-43e6-ab65-0bde4ab75758}", diff --git a/modules/internal/rule-generator.js b/modules/internal/rule-generator.js index a89d9baa..f9f3705c 100644 --- a/modules/internal/rule-generator.js +++ b/modules/internal/rule-generator.js @@ -38,6 +38,11 @@ ruleGenerator.openRuleSet = function ({target}) { textArea.style.display = 'block'; btnCopy.style.display = 'block'; + if (!BrowserType.FIREFOX) { + delete urls['fonts.googleapis.com']; + delete urls['fonts.gstatic.com']; + } + for (const domain in urls) { if (key === 'uMatrix') { content += `* ${domain} script allow\n`; diff --git a/modules/internal/targets.js b/modules/internal/targets.js index 79d9f5a1..321a3eb9 100644 --- a/modules/internal/targets.js +++ b/modules/internal/targets.js @@ -80,7 +80,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/1000hz-bootstrap-validator/0.')) return '0.11.9'; if (type.startsWith('/ajax-bootstrap-select/1.')) return '1.4.5'; if (type.startsWith('/algoliasearch/3.')) return '3.35.1'; - if (type.startsWith('/algoliasearch/4.')) return '4.14.1'; + if (type.startsWith('/algoliasearch/4.')) return '4.14.2'; if (type.startsWith('/alpinejs/2.')) return '2.8.2'; if (type.startsWith('/alpinejs/3.')) return '3.10.3'; if (type.startsWith('/anchor-js/3.')) return '3.2.2'; @@ -158,7 +158,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/bootstrap-3-typeahead/4.')) return '4.0.2'; if (type.startsWith('/bootswatch/3.')) return '3.4.0'; if (type.startsWith('/bootswatch/4.')) return '4.6.1'; - if (type.startsWith('/bootswatch/5.')) return '5.1.3'; + if (type.startsWith('/bootswatch/5.')) return '5.2.0'; if (type.startsWith('/bowser/')) { if (version !== 'latest' && helpers.compareVersion('1.9.4', version)) return '1.9.4'; return '2.11.0'; @@ -166,7 +166,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/bulma/0.')) return '0.9.4'; if (type.startsWith('/bxslider/4.')) return '4.2.15'; if (type.startsWith('/Chart.js/2.')) return '2.9.4'; - if (type.startsWith('/Chart.js/3.')) return '3.8.0'; + if (type.startsWith('/Chart.js/3.')) return '3.9.1'; if (type.startsWith('/clappr/0.') || type.startsWith('/clappr/latest/')) return '0.4.7'; if (type.startsWith('/chosen/1.')) return '1.8.7'; if (type.startsWith('/clipboard.js/1.')) return '1.7.1'; @@ -185,7 +185,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/dexie/3.') || type.startsWith('/dexie/latest')) return '3.2.2'; if (type.startsWith('/docsearch.js/2.')) return '2.6.3'; if (type.startsWith('/docsify/4.') || type.startsWith('/docsify/')) return '4.12.2'; - if (type.startsWith('/docsify-themeable/0.')) return '0.8.6'; + if (type.startsWith('/docsify-themeable/0.')) return '0.9.0'; if (type.startsWith('/drawer/3.')) return '3.2.2'; if (type.startsWith('/dygraph/1.')) return '1.1.1'; if (type.startsWith('/dygraph/2.')) return '2.1.0'; @@ -198,7 +198,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/findify')) { if (helpers.compareVersion('6.9.15', version)) return '6.9.15'; // <= 6.9.15 if (helpers.compareVersion('6.17.0', version)) return '6.17.0'; // > 6.9.15 to <= 6.17.0 - return '7.1.55'; + return '7.1.56'; } if (type.startsWith('/fancybox/2.')) return '2.1.7'; if (type.startsWith('/fancybox/3.')) return '3.5.7'; @@ -209,7 +209,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/font-awesome/3.')) return '3.2.1'; if (type.startsWith('/font-awesome/4.')) return '4.7.0'; if (type.startsWith('/font-awesome/5.')) return '5.15.4'; - if (type.startsWith('/font-awesome/6.')) return '6.1.1'; + if (type.startsWith('/font-awesome/6.')) return '6.1.2'; if (type.startsWith('/fork-awesome/1.')) return '1.2.0'; if (type.startsWith('/foundation/5.')) return '5.5.3'; if (type.startsWith('/foundation/6.')) return '6.7.5'; @@ -235,7 +235,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/history/4.')) return '4.10.1'; if (type.startsWith('/history/5.')) return '5.3.0'; if (type.startsWith('/hls.js/0.')) return '0.14.17'; - if (type.startsWith('/hls.js/1.')) return '1.1.5'; + if (type.startsWith('/hls.js/1.')) return '1.2.0'; if (type.startsWith('/hogan.js/')) return '3.0.2'; if (type.startsWith('/instantsearch.css/7.')) return '7.4.5'; if (type.startsWith('/instantsearch.js/3.')) return '3.7.0'; @@ -261,7 +261,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/jqueryui/1.')) { if (helpers.compareVersion('1.8.24', version)) return '1.8.24'; // <= v1.8.24 if (helpers.compareVersion('1.10.0', version)) return '1.10.0'; // > v1.8.24 to <= v1.10.0 - return '1.12.1'; // >= 1.8.19 + return '1.13.2'; // >= 1.8.19 } if (type.startsWith('/jquery-ajax-unobtrusive/3.')) return '3.2.6'; if (type.startsWith('/jquery.blockUI/2.')) return '2.70'; @@ -300,11 +300,14 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/lazysizes/4.')) return '4.1.8'; if (type.startsWith('/lazysizes/5.')) return '5.3.2'; if (type.startsWith('/leaflet/0.')) return '0.7.7'; - if (type.startsWith('/leaflet/1.')) return '1.8.0'; + if (type.startsWith('/leaflet/1.')) { + if (helpers.compareVersion('1.7.1', version)) return '1.7.1'; // <= v1.7.1 + return '1.8.0'; + } if (type.startsWith('/Leaflet.EasyButton/2.')) return '2.4.0'; if (type.startsWith('/leaflet.featuregroup.subgroup/1.')) return '1.0.2'; if (type.startsWith('/leaflet.markercluster/1.')) return '1.5.3'; - if (type.startsWith('/libphonenumber-js/1.')) return '1.10.9'; + if (type.startsWith('/libphonenumber-js/1.')) return '1.10.11'; if (type.startsWith('/libsodium-wrappers/0.')) return '0.5.4'; if (type.startsWith('/lightbox2/2.')) return '2.11.3'; if (type.startsWith('/lightcase/2.')) return '2.5.0'; @@ -313,6 +316,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/lodash.js/3.')) return '3.10.1'; if (type.startsWith('/lodash.js/4.')) return '4.17.21'; if (type.startsWith('/lozad')) return '1.16.0'; + if (type.startsWith('/lunr.js/2.')) return '2.3.9'; if (type.startsWith('/magnific-popup.js/1.')) return '1.1.0'; if (type.startsWith('/markdown-it/')) return '13.0.1'; if (type.startsWith('/mdbootstrap/4.')) return '4.20.0'; @@ -328,7 +332,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/mathjax/2.') || type.startsWith('/mathjax/latest')) return '2.7.5'; if (type.startsWith('/mathjax/3.')) return '3.2.2'; if (type.startsWith('/mdb-ui-kit/3.')) return '3.11.0'; - if (type.startsWith('/mdb-ui-kit/4.')) return '4.3.0'; + if (type.startsWith('/mdb-ui-kit/4.')) return '4.4.0'; if (type.startsWith('/mobile/1.')) return '1.4.5'; if (type.startsWith('/Modaal/0.')) return '0.4.4'; if (type.startsWith('/modernizr/2.')) return '2.8.3'; @@ -343,6 +347,7 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/ngx-bootstrap/6.')) return '6.2.0'; if (type.startsWith('/ngx-bootstrap/7.')) return '7.1.2'; if (type.startsWith('/ngx-bootstrap/8.')) return '8.0.0'; + if (type.startsWith('/ngx-bootstrap/9.')) return '9.0.0'; if (type.startsWith('/noUiSlider/14.')) return '14.7.0'; if (type.startsWith('/noUiSlider/15.')) return '15.6.0'; if (type.startsWith('/nvd3/1.')) return '1.8.6'; @@ -372,6 +377,8 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/react-dom/16.')) return '16.14.0'; if (type.startsWith('/react-dom/17.')) return '17.0.2'; if (type.startsWith('/react-dom/18.')) return '18.2.0'; + if (type.startsWith('/react-intl/5.')) return '6.0.5'; + if (type.startsWith('/react-intl/6.')) return '6.0.5'; if (type.startsWith('/react-redux/7.')) return '7.2.8'; if (type.startsWith('/react-redux/8.')) return '8.0.2'; if (type.startsWith('/react-router/5.')) return '5.3.3'; @@ -415,10 +422,10 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/Swiper/5.')) return '5.4.5'; if (type.startsWith('/Swiper/6.')) return '6.8.4'; if (type.startsWith('/Swiper/7.')) return '7.4.1'; - if (type.startsWith('/Swiper/8.') || type.startsWith('/Swiper/')) return '8.3.1'; + if (type.startsWith('/Swiper/8.') || type.startsWith('/Swiper/')) return '8.3.2'; if (type.startsWith('/tether/1.')) return '1.4.7'; if (type.startsWith('/tinymce/5.')) return '5.10.5'; - if (type.startsWith('/tinymce/6.')) return '6.1.0'; + if (type.startsWith('/tinymce/6.')) return '6.1.2'; if (type.startsWith('/tooltipster/3.')) return '3.3.0'; if (type.startsWith('/tooltipster/4.')) return '4.2.8'; if (type.startsWith('/toastr.js/2.') || type.startsWith('/toastr.js/latest/')) return '2.1.4'; @@ -442,13 +449,13 @@ targets.setLastVersion = function (type, version) { if (type.startsWith('/video.js/')) { if (helpers.compareVersion('5.20.5', version)) return '5.20.5'; // <= 5.20.5 if (helpers.compareVersion('6.13.0', version)) return '6.13.0'; // > 5.20.5 to <= 6.13.0 - return '7.20.1'; + return '7.20.2'; } if (type.startsWith('/vue/1.')) return '1.0.28'; if (type.startsWith('/vue/2.')) return '2.6.14'; if (type.startsWith('/vue/3.')) return '3.2.37'; if (type.startsWith('/vue-i18n/8.')) return '8.27.2'; - if (type.startsWith('/vue-i18n/9.')) return '9.1.10'; + if (type.startsWith('/vue-i18n/9.')) return '9.2.2'; if (type.startsWith('/vue-match-media/1.')) return '1.0.3'; if (type.startsWith('/vue-resource/1.')) return '1.5.3'; if (type.startsWith('/vuex/3.')) return '3.6.2'; @@ -469,6 +476,8 @@ targets.determineResourceName = function (filename) { }; const ListOfFiles = { + 'react-intl.iife.min.jsm': 'react-intl', + 'lunr.min.jsm': 'lunr.js', 'jquery.scrollTo.min.jsm': 'jQuery.scrollTo', 'twix.min.jsm': 'twix.js', 'angular-locale_en-us.min.jsm': 'angular-i18n', diff --git a/pages/options/options-advanced.js b/pages/options/options-advanced.js index daa1ea7f..cdb5bd20 100644 --- a/pages/options/options-advanced.js +++ b/pages/options/options-advanced.js @@ -59,6 +59,7 @@ optionsAdvanced.init = function (opt) { if (BrowserType.CHROMIUM) { document.getElementById('html-filter-div').style.display = 'none'; + document.getElementById('block-google-fonts').style.display = 'none'; } document.getElementById('last-mapping-update').textContent += ` ${mappings.lastMappingUpdate}`; diff --git a/pages/options/options.html b/pages/options/options.html index e076b433..0926dbfe 100644 --- a/pages/options/options.html +++ b/pages/options/options.html @@ -310,7 +310,7 @@ -
HTML filter badge
Updated
Added
Improved
Removed
+Mapping
2022-07-24 (v2.6.31)
+Updated
+Added
+Improved
+Removed
+2022-07-09 (v2.6.30)
Updated
1&&u.push(e.virtualSize-r)}if(0===u.length&&(u=[0]),0!==a.spaceBetween){const s=e.isHorizontal()&&n?"marginLeft":t("marginRight");c.filter(((e,t)=>!a.cssMode||t!==c.length-1)).css({[s]:`${x}px`})}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween;const t=e-r;u=u.map((e=>e<0?-f:e>t?t+g:e))}if(a.centerInsufficientSlides){let e=0;if(m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween,e {r.wrapperEl.style.scrollSnapType="",r._swiperImmediateVirtual=!1}))}else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(v),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.$wrapperEl[0].addEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const i=this;let r=e;return i.params.loop&&(r+=i.loopedSlides),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{animating:i,enabled:r,params:n}=a;if(!r)return a;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex