Compare commits

...

855 Commits

Author SHA1 Message Date
nobody 8721187041
Merge remote-tracking branch 'origin/develop' 2024-05-30 18:04:16 +02:00
nobody f837f25fc8
Update ISSUE_TEMPLATE.md 2024-05-30 10:35:17 +02:00
nobody 4084de55f9
vue v3.4.26 -> v3.4.27 2024-05-30 10:27:15 +02:00
nobody a96083edde
video.js v8.13.0 -> v8.14.0 2024-05-30 10:26:52 +02:00
nobody 65332b7f72
tinymce v7.0.1 -> v7.1.1 2024-05-30 10:25:46 +02:00
nobody b05c6f32f6
swagger-ui v5.17.3 -> v5.17.14 2024-05-30 10:25:02 +02:00
nobody e8aa70388c
simplebar v6.2.5 -> v6.2.6 2024-05-30 10:24:23 +02:00
nobody 1e139ab4ec
search-insights v2.13.0 -> v2.14.0 2024-05-30 10:23:48 +02:00
nobody 06a2cc23f4
react-router v6.23.0 -> v6.23.1 2024-05-30 10:23:10 +02:00
nobody 1d21ac9df9
react-intl v6.6.6 -> v6.6.8 2024-05-30 10:22:35 +02:00
nobody a969444418
p5.js v1.9.3 -> v1.9.4 2024-05-30 10:21:40 +02:00
nobody 97225dd407
noUiSlider v15.7.1 -> v15.7.2 2024-05-30 10:20:58 +02:00
nobody 81c86691f7
mdb-ui-kit v7.2.0 -> v7.3.0 2024-05-30 10:20:18 +02:00
nobody 6fcd4c4c40
libphonenumber-js v1.10.62 -> v1.11.2 2024-05-30 10:19:46 +02:00
nobody e83c46e8cf
instantsearch.js v4.68.0 -> v4.70.0 2024-05-30 10:19:15 +02:00
nobody 0e63dcdb5e
instantsearch.css v8.1.0 -> v8.2.0 2024-05-30 10:18:43 +02:00
nobody dc29d11199
hls.js v1.5.8 -> v1.5.9 2024-05-30 10:17:55 +02:00
nobody 66fd209e1c
dexie v4.0.4 -> v4.0.7 2024-05-30 10:17:23 +02:00
nobody 83dabec042
bxslider v4.2.15 -> v4.2.17 2024-05-30 10:16:47 +02:00
nobody 50a9d64c02
bulma v1.0.0 -> v1.0.1 2024-05-30 10:16:07 +02:00
nobody 8157d958db
bootstrap-table v1.22.5 -> v1.22.6 2024-05-30 10:13:50 +02:00
nobody 03fa7bb6f7
axios v1.6.8 -> v1.7.2 2024-05-30 10:13:04 +02:00
nobody c83b20ab2d
alpinejs v3.13.10 -> v3.14.0 2024-05-30 10:12:29 +02:00
soya_daizu 5caea0ad8d
Translated using Weblate (Japanese)
Currently translated at 100.0% (132 of 132 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/ja/
2024-05-12 02:00:41 +02:00
nobody 6b4f0d123c
v2.6.68 2024-05-06 05:57:19 +02:00
nobody de76247809
Merge remote-tracking branch 'origin/develop' 2024-05-06 05:50:27 +02:00
nobody 41cafee9d0
vue-router v4.3.0 -> v4.3.2 2024-05-05 09:41:33 +02:00
nobody 13a9effa1c
vue-i18n v9.12.0 -> v9.13.1 2024-05-05 09:41:13 +02:00
nobody 4dca8e10b1
vue v3.4.21 -> v3.4.26 2024-05-05 09:40:33 +02:00
nobody ac99dcc8ed
video.js v8.11.8 -> v8.13.0 2024-05-05 09:39:37 +02:00
nobody 6e9f91c48c
tensorflow v4.17.0 -> v4.19.0 2024-05-05 09:37:02 +02:00
nobody 2590d7d752
swagger-ui v5.15.1 -> v5.17.3 2024-05-05 09:36:11 +02:00
nobody 6bf65227fc
react-router v6.22.3 -> v6.23.0 2024-05-05 09:35:32 +02:00
nobody 5ea490e3b5
react-intl v6.6.5 -> v6.6.6 2024-05-05 09:34:59 +02:00
nobody bb54f5279a
react-dom v18.2.0 -> v18.3.1 2024-05-05 09:34:13 +02:00
nobody e5a8ebe21b
react v18.2.0 -> v18.3.1 2024-05-05 09:33:43 +02:00
nobody 843b7dfc16
p5.js v1.9.2 -> v1.9.3 2024-05-05 09:33:03 +02:00
nobody 6297948747
libphonenumber-js v1.10.60 -> v1.10.62 2024-05-05 09:32:29 +02:00
nobody f28440bd6b
jqueryui v1.13.2 -> v1.13.3 2024-05-05 09:31:55 +02:00
nobody 2b73a6834d
instantsearch.js v4.66.1 -> v4.68.0 2024-05-05 09:31:15 +02:00
nobody 758d1f0b91
feather-icons v4.29.1 -> v4.29.2 2024-05-05 09:30:40 +02:00
nobody c4a2461152
dayjs v1.11.10 -> v1.11.11 2024-05-05 09:30:08 +02:00
nobody 96bf18ad4d
bootstrap-table v1.22.4 -> v1.22.5 2024-05-05 09:29:43 +02:00
nobody b44598b721
alpinejs v3.13.8 -> v3.13.10 2024-05-05 09:29:04 +02:00
KiralFox f2fc21e88f
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (132 of 132 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hant/
2024-05-03 15:07:06 +02:00
109247019824 7b93578b88
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (132 of 132 strings)

Co-authored-by: 109247019824 <stoyan@gmx.com>
Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/bg/
2024-04-29 22:07:22 +02:00
大王叫我来巡山 5c8de03f34
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (132 of 132 strings)

Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hans/
2024-04-29 22:07:20 +02:00
Linerly 608a36ec18
Translated using Weblate (Indonesian)
Currently translated at 100.0% (132 of 132 strings)

Co-authored-by: Linerly <linerly@proton.me>
Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/id/
2024-04-29 22:07:18 +02:00
Oğuz Ersen 839d36e635
Translated using Weblate (Turkish)
Currently translated at 100.0% (132 of 132 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/tr/
2024-04-29 22:07:16 +02:00
gallegonovato 3c9f4cec10
Translated using Weblate (Spanish)
Currently translated at 100.0% (132 of 132 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/es/
2024-04-29 22:07:13 +02:00
nobody 5915ced72f
rename method (#1626) 2024-04-28 08:13:42 +02:00
nobody c4f6c3c798
add missing file names for statistics data 2024-04-28 08:11:06 +02:00
nobody 1cd95ef863
cleanup and replace all instances of 'var' with 'let' 2024-04-28 08:10:21 +02:00
nobody e04c723de5
Extend statistics over the whole time range (#1626) 2024-04-28 08:09:56 +02:00
nobody c3a821c32a
update i18n (#1626) 2024-04-28 08:09:02 +02:00
nobody e87b40e6b9
cleanup and replace all instances of 'var' with 'let' 2024-04-28 07:18:40 +02:00
nobody 8db699e210
Fixed: welcome page autoclose (#1625) 2024-04-25 18:51:29 +02:00
nobody 0f4464cb3a
Added: twitter-bootstrap v5.1.3 (#1624) 2024-04-17 18:58:31 +02:00
nobody 2efaf25bb6
Wildcard support extended in all lists (#1622) 2024-04-17 18:54:50 +02:00
nobody f785cd77b9
v2.6.67 2024-04-13 06:49:37 +02:00
nobody c82f28ca38
Merge remote-tracking branch 'origin/develop' 2024-04-13 06:46:18 +02:00
nobody 3314bdbceb
Update updates.html 2024-04-13 06:40:10 +02:00
nobody a6e01541ca
Update THIRD_PARTY.txt 2024-04-12 21:51:46 +02:00
nobody ace529316c
algoliasearch v4.22.1 -> v4.23.3 2024-04-12 21:39:52 +02:00
nobody 3dcc7025e3
libphonenumber-js v1.10.58 -> v1.10.60 2024-04-12 21:39:22 +02:00
nobody ab082579dc
instantsearch.js v4.66.0 -> v4.66.1 2024-04-12 21:38:20 +02:00
nobody e2bd8ce3fa
webrtc-adapter v8.2.3 -> v9.0.1 2024-04-12 21:37:30 +02:00
nobody 8cddef7544
vue-i18n v9.10.2 -> v9.12.0 2024-04-12 21:36:54 +02:00
nobody 34cb76848d
dexie v3.2.6 -> v4.0.4 2024-04-12 21:36:08 +02:00
nobody 870b08ba36
bootstrap-table v1.22.3 -> v1.22.4 2024-04-12 21:35:29 +02:00
nobody d5e06b9b10
hls.js v1.5.7 -> v1.5.8 2024-04-12 21:34:48 +02:00
nobody b5fc4e089e
p5.js v1.9.1 -> v1.9.2 2024-04-12 21:34:03 +02:00
nobody 3d658a2794
swagger-ui v5.12.0 -> v5.15.1 2024-04-12 21:33:15 +02:00
nobody 8fa3d016a1
alpinejs v3.13.7 -> v3.13.8 2024-04-12 21:32:30 +02:00
nobody 6b684648a9
font-awesome v6.5.1 -> v6.5.2 2024-04-12 21:31:47 +02:00
nobody 7aeb646773
react-intl v6.6.2 -> v6.6.5 2024-04-12 21:30:33 +02:00
nobody 4e841ab637
materialicons v141 -> v142 2024-04-12 21:29:28 +02:00
nobody 5b24cdc412
vanilla-lazyload v17.8.8 -> v19.1.3 2024-04-12 21:28:24 +02:00
nobody 225905ca68
bulma v0.9.4 -> v1.0.0 2024-04-12 21:26:27 +02:00
nobody 4d38d04e17
highlight.js v7.x, v8.x, v9.x, v10.x -> v11.x 2024-04-12 21:25:41 +02:00
nobody fbd89e2d82
tinymce v6.8.3 -> v7.0.1 2024-04-12 21:17:10 +02:00
Hosted Weblate 68032c280b
Merge branch 'origin/develop' into Weblate. 2024-04-12 06:27:19 +02:00
nobody 5df53e2ea2
remove drawer 2024-04-12 06:27:05 +02:00
nobody fb5a3f779b
remove d3-legend 2024-04-12 06:26:41 +02:00
nobody 1211a9c43a
remove angular-stripe-checkout 2024-04-12 06:26:01 +02:00
nobody 71f358392c
remove angular-ui-utils 2024-04-12 06:25:02 +02:00
nobody 4e8cd7127f
remove angular-ui-select 2024-04-12 06:24:17 +02:00
nobody cc9dacbde6
remove FitText.js 2024-04-12 06:23:25 +02:00
Limfjorden 542a255d48
Translated using Weblate (Danish)
Currently translated at 64.8% (85 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/da/
2024-04-02 21:02:15 +02:00
nobody ce6e48ca7b
Error in docsify themes request fixed (#1623) 2024-03-18 17:52:22 +01:00
nobody 50f2e0ff38
Revert "Add docsify themes (#1623)" 2024-03-18 17:51:52 +01:00
nobody 354e519ae9
Error in docsify themes request fixed (#1623) 2024-03-18 17:46:33 +01:00
nobody e04d7e4d1d
Revert "Add docsify themes (#1623)" 2024-03-18 16:59:57 +01:00
nobody df7c1dbbf6
v2.6.66 2024-03-17 11:09:09 +01:00
nobody ca44b4a129
Merge remote-tracking branch 'origin/develop' 2024-03-17 11:07:47 +01:00
nobody ed2b87b4b4
Update updates.html 2024-03-17 11:07:25 +01:00
nobody 74dea23e1d
libphonenumber-js v1.10.57 -> v1.10.58 2024-03-17 11:02:57 +01:00
nobody 008db469fe
vue-i18n v9.9.1 -> v9.10.2 2024-03-17 11:02:36 +01:00
nobody 9fd7296288
p5.js v1.9.0 -> v1.9.1 2024-03-17 11:02:01 +01:00
nobody e3ba1c8c32
mdb-ui-kit v7.1.0 -> v7.2.0 2024-03-17 11:01:17 +01:00
nobody 773beb1697
swagger-ui v5.11.8 -> v5.12.0 2024-03-17 11:00:29 +01:00
nobody 5efa34e932
alpinejs v3.13.5 -> v3.13.7 2024-03-17 10:59:47 +01:00
nobody b98d1fd753
video.js v8.11.5 -> v8.11.8 2024-03-17 10:58:57 +01:00
nobody cf2cae09e4
react-router v6.22.2 -> v6.22.3 2024-03-17 10:57:58 +01:00
nobody 1be054976b
socket.io v4.7.4 -> v4.7.5 2024-03-17 10:57:03 +01:00
nobody 76a887af61
axios v1.6.7 -> v1.6.8 2024-03-17 10:56:20 +01:00
nobody 9096750ba2
d3 v7.8.5 -> v7.9.0 2024-03-17 10:55:47 +01:00
nobody 16aed7ebc0
Add docsify themes (#1623) 2024-03-17 10:48:01 +01:00
nobody 0e0bd4172e
Fixed incorrect description in the settings (#1622) 2024-03-17 10:45:30 +01:00
nobody 760c083f29
Support wildcard TLD in all lists (#1622) 2024-03-17 10:44:52 +01:00
nobody 9bedf3e9d7
Translated using Weblate (Spanish)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/es/
2024-03-17 10:40:43 +01:00
nobody 4a3eea0833
v2.6.65 2024-03-01 07:24:11 +01:00
nobody bf1a6757e6
Merge remote-tracking branch 'origin/develop' 2024-03-01 07:20:07 +01:00
nobody 536cf185b5
Update updates.html 2024-02-29 19:46:28 +01:00
nobody 856a849ebb
bootswatch v5.3.2 -> v5.3.3 2024-02-29 18:59:43 +01:00
nobody eec43134f8
vanilla-lazyload v17.8.5 -> v17.8.8 2024-02-29 18:59:00 +01:00
nobody 6a76aa6cf1
libphonenumber-js v1.10.55 -> v1.10.57 2024-02-29 18:58:19 +01:00
nobody 21dbfe807e
instantsearch.js v4.64.2 -> v4.66.0 2024-02-29 18:57:34 +01:00
nobody c4cb8b2b6b
dexie v3.2.4 -> v3.2.6 2024-02-29 18:56:41 +01:00
nobody 353dde8cff
bootstrap-table v1.22.2 -> v1.22.3 2024-02-29 18:55:59 +01:00
nobody 35b8e79403
hls.js v1.5.3 -> v1.5.7 2024-02-29 18:55:23 +01:00
nobody 06c9f62631
vue-router v4.2.5 -> v4.3.0 2024-02-29 18:54:39 +01:00
nobody e2ff54ce18
swagger-ui v5.11.2 -> v5.11.8 2024-02-29 18:53:51 +01:00
nobody e38e56a473
backbone.js v1.5.0 -> v1.6.0 2024-02-29 18:52:59 +01:00
nobody 093f9253e8
video.js v8.11.1 -> v8.11.5 2024-02-29 18:52:22 +01:00
nobody f99b07a6fd
react-router v6.22.0 -> v6.22.2 2024-02-29 18:51:32 +01:00
nobody 47afb3e614
twitter-bootstrap v5.3.2 -> v5.3.3 2024-02-29 18:49:21 +01:00
nobody c637d1b56e
tinymce v6.8.2 -> v6.8.3 2024-02-29 18:47:57 +01:00
nobody e277722b22
vue v3.4.15 -> v3.4.21 2024-02-29 18:46:26 +01:00
nobody 9f7c007dea
v2.6.64 2024-02-04 09:04:23 +01:00
nobody e311d0c10c
Merge remote-tracking branch 'origin/develop' 2024-02-04 08:54:27 +01:00
nobody b4438878d1
Update updates.html 2024-02-04 08:23:07 +01:00
nobody 5a0ce65cb9
add supabase-js (#1619) 2024-02-04 08:15:30 +01:00
nobody 2f9bdcd6c0
remove SWFObject 2024-02-04 08:13:12 +01:00
nobody 1ee3575390
corejs-typeahead v1.3.3 -> v1.3.4 2024-02-04 07:45:33 +01:00
nobody 88be389f55
libphonenumber-js v1.10.53 -> v1.10.55 2024-02-04 07:44:54 +01:00
nobody a059ea04bd
instantsearch.js v4.63.0 -> v4.64.2 2024-02-04 07:44:17 +01:00
nobody 986ce46187
vue-i18n v9.9.0 -> v9.9.1 2024-02-04 07:43:28 +01:00
nobody 1cd7e033fe
hls.js v1.5.1 -> v1.5.3 2024-02-04 07:42:24 +01:00
nobody ed51d96de8
tensorflow v4.16.0 -> v4.17.0 2024-02-04 07:41:28 +01:00
nobody c8cc450ce8
swagger-ui v5.11.0 -> v5.11.2 2024-02-04 07:40:37 +01:00
nobody a73b3dbd14
alpinejs v3.13.3 -> v3.13.5 2024-02-04 07:39:36 +01:00
nobody bab22c90f2
video.js v8.9.0 -> v8.11.1 2024-02-04 07:38:58 +01:00
nobody f2be418a43
react-router v6.21.1 -> v6.22.0 2024-02-04 07:37:37 +01:00
nobody afb82f6ebc
axios v1.6.5 -> v1.6.7 2024-02-04 07:36:41 +01:00
nobody e420da1243
vue v3.4.9 -> v3.4.15 2024-02-04 07:36:04 +01:00
nobody e906cdcd59
angular-translate-loader-partial v2.19.0 -> v2.19.1 2024-02-04 07:34:20 +01:00
nobody 8a58c9ca79
angular-translate v2.19.0 -> v2.19.1 2024-02-04 07:33:47 +01:00
nobody 057c9465eb
react-intl v6.5.5 -> v6.6.2 2024-02-04 07:29:39 +01:00
nobody 062a90bbdb
gsap v3.12.4 -> v3.12.5 2024-02-04 07:28:41 +01:00
nobody 6123be7478
materialicons v140 -> v141 2024-02-04 07:27:03 +01:00
nobody aab9b4da5a
Translated using Weblate (Italian)
Currently translated at 99.2% (130 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/it/
2024-01-27 18:35:45 +01:00
Сергій 1cb91d6525
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/uk/
2024-01-21 17:01:47 +01:00
nobody b510485127
Font Awesome v4.7.0 woff -> woff2 (#1617) 2024-01-21 07:16:56 +01:00
Сергій fe0c0c4f13
Translated using Weblate (Ukrainian)
Currently translated at 93.8% (123 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/uk/
2024-01-20 21:01:48 +01:00
nobody 223bf0bfd9
Mapping docsify -> cdn.jsdelivr.net (#1616) 2024-01-20 08:28:22 +01:00
nobody 1cae1377e6
Translated using Weblate (Italian)
Currently translated at 99.2% (130 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/it/
2024-01-20 08:23:52 +01:00
nobody 9bf1a27824
v2.6.63 2024-01-13 15:38:41 +01:00
nobody 1c7511f63e
Merge remote-tracking branch 'origin/develop' 2024-01-13 15:37:06 +01:00
nobody b45b7dace3
Update updates.html 2024-01-12 18:27:14 +01:00
nobody 5678f07e27
algoliasearch v4.22.0 -> v4.22.1 2024-01-12 18:17:07 +01:00
nobody a8c01e1308
bootstrap-icons v1.11.2 -> v1.11.3 2024-01-12 18:16:30 +01:00
nobody 01c9d77805
vue-i18n v9.8.0 -> v9.9.0 2024-01-12 18:15:46 +01:00
nobody 8bd3e38836
bootstrap-table v1.22.1 -> v1.22.2 2024-01-12 18:14:49 +01:00
nobody 4f88928573
hls.js v1.4.14 -> v1.5.1 2024-01-12 18:14:01 +01:00
nobody cb9783a109
tensorflow v4.15.0 -> v4.16.0 2024-01-12 18:12:46 +01:00
nobody 945e841986
swagger-ui v5.10.5 -> v5.11.0 2024-01-12 18:11:12 +01:00
nobody c6583298f6
video.js v8.8.0 -> v8.9.0 2024-01-12 18:10:12 +01:00
nobody bad9334a5b
moment.js v2.30.0 -> v2.30.1 2024-01-12 18:08:49 +01:00
nobody 8d18fd35ba
socket.io v4.7.2 -> v4.7.4 2024-01-12 18:07:58 +01:00
nobody de1450dec7
axios v1.6.3 -> v1.6.5 2024-01-12 18:06:59 +01:00
nobody 881b142f27
vue v3.3.13 -> v3.4.9 2024-01-12 18:05:29 +01:00
Codefoxy Ch c87010e4d0
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hant/
2024-01-03 17:07:50 +01:00
nobody d86cfe9442
v2.6.62 2023-12-29 10:50:13 +01:00
nobody 44137332e5
Merge branch 'develop' 2023-12-29 10:46:09 +01:00
nobody b9bfdb41fb
Update updates.html 2023-12-29 10:34:43 +01:00
nobody ce32d63913
algoliasearch v4.21.0 -> v4.22.0 2023-12-28 08:05:04 +01:00
nobody 1d5ec6cae0
libphonenumber-js v1.10.51 -> v1.10.53 2023-12-28 08:04:35 +01:00
nobody ee0626a234
instantsearch.js v4.62.0 -> v4.63.0 2023-12-28 08:03:23 +01:00
nobody ba026ff85f
hls.js v1.4.13 -> v1.4.14 2023-12-28 08:02:22 +01:00
nobody f5fe905889
gsap v3.12.3 -> v3.12.4 2023-12-28 08:01:09 +01:00
nobody a42c8b360a
tensorflow v4.14.0 -> v4.15.0 2023-12-28 08:00:05 +01:00
nobody 920adb917a
swagger-ui v5.10.3 -> v5.10.5 2023-12-28 07:58:57 +01:00
nobody eebd7895bc
video.js v8.7.0 -> v8.8.0 2023-12-28 07:57:40 +01:00
nobody e66966d8eb
moment.js v2.29.4 -> v2.30.0 2023-12-28 07:56:33 +01:00
nobody 65dce2b6ee
react-router v6.20.1 -> v6.21.1 2023-12-28 07:54:11 +01:00
nobody d0712af389
redux v5.0.0 -> v5.0.1 2023-12-28 07:53:10 +01:00
nobody cbb8f629fc
axios v1.6.2 -> v1.6.3 2023-12-28 07:52:20 +01:00
nobody 3a346eeba8
vue v3.3.11 -> v3.3.13 2023-12-28 07:49:29 +01:00
nobody 05d5e79c2e
Translated using Weblate (Esperanto)
Currently translated at 80.9% (106 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/eo/
2023-12-28 07:29:31 +01:00
nobody f60b1c8f2e
Create regular expressions as constants 2023-12-28 06:41:14 +01:00
nobody 93cefdd8c0
Translated using Weblate (German)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/de/
2023-12-27 19:20:41 +01:00
nobody 20c14f7314
Extend the Google Service check and also include subdomains (#1560) 2023-12-27 07:15:58 +01:00
ssantos adf2f920b5
Translated using Weblate (Portuguese)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/pt/
2023-12-18 22:11:13 +00:00
nobody b14c05dc04
v2.6.61 2023-12-12 17:59:08 +01:00
nobody 4c54e2a762
Merge remote-tracking branch 'origin/develop' 2023-12-12 17:46:22 +01:00
nobody 89c57ff9e6
algoliasearch v4.20.0 -> v4.21.0 (#1613) 2023-12-12 12:22:01 +01:00
nobody 56ecaf2d53
ngx-bootstrap v11.0.2 -> v12.0.0 (#1612) 2023-12-12 12:20:50 +01:00
nobody b1ec5d5d39
search-insights v2.11.0 -> v2.13.0 (#1611) 2023-12-12 12:19:18 +01:00
nobody 7ad4e150d3
tinymce v6.8.1 -> v6.8.2 (#1594) 2023-12-11 18:41:31 +01:00
Hosted Weblate 93d2baa1d4
Merge branch 'origin/develop' into Weblate. 2023-12-10 08:34:04 +01:00
nobody 48514d88c7
redux v5.0.0 (#1610) 2023-12-10 08:33:51 +01:00
Hosted Weblate c23316bb4a
Merge branch 'origin/develop' into Weblate. 2023-12-10 07:57:29 +01:00
nobody 8506836438
mdb-ui-kit v7.1.0 (#1609) 2023-12-10 07:56:56 +01:00
Hosted Weblate bd111fde5e
Merge branch 'origin/develop' into Weblate. 2023-12-10 06:55:50 +00:00
nobody f9c4c9565a
mdb-ui-kit v7.1.0 (#1609) 2023-12-10 07:55:27 +01:00
Hosted Weblate 3aa71cac17
Merge branch 'origin/develop' into Weblate. 2023-12-10 07:50:57 +01:00
nobody d892019132
instantsearch.js v4.60.0 -> v4.62.0 (#1608) 2023-12-10 07:50:46 +01:00
Hosted Weblate c43502d5ee
Merge branch 'origin/develop' into Weblate. 2023-12-10 07:49:23 +01:00
nobody d5ea9a6803
hls.js v1.4.12 -> v1.4.13 (#1607) 2023-12-10 07:49:09 +01:00
Hosted Weblate d26e5e1b19
Merge branch 'origin/develop' into Weblate. 2023-12-10 07:47:55 +01:00
nobody 4ff68f9f1a
video.js v8.6.1 -> v8.7.0 (#1606) 2023-12-10 07:47:44 +01:00
Hosted Weblate 528097ca9e
Merge branch 'origin/develop' into Weblate. 2023-12-10 07:42:44 +01:00
nobody dbe41243c1
Chart.js v4.4.0 -> v4.4.1 (#1605) 2023-12-10 07:42:31 +01:00
Hosted Weblate fa02ef26b1
Merge branch 'origin/develop' into Weblate. 2023-12-09 09:18:56 +00:00
nobody a7abed1733
libphonenumber-js v1.10.49 -> v1.10.51 (#1604) 2023-12-09 10:18:42 +01:00
Hosted Weblate 1e8b6d5612
Merge branch 'origin/develop' into Weblate. 2023-12-09 10:15:22 +01:00
nobody c1e8c21c9d
bootstrap-icons v1.11.1 -> v1.11.2 (#1603) 2023-12-09 10:15:09 +01:00
Hosted Weblate e92c93f93f
Merge branch 'origin/develop' into Weblate. 2023-12-09 10:12:27 +01:00
nobody e6db5fbb3a
vue-i18n v9.7.0 -> v9.8.0 (#1602) 2023-12-09 10:11:05 +01:00
Hosted Weblate cab28434cc
Merge branch 'origin/develop' into Weblate. 2023-12-09 10:09:17 +01:00
nobody 38760450bd
tensorflow v4.13.0 -> v4.14.0 (#1601) 2023-12-09 10:09:06 +01:00
Hosted Weblate c71b2b0280
Merge branch 'origin/develop' into Weblate. 2023-12-09 10:07:01 +01:00
nobody 58eb759634
p5.js v1.8.0 -> v1.9.0 (#1600) 2023-12-09 10:06:51 +01:00
Hosted Weblate fe2d94d5ce
Merge branch 'origin/develop' into Weblate. 2023-12-09 10:05:12 +01:00
nobody 769cbb2dc5
swagger-ui v5.10.0 -> v5.10.3 (#1599) 2023-12-09 10:05:00 +01:00
Hosted Weblate b3d1d693a3
Merge branch 'origin/develop' into Weblate. 2023-12-09 10:02:56 +01:00
nobody ddb71f0c39
alpinejs v3.13.2 -> v3.13.3 (#1598) 2023-12-09 10:02:41 +01:00
Hosted Weblate 52166c8f45
Merge branch 'origin/develop' into Weblate. 2023-12-09 08:59:22 +01:00
nobody e5d5b9630f
Swiper v11.0.4 -> v11.0.5 (#1597) 2023-12-09 08:59:13 +01:00
Hosted Weblate da05536e1e
Merge branch 'origin/develop' into Weblate. 2023-12-09 08:57:01 +01:00
nobody 34ed86a71b
animejs v3.2.1 -> v3.2.2 (#1596) 2023-12-09 08:56:50 +01:00
Hosted Weblate b884e6f9e2
Merge branch 'origin/develop' into Weblate. 2023-12-09 08:53:22 +01:00
nobody bee3ebd6cd
fix link in release notes (#1594) 2023-12-09 08:53:12 +01:00
Hosted Weblate 92a07dd6e2
Merge branch 'origin/develop' into Weblate. 2023-12-09 08:52:40 +01:00
nobody 9cde8f9fe0
react-router v6.19.0 -> v6.20.1 (#1595) 2023-12-09 08:52:22 +01:00
Hosted Weblate d164bbc949
Merge branch 'origin/develop' into Weblate. 2023-12-09 08:49:14 +01:00
nobody 338c26e4ae
tinymce v6.7.3 -> v6.8.1 (#1594) 2023-12-09 08:48:21 +01:00
nobody 4f2a4fc30e
tinymce v6.7.3 -> v6.8.1 (#1954) 2023-12-09 08:46:30 +01:00
nobody 009b750a06
font-awesome v6.4.2 -> v6.5.1 (#1593) 2023-12-09 08:43:27 +01:00
nobody c57d7f6452
gsap v3.12.2 -> v3.12.3 (#1592) 2023-12-09 08:41:18 +01:00
nobody 0ba43c3056
vue v3.3.8 -> v3.3.11 (#1591) 2023-12-09 08:38:57 +01:00
Kamil Rumanuel Rukola 2d5b390856
Translated using Weblate (Czech)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/cs/
2023-12-09 02:47:25 +01:00
soya_daizu da144adc70
Translated using Weblate (Japanese)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/ja/
2023-12-06 02:10:21 +01:00
Kryštof Černý ecf6a71c4c
Translated using Weblate (Czech)
Currently translated at 98.4% (129 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/cs/
2023-11-25 16:00:30 +00:00
Kryštof Černý d7e5fec58a
Translated using Weblate (Czech)
Currently translated at 95.4% (125 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/cs/
2023-11-23 19:02:03 +00:00
Hosted Weblate b42f841c9f
Merge branch 'origin/develop' into Weblate. 2023-11-19 15:16:05 +00:00
nobody 5a14513500
v2.6.60 2023-11-19 16:15:20 +01:00
nobody bd2822bd90
v2.6.59 2023-11-19 16:14:07 +01:00
nobody d0a256a32d
fix typo 2023-11-19 16:12:47 +01:00
nobody 8fed3842a8
Merge remote-tracking branch 'origin/develop' 2023-11-19 16:05:38 +01:00
nobody 8f81e24a1a
instantsearch.js v4.59.0 -> v4.60.0 (#1589) 2023-11-19 06:22:50 +01:00
kotatsuyaki 0f98e8aa56
Translated using Weblate (Chinese (Traditional))
Currently translated at 79.3% (104 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hant/
2023-11-18 21:01:21 +01:00
kotatsuyaki 246812556d
Translated using Weblate (Japanese)
Currently translated at 94.6% (124 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/ja/
2023-11-18 21:01:21 +01:00
nobody 8d8eb32649
vue-i18n v9.6.1 -> v9.7.0 (#1588) 2023-11-18 08:29:08 +01:00
nobody 4c2966ee46
tinymce v6.7.2 -> v6.7.3 (#1587) 2023-11-18 08:27:31 +01:00
nobody 98d3f41958
tensorflow v4.12.0 -> v4.13.0 (#1586) 2023-11-18 08:25:55 +01:00
nobody 2382d0add9
swagger-ui v5.9.1 -> v5.10.0 (#1585) 2023-11-18 08:24:17 +01:00
nobody c6c12a7769
Swiper v11.0.3 -> v11.0.4 (#1584) 2023-11-18 08:22:29 +01:00
Hosted Weblate 54401122ae
Merge branch 'origin/develop' into Weblate. 2023-11-18 08:19:34 +01:00
nobody 118ca803df
react-router v6.17.0 -> v6.19.0 (#1583) 2023-11-18 08:19:32 +01:00
Hosted Weblate 8bb88fd180
Merge branch 'origin/develop' into Weblate. 2023-11-18 08:18:00 +01:00
nobody 1c2a023e39
axios v1.6.0 -> v1.6.2 (#1582) 2023-11-18 08:17:57 +01:00
Kamil Rumanuel Rukola 7270d315d4
Translated using Weblate (Czech)
Currently translated at 84.7% (111 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/cs/
2023-11-17 16:06:58 +01:00
nobody 82f965837d
vue v3.3.7 -> v3.3.8 (#1581) 2023-11-17 06:12:46 +01:00
nobody 41fa0e0bf7
search-insights v2.9.0 -> v2.11.0 (#1580) 2023-11-17 06:11:21 +01:00
nobody ec2ef9f5b1
react-intl v6.5.1 -> v6.5.5 (#1579) 2023-11-17 06:07:16 +01:00
TotalImportance8529 b2999fd35b
Translated using Weblate (Chinese (Traditional))
Currently translated at 77.0% (101 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hant/
2023-11-16 16:05:22 +00:00
HexagonCDN 6f9a15c511
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/vi/
2023-10-30 06:11:27 +01:00
nobody 2150a4fec3
v2.6.59 2023-10-28 09:37:59 +02:00
nobody 0a4d916724
Merge remote-tracking branch 'origin/develop' 2023-10-28 09:36:00 +02:00
nobody b7a0a80491
vue-i18n v9.5.0 -> v9.6.1 (#1575) 2023-10-28 06:47:19 +02:00
nobody 9e4189d39c
Swiper v11.0.2 -> v11.0.3 (#1569) 2023-10-28 06:45:26 +02:00
Hosted Weblate dc3f755b1e
Merge branch 'origin/develop' into Weblate. 2023-10-28 06:36:10 +02:00
nobody b81c37436d
Update release notes (#1561) 2023-10-28 06:36:01 +02:00
Hosted Weblate 9aaea6fec8
Merge branch 'origin/develop' into Weblate. 2023-10-28 04:32:31 +00:00
nobody 9870062917
Merge branch 'jouni-develop' into develop (#1561) 2023-10-28 06:26:55 +02:00
Hosted Weblate a27a7f651a
Merge branch 'origin/develop' into Weblate. 2023-10-27 15:40:34 +00:00
nobody b45d1fe177
Merge branch 'develop' of https://codeberg.org/jouni/LocalCDN into jouni-develop (#1561) 2023-10-27 17:39:00 +02:00
Hosted Weblate 8c7e313a57
Merge branch 'origin/develop' into Weblate. 2023-10-27 15:29:56 +00:00
nobody e454470d68
Merge branch 'jouni-develop' into develop (#1561) 2023-10-27 17:29:07 +02:00
nobody 186f16fccb
Merge branch 'develop' of https://codeberg.org/jouni/LocalCDN into jouni-develop 2023-10-27 17:28:41 +02:00
Hosted Weblate 04c54914d6
Merge branch 'origin/develop' into Weblate. 2023-10-27 15:20:30 +00:00
nobody 499fc567b8
libphonenumber-js v1.10.47 -> v1.10.49 (#1577) 2023-10-27 17:20:24 +02:00
Hosted Weblate a8d6c394a4
Merge branch 'origin/develop' into Weblate. 2023-10-27 15:19:27 +00:00
nobody 2b99571f58
instantsearch.js v4.58.0 -> v4.59.0 (#1576) 2023-10-27 17:19:20 +02:00
Hosted Weblate d8dc505b6b
Merge branch 'origin/develop' into Weblate. 2023-10-27 13:41:23 +00:00
nobody c84806d415
vue-i18n v9.5.0 -> v9.6.0 (#1575) 2023-10-27 15:41:17 +02:00
Hosted Weblate 012782e11c
Merge branch 'origin/develop' into Weblate. 2023-10-27 13:40:12 +00:00
nobody 57ee4680a7
tensorflow v4.11.0 -> v4.12.0 (#1574) 2023-10-27 15:40:06 +02:00
Hosted Weblate c7b38a2c31
Merge branch 'origin/develop' into Weblate. 2023-10-27 13:38:14 +00:00
nobody 42dd025d0b
p5.js v1.7.0 -> v1.8.0 (#1573) 2023-10-27 15:38:05 +02:00
Hosted Weblate e36461250b
Merge branch 'origin/develop' into Weblate. 2023-10-27 13:36:31 +00:00
nobody 181fc6e609
swagger-ui v5.9.0 -> v5.9.1 (#1572) 2023-10-27 15:36:25 +02:00
Hosted Weblate 6064f182ed
Merge branch 'origin/develop' into Weblate. 2023-10-27 13:34:50 +00:00
nobody e549adf010
vue v3.3.4 -> v3.3.7 (#1571) 2023-10-27 15:34:38 +02:00
Hosted Weblate 91ade03190
Merge branch 'origin/develop' into Weblate. 2023-10-27 13:32:43 +00:00
nobody 314c90394d
video.js v8.6.0 -> v8.6.1 (#1570) 2023-10-27 15:32:36 +02:00
Hosted Weblate d2c597effb
Merge branch 'origin/develop' into Weblate. 2023-10-27 13:30:12 +00:00
nobody 96686d19db
Swiper v10.3.1 -> v11.0.2 (#1569) 2023-10-27 15:29:35 +02:00
HexagonCDN 3893b82113
Translated using Weblate (Vietnamese)
Currently translated at 94.6% (124 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/vi/
2023-10-27 11:26:20 +02:00
nobody 63d36a71ff
react-router v6.16.0 -> v6.17.0 (#1568) 2023-10-27 07:09:49 +02:00
nobody a00b2465f4
axios v1.5.1 -> v1.6.0 (#1567) 2023-10-27 07:08:22 +02:00
nobody bcf4a87a4a
alpinejs v3.13.1 -> v3.13.2 (#1566) 2023-10-27 07:07:01 +02:00
nobody 964a18d9e4
vanilla-lazyload v17.8.4 -> v17.8.5 (#1565) 2023-10-27 07:01:10 +02:00
nobody 4c3c61d786
search-insights v2.8.3 -> v2.9.0 (#1564) 2023-10-27 06:59:23 +02:00
nobody 39e696e280
react-intl v6.4.7 -> v6.5.1 (#1563) 2023-10-27 06:54:49 +02:00
nobody 8f2150cd85
tinymce v6.7.0 -> v6.7.2 (#1562) 2023-10-27 06:51:12 +02:00
Jouni 9189f073db add js-cookie 3 as well and non minified 2023-10-27 02:37:45 +03:00
Jouni 8433efd6cd add missing mapping
fixes https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/css/bootstrap-select.min.css
2023-10-26 23:19:59 +03:00
Jouni 59e3c28601 fix twitchtracker.com 2023-10-26 00:41:08 +03:00
nobody 96f86f766f
Improve handling empty variables (#1510) 2023-10-24 06:23:10 +02:00
nobody 822192dcbb
Hide "Block Google Fonts" button on Google websites (#1560) 2023-10-15 06:28:06 +02:00
nobody 5ee66f2a99
Allow Google fonts for Google services by default and permanently (#1560) 2023-10-13 08:55:30 +02:00
nobody e5e4482853
v2.6.58 2023-10-12 19:40:28 +02:00
nobody db18a578da
Merge remote-tracking branch 'origin/develop' 2023-10-12 19:37:27 +02:00
nobody e4a73d1c7f
libphonenumber-js v1.10.44 -> v1.10.47 (#1559) 2023-10-12 18:18:37 +02:00
nobody f05588d463
instantsearch.js v4.57.0 -> v4.58.0 (#1558) 2023-10-12 18:17:28 +02:00
nobody 5ae6873808
vue-i18n v9.4.1 -> v9.5.0 (#1557) 2023-10-12 18:16:03 +02:00
nobody e3748ac2be
jquery-validate v1.19.5 -> v1.20.0 (#1556) 2023-10-12 18:10:40 +02:00
nobody db62663c04
markdown-it v13.0.1 -> v13.0.2 (#1555) 2023-10-12 18:09:18 +02:00
nobody 72d3cb8116
react-redux v8.1.2 -> v8.1.3 (#1554) 2023-10-12 18:08:05 +02:00
nobody 25abef5ad2
mdb-ui-kit v6.4.1 -> v6.4.2 (#1553) 2023-10-12 18:05:48 +02:00
nobody 4bf8b20546
swagger-ui v5.7.2 -> v5.9.0 (#1552) 2023-10-12 18:04:19 +02:00
nobody bfb0e3d14f
alpinejs v3.13.0 -> v3.13.1 (#1551) 2023-10-12 18:02:52 +02:00
nobody b60b56fd24
video.js v8.5.3 -> v8.6.0 (#1550) 2023-10-12 08:27:55 +02:00
nobody 7920fd8028
Swiper v10.3.0 -> v10.3.1 (#1549) 2023-10-12 08:26:12 +02:00
nobody 2fb3c4c0e0
axios v1.5.0 -> v1.5.1 (#1548) 2023-10-12 08:24:28 +02:00
nobody 1fb7935004
search-insights v2.8.2 -> v2.8.3 (#1547) 2023-10-12 08:21:18 +02:00
nobody 7682e60ed4
highlight.js v11.8.0 -> v11.9.0 (#1546) 2023-10-12 08:17:48 +02:00
nobody 87bc85eba2
Translated using Weblate (Russian)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/ru/
2023-10-07 07:21:03 +02:00
Hosted Weblate abfb0d04b2
Merge branch 'origin/develop' into Weblate. 2023-10-07 07:10:11 +02:00
nobody 8503c84a72
update manifest (#136) 2023-10-07 07:10:03 +02:00
Eric e950b00ee5
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hans/
2023-10-06 20:11:21 +02:00
Džiugas J f86f4ec02f
Translated using Weblate (Lithuanian)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/lt/
2023-10-04 10:11:55 +02:00
Kryštof Černý 91799e4c7d
Translated using Weblate (Czech)
Currently translated at 83.2% (109 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/cs/
2023-09-30 17:03:23 +02:00
ovl-1 8631045996
Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.1% (126 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/nb_NO/
2023-09-26 15:59:32 +00:00
fresh 92fc011f9c
Translated using Weblate (Greek)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/el/
2023-09-26 04:00:24 +02:00
nobody 9a7021beaf
v2.6.57 2023-09-23 07:47:28 +02:00
nobody bdc9bded2d
Merge remote-tracking branch 'origin/develop' 2023-09-23 07:45:33 +02:00
nobody 9c4ccd057c
vue-router v4.2.4 -> v4.2.5 (#1545) 2023-09-23 07:39:38 +02:00
nobody a532c1b492
Swiper v10.2.0 -> v10.3.0 (#1544) 2023-09-23 07:38:32 +02:00
nobody 02619969d4
vue-i18n v9.4.0 -> v9.4.1 (#1532) 2023-09-21 18:58:59 +02:00
nobody a391c6ec35
swagger-ui v5.6.2 -> v5.7.2 (#1530) 2023-09-21 18:57:17 +02:00
nobody 1babd7ea9d
react-intl v6.4.6 -> v6.4.7 (#1529) 2023-09-21 18:55:50 +02:00
nobody 86dda9e518
instantsearch.js v4.56.10 -> v4.57.0 (#1533) 2023-09-21 18:54:01 +02:00
nobody 99eaabbc1c
instantsearch.css v8.0.0 -> v8.1.0 (#1543) 2023-09-21 18:51:10 +02:00
nobody d1d22630e2
lightgallery v2.7.1 -> v2.7.2 (#1542) 2023-09-21 18:49:32 +02:00
nobody 5e7a454b7f
bootswatch v5.3.1 -> v5.3.2 (#1541) 2023-09-21 18:47:57 +02:00
nobody ad1b2decf2
dayjs v1.11.9 -> v1.11.10 (#1540) 2023-09-21 18:46:22 +02:00
nobody 920510d226
bootstrap-icons v1.10.5 -> v1.11.1 (#1539) 2023-09-21 18:44:36 +02:00
nobody a66e7ceb21
tensorflow v4.10.0 -> v4.11.0 (#1538) 2023-09-21 18:42:00 +02:00
nobody 2e36dde703
react-router v6.15.0 -> v6.16.0 (#1537) 2023-09-21 18:40:18 +02:00
Hosted Weblate a993b7dcb5
Merge branch 'origin/develop' into Weblate. 2023-09-21 16:37:49 +00:00
nobody a2f3611d03
twitter-bootstrap v5.3.1 -> v5.3.2 (#1536) 2023-09-21 18:37:30 +02:00
Sergio Varela 811940152a
Translated using Weblate (Basque)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/eu/
2023-09-14 23:56:12 +02:00
nobody 1f479f0952
algoliasearch v4.19.1 -> v4.20.0 (#1534) 2023-09-12 18:22:46 +02:00
nobody 985687c9cd
instantsearch.js v4.56.9 -> v4.56.10 (#1533) 2023-09-12 18:20:47 +02:00
nobody 2589b0711c
vue-i18n v9.2.2 -> v9.4.0 (#1532) 2023-09-12 18:18:59 +02:00
nobody 5c72f18cd1
hls.js v1.4.10 -> v1.4.12 (#1531) 2023-09-12 18:17:23 +02:00
nobody d8058660d0
swagger-ui v5.4.2 -> v5.6.2 (#1530) 2023-09-12 18:15:28 +02:00
nobody 85b7cf9b27
react-intl v6.4.4 -> v6.4.6 (#1529) 2023-09-12 18:13:38 +02:00
nobody 2280a0dd9c
search-insights v2.8.1 -> v2.8.2 (#1528) 2023-09-12 18:11:55 +02:00
gallegonovato 025659ae1b
Translated using Weblate (Spanish)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/es/
2023-09-09 15:56:00 +02:00
nobody d8d48265d5
HTML filter trim spaces in character set detection (#1526) 2023-09-07 06:06:25 +02:00
109247019824 55fefd12b9
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/bg/
2023-09-06 14:03:02 +02:00
XieyilinMain cc500ea8e0
Translated using Weblate (Chinese (Simplified))
Currently translated at 95.4% (125 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hans/
2023-09-06 00:51:05 +02:00
Oskari Lavinto c103a85dbf
Translated using Weblate (Finnish)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/fi/
2023-09-06 00:51:05 +02:00
Oğuz Ersen dc7c93339b
Translated using Weblate (Turkish)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/tr/
2023-09-05 01:56:15 +02:00
Joel D'Silva 240626ee00
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/pt_BR/
2023-09-05 01:56:15 +02:00
Linerly f4ef988e98
Translated using Weblate (Indonesian)
Currently translated at 100.0% (131 of 131 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/id/
2023-09-04 16:58:51 +02:00
nobody a74897d4fd
update i18n (#1274) 2023-09-03 19:51:32 +02:00
nobody d77b319ff7
v2.6.56 2023-09-03 10:10:14 +02:00
nobody 708e36ea91
Merge remote-tracking branch 'origin/develop' 2023-09-03 10:06:41 +02:00
nobody 13b22d22d9
libphonenumber-js v1.10.43 -> v1.10.44 (#1522) 2023-09-03 08:28:14 +02:00
nobody 68b66e85dc
search-insights v2.7.0 -> v2.8.1 (#1525) 2023-09-01 06:29:01 +02:00
nobody 42ca858662
jquery v3.7.0 -> v3.7.1 (#1524) 2023-09-01 06:27:42 +02:00
nobody 21543aaef5
tinymce v6.6.2 -> v6.7.0 (#1520) 2023-09-01 06:25:24 +02:00
nobody 98d538e782
axios v1.4.0 -> v1.5.0 (#1523) 2023-08-29 06:29:01 +02:00
nobody 9ee35bfc21
libphonenumber-js v1.10.39 -> v1.10.43 (#1522) 2023-08-29 06:27:56 +02:00
nobody ac82ae02f1
instantsearch.js v4.56.8 -> v4.56.9 (#1521) 2023-08-29 06:26:15 +02:00
nobody 4b5eb20d18
tinymce v6.6.1 -> v6.6.2 (#1520) 2023-08-29 06:23:47 +02:00
nobody 6c10849dfd
feather-icons v4.29.0 -> v4.29.1 (#1519) 2023-08-29 06:16:30 +02:00
nobody 3340312140
swagger-ui v5.3.1 -> v5.4.2 (#1518) 2023-08-29 06:15:06 +02:00
nobody 14c07db07d
alpinejs v3.12.3 -> v3.13.0 (#1517) 2023-08-29 06:13:31 +02:00
nobody f009e7ff10
foundation v6.7.5 -> v6.8.1 (#1516) 2023-08-29 06:12:13 +02:00
nobody 54478e1c72
video.js v8.5.1 -> v8.5.3 (#1515) 2023-08-29 06:10:36 +02:00
nobody 461633aca2
Swiper v10.1.0 -> v10.2.0 (#1514) 2023-08-29 06:08:51 +02:00
nobody c663202e57
react-router v6.14.2 -> v6.15.0 (#1513) 2023-08-29 06:06:49 +02:00
nobody 4c3298469d
element-ui v2.15.13 -> v2.15.14 (#1512) 2023-08-29 06:04:05 +02:00
nobody 3c97891967
Translated using Weblate (Polish)
Currently translated at 99.1% (122 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/pl/
2023-08-28 06:43:01 +02:00
nobody 9933db9e38
Translated using Weblate (Luxembourgish)
Currently translated at 8.9% (11 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/lb/
2023-08-28 06:43:01 +02:00
Hosted Weblate 95053fb179
Merge branch 'origin/develop' into Weblate. 2023-08-28 06:10:40 +02:00
nobody 96843e89d3
Chart.js v4.3.3 -> v4.4.0 (#1511) 2023-08-28 06:10:34 +02:00
Hosted Weblate 1d95dd2507
Merge branch 'origin/develop' into Weblate. 2023-08-24 07:13:51 +02:00
nobody 411d671c6a
mark firefox sync storage as beta (#1510) 2023-08-24 07:12:23 +02:00
nobody 4de268cbcd
mark firefox sync storage as beta 2023-08-24 07:04:15 +02:00
nobody bcc7ceda05
v2.6.55 2023-08-08 06:11:58 +02:00
nobody 8353df88c3
Merge remote-tracking branch 'origin/develop' 2023-08-08 06:10:07 +02:00
nobody c420cc06ad
add header in changelog 2023-08-08 06:08:28 +02:00
nobody 22798f0861
Translated using Weblate (Russian)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/ru/
2023-08-05 10:47:13 +02:00
nobody c2e493491d
Translated using Weblate (Dutch)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/nl/
2023-08-05 10:47:12 +02:00
nobody 3ed8fa8b9a
tinymce v6.6.0 -> v6.6.1 (#1507) 2023-08-03 18:20:03 +02:00
nobody 4ed77703f1
socket.io v4.7.1 -> v4.7.2 (#1506) 2023-08-03 18:18:47 +02:00
nobody 6823a8a58a
font-awesome v6.4.0 -> v6.4.2 (#1505) 2023-08-03 18:16:40 +02:00
nobody ab3cf83fc9
libphonenumber-js v1.10.38 -> v1.10.39 (#1503) 2023-08-03 18:14:13 +02:00
nobody 7ba3e3a39b
swagger-ui v5.3.0 -> v5.3.1 (#1495) 2023-08-03 18:11:39 +02:00
nobody 940fe6afe0
Chart.js v4.3.2 -> v4.3.3 (#1490) 2023-08-03 18:08:45 +02:00
nobody 5189f4de83
algoliasearch v4.18.0 -> v4.19.1 (#1504) 2023-08-02 19:01:47 +02:00
nobody 70810502a7
libphonenumber-js v1.10.37 -> v1.10.38 (#1503) 2023-08-02 19:00:35 +02:00
nobody 1f5263d012
instantsearch.js v4.56.5 -> v4.56.8 (#1502) 2023-08-02 18:59:25 +02:00
nobody e41684bbec
hls.js v1.4.9 -> v1.4.10 (#1501) 2023-08-02 18:58:07 +02:00
nobody 6f651b0ed8
bootswatch v5.3.0 -> v5.3.1 (#1500) 2023-08-02 18:56:56 +02:00
nobody 74aa60647a
handlebars.js v4.7.7 -> v4.7.8 (#1499) 2023-08-02 18:55:45 +02:00
nobody 1954508c40
tensorflow v4.8.0 -> v4.10.0 (#1498) 2023-08-02 18:54:32 +02:00
nobody 2e60111d97
react-redux v8.1.1 -> v8.1.2 (#1497) 2023-08-02 18:52:51 +02:00
nobody db7f93becd
mdb-ui-kit v6.4.0 -> v6.4.1 (#1496) 2023-08-02 18:51:28 +02:00
nobody 410d35d4d7
swagger-ui v5.1.1 -> v5.3.0 (#1495) 2023-08-02 18:49:55 +02:00
nobody 55a2878f20
backbone.js v1.4.1 -> v1.5.0 (#1494) 2023-08-02 18:48:16 +02:00
nobody a799f6ae8f
Swiper v10.0.4 -> v10.1.0 (#1493) 2023-08-02 18:46:37 +02:00
nobody a09c0099bd
video.js v8.5.0 -> v8.5.1 (#1492) 2023-08-02 18:44:58 +02:00
nobody 8aaffc1072
react-router v6.14.1 -> v6.14.2 (#1491) 2023-08-02 18:43:18 +02:00
nobody 57479fb236
Chart.js v4.3.0 -> v4.3.2 (#1490) 2023-08-02 18:41:35 +02:00
nobody 5fbdccb321
twitter-bootstrap v5.3.0 -> v5.3.1 (#1489) 2023-08-02 18:40:09 +02:00
nobody 87c6f2e30f
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hans/
2023-08-02 18:14:35 +02:00
nobody 04f3311fd1
Translated using Weblate (Italian)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/it/
2023-08-02 18:14:34 +02:00
ovl-1 b7c014c053
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/nb_NO/
2023-08-01 17:08:54 +02:00
Milo Ivir e5dcd8724b
Translated using Weblate (Croatian)
Currently translated at 92.6% (114 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/hr/
2023-07-29 23:07:36 +02:00
Džiugas J c00963be54
Translated using Weblate (Lithuanian)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/lt/
2023-07-23 09:07:21 +02:00
soya_daizu 2bb837d6b6
Translated using Weblate (Japanese)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/ja/
2023-07-21 20:04:09 +02:00
109247019824 488cc9ff81
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/bg/
2023-07-19 12:02:17 +02:00
HexagonCDN 81d8b25664
Translated using Weblate (Vietnamese)
Currently translated at 99.1% (122 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/vi/
2023-07-17 17:05:55 +02:00
Linerly aa01daed75
Translated using Weblate (Indonesian)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/id/
2023-07-17 17:05:54 +02:00
Oskari Lavinto af866b062c
Translated using Weblate (Finnish)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/fi/
2023-07-17 17:05:54 +02:00
Oğuz Ersen 3ab8b3f4bd
Translated using Weblate (Turkish)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/tr/
2023-07-17 01:01:02 +02:00
Joel D'Silva d172b59447
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/pt_BR/
2023-07-17 01:01:01 +02:00
The RedBurn 42e09e67f5
Translated using Weblate (French)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/fr/
2023-07-17 01:01:01 +02:00
gallegonovato 62e14ef6de
Translated using Weblate (Spanish)
Currently translated at 100.0% (123 of 123 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/es/
2023-07-17 01:01:01 +02:00
nobody 70859e8c08
v2.6.54 2023-07-16 10:55:37 +02:00
nobody a4408dcf77
Merge remote-tracking branch 'origin/develop' 2023-07-16 10:53:57 +02:00
nobody a9926ed1e7
vanilla-lazyload v17.8.3 -> v17.8.4 (#1487) 2023-07-16 08:16:49 +02:00
nobody 64dedf48b1
tinymce v6.5.1 -> v6.6.0 (#1486) 2023-07-16 08:14:25 +02:00
nobody c55ca7728c
swagger-ui v5.1.0 -> v5.1.1 (#1485) 2023-07-16 08:12:38 +02:00
nobody d2df52e518
ngx-bootstrap v11.0.0 -> v11.0.2 (#1484) 2023-07-16 08:10:36 +02:00
nobody 1ea0187f54
hls.js v1.4.8 -> v1.4.9 (#1469) 2023-07-16 08:08:10 +02:00
nobody 25a4c4153f
update i18n (#1481) 2023-07-16 08:00:47 +02:00
nobody dd514ca735
refactor (#1481) 2023-07-16 08:00:31 +02:00
Hosted Weblate 10d74a1d18
Merge branch 'origin/develop' into Weblate. 2023-07-13 09:07:16 +02:00
nobody fc134259e8
Popup extended (#1481) 2023-07-13 09:07:02 +02:00
Joel D'Silva 6ad8fe087f
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/pt_BR/
2023-07-13 05:48:37 +02:00
Linerly de81d2050d
Translated using Weblate (Indonesian)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/id/
2023-07-12 20:51:57 +02:00
Oğuz Ersen ac3528075e
Translated using Weblate (Turkish)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/tr/
2023-07-12 08:50:42 +02:00
gallegonovato 864409439f
Translated using Weblate (Spanish)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/es/
2023-07-12 08:50:42 +02:00
109247019824 e86927cbfc
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/bg/
2023-07-12 08:50:42 +02:00
nobody 369e4cd393
ngx-bootstrap v10.3.0 -> v11.0.0 (#1484) 2023-07-11 19:46:02 +02:00
nobody 1a1f739d87
search-insights v2.6.0 -> v2.7.0 (#1483) 2023-07-11 19:45:02 +02:00
nobody 5d50eb9804
p5.js v1.6.0 -> v1.7.0 (#1482) 2023-07-11 19:43:39 +02:00
nobody 6414526be1
Swiper v10.0.3 -> v10.0.4 (#1479) 2023-07-11 19:41:49 +02:00
nobody 0619da368a
instantsearch.js v4.56.4 -> v4.56.5 (#1478) 2023-07-11 19:38:56 +02:00
nobody 189ab3b8cc
i18n updated (#1481) 2023-07-11 19:23:28 +02:00
nobody 8e91bbcb9e
Handling and logging of blocked resources (#1481) 2023-07-11 19:21:33 +02:00
nobody 2bb256418b
Translated using Weblate (Swedish)
Currently translated at 74.3% (90 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/sv/
2023-07-11 19:12:14 +02:00
nobody d24ddbc8be
Swiper v10.0.3 (#1479) 2023-07-08 07:36:59 +02:00
nobody 4b3c7f4717
instantsearch.js v4.56.3 -> v4.56.4 (#1478) 2023-07-08 07:35:44 +02:00
nobody 659a7aad90
bootstrap-table v1.22.0 -> v1.22.1 (#1477) 2023-07-08 07:34:20 +02:00
nobody 28024053e7
vue-router v4.2.2 -> v4.2.4 (#1476) 2023-07-08 07:32:47 +02:00
nobody 0f7d7bc314
alpinejs v3.12.2 -> v3.12.3 (#1475) 2023-07-08 07:31:23 +02:00
nobody 69720cb7ec
dayjs v1.11.8 -> v1.11.9 (#1474) 2023-07-08 07:29:57 +02:00
nobody 079751eab4
react-router v6.14.0 -> v6.14.1 (#1473) 2023-07-08 07:28:31 +02:00
nobody 8f58bc9424
hls.js v1.4.7 -> v1.4.8 (#1469) 2023-07-08 07:25:52 +02:00
nobody 9d67cfd885
Added: handlebars.js v4.7.7 (#1472) 2023-07-06 06:16:52 +02:00
nobody 936de4be31
libphonenumber-js v1.10.36 -> v1.10.37 (#1470) 2023-06-30 06:03:32 +02:00
nobody a95bf09e09
hls.js v1.4.6 -> v1.4.7 (#1469) 2023-06-30 06:02:05 +02:00
nobody 0af7a02812
socket.io v4.7.0 -> v4.7.1 (#1468) 2023-06-30 06:00:43 +02:00
nobody d1c5103abe
gsap v3.12.1 -> v3.12.2 (#1467) 2023-06-30 05:58:58 +02:00
nobody 296d066d2f
v2.6.53 2023-06-25 07:14:34 +02:00
nobody 6b4c22296b
Merge remote-tracking branch 'origin/develop' 2023-06-25 07:10:00 +02:00
nobody 27d891944f
docsify v4.13.0 -> v4.13.1 (#1466) 2023-06-25 07:01:12 +02:00
nobody 9c8fdb6eb2
algoliasearch v4.17.2 -> v4.18.0 (#1460) 2023-06-25 06:58:49 +02:00
nobody 2378c056c5
instantsearch.js v4.56.2 -> v4.56.3 (#1458) 2023-06-25 06:56:39 +02:00
nobody 69e4a882f2
tensorflow v4.7.0 -> v4.8.0 (#1453) 2023-06-25 06:54:34 +02:00
nobody 1834ee94f0
react-redux v8.1.0 -> v8.1.1 (#1451) 2023-06-25 06:45:38 +02:00
nobody 377cffa572
react-router v6.13.0 -> v6.14.0 (#1444) 2023-06-25 06:43:39 +02:00
nobody 8ea621233b
socket.io v4.6.2 -> v4.7.0 (#1443) 2023-06-25 06:41:24 +02:00
nobody bf42ccf8ff
swagger-ui v5.1.0 (#1465) 2023-06-19 18:07:15 +02:00
nobody e65faf6053
webrtc-adapter v8.2.2 -> v8.2.3 (#1464) 2023-06-19 18:05:31 +02:00
nobody 9113abeddf
react-intl v6.4.2 -> v6.4.4 (#1463) 2023-06-19 18:04:16 +02:00
nobody 5e869e0e48
noUiSlider v15.7.0 -> v15.7.1 (#1462) 2023-06-19 18:02:36 +02:00
nobody 8b7a43aee3
corejs-typeahead v1.3.1 -> v1.3.3 (#1461) 2023-06-19 18:01:31 +02:00
nobody 58fc0f48d2
algoliasearch v4.17.1 -> v4.17.2 (#1460) 2023-06-19 18:00:10 +02:00
nobody d7629b6393
libphonenumber-js v1.10.30 -> v1.10.36 (#1459) 2023-06-19 17:58:54 +02:00
nobody 22d5b0ab30
instantsearch.js v4.56.0 -> v4.56.2 (#1458) 2023-06-19 17:57:43 +02:00
nobody 503091cb9e
dexie v3.2.3 -> v3.2.4 (#1457) 2023-06-19 17:55:35 +02:00
nobody 67c533fa20
bootstrap-table v1.21.4 -> v1.22.0 (#1456) 2023-06-19 17:53:45 +02:00
nobody 9e4ac95c7c
hls.js v1.4.4 -> v1.4.6 (#1455) 2023-06-19 17:52:32 +02:00
nobody 69f262b31c
bootswatch v5.2.3 -> v5.3.0 (#1454) 2023-06-19 17:51:14 +02:00
nobody afe2109307
tensorflow v4.6.0 -> v4.7.0 (#1453) 2023-06-19 17:49:33 +02:00
nobody fb9c420ae9
vue-router v4.2.1 -> v4.2.2 (#1452) 2023-06-19 17:48:13 +02:00
nobody 800d6e14e4
react-redux v8.0.5 -> v8.1.0 (#1451) 2023-06-19 17:46:55 +02:00
nobody 15a8ce79cf
mdb-ui-kit v6.3.1 -> v6.4.0 (#1450) 2023-06-19 17:45:20 +02:00
nobody adf7e9af8c
alpinejs v3.12.1 -> v3.12.2 (#1449) 2023-06-19 17:43:56 +02:00
nobody 05470b0c15
bodymovin v5.11.0 -> v5.12.2 (#1448) 2023-06-19 17:42:51 +02:00
nobody ffc06d61df
Swiper v9.3.2 -> v9.4.1 (#1447) 2023-06-19 17:41:26 +02:00
nobody 7f63411375
video.js v8.3.0 -> v8.5.0 (#1446) 2023-06-19 17:40:04 +02:00
nobody a9773bfa91
dayjs v1.11.7 -> v1.11.8 (#1445) 2023-06-19 17:38:28 +02:00
nobody 6e109e5f44
react-router v6.11.2 -> v6.13.0 (#1444) 2023-06-19 17:35:38 +02:00
nobody e124f5d47c
socket.io v4.6.1 -> v4.6.2 (#1443) 2023-06-19 17:30:52 +02:00
nobody 4d6ce2148e
d3 v7.8.4 -> v7.8.5 (#1442) 2023-06-19 17:29:23 +02:00
nobody eecd3b7be9
gsap v3.11.5 -> v3.12.1 (#1441) 2023-06-19 17:27:15 +02:00
nobody 76dc71739d
tinymce v6.4.2 -> v6.5.1 (#1440) 2023-06-19 17:25:31 +02:00
nobody f970a14bc7
twitter-bootstrap v5.2.3 -> v5.3.0 (#1439) 2023-06-19 17:21:39 +02:00
nobody 9b10892227
v2.6.52 2023-05-27 07:18:37 +02:00
nobody 3d9a8b1ff3
Merge remote-tracking branch 'origin/develop' 2023-05-27 07:16:56 +02:00
nobody d801b2aed7
hls.js v1.4.3 -> v1.4.4 (#1432) 2023-05-27 06:31:26 +02:00
nobody 14f96d9bbd
mdb-ui-kit v6.3.0 -> v6.3.1 (#1429) 2023-05-27 06:29:55 +02:00
nobody 9587b64efd
algoliasearch v4.17.0 -> v4.17.1 (#1438) 2023-05-27 06:28:11 +02:00
nobody 9a9c839e7e
popper.js v2.11.7 -> v2.11.8 (#1437) 2023-05-27 06:26:39 +02:00
soya_daizu ffdc109570
Translated using Weblate (Japanese)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/ja/
2023-05-26 07:48:28 +02:00
nobody d16b2d90ec
videojs-seek-buttons v4.0.2 -> v4.0.3 (#1435) 2023-05-20 18:13:31 +02:00
nobody b8eb639b8c
libphonenumber-js v1.10.28 -> v1.10.30 (#1434) 2023-05-20 18:12:22 +02:00
nobody 0d97d18c74
instantsearch.js v4.55.0 -> v4.56.0 (#1433) 2023-05-20 18:11:03 +02:00
nobody 92b2abf04e
hls.js v1.4.0 -> v1.4.3 (#1432) 2023-05-20 18:09:46 +02:00
nobody 358dc875d2
tensorflow v4.4.0 -> v4.6.0 (#1431) 2023-05-20 18:08:31 +02:00
nobody 8960c6ee9f
vue-router v4.1.6 -> v4.2.1 (#1430) 2023-05-20 18:07:07 +02:00
nobody 596f4e9fbf
mdb-ui-kit v6.2.0 -> v6.3.0 (#1429) 2023-05-20 18:05:40 +02:00
nobody fef6dcf5f3
alpinejs v3.12.0 -> v3.12.1 (#1428) 2023-05-20 18:02:39 +02:00
nobody fb5708e880
Swiper v9.2.4 -> v9.3.2 (#1427) 2023-05-20 18:00:44 +02:00
nobody b9af867d43
leaflet v1.9.3 -> v1.9.4 (#1426) 2023-05-20 17:58:37 +02:00
nobody abb08156c8
react-router v6.11.1 -> v6.11.2 (#1425) 2023-05-20 17:56:53 +02:00
nobody 2d92693ca3
jquery v3.6.4 -> v3.7.0 (#1424) 2023-05-20 17:55:03 +02:00
nobody cfafe97443
vue v3.2.47 -> v3.3.4 (#1423) 2023-05-20 17:53:29 +02:00
nobody fea7d82e13
bootstrap-datepicker v1.9.0 -> v1.10.0 (#1422) 2023-05-20 17:50:07 +02:00
nobody 37b79442b5
Update README.md (#1417) 2023-05-13 06:59:28 +02:00
nobody fcedc6b6b4
Mapping jsdelivr.net -> docsearch.js (#1416) 2023-05-09 06:05:18 +02:00
nobody f1169b25fc
fix link in release notes page (#1415) 2023-05-09 06:04:54 +02:00
nobody a442481b9e
Mapping cdnjs -> bootstrap-table (#1415) 2023-05-08 19:13:44 +02:00
nobody 91b260b286
Mapping cdnjs -> typeahead.js (#1415) 2023-05-08 19:13:17 +02:00
nobody cc84af41b3
v2.6.51 2023-05-04 06:41:49 +02:00
nobody e9d684c63f
Merge remote-tracking branch 'origin/develop' 2023-05-04 06:39:55 +02:00
nobody 1a32921dd9
react-router v6.10.0 -> v6.11.1 (#1414) 2023-05-04 06:30:46 +02:00
nobody 752ccddb6e
Chart.js v4.2.1 -> v4.3.0 (#1413) 2023-05-04 06:29:44 +02:00
nobody 5630997a55
highlight.js v11.7.0 -> v11.8.0 (#1412) 2023-05-04 06:28:08 +02:00
nobody 54a29732c0
axios v1.3.6 -> v1.4.0 (#1401) 2023-05-04 06:25:25 +02:00
nobody da6ca5f0db
react-intl v6.4.1 -> v6.4.2 (#1400) 2023-05-04 06:23:31 +02:00
nobody d60bc761ae
libphonenumber-js v1.10.26 -> v1.10.28 (#1411) 2023-04-27 06:39:42 +02:00
nobody fa43aed7e9
instantsearch.js v4.54.0 -> v4.55.0 (#1410) 2023-04-27 06:38:47 +02:00
nobody 91635ad561
simplebar v6.2.4 -> v6.2.5 (#1409) 2023-04-27 06:37:38 +02:00
nobody 4df4d74e1e
bootstrap-icons v1.10.4 -> v1.10.5 (#1408) 2023-04-27 06:36:17 +02:00
nobody dbecacb3d1
hls.js v1.3.5 -> v1.4.0 (#1407) 2023-04-27 06:35:02 +02:00
nobody d11e215d8e
angular-ui-router v1.0.30 -> v1.1.0 (#1406) 2023-04-27 06:33:44 +02:00
nobody 24ff16393a
js-cookie v3.0.1 -> v3.0.5 (#1405) 2023-04-27 06:32:25 +02:00
nobody bcdad12bca
swagger-ui v4.18.2 -> v4.18.3 (#1404) 2023-04-27 06:31:05 +02:00
nobody f924b5ac87
bodymovin v5.10.2 -> v5.11.0 (#1403) 2023-04-27 06:29:09 +02:00
nobody bbbe8632fd
Swiper v9.2.0 -> v9.2.4 (#1402) 2023-04-27 06:27:44 +02:00
nobody edcccdc704
axios v1.3.5 -> v1.3.6 (#1401) 2023-04-27 06:26:10 +02:00
nobody 0df3cfc104
react-intl v6.3.2 -> v6.4.1 (#1400) 2023-04-27 06:24:40 +02:00
nobody 024590a750
tinymce v6.4.1 -> v6.4.2 (#1399) 2023-04-27 06:21:22 +02:00
nobody 84de6a7eb5
search-insights v2.4.0 -> v2.6.0 (#1398) 2023-04-27 06:18:32 +02:00
nobody ba6f848cea
Translated using Weblate (Hungarian)
Currently translated at 90.0% (109 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/hu/
2023-04-27 06:15:16 +02:00
nobody be808fc93a
v2.6.50 2023-04-09 20:48:19 +02:00
nobody 96459db914
Merge remote-tracking branch 'origin/develop' 2023-04-09 20:44:10 +02:00
nobody 8947cc165f
fix html tags in release notes 2023-04-08 19:49:20 +02:00
nobody cc4a310d72
Translated using Weblate (Hungarian)
Currently translated at 79.3% (96 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/hu/
2023-04-08 19:44:11 +02:00
Hosted Weblate 14c7c8eff4
Merge branch 'origin/develop' into Weblate. 2023-04-08 19:40:22 +02:00
nobody a3cdb74505
libphonenumber-js v1.10.24 -> v1.10.26 (#1395) 2023-04-08 19:40:11 +02:00
Hosted Weblate 165a8dd552
Merge branch 'origin/develop' into Weblate. 2023-04-08 19:39:13 +02:00
nobody db12249bef
bootstrap-icons v1.10.3 -> v1.10.4 (#1394) 2023-04-08 19:39:02 +02:00
Hosted Weblate 2c054fb70b
Merge branch 'origin/develop' into Weblate. 2023-04-08 19:37:38 +02:00
nobody 0756cd03be
tensorflow v4.3.0 -> v4.4.0 (#1393) 2023-04-08 19:37:26 +02:00
Hosted Weblate 4d208f33c2
Merge branch 'origin/develop' into Weblate. 2023-04-08 19:36:06 +02:00
nobody 0a4b344ee4
video.js v8.2.1 -> v8.3.0 (#1392) 2023-04-08 19:35:55 +02:00
Hosted Weblate dcdf33cbf6
Merge branch 'origin/develop' into Weblate. 2023-04-08 19:34:14 +02:00
nobody caa9031736
axios v1.3.4 -> v1.3.5 (#1391) 2023-04-08 19:34:02 +02:00
Hosted Weblate ddf8d3cfa8
Merge branch 'origin/develop' into Weblate. 2023-04-08 19:31:57 +02:00
nobody 59bfbccf1f
instantsearch.js v4.53.0 -> v4.54.0 (#1390) 2023-04-08 19:31:46 +02:00
Hosted Weblate 5183bb3a90
Merge branch 'origin/develop' into Weblate. 2023-04-08 19:29:53 +02:00
nobody 5d95d1e6cd
algoliasearch v4.16.0 -> v4.17.0 (#1387) 2023-04-08 19:29:40 +02:00
109247019824 4eb2a23c9d
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/bg/
2023-04-03 19:37:49 +02:00
nobody 9000ed8942
instantsearch.js v4.52.0 -> v4.53.0 (#1390) 2023-04-03 06:38:34 +02:00
nobody c254695e0f
webcomponentsjs v2.7.0 -> v2.8.0 (#1389) 2023-04-03 06:37:34 +02:00
nobody 3e3582f0bc
simplebar v6.2.1 -> v6.2.4 (#1388) 2023-04-03 06:36:26 +02:00
nobody c72584a99a
algoliasearch v4.15.0 -> v4.16.0 (#1387) 2023-04-03 06:35:14 +02:00
nobody b15c251711
bootstrap-table v1.21.3 -> v1.21.4 (#1386) 2023-04-03 06:34:13 +02:00
nobody 033bd7505e
plyr v3.7.7 -> v3.7.8 (#1385) 2023-04-03 06:31:49 +02:00
nobody 42c7df9f91
swagger-ui v4.18.1 -> v4.18.2 (#1384) 2023-04-03 06:30:40 +02:00
nobody 94ccae0d48
popper.js v2.11.6 -> v2.11.7 (#1383) 2023-04-03 06:29:19 +02:00
nobody 07900f39fc
Swiper v9.1.1 -> v9.2.0 (#1382) 2023-04-03 06:28:06 +02:00
nobody 2a1cd4725a
react-router v6.9.0 -> v6.10.0 (#1381) 2023-04-03 06:26:45 +02:00
nobody 71375854bc
font-awesome v6.3.0 -> v6.4.0 (#1380) 2023-04-03 06:25:00 +02:00
nobody fa0e546f92
d3 v7.8.2 -> v7.8.4 (#1379) 2023-04-03 06:23:39 +02:00
nobody 268b027925
Google Material Icons Round v107 -> v108 (#1378) 2023-04-03 06:22:29 +02:00
nobody 8bbeebd2fe
tinymce v6.4.0 -> v6.4.1 (#1377) 2023-04-03 06:19:19 +02:00
nobody 7e6a460d68
react-intl v6.3.0 -> v6.3.2 (#1376) 2023-04-03 06:15:36 +02:00
nobody 3107de0baf
search-insights v1.9.0 -> v1.10.0 (#1375) 2023-04-03 06:13:57 +02:00
nobody 6d42aebc58
search-insights v2.3.0 -> v2.4.0 (#1374) 2023-04-03 06:12:12 +02:00
nobody b9bf900990
v2.6.49 2023-03-18 08:12:06 +01:00
nobody c4fe930f9a
Merge remote-tracking branch 'origin/develop' 2023-03-18 08:07:16 +01:00
nobody 47d187e0b1
gsap v3.11.4 -> v3.11.5 (#1372) 2023-03-18 07:46:43 +01:00
nobody 9c503dab6c
tensorflow v4.2.0 -> v4.3.0 (#1371) 2023-03-18 07:44:53 +01:00
nobody d88821c0d9
hls.js v1.3.4 -> v1.3.5 (#1360) 2023-03-18 07:42:47 +01:00
nobody 1fe502ed21
paginationjs v2.5.0 -> v2.6.0 (#1370) 2023-03-17 06:22:19 +01:00
nobody a2331a3f23
Swiper v9.1.0 -> v9.1.1 (#1358) 2023-03-17 06:20:36 +01:00
nobody 708018daad
swagger-ui v4.18.0 -> v4.18.1 (#1348) 2023-03-17 06:19:03 +01:00
nobody 3396c25885
plyr v3.7.4 -> v3.7.7 (#1368) 2023-03-17 06:16:17 +01:00
nobody 63db74e703
libphonenumber-js v1.10.21 -> v1.10.24 (#1362) 2023-03-17 06:14:38 +01:00
nobody f9a7fab74d
react-router v6.8.2 -> v6.9.0 (#1357) 2023-03-17 06:13:21 +01:00
nobody 469145b293
webrtc-adapter v8.2.1 -> v8.2.2 (#1352) 2023-03-17 06:11:29 +01:00
nobody ef9a275de9
tinymce v6.3.2 -> v6.4.0 (#1350) 2023-03-17 06:09:49 +01:00
nobody d2f9cdfac5
video.js v8.2.0 -> v8.2.1 (#1347) 2023-03-17 06:07:18 +01:00
nobody 3d2529e72c
react-intl v6.2.10 -> v6.3.0 (#1344) 2023-03-17 06:05:16 +01:00
nobody 2c206a2d2e
instantsearch.js v4.51.1 -> v4.52.0 (#1353) 2023-03-09 17:51:57 +01:00
nobody b906e8fff5
swagger-ui v4.17.0 -> v4.18.0 (#1348) 2023-03-09 17:50:34 +01:00
nobody 071a5e8974
video.js v8.1.1 -> v8.2.0 (#1347) 2023-03-09 17:49:00 +01:00
nobody 72f3096c5c
plyr v3.7.3 -> v3.7.4 (#1368) 2023-03-09 17:46:25 +01:00
nobody 7c2f0b9054
alpinejs v3.11.1 -> v3.12.0 (#1367) 2023-03-09 17:43:51 +01:00
nobody 449c054c50
jquery v3.6.3 -> v3.6.4 (#1366) 2023-03-09 17:42:15 +01:00
nobody f234defa2a
Google Material Icons (#1365) 2023-03-09 17:40:36 +01:00
nobody ce353908fd
Translated using Weblate (Czech)
Currently translated at 79.3% (96 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/cs/
2023-03-09 05:43:50 +01:00
Hosted Weblate 205594e044
Merge branch 'origin/develop' into Weblate. 2023-03-05 06:53:28 +01:00
nobody fedd35553d
algoliasearch v4.14.3 -> v4.15.0 (#1363) 2023-03-05 06:53:14 +01:00
Hosted Weblate 729339407f
Merge branch 'origin/develop' into Weblate. 2023-03-05 06:52:06 +01:00
nobody b07b0e6196
libphonenumber-js v1.10.20 -> v1.10.21 (#1362) 2023-03-05 06:51:57 +01:00
Hosted Weblate 5ee613beb9
Merge branch 'origin/develop' into Weblate. 2023-03-05 06:50:52 +01:00
nobody 98b3262bb5
bootstrap-table v1.21.2 -> v1.21.3 (#1361) 2023-03-05 06:50:40 +01:00
Hosted Weblate 4317512601
Merge branch 'origin/develop' into Weblate. 2023-03-05 06:49:22 +01:00
nobody 08b2d3d0c3
hls.js v1.3.3 -> v1.3.4 (#1360) 2023-03-05 06:49:12 +01:00
Hosted Weblate d382a4acdd
Merge branch 'origin/develop' into Weblate. 2023-03-05 06:47:56 +01:00
nobody 8ffc7f161c
mdb-ui-kit v6.1.0 -> v6.2.0 (#1359) 2023-03-05 06:47:46 +01:00
Hosted Weblate c8bced0a18
Merge branch 'origin/develop' into Weblate. 2023-03-05 06:46:18 +01:00
nobody e10ff953d4
Swiper v9.0.5 -> v9.1.0 (#1358) 2023-03-05 06:46:09 +01:00
Hosted Weblate 62afde206a
Merge branch 'origin/develop' into Weblate. 2023-03-05 06:43:48 +01:00
nobody 2fdaa4dd80
react-router v6.8.1 -> v6.8.2 (#1357) 2023-03-05 06:43:39 +01:00
Hosted Weblate 9fa55028d6
Merge branch 'origin/develop' into Weblate. 2023-03-05 06:40:08 +01:00
nobody 493f8765c2
swagger-ui v4.16.0 -> v4.17.0 (#1348) 2023-03-05 06:39:54 +01:00
Hosted Weblate 28c4516501
Merge branch 'origin/develop' into Weblate. 2023-03-05 06:37:30 +01:00
nobody abc8561093
video.js v8.1.0 -> v8.1.1 (#1347) 2023-03-05 06:37:18 +01:00
vcrgr 6117a9582f
Translated using Weblate (Arabic)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/ar/
2023-02-26 14:36:52 +01:00
Hosted Weblate cbbc95efc6
Merge branch 'origin/develop' into Weblate. 2023-02-25 11:16:04 +01:00
nobody bb4f50dc4e
jquery-migrate v3.4.0 -> v3.4.1 (#1354) 2023-02-25 11:15:58 +01:00
Hosted Weblate f0db72f410
Merge branch 'origin/develop' into Weblate. 2023-02-25 11:14:23 +01:00
nobody 34561a72b5
instantsearch.js v4.51.0 -> v4.51.1 (#1353) 2023-02-25 11:14:18 +01:00
Hosted Weblate bae385131d
Merge branch 'origin/develop' into Weblate. 2023-02-25 11:12:38 +01:00
nobody 1c28c70109
webrtc-adapter v8.2.0 -> v8.2.1 (#1352) 2023-02-25 11:12:33 +01:00
Hosted Weblate 51c891d8e9
Merge branch 'origin/develop' into Weblate. 2023-02-25 11:10:34 +01:00
nobody 03dad51141
lightbox2 v2.11.3 -> v2.11.4 (#1351) 2023-02-25 11:10:25 +01:00
Hosted Weblate daf6cb1798
Merge branch 'origin/develop' into Weblate. 2023-02-25 11:07:00 +01:00
nobody 4db952c676
tinymce v6.3.1 -> v6.3.2 (#1350) 2023-02-25 11:06:53 +01:00
Hosted Weblate ba40a7070f
Merge branch 'origin/develop' into Weblate. 2023-02-25 11:04:19 +01:00
nobody 6b8d5fb4e2
p5.js v1.5.0 -> v1.6.0 (#1349) 2023-02-25 11:04:12 +01:00
Hosted Weblate fc54ebd367
Merge branch 'origin/develop' into Weblate. 2023-02-25 11:02:20 +01:00
nobody 2473acf355
swagger-ui v4.15.5 -> v4.16.0 (#1348) 2023-02-25 11:02:13 +01:00
Hosted Weblate 5c5ddab6af
Merge branch 'origin/develop' into Weblate. 2023-02-25 11:00:26 +01:00
nobody 8f0b805748
video.js v8.0.4 -> v8.1.0 (#1347) 2023-02-25 11:00:20 +01:00
Hosted Weblate 4eddf0c5f4
Merge branch 'origin/develop' into Weblate. 2023-02-25 10:59:05 +01:00
nobody a5ae06d562
socket.io v4.6.0 -> v4.6.1 (#1346) 2023-02-25 10:59:00 +01:00
Hosted Weblate a78ed5cdcc
Merge branch 'origin/develop' into Weblate. 2023-02-25 10:57:32 +01:00
nobody 85f9073652
axios v1.3.3 -> v1.3.4 (#1345) 2023-02-25 10:57:26 +01:00
Hosted Weblate 4f5f507330
Merge branch 'origin/develop' into Weblate. 2023-02-25 10:55:38 +01:00
nobody d4b7f3ed8a
react-intl v6.2.8 -> v6.2.10 (#1344) 2023-02-25 10:55:04 +01:00
Hosted Weblate 15f18d21c0
Merge branch 'origin/develop' into Weblate. 2023-02-25 10:52:09 +01:00
nobody c77f871d2e
react-intl v6.2.8 -> v6.2.10 (1344) 2023-02-25 10:52:02 +01:00
wordpure 48fedb1bdd
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hans/
2023-02-23 12:36:13 +01:00
nobody d2d4cd74b7
v2.6.48 2023-02-19 06:57:30 +01:00
nobody a78dc36877
Merge remote-tracking branch 'origin/develop' 2023-02-19 06:55:25 +01:00
nobody 21d7791004
ngx-bootstrap v10.2.1 -> v10.3.0 (#1342) 2023-02-18 06:54:41 +01:00
nobody b347c6ddb5
search-insights v1.8.0 -> v1.9.0 (#1341) 2023-02-18 06:53:41 +01:00
nobody fc400a77b6
search-insights v2.2.3 -> v2.3.0 (#1340) 2023-02-18 06:52:15 +01:00
nobody 810687c50c
dygraph v2.2.0 -> v2.2.1 (#1339) 2023-02-18 06:50:03 +01:00
nobody f408b92b9c
libphonenumber-js v1.10.19 -> v1.10.20 (#1338) 2023-02-16 06:28:26 +01:00
nobody eb07933187
axios v1.3.2 -> v1.3.3 (#1337) 2023-02-16 06:27:18 +01:00
nobody 72c512b648
element-ui v2.15.12 -> v2.15.13 (#1336) 2023-02-16 06:26:00 +01:00
nobody 7ec0a5dc90
instantsearch.js v4.50.3 -> v4.51.0 (#1332) 2023-02-16 06:23:10 +01:00
nobody ab17c1d5c1
Swiper v9.0.4 -> v9.0.5 (#1330) 2023-02-16 06:21:17 +01:00
nobody 4947e003da
Translated using Weblate (Slovak)
Currently translated at 66.1% (80 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/sk/
2023-02-14 01:45:08 +01:00
nobody a33b28127e
simplebar v6.2.0 -> v6.2.1 (#1334) 2023-02-12 18:23:54 +01:00
nobody cb29353ea7
MathJax v3 tex-svg.js (#1333) 2023-02-12 18:21:19 +01:00
nobody 124a0e4ed7
instantsearch.js v4.50.2 -> v4.50.3 (#1332) 2023-02-10 18:48:04 +01:00
nobody 450e8759f6
hls.js v1.3.2 -> v1.3.3 (#1331) 2023-02-10 18:46:29 +01:00
nobody 7b72bf9b08
Swiper v9.0.2 -> v9.0.4 (#1330) 2023-02-10 18:44:51 +01:00
nobody 8a7fd53ebf
react-router v6.8.0 -> v6.8.1 (#1329) 2023-02-10 18:43:07 +01:00
nobody 0a90078b53
socket.io v4.5.4 -> v4.6.0 (#1328) 2023-02-10 18:41:30 +01:00
nobody 4d37de3fe3
Chart.js v4.2.0 -> v4.2.1 (#1327) 2023-02-10 18:38:57 +01:00
nobody fd8ba606ae
font-awesome v6.2.1 -> v6.3.0 (#1326) 2023-02-10 18:37:04 +01:00
nobody d37501cbb7
react-intl v6.2.7 -> v6.2.8 (#1325) 2023-02-10 18:34:57 +01:00
nobody 6bed933f35
noUiSlider v15.6.1 -> v15.7.0 (#1324) 2023-02-10 18:31:02 +01:00
nobody f6e9085dde
v2.6.47 2023-02-10 18:27:43 +01:00
nobody 605c8f4f8e
Merge remote-tracking branch 'origin/develop' 2023-02-05 07:01:04 +01:00
nobody 849d942fee
video.js v8.0.3 -> v8.0.4 (#1321) 2023-02-04 06:23:31 +01:00
nobody feac596052
vue v3.2.45 -> v3.2.47 (#1320) 2023-02-04 06:21:23 +01:00
nobody 171bbb0dba
Swiper v9.0.0 -> v9.0.2 (#1319) 2023-02-04 06:17:11 +01:00
nobody e7ed6f621b
axios v1.3.1 -> v1.3.2 (#1310) 2023-02-04 06:14:59 +01:00
Hosted Weblate 2fa732f6bd
Merge branch 'origin/develop' into Weblate. 2023-02-02 06:12:13 +01:00
nobody f81f9fe233
Swiper v9.0.0 (#1319) 2023-02-02 06:11:05 +01:00
Hosted Weblate c6102b4252
Merge branch 'origin/develop' into Weblate. 2023-02-02 06:10:23 +01:00
nobody 956591f852
libphonenumber-js v1.10.18 -> v1.10.19 (#1318) 2023-02-02 06:08:51 +01:00
Hosted Weblate d34b10bacc
Merge branch 'origin/develop' into Weblate. 2023-02-02 06:07:21 +01:00
nobody 95fcb36a0b
hls.js v1.3.1 -> v1.3.2 (#1317) 2023-02-02 06:05:11 +01:00
Hosted Weblate d32fd5be35
Merge branch 'origin/develop' into Weblate. 2023-02-02 06:04:50 +01:00
nobody b51820b66a
axios v1.2.6 -> v1.3.1 (#1310) 2023-02-02 06:01:48 +01:00
Small Ku 3a88ea1ff5
Translated using Weblate (Chinese (Traditional))
Currently translated at 82.6% (100 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hant/
2023-01-31 22:50:03 +01:00
nobody f3e3a3a0e0
Swiper v8.4.6 -> v8.4.7 (#1316) 2023-01-31 06:13:59 +01:00
nobody 53f076f1f8
redux v4.2.0 -> v4.2.1 (#1315) 2023-01-31 06:12:37 +01:00
nobody 9c80f9e758
react-intl v6.2.6 -> v6.2.7 (#1313) 2023-01-31 06:10:43 +01:00
nobody 8a775a96e8
axios v1.2.5 -> v1.2.6 (#1310) 2023-01-31 06:08:58 +01:00
nobody 5baa696437
instantsearch.js v4.50.1 -> v4.50.2 (#1311) 2023-01-31 06:07:30 +01:00
nobody 329257aba5
More information about blocked resources (#1309) 2023-01-30 06:28:07 +01:00
nobody dcda699d31
react-router v6.7.0 -> v6.8.0 (#1314) 2023-01-27 06:38:57 +01:00
nobody bfd7853bfc
react-intl v6.2.5 -> v6.2.6 (#1313) 2023-01-27 06:37:35 +01:00
nobody 14a64eed70
dygraph v2.1.2 -> v2.2.0 (#1312) 2023-01-27 06:35:27 +01:00
nobody 03f70b23e0
instantsearch.js v4.49.4 -> v4.50.1 (#1311) 2023-01-27 06:34:08 +01:00
nobody 1f5fa54087
axios v1.2.3 -> v1.2.5 (#1310) 2023-01-27 06:31:47 +01:00
nobody a65ec8cbb4
cdnjs.com -> Some angular modules (#1307) 2023-01-24 18:59:59 +01:00
nobody 60bc3ba1d9
dexie v3.2.2 -> v3.2.3 (#1306) 2023-01-24 18:22:38 +01:00
nobody 9194675fa6
bodymovin v5.10.1 -> v5.10.2 (#1305) 2023-01-24 18:17:26 +01:00
nobody bc3f53e81b
v2.6.46 2023-01-21 07:08:01 +01:00
nobody 4a0379f97e
Merge remote-tracking branch 'origin/develop' 2023-01-21 07:04:50 +01:00
nobody e0c4793fc6
anchor-js v5.0.0 (#1304) 2023-01-20 19:12:01 +01:00
nobody d61f4896b1
slider-pro v1.6.1 -> v1.6.2 (#1303) 2023-01-20 19:09:21 +01:00
nobody 46d39d959b
simplebar v6.1.0 -> v6.2.0 (#1298) 2023-01-20 19:07:18 +01:00
nobody ee888f7d87
d3 v7.8.1 -> v7.8.2 (#1291) 2023-01-20 19:05:35 +01:00
nobody cef242e465
react-router v6.6.2 -> v6.7.0 (#1289) 2023-01-20 19:03:59 +01:00
nobody 158cc99575
Chart.js v4.1.2 -> v4.2.0 (#1286) 2023-01-20 19:01:39 +01:00
nobody e67b6715ec
Set correct text for HTML filter 2023-01-20 06:54:52 +01:00
nobody 4de7637259
SimpleLog extended for iframes (#1302) 2023-01-20 06:48:18 +01:00
nobody 9dfdfb79d4
alpinejs v3.10.5 -> v3.11.1 (#1301) 2023-01-18 06:03:14 +01:00
nobody 415ba7ed8a
Swiper v8.4.5 -> v8.4.6 (#1300) 2023-01-18 06:01:25 +01:00
nobody 298335d881
videojs-seek-buttons v4.0.1 -> v4.0.2 (#1299) 2023-01-18 05:59:34 +01:00
Hosted Weblate e434aef75e
Merge branch 'origin/develop' into Weblate. 2023-01-17 06:19:40 +01:00
nobody 22fddd114a
simplebar v6.1.0 (#1298) 2023-01-17 06:19:30 +01:00
Hosted Weblate d6987e7f3c
Merge branch 'origin/develop' into Weblate. 2023-01-17 06:17:57 +01:00
nobody abf1528efb
axios v1.2.2 -> v1.2.3 (#1297) 2023-01-17 06:17:48 +01:00
Hosted Weblate f6d2ff1755
Merge branch 'origin/develop' into Weblate. 2023-01-17 06:16:29 +01:00
nobody 75f6ccfe3a
hls.js v1.3.0 -> v1.3.1 (#1293) 2023-01-17 06:16:18 +01:00
Hosted Weblate d6d38903a4
Merge branch 'origin/develop' into Weblate. 2023-01-17 06:12:36 +01:00
nobody 44cf42d839
Allow Fork-Awesome in Chromium (#1296) 2023-01-17 06:12:18 +01:00
RainSlide 9ccb17006e
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hans/
2023-01-16 17:50:26 +01:00
nobody 5312bbc8aa
Direct call of Google Material Icons (#1295) 2023-01-16 06:04:01 +01:00
nobody 8a30ea7321
hls.js v1.2.9 -> v1.3.0 (#1293) 2023-01-14 06:09:45 +01:00
nobody 5b030ddabc
lightgallery v2.7.0 -> v2.7.1 (#1292) 2023-01-12 05:54:03 +01:00
nobody e3191f180b
d3 v7.8.0 -> v7.8.1 (#1291) 2023-01-12 05:51:52 +01:00
nobody d135fe1f4d
instantsearch.js v4.49.3 -> v4.49.4 (#1290) 2023-01-12 05:50:32 +01:00
nobody 057590a16d
react-router v6.6.1 -> v6.6.2 (#1289) 2023-01-12 05:48:47 +01:00
nobody 3566499d5d
libphonenumber-js v1.10.16 -> v1.10.18 (#1288) 2023-01-12 05:46:05 +01:00
nobody a0613896a7
libphonenumber-js v1.10.15 -> v1.10.16 (#1288) 2023-01-07 07:04:57 +01:00
nobody 05a9a617e4
video.js v8.0.2 -> v8.0.3 (#1287) 2023-01-07 07:03:28 +01:00
nobody 3c71651f99
Chart.js v4.1.1 -> v4.1.2 (#1286) 2023-01-07 06:58:50 +01:00
nobody 7b11ca98ad
ngx-bootstrap v10.2.0 -> v10.2.1 (#1285) 2023-01-07 06:53:06 +01:00
nobody 592a1437bc
twitter-bootstrap v4.4.1 (#1284) 2023-01-07 06:47:37 +01:00
nobody 3630b02dd9
v2.6.45 2023-01-05 19:05:27 +01:00
nobody 1ab265f08f
Merge remote-tracking branch 'origin/develop' 2023-01-05 18:56:59 +01:00
nobody 230742f800
Removed: findify (#1283) 2023-01-05 18:12:11 +01:00
nobody cbc92a2e87
Chart.js in statistics page fixed 2023-01-05 18:05:15 +01:00
Hosted Weblate f429a5cc75
Merge branch 'origin/develop' into Weblate. 2023-01-05 07:14:18 +01:00
nobody 9b744464c7
URI.js (#1282) 2023-01-05 07:13:17 +01:00
HexagonCDN 7f0a79d589
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/vi/
2023-01-04 20:49:32 +01:00
nobody d4b3ab01ab
instantsearch.css v8.0.0 (#1281) 2023-01-04 06:35:13 +01:00
nobody 3b339bc34a
instantsearch.js v4.49.2 -> v4.49.3 (#1260) 2023-01-04 06:32:54 +01:00
nobody 0d97357901
tensorflow v4.1.0 -> v4.2.0 (#1264) 2023-01-04 06:31:17 +01:00
nobody 503f5c935e
twitter-bootstrap v4.1.1 (#1280) 2023-01-03 06:48:44 +01:00
nobody 7f0f4e871d
mdb-ui-kit v6.0.1 -> v6.1.0 (#1279) 2023-01-02 18:25:12 +01:00
nobody 03e3c26fd6
vue-router v3.6.5 & v4.1.6 (#1278) 2023-01-02 18:23:01 +01:00
nobody bce1f15562
ScrollMagic v2.0.8 (#1277) 2023-01-02 18:20:02 +01:00
nobody 8d3c93ca4e
bodymovin v5.10.0 -> v5.10.1 (#1276) 2022-12-30 06:31:37 +01:00
nobody 43fddbffcd
Filename Chart.js (#1275) 2022-12-30 06:29:38 +01:00
nobody 24cd4f4c0d
bootstrap-icons v1.10.2 -> v1.10.3 (#1273) 2022-12-28 07:32:59 +01:00
nobody 14db93dfbe
react-router v6.6.0 -> v6.6.1 (#1266) 2022-12-28 07:31:44 +01:00
nobody f29490b654
unpkg.com/cdn.jsdelivr.net -> aos@next (#1272) 2022-12-28 07:24:59 +01:00
nobody d720699b91
gsap v3.11.3 -> v3.11.4 (#1270) 2022-12-22 18:50:26 +01:00
nobody 024f7bd850
paginationjs v2.4.2 -> v2.5.0 (#1252) 2022-12-22 18:49:08 +01:00
nobody ece55170b6
axios v1.2.1 -> v1.2.2 (#1269) 2022-12-22 06:17:53 +01:00
nobody 7fced3db0d
d3 v7.7.0 -> v7.8.0 (#1268) 2022-12-22 06:16:45 +01:00
nobody cc3bf6f923
react-router v6.5.0 -> v6.6.0 (#1266) 2022-12-22 06:14:42 +01:00
nobody 4849165a65
ngx-bootstrap v10.0.0 -> v10.2.0 (#1257) 2022-12-22 06:13:03 +01:00
nobody bfba663e4c
jquery v3.6.2 -> v3.6.3 (#1256) 2022-12-22 06:11:39 +01:00
nobody c6d7bd5c8c
findify-bundle v7.1.78 -> v7.1.80 (#1253) 2022-12-22 06:10:05 +01:00
nobody a91a4c3c33
Translated using Weblate (Hungarian)
Currently translated at 64.4% (78 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/hu/
2022-12-22 05:30:41 +01:00
nobody cce8e51018
algoliasearch v4.14.2 -> v4.14.3 (#1267) 2022-12-20 06:04:06 +01:00
nobody f9992007cc
Empty lines removed 2022-12-18 07:52:40 +01:00
nobody 6e11a9a469
Chart.js v4.1.0 -> v4.1.1 (#1263) 2022-12-18 07:51:58 +01:00
nobody af27965d1f
react-router v6.4.5 -> v6.5.0 (#1266) 2022-12-18 07:50:09 +01:00
nobody 24dd4ea41a
Bootstrap: Redirect alpha and beta versions to the stable version (#1265) 2022-12-18 07:45:41 +01:00
nobody 6ecbcf1007
tensorflow v4.1.0 (#1264) 2022-12-18 07:40:03 +01:00
nobody 3eec741435
Chart.js v4.0.1 -> v4.1.0 (#1263) 2022-12-16 18:36:02 +01:00
nobody 6eaac02657
slider-pro v1.6.0 -> v1.6.1 (#1262) 2022-12-16 06:09:41 +01:00
nobody c28a893e38
dygraph v2.1.0 -> v2.1.2 (#1261) 2022-12-16 06:06:06 +01:00
nobody a708b35798
instantsearch.js v4.49.1 -> v4.49.2 (#1260) 2022-12-16 06:04:54 +01:00
nobody 6d5cea78f3
ngx-bootstrap v10.0.0 -> v10.1.0 (#1257) 2022-12-14 06:32:03 +01:00
nobody 954f78a6bd
jquery v3.6.1 -> v3.6.2 (#1256) 2022-12-14 06:27:57 +01:00
nobody 8f075aaaa4
nprogress v0.2.0 (#1254) 2022-12-14 06:25:23 +01:00
nobody bbcb6a3cd8
findify-bundle v7.1.77 -> v7.1.78 (#1253) 2022-12-13 06:23:07 +01:00
nobody fcb204c8f3
paginationjs v2.4.1 -> v2.4.2 (#1252) 2022-12-13 06:21:43 +01:00
nobody b2e4d0dce8
bootstrap-table v1.21.1 -> v1.21.2 (#1251) 2022-12-13 06:20:13 +01:00
nobody 5fa31e781f
bootswatch v5.2.2 -> v5.2.3 (#1250) 2022-12-13 06:17:57 +01:00
Hosted Weblate 52fd4adc56
Merge branch 'origin/develop' into Weblate. 2022-12-13 06:08:55 +01:00
nobody bc1c9f3aef
HTML filter active by default (#1249) 2022-12-13 06:08:31 +01:00
Hosted Weblate d6dcc71087
Merge branch 'origin/develop' into Weblate. 2022-12-11 05:21:58 +01:00
nobody 84c65a310b
html structure improved (#1237) 2022-12-11 05:21:36 +01:00
HexagonCDN c2055ba308
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/vi/
2022-12-10 15:48:20 +01:00
nobody 0418b83a47
v2.6.44 2022-12-10 08:16:08 +01:00
nobody 95df4e8afd
Merge remote-tracking branch 'origin/develop' 2022-12-10 08:14:26 +01:00
nobody cbd17e7e07
libphonenumber-js v1.10.14 -> v1.10.15 (#1247) 2022-12-10 07:16:01 +01:00
nobody 3d76b53bba
swagger-ui v4.15.5 (#1246) 2022-12-10 07:13:55 +01:00
nobody d18cd6f98c
ngx-bootstrap v10.0.0 (#1245) 2022-12-09 05:54:36 +01:00
nobody d4beca1905
hls.js v1.2.8 -> v1.2.9 (#1244) 2022-12-09 05:53:26 +01:00
nobody 958fda3ab6
dayjs v1.11.6 -> v1.11.7 (#1243) 2022-12-09 05:51:48 +01:00
nobody 0ab8fab186
react-router v6.4.4 -> v6.4.5 (#1242) 2022-12-09 05:50:16 +01:00
nobody dac5b69e52
findify-bundle v7.1.75 -> v7.1.77 (#1241) 2022-12-09 05:48:34 +01:00
nobody 2d75448e66
paginationjs v2.3.0 -> v2.4.1 (#1240) 2022-12-06 06:33:46 +01:00
nobody 2caed0b644
tinymce v6.3.0 -> v6.3.1 (#1239) 2022-12-06 06:32:27 +01:00
nobody 247c6ede5a
axios v1.2.0 -> v1.2.1 (#1238) 2022-12-06 06:30:34 +01:00
nobody 3073ceec1a
Sync: settings are not saved locally (#1236) 2022-12-05 06:30:47 +01:00
nobody 12d1313ef8
v2.6.43 2022-12-04 15:14:11 +01:00
nobody a5ed931b51
Merge remote-tracking branch 'origin/develop' 2022-12-04 15:08:49 +01:00
nobody 2a0b03ac51
Fixed: Settings import function (#1234) 2022-12-04 12:26:55 +01:00
nobody c149ab0fff
v2.6.42 2022-12-04 08:02:19 +01:00
nobody 7d5fefbba6
Merge remote-tracking branch 'origin/develop' 2022-12-04 07:59:24 +01:00
nobody 190dec1045
d3 v7.6.1 -> v7.7.0 (#1235) 2022-12-04 07:25:03 +01:00
nobody 366fee286a
Settings import function improved (#1234) 2022-12-04 07:15:39 +01:00
nobody 809e96bb41
Translated using Weblate (Arabic)
Currently translated at 100.0% (121 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/ar/
2022-12-03 07:05:01 +01:00
nobody 299ecfd566
Improve single version number detection (#1229) 2022-12-03 07:01:51 +01:00
nobody 20c140798c
MathJax v3 tex-chtml.js (#1229) 2022-12-03 06:58:31 +01:00
nobody aa94989a4f
paginationjs v2.1.5 -> v2.3.0 (#1232) 2022-12-03 06:38:11 +01:00
nobody f4444b8d1f
react-router v6.3.0 -> v6.4.4 (#1231) 2022-12-03 06:36:47 +01:00
nobody 301463dd87
react-intl v6.2.2 -> v6.2.5 (#1227) 2022-12-03 06:34:19 +01:00
nobody 079a2e68ea
findify-bundle v7.1.73 -> v7.1.75 (#1221) 2022-12-03 06:32:01 +01:00
nobody 2dc8c14086
Synchronize settings (#1223) 2022-12-03 06:22:57 +01:00
nobody d8f6587a14
hls.js v1.2.7 -> v1.2.8 (#1228) 2022-11-30 18:45:02 +01:00
nobody d4020b89fd
react-intl v6.2.1 -> v6.2.2 (#1227) 2022-11-30 18:43:29 +01:00
nobody 94ec2422a6
findify-bundle v7.1.71 -> v7.1.73 (#1221) 2022-11-30 18:40:59 +01:00
nobody 0465b630d1
Block all non GET requests to CDN (#1226) 2022-11-29 07:03:15 +01:00
nobody c9d2eb85ce
bodymovin v5.9.6 -> v5.10.0 (#1225) 2022-11-29 06:12:51 +01:00
nobody f8433d8de2
findify-bundle v7.1.70 -> v7.1.71 (#1221) 2022-11-29 06:11:15 +01:00
nobody 937d8f513a
bootbox.js v6.0.0 (#1224) 2022-11-27 07:09:48 +01:00
nobody 5f68ff3fc0
highlight.js v11.6.0 -> v11.7.0 (#1222) 2022-11-25 06:41:33 +01:00
nobody a6cf311595
findify-bundle v7.1.68 -> v7.1.70 (#1221) 2022-11-25 06:39:45 +01:00
nobody da5e6adc3c
video.js v8.0.1 -> v8.0.2 (#1219) 2022-11-25 06:36:51 +01:00
nobody 4c45d6415a
Translated using Weblate (Chinese (Traditional))
Currently translated at 74.3% (90 of 121 strings)

Translate-URL: https://hosted.weblate.org/projects/localcdn/localcdn/zh_Hant/
2022-11-24 06:21:38 +01:00
nobody 8d373c32cf
tinymce v6.2.0 -> v6.3.0 (#1220) 2022-11-24 06:17:56 +01:00
nobody 6e2af9ff2f
video.js v8.0.1 (#1219) 2022-11-24 06:16:39 +01:00
nobody 680e405177
videojs-seek-buttons v4.0.1 (#1218) 2022-11-24 06:14:28 +01:00
nobody 073dd31ad1
Updated: CONTRIBUTING.md (#1209) 2022-11-24 06:12:21 +01:00
nobody 42ecd530e9
mdb-ui-kit v6.0.0 -> v6.0.1 (#1216) 2022-11-23 06:33:59 +01:00
nobody 2d165773ad
Swiper v8.4.4 -> v8.4.5 (#1215) 2022-11-23 06:33:03 +01:00
nobody d210f5855a
video.js v7.21.0 -> v7.21.1 (#1214) 2022-11-23 06:31:50 +01:00
nobody b322eac6c0
socket.io v4.5.3 -> v4.5.4 (#1213) 2022-11-23 06:30:40 +01:00
nobody 21e9882718
axios v1.1.3 -> v1.2.0 (#1212) 2022-11-23 06:29:28 +01:00
nobody 3b67310eb2
twitter-bootstrap v5.2.2 -> v5.2.3 (#1211) 2022-11-23 06:27:58 +01:00
Hosted Weblate 22f736a459
Merge branch 'origin/develop' into Weblate. 2022-11-23 06:16:26 +01:00
nobody e7c0d8da54
Added: knockout.mapping v2.4.1 (#1210) 2022-11-23 06:16:05 +01:00
Hosted Weblate affbf67f32
Merge branch 'origin/develop' into Weblate. 2022-11-23 06:14:33 +01:00
nobody f33ad5e39b
Added: knockout.mapping v2.4.1 (#1210) 2022-11-23 06:14:29 +01:00
nobody 66319206ea
Added: knockout v3.4.2 (#1210) 2022-11-23 06:13:31 +01:00
Hosted Weblate 3fb721c5b8
Merge branch 'origin/develop' into Weblate. 2022-11-19 07:42:46 +01:00
nobody b91bbf995d
v2.6.41 2022-11-19 07:42:04 +01:00
nobody e57393c792
v2.6.41 2022-11-19 07:40:55 +01:00
1472 changed files with 20715 additions and 25352 deletions

View File

@ -33,6 +33,8 @@
"BadgeSettingMissingResource": true,
"BadResources": true,
"LogString": true,
"BlockedRequestMethods": true,
"GoogleDomains": true,
"fileGuard": true,
"files": true,

View File

@ -2,9 +2,11 @@
The following is a set of guidelines for contributing to LocalCDN.
Pull requests via codeberg are the best way to contribute, and are always welcome. Pull requests are an easy way to add frameworks and update resources. Feel free to suggest changes to this or any other document in a pull request as well.
Pull requests via codeberg are the best way to contribute, and are always welcome. Pull requests are an easy way to add frameworks and update resources. Feel free to suggest changes to this or any other document in a pull request as well.
Please note the two-branch structure of this extension. The "develop" branch is where the next release is being produced, while "main" holds the current release. Target all pull requests to the develop branch.
Please note the two-branch structure of this extension. The "develop" branch is where the next release is being produced, while "main" holds the current release. Target all pull requests to the develop branch.
I would be happy if you would implement one of the requested features. These feature requests have the label PR welcome, see [here](https://codeberg.org/nobody/LocalCDN/issues?q=&labels=74391).
## Content
* [Guidelines](#guidelines)

View File

@ -1,16 +1,13 @@
## Please read this text carefully(!)
## Please read the following points carefully(!). This is not a template or a form. These are just a few tips before you create a ticket. Please delete all text and describe the problem.
* Only Firefox: Does the website work after you activate the HTML filter?
* Is there already an existing issue? (Search for the URL, e.g. "codeberg.org" or "localcdn.org")
* Is there already an existing issue? (e.g. search for the URL of the website)
* 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
* write the URL in the title
* one or two screenshots can be helpful
* Check the FAQs: https://codeberg.org/nobody/LocalCDN/wiki
## Please delete this text(!)
## and describe the problem
Thank you for your understanding
## If none of the above points have helped, then
* Write the URL of the website in the title, for example
* Describe the problem as detailed as possible (maybe one or two screenshots can be helpful)

View File

@ -70,7 +70,7 @@ In some cases, LocalCDN is not allowed to replace requested resources because th
## Contributing Code
Suggestions in the form of **Issues**, and contributions in the form of **Merge Requests**, are highly welcome.
Suggestions in the form of **Issues**, and contributions in the form of **Merge/Pull Requests**, are highly welcome.
## Installation

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"extensionDescription": {
"message": "يحميك من التتبع عبر شبكات توصيل المحتوى (CDNs) عن طريق إعادة التوجيه إلى موارد محليَّة.",
"message": "يحميك من التتبع عبر شبكات توصيل المحتوى (CDNs) عن طريق إعادة التوجيه إلى موارد محلية.",
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
},
"amountInjectedDescription": {
@ -159,6 +159,10 @@
"message": "العام الماضي",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "حذف",
"description": "Button to delete all statistics data."
@ -364,7 +368,7 @@
"description": "Mode"
},
"helpRuleGeneratorUblockTableUseful": {
"message": "قواعد مفيدة",
"message": "قواعد مفيدةقواعد مفيدة",
"description": "Rules useful"
},
"helpRuleGeneratorUblockTableDefaultEasy": {
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "شارة المورد غير المتوفر",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -1,6 +1,6 @@
{
"extensionDescription": {
"message": "Защитава от проследяване от страна на мрежите за доставка на съдържание като пренасочва заявките към местни ресурси.",
"message": "Предпазва от проследяване от мрежите за доставка на съдържание като пренасочва заявките им към местни ресурси.",
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
},
"amountInjectedDescription": {
@ -159,6 +159,10 @@
"message": "Миналата година",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "Всички",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Премахване",
"description": "Button to delete all statistics data."
@ -392,7 +396,7 @@
"description": "Dont panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. Thats all. Ive an example here:"
},
"helpStatisticsContent": {
"message": "Статистиката не съдържа информация за мрежовия четец, операционната система, страницата, от която идва заявката, IP адреси или друга информация. Само дата, брояч на мрежа за доставка на съдържание (МДС) и брояч на софтуерни рамки. Статистиката показва кои софтуени рамки са заменени от LocalCDN колко често и кои МДС са били поискани.",
"message": "Статистиката не съдържа информация за мрежовия четец, операционната система, страницата, от която идва заявката, IP адреси или друга информация. Само дата, брояч на мрежа за доставка на съдържание (МДС) и брояч на софтуерни рамки. Статистиката показва кои софтуерни рамки са заменени от LocalCDN колко често и кои МДС са били поискани.",
"description": "The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested."
},
"helpStatisticsTruthTitle": {
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Пиктограма за липсващ ресурс",
"description": "Missing resource badge"
"message": "Пиктограма за липсващ или спрян ресурс",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Спрян",
"description": "Blocked"
},
"counterMissing": {
"message": "Липсващ",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Няма права",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Достъпва данните ви за всички страници",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Не забранявайте това право. LocalCDN се нуждае от него, за да определя и пренасочва заявките към МДС.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Защо разширението се нуждае от тези права?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN трябва да знае кои заявки идват от страниците, за да ги пренасочва или спира. С въвеждането на издание 3 на Манифеста (MV3) това право е незадължително.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Липсващи права",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Разрешаване",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Подробности",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "L'any passat",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Suprimeix",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "Falta la insígnia de recursos",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -128,7 +128,7 @@
"description": "If requests for missing resources are allowed, connections to \"fonts.googleapis.com\" are not blocked. Enable this option to block these requests."
},
"chooseIconStyle": {
"message": "Vyberte si ikonu pro toto rozšíření",
"message": "Vybraná ikona tohoto rozšíření",
"description": "Choose an icon for this extension"
},
"internalStatisticsTitle": {
@ -159,6 +159,10 @@
"message": "Minulý rok",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Smazat",
"description": "Button to delete all statistics data."
@ -204,7 +208,7 @@
"description": "Local"
},
"labelStorageTypeSync": {
"message": "Synchronizovat",
"message": "Synchronizova",
"description": "Sync"
},
"headerImportExport": {
@ -328,15 +332,15 @@
"description": "The result then looks like this:"
},
"helpHtmlFilterWhyTitle": {
"message": "",
"message": "Proč je nutné odstranit atributy crossorigin a integrity?",
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
},
"helpHtmlFilterCrossorigin": {
"message": "",
"message": "Atribut crossorigin brání nahrazení, protože cíl neodpovídá požadovanému.",
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
},
"helpHtmlFilterIntegrity": {
"message": "",
"message": "Chcete-li ušetřit místo na disku a dodat více rámců LocalCDN upgraduje rámec. Značka integrity je hash hodnotou souboru. Pokud se kontrola nezdaří, prohlížeč nebude obsahovat framework. Kontrola integrity se nezdaří, protože hodnoty hash pro např. jQuery 1.10.1 a jQuery 1.12.4 se liší.",
"description": "To save disk space and to deliver more frameworks LocalCDN upgrades a framework. An integrity tag is the hash value of a file. If the check fails, the browser wont include a framework. The integrity check will fail because the hash values for e.g. jQuery 1.10.1 and jQuery 1.12.4 are different."
},
"helpHtmlFilterErrors": {
@ -344,7 +348,7 @@
"description": "Unfortunately, it sometimes happens that special characters are then displayed incorrectly. In this case you can deactivate the setting again, to display the umlauts correctly."
},
"helpRuleGeneratorDescription": {
"message": "",
"message": "Pokud chcete automaticky přesměrovat všechna podporovaná připojení k CDN do LocalCDN, můžete přidat tato pravidla do vašeho blokovače reklam pro povolení těchto přesměrování. Pokud pravidla nechcete přidat, musíte povolit každé CDN zvlášť na každé webové stránce.",
"description": "If you want to automatically redirect all supported CDN connections to LocalCDN, you can add these rules to your adblocker to allow these redirections. If you do not want to add these rules, you must allow each CDN connection individually for each website."
},
"helpRuleGeneratorUblockTitle": {
@ -352,7 +356,7 @@
"description": "Only uBlock Origin:"
},
"helpRuleGeneratorUblockDescription": {
"message": "",
"message": "Tato pravidla jsou relevantní pouze ve »středním« nebo »těžkém« režimu, protože blokuje veškeré zdroje třetích stran. Nejsou potřeba ve »výchozím«, »jednoduchém« nebo »velmi jednoduchém« režimu. Pro více informací navštivte Wiki uBlock Origin.",
"description": "These rules are only relevant in »medium« or »hard« mode, because it blocks all 3rd-party resources. They are not necessary in »default«, »easy« or »very-easy« mode. For more information, please visit the uBlock Origin Wiki."
},
"helpRuleGeneratorUblockTableIcon": {
@ -364,11 +368,11 @@
"description": "Mode"
},
"helpRuleGeneratorUblockTableUseful": {
"message": "",
"message": "Týká se",
"description": "Rules useful"
},
"helpRuleGeneratorUblockTableDefaultEasy": {
"message": "",
"message": "Výchozí/lehký",
"description": "Default/Easy"
},
"helpRuleGeneratorUblockTableMedium": {
@ -376,23 +380,23 @@
"description": "Medium"
},
"helpRuleGeneratorUblockTableHard": {
"message": "",
"message": "Přísný",
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "",
"message": "Jsou tu dvě možné příčiny: buď požadovaný framework/knihovna není (zatím) poskytována LocalCDN nebo SOP. SOP (Same origin policy) je bezpečnostní mechanizmus, který určuje, jaká data může prohlížeč načíst. Pomáhá izolovat zákeřné dokumenty a snižuje tím možné způsoby útoku. Tato zásada znemožňuje prohlížeči načíst externí frameworky LocalCDN. Bohužel to v současnosti nemá žádné řešení.",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
"message": "",
"message": "LocalCDN může nahradit »Google Material Icons«. Chcete-li zachytit připojení, váš blokátor reklam (např. uBlock Origin, uMatrix nebo AdGuard) musí požadavek povolit. LocalCDN naslouchá těmto požadavkům a pokud dotaz obsahuje »Google Material Icons«, zdroj bude nahrazen. Pokud zrušíte zaškrtnutí možnosti »Blokovat požadavky na chybějící obsah«, bude povolen průchod neexistujícím zdrojům a načte se »Google Fonts«, protože »Google Material Icons« a »Google Fonts« používají stejnou doménu. Pokud si to nepřejete, můžete zablokovat »Google Fonts« na LocalCDN .",
"description": "LocalCDN can replace »Google Material Icons«. To catch the connection your adblocker (e.g. uBlock Origin, uMatrix or AdGuard) must allow the request. LocalCDN listens on these requests and if the query contains »Google Material Icons«, the resource will be replaced. If you uncheck the »Block requests for missing content« option, non-existent resources will be allowed to pass and »Google Fonts« will be loaded, because »Google Material Icons« and »Google Fonts« use the same domain. If you dont want this, you can block »Google Fonts« on LocalCDN."
},
"helpStatisticsDescription": {
"message": "",
"message": "Nepanikařte, nic nebude přeneseno. Bylo by to proti všem mým zásadám. Statistiky (formát JSON) obsahují následující informace: datum, CDN+počítadlo a framework+počítadlo. To je vše, tady je příklad:",
"description": "Dont panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. Thats all. Ive an example here:"
},
"helpStatisticsContent": {
"message": "",
"message": "Statistiky neobsahují informace o prohlížeči, operačním systému, webové stránce, IP adrese ani jiné informace. Jen datum, CDN+počítadlo a framework+počítadlo. Ukazují vám frameworky, které byly nahrazeny LocalCDN, a jak často a které CDN byly vyžádány.",
"description": "The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested."
},
"helpStatisticsTruthTitle": {
@ -400,27 +404,27 @@
"description": "How do I know thats true?"
},
"helpStatisticsTruthDescription": {
"message": "",
"message": "Úložiště rozšíření lze zobrazit přímo v prohlížeči Firefox. Otevřete URL »about:debugging«, přepněte na »Úložiště« a zvolte »Extension Storage«. Pod klíčem »internalStatisticsData« najdete shromážděná data. Stačí jej zkopírovat a vložit do tiskárny JSON PrettyPrinter, aby byl čitelnější. Vezměte prosím na vědomí, že musíte odstranit první a poslední uvozovky a klíč k nim. V tomto videu byste to měli jasně vidět.",
"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": {
"message": "",
"message": "Co bude synchronizováno, když vyberu »synchronizovaný« typ úložiště?",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpSyncDescription": {
"message": "",
"message": "Synchronizace bude fungovat pouze pokud jste přihlášeni Firefox účtem ve vašem zařízení a dovolili jste synchronizaci nastavení doplňků. Zvláštní server pro synchronizaci pod vaší kontrolou bude též fungovat. Bude se synchronizovat většina nastavení LocalCDN napříč všemi zařízeními.",
"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": {
"message": "",
"message": "Pokud nemáte účet pro synchronizaci, nic nebude synchronizováno. V tomto případě nemá výběr vliv.",
"description": "If you dont have a sync account, nothing will be synchronized. In that case it makes no difference what type of storage you have selected."
},
"helpSyncContentNever": {
"message": "",
"message": "Položky, které nikdy nebudou synchronizovány:",
"description": "Things that are never synchronized:"
},
"helpNumberOfInjections": {
"message": "",
"message": "Počet vložení",
"description": "Numbers of injections"
},
"helpYes": {
@ -440,7 +444,7 @@
"description": "Settings that will be synchronized:"
},
"helpIcons": {
"message": "",
"message": "Výchozí, světlá, modrá/šedá",
"description": "Default, Light, Blue/Grey"
},
"helpSyncContentLinks": {
@ -456,31 +460,71 @@
"description": "Replace"
},
"helpReplaceOther": {
"message": "",
"message": "Nahradit ostatní zdroje",
"description": "Replace other resources"
},
"helpUpgradeAllResources": {
"message": "",
"message": "Nahradit všechny zdroje",
"description": "Upgrade all resources"
},
"helpExplanationChrome": {
"message": "",
"message": "Všechny prohlížeče založené na Chromiu",
"description": "All Chromium based Browser"
},
"helpLimitation": {
"message": "",
"message": "Toto není omezení LocalCDN, ale chybějící API v prohlížečích založených na Chromiu.",
"description": "This is not a limitation of LocalCDN, but missing API support of Chromium based browsers."
},
"titleBadgeDefault": {
"message": "",
"message": "Výchozí odznak",
"description": "Default badge"
},
"titleBadgeHTMLFilter": {
"message": "",
"message": "Odznak HTML filtru",
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"message": "Odznak chybějících nebo blokovaných zdrojů",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Zablokovaných",
"description": "Blocked"
},
"counterMissing": {
"message": "Chybějících",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Oprávnění odebráno",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Přistupovat k vašim datům pro všechny webové stránky",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Prosíme, nezakazujte toto oprávnění. LocalCDN potřebuje toto oprávnění pro detekci a přesměrování požadavků na CDN.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Proč toto rozšíření potřebuje toto oprávnění?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN potřebuje znát, které požadavky jsou vytvořeny webovou stránkou pro jejich přesměrování nebo blokování. Po představení MV3 je toto oprávnění volitelné.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Chybějící oprávnění",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Povolit",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Další informace",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Sidste år",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Slette",
"description": "Button to delete all statistics data."
@ -188,7 +192,7 @@
"description": "Advanced"
},
"btnOther": {
"message": "Anden",
"message": "Andet",
"description": "Other"
},
"btnInfo": {
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "Manglende ressourcemærke",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Letztes Jahr",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "Alles",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Löschen",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Symbol für fehlende Resourcen",
"description": "Missing resource badge"
"message": "Symbol für fehlende oder blockierte Ressourcen",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Geblockt",
"description": "Blocked"
},
"counterMissing": {
"message": "Fehlend",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Berechtigung entzogen",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Auf Ihre Daten für alle Websites zugreifen",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Bitte deaktiviere diese Berechtigung nicht. LocalCDN braucht diese Berechtigung, um Anfragen an CDNs zu erkennen und umzuleiten.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Warum braucht diese Erweiterung diese Berechtigung?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN muss wissen, welche Anfragen von einer Website ausgelöst werden, um sie umzuleiten oder zu blockieren. Mit der Einführung von MV3 wird dieses Recht als optionales Recht gelistet.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Fehlende Berechtigung",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Erlauben",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Weitere Informationen",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Τον προηγούμενο χρόνο",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Διαγραφή",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Εικονίδιο ανύπαρκτου πόρου",
"description": "Missing resource badge"
"message": "Εικονίδιο ανύπαρκτου ή αποκλεισμένου πόρου",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Αποκλεισμένο",
"description": "Blocked"
},
"counterMissing": {
"message": "Ανύπαρκτο",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Ανάκληση άδειας",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Πρόσβαση στα δεδομένα σας σε όλους τους ιστότοπους",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Παρακαλώ μην ανακαλέσετε την άδεια. Το LocalCDN τη χρειάζεται για την ανίχνευση και την ανακατεύθυνση των αιτημάτων στα CDN.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Γιατί η επέκταση αυτή χρειάζεται αυτή την άδεια;",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "Το LocalCDN χρειάζεται να γνωρίζει τι αιτήσεις δημιουργούνται από έναν ιστότοπο, για την ανακατεύθυνση ή την αποκλεισμό του. Με την παρουσίαση του MV3, η άδεια αυτή θεωρείται προαιρετική.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Ανύπαρκτη άδεια",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Επίτρεψε",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Περισσότερες πληροφορίες",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Last year",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "All",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Delete",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Missing resource badge",
"description": "Missing resource badge"
"message": "Missing or blocked resource badge",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Blocked",
"description": "Blocked"
},
"counterMissing": {
"message": "Missing",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Permission revoked",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Access your data for all websites",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Why does this extension need this permission?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Missing permission",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Allow",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "More info",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Last year",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "All",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Delete",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Missing resource badge",
"description": "Missing resource badge"
"message": "Missing or blocked resource badge",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Blocked",
"description": "Blocked"
},
"counterMissing": {
"message": "Missing",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Permission revoked",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Access your data for all websites",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Why does this extension need this permission?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Missing permission",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Allow",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "More info",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Last year",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "All",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Delete",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Missing resource badge",
"description": "Missing resource badge"
"message": "Missing or blocked resource badge",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Blocked",
"description": "Blocked"
},
"counterMissing": {
"message": "Missing",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Permission revoked",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Access your data for all websites",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Why does this extension need this permission?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Missing permission",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Allow",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "More info",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Lasta jaro",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Forviŝi",
"description": "Button to delete all statistics data."
@ -292,7 +296,7 @@
"description": "What about the statistics? Is anything transferred to any servers?"
},
"helpWhatWillBeSynchronizedTitle": {
"message": "",
"message": "Kio estos sinkronigita kiam mi elektas \"sinkronigi\" kiel stokotipo?",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpBrowserCompatibilityTitle": {
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "Insigno pri mankantaj resursoj",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -1,6 +1,6 @@
{
"extensionDescription": {
"message": "Le protege contra el rastreo de CDN (Redes de entrega de contenido) mediante la redirección a recursos locales.",
"message": "Protege contra el rastreo a través de CDN (Redes de entrega de contenido) mediante la redirección a recursos locales.",
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
},
"amountInjectedDescription": {
@ -159,6 +159,10 @@
"message": "Último año",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "Todo",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Eliminar",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Icono en recursos que faltan",
"description": "Missing resource badge"
"message": "Credencial del recurso ausente o bloqueado",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Bloqueado",
"description": "Blocked"
},
"counterMissing": {
"message": "Desaparecido",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Permiso retirado",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Accede a tus datos para todos los sitios web",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Por favor, no deshabilites el permiso. LocalCDN necesita el permiso para detectar y redirigir las solicitudes a CDN.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "¿Por qué necesita esta extensión este permiso?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN necesita saber qué peticiones crea una página web para redirigirlas o bloquearlas. Con la introducción de MV3, este permiso aparece como opcional.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Falta el permiso",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Permitir",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Más información",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Viimane aasta",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Kustuta",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Iaz",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Ezabatu",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Ikonoa falta diren baliabideetan",
"description": "Missing resource badge"
"message": "Baliabidearen kredentziala ez dago edo blokeatuta dago",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Blokeatuta",
"description": "Blocked"
},
"counterMissing": {
"message": "Ez dago",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Baimena erretiratuta",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Sartu zure webgune guztietarako datuetan",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Mesedez, ez desgaitu baimena. LocalCDN-k baimena behar du eskaerak detektatzeko eta CDN-ra bideratzeko.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Zergatik behar du hedapen honek baimen hau?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN-k jakin behar du weborri batek zer eskaera sortzen dituen horiek bideratzeko edo blokeatzeko. MV3-rekin, baimen hau aukerakoa da.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Baimena falta da",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Baimendu",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Informazio gehiago",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Viime vuosi",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Poista",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Puuttuvan resurssin kuvake",
"description": "Missing resource badge"
"message": "Puuttuva tai estetty resurssimerkki",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Estetty",
"description": "Blocked"
},
"counterMissing": {
"message": "Puuttuu",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Käyttöoikeus mitätöity",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Käytä dataasi kaikilta sivustoilta",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Älä poista tätä käyttöoikeutta. LocalCDN tarvitsee sitä pyyntöjen tunnistukseen ja uudelleenohjaukseen jakeluverkoille.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Miksi laajennus tarvitsee tämän käyttöoikeuden?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN:n tarvitsee tietää mitkä pyynnöt ovat verkkosivuston luomia ohjatakseen tai estääksen ne. MV3-rajapintaan siirtymisen seurauksena tämä käyttöoikeus näytetään valinnaisena.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Riittämättömät käyttöoikeudet",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Salli",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Lisätietoja",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Lannée dernière",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Supprimer",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Badge de ressource manquante",
"description": "Missing resource badge"
"message": "Badge de ressource manquante ou bloquée",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Bloqués",
"description": "Blocked"
},
"counterMissing": {
"message": "Manquants",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "שנה שעברה",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "מחיקה",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Prošle godine",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Izbriši",
"description": "Button to delete all statistics data."
@ -192,7 +196,7 @@
"description": "Other"
},
"btnInfo": {
"message": "Podaci",
"message": "Informacije",
"description": "Info"
},
"headerStorageType": {
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Nedostaje značka resursa",
"description": "Missing resource badge"
"message": "Nedostajuća ili blokirana značka resursa",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Blokirano",
"description": "Blocked"
},
"counterMissing": {
"message": "Nedostaje",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Múlt év",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Törlés",
"description": "Button to delete all statistics data."
@ -284,15 +288,15 @@
"description": "Some websites look strange or are not easy to use"
},
"helpBlockGoogleFontsTitle": {
"message": "",
"message": "Miért van »Google Betűtipusok blokkolása « opció?",
"description": "Why is there a »Block Google Fonts« option?"
},
"helpStatisticsTitle": {
"message": "",
"message": "Mi van a statisztikákkal? Van ami elküldődik bármilyen szerverre?",
"description": "What about the statistics? Is anything transferred to any servers?"
},
"helpWhatWillBeSynchronizedTitle": {
"message": "",
"message": "Mi lesz szinkronizálva, ha a »Szinkronizálás« opciót választom tárhely típusnak?",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpBrowserCompatibilityTitle": {
@ -300,39 +304,39 @@
"description": "Browser compatibility"
},
"helpIntroductionDescription": {
"message": "",
"message": "A LocalCDN egy webböngésző kiegészítő, ami utánozza tartalom kiszolgálói hálózatokat, hogy jobbá tegye az online magánszférát. Felfogja a forgalmat, és megtalálja a támogatott keresztrendszereket/könyvtárakat helyileg, és beinjektálja ezeket a weboldalba. Nyugodtan használd a következő tesztelő eszközt, hogy kiderüljön tényleg védett vagy. Több információért olvasd el a tutorialt, vagy a Wiki oldalainkat.",
"description": "LocalCDN is a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported frameworks/libraries locally, and injects them into the website. Feel free to use the following testing utility to find out if you are properly protected. For more information read the tutorial or our Wiki pages."
},
"helpLinkTestUtility": {
"message": "",
"message": "Tesztelőeszköz",
"description": "Testing utility"
},
"helpLinkTutorial": {
"message": "",
"message": "Bemutató",
"description": "Tutorial"
},
"helpLinkWikiPages": {
"message": "",
"message": "Wiki oldalak",
"description": "Wiki pages"
},
"helpHtmlFilterDescription": {
"message": "",
"message": "A legtöbb esetben LocalCDN egyszerűen helyettesíti a beágyazott keretrendszereket, és jobbá teszi a magánszférát. Más esetekben a weboldal megpróbálhatja megakadályozni ezt a HTML forráskódban levő bizonyos opciókkal. LocalCDN beolvassa a HTML forráskódot mielőtt megjelenik a böngészőben, és eltávolítja ezeket a részeket (piros).",
"description": "In most cases LocalCDN can easily replace embedded frameworks and improves privacy. In some cases the website may try to prevent this by setting certain options in the HTML source code. LocalCDN reads the HTML source code before it is displayed in the browser and removes these part (red)."
},
"helpHtmlFilterBefore": {
"message": "",
"message": "A HTML filter ami letörli a pirosbkaraktereket mint ebben a bemutatóban:",
"description": "The HTML filter removes the red characters from this example:"
},
"helpHtmlFilterAfter": {
"message": "",
"message": "Így fog ki nézni:",
"description": "The result then looks like this:"
},
"helpHtmlFilterWhyTitle": {
"message": "",
"message": "Miért szükséges eltávolítani a kereszteredtű- és sérthetetlenségtulajdonságokat?",
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
},
"helpHtmlFilterCrossorigin": {
"message": "",
"message": "A kereszteredetű tulajdonság megakadályozza a helyettesítést, mert a címzett nem egyezett a kérttel.",
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
},
"helpHtmlFilterIntegrity": {
@ -348,7 +352,7 @@
"description": "If you want to automatically redirect all supported CDN connections to LocalCDN, you can add these rules to your adblocker to allow these redirections. If you do not want to add these rules, you must allow each CDN connection individually for each website."
},
"helpRuleGeneratorUblockTitle": {
"message": "",
"message": "Csak uBlock Origin:",
"description": "Only uBlock Origin:"
},
"helpRuleGeneratorUblockDescription": {
@ -356,11 +360,11 @@
"description": "These rules are only relevant in »medium« or »hard« mode, because it blocks all 3rd-party resources. They are not necessary in »default«, »easy« or »very-easy« mode. For more information, please visit the uBlock Origin Wiki."
},
"helpRuleGeneratorUblockTableIcon": {
"message": "",
"message": "Ikon",
"description": "Icon"
},
"helpRuleGeneratorUblockTableMode": {
"message": "",
"message": "Mód",
"description": "Mode"
},
"helpRuleGeneratorUblockTableUseful": {
@ -368,15 +372,15 @@
"description": "Rules useful"
},
"helpRuleGeneratorUblockTableDefaultEasy": {
"message": "",
"message": "Alapértelmezett/Könnyű",
"description": "Default/Easy"
},
"helpRuleGeneratorUblockTableMedium": {
"message": "",
"message": "Közepes",
"description": "Medium"
},
"helpRuleGeneratorUblockTableHard": {
"message": "",
"message": "Nehéz",
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
@ -396,7 +400,7 @@
"description": "The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested."
},
"helpStatisticsTruthTitle": {
"message": "",
"message": "Honnan tudom, hogy igaz?",
"description": "How do I know thats true?"
},
"helpStatisticsTruthDescription": {
@ -404,7 +408,7 @@
"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": {
"message": "",
"message": "Mi lesz szinkronizálva, ha kiválsztom a »sync« tároló tipúsnak?",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpSyncDescription": {
@ -416,71 +420,111 @@
"description": "If you dont have a sync account, nothing will be synchronized. In that case it makes no difference what type of storage you have selected."
},
"helpSyncContentNever": {
"message": "",
"message": "Dolgok amik soha nem lesznek szinkronizálva:",
"description": "Things that are never synchronized:"
},
"helpNumberOfInjections": {
"message": "",
"message": "Injekciók száma",
"description": "Numbers of injections"
},
"helpYes": {
"message": "",
"message": "Igen",
"description": "Yes"
},
"helpNo": {
"message": "",
"message": "Nem",
"description": "No"
},
"helpData": {
"message": "",
"message": "Adat",
"description": "Data"
},
"helpSyncContentEver": {
"message": "",
"message": "Beállítások amik szinkronizálva lesznek:",
"description": "Settings that will be synchronized:"
},
"helpIcons": {
"message": "",
"message": "Alapértelmezett, Világos, Kék/Szürke",
"description": "Default, Light, Blue/Grey"
},
"helpSyncContentLinks": {
"message": "",
"message": "Meg több információ Firefox Sync-ről:",
"description": "More information about Firefox Sync:"
},
"helpBrowserCompatibility": {
"message": "",
"message": "Böngésző kompatibilitás",
"description": "Browser compatibility"
},
"helpReplace": {
"message": "",
"message": "Helyettesítsd",
"description": "Replace"
},
"helpReplaceOther": {
"message": "",
"message": "Helyettesíts más erőforrásokat",
"description": "Replace other resources"
},
"helpUpgradeAllResources": {
"message": "",
"message": "Frissítsd az összes erőforrást",
"description": "Upgrade all resources"
},
"helpExplanationChrome": {
"message": "",
"message": "Összes Chromium-alapú böngésző",
"description": "All Chromium based Browser"
},
"helpLimitation": {
"message": "",
"message": "Ez nem a LocalCDN korlátozása hanem, a Chromium-alapú böngészőknek egy hiányzó API támogatása.",
"description": "This is not a limitation of LocalCDN, but missing API support of Chromium based browsers."
},
"titleBadgeDefault": {
"message": "",
"message": "Alapértelmezett jelvény",
"description": "Default badge"
},
"titleBadgeHTMLFilter": {
"message": "",
"message": "HTML szűrő jelvény",
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Hiányzó erőforrás jelvény",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Missing resource badge"
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Tahun lalu",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "Semua",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Hapus",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Kehilangan lencana sumber daya",
"description": "Missing resource badge"
"message": "Lecana sumber daya hilang atau diblokir",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Diblokir",
"description": "Blocked"
},
"counterMissing": {
"message": "Hilang",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Perizinan ditolak",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Akses semua data Anda untuk semua situs web",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Jangan nonaktifkan izinnya. LocalCDN memerlukan izin untuk mendeteksi dan mengalihkan permintaan ke CDN.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Mengapa ekstensi ini memerlukan izin ini?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN perlu tahu permintaan mana yang dibuat oleh sebuah situs web untuk mengalihkan atau memblokirnya. Dengan adanya MV3, perizinan ini diterapkan sebagai izin opsional.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Izin belum ada",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Perbolehkan",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Info lebih lanjut",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Ultimo anno",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Elimina",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Badge risorse mancanti",
"description": "Missing resource badge"
"message": "Badge risorse mancanti o bloccate",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Bloccate",
"description": "Blocked"
},
"counterMissing": {
"message": "Mancanti",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Autorizzazione revocata",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Non disabilitare l'autorizzazione. LocalCDN ha bisogno dell'autorizzazione per rilevare e reindirizzare le richieste a CDNs.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Perche questa estensione necessita di questa autorizzazione?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN ha bisogno di sapere quali richieste sono create da un sito web per reindirizzarle o bloccarle. Con l'introduzione di MV3, questa autorizzazione è elencata come facoltativa.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Autorizzazione mancante",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Consenti",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Più informazioni",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "昨年",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "すべて",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "削除",
"description": "Button to delete all statistics data."
@ -324,7 +328,7 @@
"description": "The HTML filter removes the red characters from this example:"
},
"helpHtmlFilterAfter": {
"message": "するとソースコードは次のようになります:",
"message": "削除後のソースコードは次のようになります:",
"description": "The result then looks like this:"
},
"helpHtmlFilterWhyTitle": {
@ -336,7 +340,7 @@
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
},
"helpHtmlFilterIntegrity": {
"message": "ディスク容量を最小限に抑えながらより多くのフレームワークを配信できるようにするため、LocalCDNではフレームワークのアップグレードをしています。整合性タグとは、ファイルのハッシュ値のことです。これのチェックが失敗すると、ブラウザはフレームワークを使用してくれません。例えばjQuery 1.10.1とjQuery 1.12.4はハッシュ値が異なるため、整合性チェックは失敗します。",
"message": "また、ディスク容量を最小限に抑えながらより多くのフレームワークを配信できるようにするため、LocalCDNではフレームワークのアップグレードをしています。integrity属性にはファイルのハッシュ値が記述されています。これの整合性チェックが失敗すると、ブラウザはフレームワークを使用してくれません。例えばjQuery 1.10.1とjQuery 1.12.4はハッシュ値が異なるため、整合性チェックが失敗してしまいます。",
"description": "To save disk space and to deliver more frameworks LocalCDN upgrades a framework. An integrity tag is the hash value of a file. If the check fails, the browser wont include a framework. The integrity check will fail because the hash values for e.g. jQuery 1.10.1 and jQuery 1.12.4 are different."
},
"helpHtmlFilterErrors": {
@ -380,7 +384,7 @@
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "原因は2つ考えられます: LocalCDNが(まだ)提供していないフレームワーク/ライブラリが含まれているからか、もしくはSOPを必要としているからです。SOP(Same Origin Policy)とは、データをブラウザが読み込んでも良いかどうかを決定するセキュリティメカニズムのことです。これにより悪意のあるファイルを隔離することで、攻撃される可能性を減らすことができます。ですがこのポリシーはLocalCDNが外部のフレームワークを読み込むことを妨げてしまいます。残念ながら、現時点ではこの問題に対する解決策はありません。",
"message": "原因は2つ考えられます: LocalCDNが(まだ)提供していないフレームワーク/ライブラリが含まれているからか、もしくはSOPを必要としているからです。SOP(Same Origin Policy)とは、データをブラウザが読み込んでも良いかどうかを決定するセキュリティメカニズムのことです。これにより悪意のあるファイルを隔離することで、攻撃される可能性を減らすことができます。ですがこのポリシーはLocalCDNが外部のフレームワークを読み込むことを妨げてしまいます。残念ながら、現時点ではこの問題に対する解決策はありません。",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
@ -388,7 +392,7 @@
"description": "LocalCDN can replace »Google Material Icons«. To catch the connection your adblocker (e.g. uBlock Origin, uMatrix or AdGuard) must allow the request. LocalCDN listens on these requests and if the query contains »Google Material Icons«, the resource will be replaced. If you uncheck the »Block requests for missing content« option, non-existent resources will be allowed to pass and »Google Fonts« will be loaded, because »Google Material Icons« and »Google Fonts« use the same domain. If you dont want this, you can block »Google Fonts« on LocalCDN."
},
"helpStatisticsDescription": {
"message": "心配ご無用、データが送信されるようなことはありません。それは私のすべての原則に反します。統計情報(JSON形式)には次のような情報が含まれています: 日付、CDN+使用回数、フレームワーク+使用回数、たったそれだけです。以下がその例になります:",
"message": "ご安心ください。データが外部に送信されるようなことはありません。そのような行為は私のすべての理念に反しています。統計情報(JSON形式)には、日付、CDNとその使用回数、フレームワークとその使用回数のみが含まれます。以下がその例です:",
"description": "Dont panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. Thats all. Ive an example here:"
},
"helpStatisticsContent": {
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "リソース不足時のバッジ",
"description": "Missing resource badge"
"message": "リソース不足・ブロック時のバッジ",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "ブロック済み",
"description": "Blocked"
},
"counterMissing": {
"message": "不足",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "権限が拒否されました",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "すべてのウェブサイトの保存されたデータへのアクセス",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "権限は無効にしないでください。LocalCDNがCDNへのリクエストを検出してリダイレクトするにはこの権限が必要です。",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "なぜこの拡張機能はこの権限が必要なのですか?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDNはリクエストをリダイレクトまたはブロックするために、ウェブサイトが発するリクエストを知る必要があります。MV3の導入により、この権限はオプションの権限として記載されています。",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "権限の不足",
"description": "Missing permission"
},
"permissionAllow": {
"message": "許可",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "詳細",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "ಕಳೆದ ವರ್ಷ",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "ಅಳಿಸಿ",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "작년",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "삭제",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "누락된 리소스 배지",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -1,6 +1,6 @@
{
"extensionDescription": {
"message": "Schützt virun Tracking duerch \"gratis\" Content Delivery Networks.",
"message": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources.",
"description": "Protects you against tracking through CDNs (Content Delivery Networks) by redirecting to local resources."
},
"amountInjectedDescription": {
@ -32,7 +32,7 @@
"description": "Disable prefetch title"
},
"disablePrefetchDescription": {
"message": "Verhënnert, dass onerlaabten Ressourcen entgéint den aneren Astellungen trotzdeem ugefuerdert\/erofgeluede ginn.",
"message": "Verhënnert, dass onerlaabten Ressourcen entgéint den aneren Astellungen trotzdeem ugefuerdert/erofgeluede ginn.",
"description": "Disable prefetch description."
},
"stripMetadataTitle": {
@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Praeitus Metus",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Ištrinti",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Trūksta ištekliaus ženklelio",
"description": "Missing resource badge"
"message": "Trūksta arba užblokuotas ištekliaus ženklelio/-is",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Užblokuota",
"description": "Blocked"
},
"counterMissing": {
"message": "Nerasta",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Leidimai atsiimti",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Pasiekite visus savo duomenis, visuose tinklapiuose",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Prašome neuždrausti šio leidimo. „LocalCDN“ reikalauja jo, kad aptiktų ir peradresuotų užklausas į „CDN'us“.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Kodėl šiam plėtiniui reikia šio leidimo?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "„LocalCDN“ reikia žinoti, kurie tinklapio prašymai reikalajaumi, kad peradresuotų ar blokuotų jį. Su „MV3“, šis leidimas yra žymimas, kaip pasirinktinis.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Trūksta leidimo",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Leisti",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Daugiau informacijos",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "കഴിഞ്ഞ വർഷം",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "ഇല്ലാതാക്കുക",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Siste år",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Slett",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Manglende ressurs-tellermerke",
"description": "Missing resource badge"
"message": "Manglende/blokkert ressurs-tellermerke",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Blokkert",
"description": "Blocked"
},
"counterMissing": {
"message": "Manglende",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Manglende tillatelse",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Tillat",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Mer info",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Afgelopen jaar",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Verwijderen",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "ontbrekende middelen icoon",
"description": "Missing resource badge"
"message": "ontbrekende of geblokkeerde middelen icoon",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Geblokkeerd",
"description": "Blocked"
},
"counterMissing": {
"message": "Ontbreekt",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Ostatni rok",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Usuń",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "Plakietka brakującego zasobu",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Zablokowane",
"description": "Blocked"
},
"counterMissing": {
"message": "Brakujące",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Ano passado",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Apagar",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Emblema de recurso ausente",
"description": "Missing resource badge"
"message": "Ícone de recurso ausente ou bloqueado",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Bloqueado",
"description": "Blocked"
},
"counterMissing": {
"message": "Ausente",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Permissão revogada",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Acede os seus dados em todos os sites",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Por favor, não desative a permissão. O LocalCDN precisa dessa permissão para detetar e redirecionar os pedidos para os CDNs.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Por que esta extensão precisa dessa permissão?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "O LocalCDN precisa saber quais pedidos são criados por um site para bloqueá-lo ou redirecioná-lo. Com a introdução do MV3, essa permissão é mostrada como opcional.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Permissão ausente",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Permitir",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Mais informações",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Ano passado",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Excluir",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Ícone de recursos ausentes",
"description": "Missing resource badge"
"message": "Ícone de recurso ausente ou bloqueado",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Bloqueado",
"description": "Blocked"
},
"counterMissing": {
"message": "Ausente",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Permissão revogada",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Acesse seus dados em todos os sites",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Por favor, não desative a permissão. O LocalCDN precisa dessa permissão para detectar e redirecionar os pedidos para os CDNs.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Por que esta extensão precisa dessa permissão?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "O LocalCDN precisa saber quais pedidos são criados por um site para bloqueá-lo ou redirecioná-lo. Com a introdução do MV3, essa permissão é mostrada como opcional.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Permissão ausente",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Permitir",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Mais informações",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Último ano",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Eliminar",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "Contador de recursos em falta",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Anul trecut",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Ștergeți",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "Insignă lipsă resursă",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "За год",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Очистить",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Значок отсутствующих ресурсов",
"description": "Missing resource badge"
"message": "Значок отсутствующих или заблокированных ресурсов",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Заблокировано",
"description": "Blocked"
},
"counterMissing": {
"message": "Отсутствует",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Отменять разрешение",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Доступ к данным для всех веб-сайтов",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Пожалуйста, не отключайте это разрешение. LocalCDN необходимо разрешение для обнаружения и перенаправления запросов к CDN.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Зачем расширению нужно это разрешение?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN должен знать, какие запросы создает тот или иной сайт, чтобы перенаправить или блокировать его. С введением MV3 это разрешение включено в список опциональных.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Отсутствующее разрешение",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Разрешение",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Дополнительная информация",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Posledný rok",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Vymazať",
"description": "Button to delete all statistics data."
@ -256,11 +260,11 @@
"description": "beta"
},
"changeBadgeColorMissingResourcesTitle": {
"message": "",
"message": "Označenie chýbajúcich zdrojov na ikone",
"description": "Indicate missing resources on the icon"
},
"changeBadgeColorMissingResourcesDescription": {
"message": "",
"message": "Zmena farby odznaku, ak chýbajú zdroje.",
"description": "Change the badge color if resources are missing."
},
"titleHelp": {
@ -272,7 +276,7 @@
"description": "Introduction"
},
"helpHtmlFilterTitle": {
"message": "",
"message": "Čo je to »HTML filter«?",
"description": "What is »HTML filter«?"
},
"helpRuleGeneratorTitle": {
@ -280,11 +284,11 @@
"description": "Rule generator"
},
"helpWebsiteIssuesTitle": {
"message": "",
"message": "Niektoré stránky vyzerajú divne alebo sa ťažko používajú",
"description": "Some websites look strange or are not easy to use"
},
"helpBlockGoogleFontsTitle": {
"message": "",
"message": "Prečo existuje možnosť \"Blokovať písma Google\"?",
"description": "Why is there a »Block Google Fonts« option?"
},
"helpStatisticsTitle": {
@ -292,7 +296,7 @@
"description": "What about the statistics? Is anything transferred to any servers?"
},
"helpWhatWillBeSynchronizedTitle": {
"message": "",
"message": "Čo bude synchronizované ak vyberiem »sync« ako typ úložiska?",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpBrowserCompatibilityTitle": {
@ -300,7 +304,7 @@
"description": "Browser compatibility"
},
"helpIntroductionDescription": {
"message": "",
"message": "LocalCDN je rozšírenie webového prehliadača, ktoré emuluje siete na doručovanie obsahu s cieľom zlepšiť vaše súkromie online. Zachytáva prevádzku, lokálne vyhľadáva podporované rámce/knižnice a vkladá ich do webovej stránky. Neváhajte a použite nasledujúci testovací nástroj, aby ste zistili, či ste správne chránení. Ďalšie informácie nájdete v návode alebo na našich stránkach Wiki.",
"description": "LocalCDN is a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported frameworks/libraries locally, and injects them into the website. Feel free to use the following testing utility to find out if you are properly protected. For more information read the tutorial or our Wiki pages."
},
"helpLinkTestUtility": {
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Förra året",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Radera",
"description": "Button to delete all statistics data."
@ -284,11 +288,11 @@
"description": "Some websites look strange or are not easy to use"
},
"helpBlockGoogleFontsTitle": {
"message": "",
"message": "Varför finns det ett »Block Google Fonts« alternativ?",
"description": "Why is there a »Block Google Fonts« option?"
},
"helpStatisticsTitle": {
"message": "",
"message": "Hur är det kring statistik? Är det något som förflyttas till någon server?",
"description": "What about the statistics? Is anything transferred to any servers?"
},
"helpWhatWillBeSynchronizedTitle": {
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "",
"description": "Button to delete all statistics data."
@ -481,6 +485,46 @@
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "",
"description": "Blocked"
},
"counterMissing": {
"message": "",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "",
"description": "Missing permission"
},
"permissionAllow": {
"message": "",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Geçen yıl",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "Tümü",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Sil",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Eksik kaynak rozeti",
"description": "Missing resource badge"
"message": "Eksik veya engellenen kaynak rozeti",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Engellendi",
"description": "Blocked"
},
"counterMissing": {
"message": "Eksik",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "İzin iptal edildi",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Tüm web siteleri için verilerinize erişim",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Lütfen izni devre dışı bırakmayın. LocalCDN, istekleri algılamak ve CDN'lere yönlendirmek için izne ihtiyaç duyar.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Bu uzantı neden bu izne ihtiyaç duyuyor?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN, yönlendirmek veya engellemek için bir web sitesi tarafından hangi isteklerin oluşturulduğunu bilmelidir. MV3'ün gelmesiyle birlikte bu izin isteğe bağlı bir izin olarak listelendi.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Eksik izin",
"description": "Missing permission"
},
"permissionAllow": {
"message": "İzin ver",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Daha fazla bilgi",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "Останнього року",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Видалити",
"description": "Button to delete all statistics data."
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Значок відсутніх ресурсів",
"description": "Missing resource badge"
"message": "Значок відсутнього або заблокованого ресурсу",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Заблоковано",
"description": "Blocked"
},
"counterMissing": {
"message": "Відсутній",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Дозвіл відкликано",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Доступ до ваших даних для всіх вебсайтів",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Будь ласка, не вимикайте цей дозвіл. LocalCDN потрібен цей дозвіл, щоб виявляти і перенаправляти запити на CDN.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Навіщо цьому розширенню потрібен цей дозвіл?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN має знати, які запити створює вебсайт, щоб перенаправляти або блокувати їх. З впровадженням MV3 цей дозвіл вказано як необов'язковий.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Відсутній дозвіл",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Дозволити",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Докладніше",
"description": "More info"
}
}

View File

@ -80,7 +80,7 @@
"description": "You can open the log with the icon in the menu. The log will be deleted when you close the browser or disable logging."
},
"featureBreaksWebsitesDescription": {
"message": "Tính năng này có thể làm hỏng các trang web. Không nên bật, trừ khi bạn sẵn sàng thêm các tên miền bị ảnh hưởng vào danh sách cho phép.",
"message": "Tính năng này có thể làm hỏng các trang web. Không nên bật trừ khi bạn sẵn sàng thêm các tên miền bị ảnh hưởng vào danh sách cho phép.",
"description": "This feature breaks websites. Do not leave it enabled, unless you are prepared to manually add affected domains to the allow list."
},
"featureBreaksWebsitesButton": {
@ -159,6 +159,10 @@
"message": "Năm ngoái",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "Xoá",
"description": "Button to delete all statistics data."
@ -380,7 +384,7 @@
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "Có hai nguyên nhân có thể xảy ra: Do framework/thư viện được yêu cầu nhưng LocalCDN chưa phân phối hoặc do SOP. SOP (Viết tắt của từ tiếng Anh \"Same origin policy\" tạm dịch là \"Điều khoản cùng nguồn gốc\") là một cơ chế bảo mật quyết định dữ liệu nào mà trình duyệt được phép tải. Nó giúp cách ly các tài liệu độc hại, từ đó làm giảm thiểu các nguy cơ tấn công có thể xảy ra. Điều khoản này ngăn chặn các trình duyệt tải các framework bên ngoài của LocalCDN. Không may, hiện nay chưa có giải pháp cho vấn đề này.",
"message": "Có hai nguyên nhân có thể xảy ra: Do framework/thư viện được yêu cầu nhưng LocalCDN chưa phân phối hoặc do SOP. SOP (Viết tắt của từ tiếng Anh \"Same-origin policy\" tạm dịch là \"Điều khoản cùng nguồn gốc\") là một cơ chế bảo mật quyết định dữ liệu nào mà trình duyệt được phép tải. Nó giúp cách ly các tài liệu độc hại, từ đó làm giảm thiểu các nguy cơ tấn công có thể xảy ra. Điều khoản này ngăn chặn các trình duyệt tải các framework bên ngoài của LocalCDN. Không may, hiện nay chưa có giải pháp cho vấn đề này.",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "Biểu tượng cho tài nguyên bị thiếu",
"description": "Missing resource badge"
"message": "Biểu tượng cho tài nguyên bị thiếu hoặc bị chặn",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "Đã bị chặn",
"description": "Blocked"
},
"counterMissing": {
"message": "Không có sẵn",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "Đã thu hồi quyền",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "Truy cập dữ liệu của bạn cho tất cả website",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "Xin đừng tắt quyền đi. LocalCDN cần có quyền này để tìm thấy và chuyển hướng các yêu cầu tới CDN.",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "Tại sao tiện ích mở rộng này cần quyền này?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN cần biết trang web tạo ra yêu cầu nào để chuyển hướng hoặc chặn nó. Với sự ra đời của MV3, quyền này được liệt kê dưới dạng quyền tùy chọn.",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "Quyền bị thiếu",
"description": "Missing permission"
},
"permissionAllow": {
"message": "Cho phép",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "Thêm thông tin",
"description": "More info"
}
}

View File

@ -20,11 +20,11 @@
"description": "Show icon badge description."
},
"blockMissingTitle": {
"message": "阻止缺失资源的请求",
"message": "阻止缺失资源的请求",
"description": "Block requests for missing resources title"
},
"blockMissingDescription": {
"message": "如果请求的资源在本地不可用,则取消当前被拦截的请求。",
"message": "如果所需的资源在本地不可用,则取消拦截的请求。",
"description": "Block requests for missing resources description."
},
"disablePrefetchTitle": {
@ -112,7 +112,7 @@
"description": "Do not apply HTML filter to these domains:"
},
"htmlFilterDomainsDescription": {
"message": "输入 HTML 过滤器要处理或忽略的域名,每行一个。",
"message": "输入要由 HTML 过滤器处理或忽略处理的域名,一行一个。",
"description": "Enter the domains to be handled or ignored by the HTML filter. One entry per line."
},
"htmlFilterDomainsTitleInclude": {
@ -128,7 +128,7 @@
"description": "If requests for missing resources are allowed, connections to \"fonts.googleapis.com\" are not blocked. Enable this option to block these requests."
},
"chooseIconStyle": {
"message": "选择一个此扩展程序的图标",
"message": "选择扩展程序的图标",
"description": "Choose an icon for this extension"
},
"internalStatisticsTitle": {
@ -159,6 +159,10 @@
"message": "去年",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "全部",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "删除",
"description": "Button to delete all statistics data."
@ -176,7 +180,7 @@
"description": "Are you sure you want to delete all the statistics?"
},
"labelDomainsAllowlistGoogleFonts": {
"message": "允许以下域名加载 Google Fonts行一个。",
"message": "允许以下域名加载 Google Fonts行一个。",
"description": "These domains are allowed to load Google Fonts. One entry per line."
},
"btnGeneral": {
@ -272,7 +276,7 @@
"description": "Introduction"
},
"helpHtmlFilterTitle": {
"message": "什么是 »HTML 过滤器«?",
"message": "什么是 »HTML 过滤器«",
"description": "What is »HTML filter«?"
},
"helpRuleGeneratorTitle": {
@ -300,7 +304,7 @@
"description": "Browser compatibility"
},
"helpIntroductionDescription": {
"message": "LocalCDN 是一个 web 浏览器扩展,模拟内容交付网络,以改善您的在线隐私。它拦截流量,在本地找到支持的框架/库,并将它们注入网站。请随意使用下面的测试实用程序来确定您是否得到了适当的保护。欲了解更多信息,请阅读教程或我们的维基页面。",
"message": "LocalCDN 是一个用于本地模拟内容交付网络CDN的网页浏览器扩展可以改善您的在线隐私。它能够拦截请求找出本地支持的框架/库,并将它们注入网站,从而避免向内容交付网络发出请求。请随意使用下面的测试实用程序来确定您是否真正得到保护。欲了解更多信息,请阅读教程浏览我们的维基页面。",
"description": "LocalCDN is a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported frameworks/libraries locally, and injects them into the website. Feel free to use the following testing utility to find out if you are properly protected. For more information read the tutorial or our Wiki pages."
},
"helpLinkTestUtility": {
@ -328,15 +332,15 @@
"description": "The result then looks like this:"
},
"helpHtmlFilterWhyTitle": {
"message": "为何必需删除交叉起源和完整性属性?",
"message": "为何必须删除 crossorigin 和 integrity 这两个属性?",
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
},
"helpHtmlFilterCrossorigin": {
"message": "crossorigin 属性阻止替换,因为目标与请求的目标不匹配。",
"message": "crossorigin 属性阻止替换请求,因为被替换请求的目标来源origin原始请求的目标来源不匹配。",
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
},
"helpHtmlFilterIntegrity": {
"message": "为了节省磁盘空间和交付更多的框架LocalCDN 升级了一个框架。完整性标记是文件的散列值。如果检查失败,浏览器将不包含框架。完整性检查将失败,因为例如 jQuery 1.10.1和 jQuery 1.12.4的散列值是不同的。",
"message": "为了节省磁盘空间交付更多的框架LocalCDN 会使用更新版本的框架来代替略旧版本的相同框架。完整性标记是文件的哈希值hash正常情况下只有两个文件完全相同它们的哈希值才会相同。如果框架的完整性检查失败浏览器将拒绝包含框架。综合上述情况完整性检查的确会失败因为例如 jQuery 1.10.1 和 jQuery 1.12.4 的哈希值是不同的。",
"description": "To save disk space and to deliver more frameworks LocalCDN upgrades a framework. An integrity tag is the hash value of a file. If the check fails, the browser wont include a framework. The integrity check will fail because the hash values for e.g. jQuery 1.10.1 and jQuery 1.12.4 are different."
},
"helpHtmlFilterErrors": {
@ -380,7 +384,7 @@
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "有两个可能的原因:要么是需要一个框架/库,但 LocalCDN (还)没有交付,要么是一个 SOP 。SOP (同源策略)是一种安全机制,它决定了浏览器允许加载哪些数据。它有助于隔离恶意文档,从而减少可能的攻击向量。此策略阻止浏览器加载其外部框架。不幸的是,目前没有解决办法。",
"message": "有两个可能的原因:要么是 LocalCDN没有包含某个需要的框架或库要么是被 SOP同源策略屏蔽了。同源策略是一种用于确定浏览器可以加载哪些数据的安全机制。它有助于隔离恶意文档,从而减少可能的攻击向量。此策略阻止浏览器从 LocalCDN 加载其外部框架。不幸的是,目前对此还没有解决办法。",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
@ -404,7 +408,7 @@
"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": {
"message": "有哪些东西会被同步,当我选择 »同步« 作为存储类型?",
"message": "当我选择 »同步« 作为存储类型时,有哪些东西会被同步",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpSyncDescription": {
@ -480,7 +484,47 @@
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "缺失资源的徽章",
"description": "Missing resource badge"
"message": "缺失或被禁用的资源的标记",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "被禁用的",
"description": "Blocked"
},
"counterMissing": {
"message": "缺失的",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "已撤消权限",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "访问所有网站的数据",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "请不要禁用此权限。LocalCDN 需要此权限来检测并重定向到 CDN 的请求。",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "此扩展为何需要这个权限?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN 需要知道哪些请求是由网站所创建以重定向或拦截它。MV3 规范中此权限被列为可选项。",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "缺失权限",
"description": "Missing permission"
},
"permissionAllow": {
"message": "允许",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "更多信息",
"description": "More info"
}
}

View File

@ -159,6 +159,10 @@
"message": "去年",
"description": "Statistics view for past year."
},
"labelAll": {
"message": "全部",
"description": "Statistics view over the whole time range"
},
"labelDelete": {
"message": "刪除",
"description": "Button to delete all statistics data."
@ -256,11 +260,11 @@
"description": "beta"
},
"changeBadgeColorMissingResourcesTitle": {
"message": "用圖示表明資源缺失",
"message": "用圖標表示缺失資源",
"description": "Indicate missing resources on the icon"
},
"changeBadgeColorMissingResourcesDescription": {
"message": "若資源缺失則改變圖章顏色。",
"message": "若缺失資源則改變圖章顏色。",
"description": "Change the badge color if resources are missing."
},
"titleHelp": {
@ -296,11 +300,11 @@
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpBrowserCompatibilityTitle": {
"message": "瀏覽器容性",
"message": "瀏覽器容性",
"description": "Browser compatibility"
},
"helpIntroductionDescription": {
"message": "LocalCDN 是一個模仿內容傳遞網路來進一步保障您隱私的瀏覽器附加元件。他將會攔截流量,在本機尋找支援的框架/資料庫,並將其注入網站。",
"message": "LocalCDN 是一款會以模仿內容分發網絡的方式,進一步保障您隱私的擴充功能。它將會攔截流量,以本機支援的框架/程式庫注入網站取以代之。您可以使用以下測試工具檢查您是否已受到適當的保護。欲知詳情,請瀏覽教程或 Wiki 頁面。",
"description": "LocalCDN is a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported frameworks/libraries locally, and injects them into the website. Feel free to use the following testing utility to find out if you are properly protected. For more information read the tutorial or our Wiki pages."
},
"helpLinkTestUtility": {
@ -316,7 +320,7 @@
"description": "Wiki pages"
},
"helpHtmlFilterDescription": {
"message": "在大多數情況下LocalCDN 可以輕鬆替換嵌入式框架並提高隱私性。 在某些情況下,網站可能會嘗試通過在 HTML 源代碼中設置某些選項來防止這種情況發生。 LocalCDN 在 HTML 源代碼顯示在瀏覽器中之前讀取它並刪除這些部分(紅色)。",
"message": "在大多數情況下LocalCDN 可以輕鬆替換嵌入式框架並保護隱私。 在某些情況下,網站可能會嘗試通過在 HTML 源始碼中設置某些選項來防止這種情況發生。 LocalCDN 會在瀏覽器中顯示 HTML 源始碼之前讀取並刪除這些部分(紅色)。",
"description": "In most cases LocalCDN can easily replace embedded frameworks and improves privacy. In some cases the website may try to prevent this by setting certain options in the HTML source code. LocalCDN reads the HTML source code before it is displayed in the browser and removes these part (red)."
},
"helpHtmlFilterBefore": {
@ -332,15 +336,15 @@
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
},
"helpHtmlFilterCrossorigin": {
"message": "",
"message": "crossorigin 屬性阻止替換,因爲目標與請求的目標不匹配。",
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
},
"helpHtmlFilterIntegrity": {
"message": "",
"message": "為了節省磁碟空間並分發更多框架LocalCDN 會升級取代相容的舊框架。如果瀏覽器完整性檢查失敗,將不會使用框架。檔案的完整性以雜湊值標記,而框架升級後,完整性檢查將會失敗,如 jQuery 1.10.1 和 jQuery 1.12.4 兩者的雜湊值是不同的。",
"description": "To save disk space and to deliver more frameworks LocalCDN upgrades a framework. An integrity tag is the hash value of a file. If the check fails, the browser wont include a framework. The integrity check will fail because the hash values for e.g. jQuery 1.10.1 and jQuery 1.12.4 are different."
},
"helpHtmlFilterErrors": {
"message": "",
"message": "然而,這設定有時會令特殊字符不能正確顯示。此時您可以再次停用設定,以正確顯示元音字符。",
"description": "Unfortunately, it sometimes happens that special characters are then displayed incorrectly. In this case you can deactivate the setting again, to display the umlauts correctly."
},
"helpRuleGeneratorDescription": {
@ -352,11 +356,11 @@
"description": "Only uBlock Origin:"
},
"helpRuleGeneratorUblockDescription": {
"message": "",
"message": "這些規則只適用於 »Medium« 或 »Hard« 模式,因為它們會阻擋所有第三方資源。在 »Default«、»Easy« 或 »Very-easy« 模式下則不是必需的。有關更多信息,請瀏覽 uBlock Origin Wiki。",
"description": "These rules are only relevant in »medium« or »hard« mode, because it blocks all 3rd-party resources. They are not necessary in »default«, »easy« or »very-easy« mode. For more information, please visit the uBlock Origin Wiki."
},
"helpRuleGeneratorUblockTableIcon": {
"message": "",
"message": "圖示",
"description": "Icon"
},
"helpRuleGeneratorUblockTableMode": {
@ -364,11 +368,11 @@
"description": "Mode"
},
"helpRuleGeneratorUblockTableUseful": {
"message": "",
"message": "需要規則",
"description": "Rules useful"
},
"helpRuleGeneratorUblockTableDefaultEasy": {
"message": "",
"message": "預設/簡易",
"description": "Default/Easy"
},
"helpRuleGeneratorUblockTableMedium": {
@ -376,71 +380,71 @@
"description": "Medium"
},
"helpRuleGeneratorUblockTableHard": {
"message": "",
"message": "困難",
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "",
"message": "這有兩個可能的原因因為頁面需要一個LocalCDN尚不支援的函式庫或是因為同源策略。同源策略Same origin policy是一個瀏覽器用來區分資料是否允許被載入的安全機制。同源機制幫助我們區分有害的檔案藉此減少潛在的攻擊媒介。這個策略會阻止瀏覽器從LocalCDN載入一些外部的框架。不幸的是目前並沒有針對這個問題的解決方法。",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
"message": "",
"message": "LocalCDN可以將Google Material Icons圖示字型。為了攔截針對這些字型的連接您的廣告阻擋器——例如uBlock Origin、uMatrix、Adguard——必須允許這些請求。LocalCDN監聽這些請求以在當請求包含Google Material Icons時置換資源。若您取消選擇「阻擋缺失資源」選項不存在的資源會被允許以致Google Fonts字體會被載入因為Google Material Icons與Google Fonts使用同一個域名。如果您不希望如此您可以使用LocalCDN阻擋Google Fonts。",
"description": "LocalCDN can replace »Google Material Icons«. To catch the connection your adblocker (e.g. uBlock Origin, uMatrix or AdGuard) must allow the request. LocalCDN listens on these requests and if the query contains »Google Material Icons«, the resource will be replaced. If you uncheck the »Block requests for missing content« option, non-existent resources will be allowed to pass and »Google Fonts« will be loaded, because »Google Material Icons« and »Google Fonts« use the same domain. If you dont want this, you can block »Google Fonts« on LocalCDN."
},
"helpStatisticsDescription": {
"message": "",
"message": "無須擔心我不會傳送任何隱私不會違背原則。統計數據JSON格式僅包含日期、CDN+使用次數、框架+使用次數。範例:",
"description": "Dont panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. Thats all. Ive an example here:"
},
"helpStatisticsContent": {
"message": "",
"message": "統計數據並不包含瀏覽器、作業系統、請求網站、IP位址或其他資訊僅包含日期、CDN+使用次數、框架+使用次數。從這些資訊可以確認 LocalCDN 替換了哪些框架和 CDN以及替換頻率。",
"description": "The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested."
},
"helpStatisticsTruthTitle": {
"message": "",
"message": "我要如何查證這説法?",
"description": "How do I know thats true?"
},
"helpStatisticsTruthDescription": {
"message": "",
"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": {
"message": "",
"message": "選擇 »同步« 儲存類型時,同步了什麼?",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpSyncDescription": {
"message": "",
"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": {
"message": "",
"message": "如果您沒有同步帳戶,則不會同步任何內容。在這種情況下,您選擇什麼儲存的類型都沒有區別。",
"description": "If you dont have a sync account, nothing will be synchronized. In that case it makes no difference what type of storage you have selected."
},
"helpSyncContentNever": {
"message": "",
"message": "永遠不同步的東西:",
"description": "Things that are never synchronized:"
},
"helpNumberOfInjections": {
"message": "",
"message": "取代次數",
"description": "Numbers of injections"
},
"helpYes": {
"message": "",
"message": "",
"description": "Yes"
},
"helpNo": {
"message": "",
"message": "",
"description": "No"
},
"helpData": {
"message": "",
"message": "資料",
"description": "Data"
},
"helpSyncContentEver": {
"message": "",
"message": "會被同步的設定:",
"description": "Settings that will be synchronized:"
},
"helpIcons": {
"message": "",
"message": "預設、淺色、藍色/灰色",
"description": "Default, Light, Blue/Grey"
},
"helpSyncContentLinks": {
@ -448,7 +452,7 @@
"description": "More information about Firefox Sync:"
},
"helpBrowserCompatibility": {
"message": "",
"message": "瀏覽器相容性",
"description": "Browser compatibility"
},
"helpReplace": {
@ -460,27 +464,67 @@
"description": "Replace other resources"
},
"helpUpgradeAllResources": {
"message": "",
"message": "升級所有資源",
"description": "Upgrade all resources"
},
"helpExplanationChrome": {
"message": "",
"message": "所有基於 Chromium 的瀏覽器",
"description": "All Chromium based Browser"
},
"helpLimitation": {
"message": "",
"message": "這不是 LocalCDN 的限制,而是缺少基於 Chromium 的瀏覽器的 API 支援。",
"description": "This is not a limitation of LocalCDN, but missing API support of Chromium based browsers."
},
"titleBadgeDefault": {
"message": "",
"message": "預設標籤",
"description": "Default badge"
},
"titleBadgeHTMLFilter": {
"message": "",
"message": "HTML 過濾器標籤",
"description": "HTML filter badge"
},
"titleBadgeMissingResource": {
"message": "",
"description": "Missing resource badge"
"message": "資源標籤遺失或被阻止",
"description": "Missing or blocked resources badge"
},
"counterBlocked": {
"message": "阻止的",
"description": "Blocked"
},
"counterMissing": {
"message": "遺失的",
"description": "Missing"
},
"permissionRevokedHeader": {
"message": "權限被撤銷",
"description": "Permission revoked"
},
"permissionRevokedPermissionName": {
"message": "存取您在所有網站上的數據",
"description": "The exact name of the permission. Exactly as it is displayed in Firefox."
},
"permissionRevokedDescription": {
"message": "請勿停用該權限。 LocalCDN 需要該權限偵測請求並將請求重新導向到 CDN 。",
"description": "Please do not disable the permission. LocalCDN needs the permission to detect and redirect requests to CDNs."
},
"helpWhyThisPermission": {
"message": "為什麼這個擴充需要這個權限?",
"description": "Why does this extension need this permission?"
},
"helpPermissionDescription": {
"message": "LocalCDN 需要知道網站創建了哪些請求來重定向或封鎖它。隨著MV3的引入該權限被列為可選權限。",
"description": "LocalCDN needs to know which requests are created by a website to redirect or block it. With the introduction of MV3, this permission is listed as an optional permission."
},
"permissionMissing": {
"message": "缺少權限",
"description": "Missing permission"
},
"permissionAllow": {
"message": "允許",
"description": "Allow"
},
"permissionMoreInfo": {
"message": "更多資訊",
"description": "More info"
}
}

View File

@ -432,12 +432,8 @@ function check_resource() {
# CREATE URLs
# =============================================================================
function create_url() {
if [ "$folder" = "angular-stripe-checkout" ]; then
url="$JSDELIVR/npm/angular-stripe-checkout@$version/angular-stripe-checkout.min.js"
elif [ "$folder" = "ethjs" ]; then
if [ "$folder" = "ethjs" ]; then
url="$JSDELIVR/npm/ethjs@$version/dist/ethjs.min.js"
elif [ "$folder" = "findify-bundle" ]; then
url="$JSDELIVR/npm/@findify/bundle@$version/dist/$subfile"
elif [ "$folder" = "react-lifecycles-compat" ]; then
url="$JSDELIVR/npm/react-lifecycles-compat@$version/react-lifecycles-compat.min.js"
elif [ "$folder" = "react-side-effect" ]; then
@ -542,7 +538,11 @@ function create_url() {
if [ "$jfile" = "mdb-ui-kit.min.css" ]; then
url="$CLOUDFLARE/$folder/$version/mdb.min.css"
elif [ "$jfile" = "mdb-ui-kit.min.js" ]; then
url="$CLOUDFLARE/$folder/$version/mdb.min.js"
if [ "$version" = "3.11.0" ] || [ "$version" = "4.4.0" ] || [ "$version" = "5.0.0" ] || [ "$version" = "6.4.2" ]; then
url="$CLOUDFLARE/$folder/$version/mdb.min.js"
else
url="$CLOUDFLARE/$folder/$version/mdb.es.min.js"
fi
fi
elif [ "$folder" = "Modaal" ]; then
if [ "$jfile" = "modaal.min.css" ]; then
@ -662,8 +662,6 @@ function create_url() {
url="$CLOUDFLARE/$folder/$version/$relativpath"
elif [ "$folder" = "Chart.js" ] && [ "$version" = "2.9.4" ] && [ "$jfile" = "chart.min.js" ]; then
url="$CLOUDFLARE/$folder/$version/Chart.bundle.min.js"
elif [ "$folder" = "angular-ui-select" ] && [ "$version" = "0.19.8" ]; then
url="$JSDELIVR/npm/ui-select@$version/dist/select.min.js"
elif [ "$folder" = "plyr" ]; then
if [ "$jfile" = "plyr.min.js" ]; then
url="$JSDELIVR/npm/plyr@$version/dist/plyr.min.js"
@ -737,6 +735,16 @@ function create_url() {
url="$JSDELIVR/npm/react-intl@$version/react-intl.iife.min.js"
elif [ "$folder" = "in-view" ]; then
url="$JSDELIVR/npm/in-view@$version/dist/in-view.min.js"
elif [ "$folder" = "knockout" ] && [ "$version" = "3.5.1" ];then
url="$CLOUDFLARE/$folder/$version/knockout-latest.min.js"
elif [ "$folder" = "vue-router" ] && [ "$version" = "3.6.5" ];then
url="$CLOUDFLARE/$folder/$version/vue-router.min.js"
elif [ "$folder" = "ScrollMagic" ] && [ "$jfile" != "ScrollMagic.min.js" ];then
url="$CLOUDFLARE/$folder/$version/plugins/$jfile"
elif [ "$folder" = "redux" ] && [ "$version" != "4.2.1" ];then
url="$CLOUDFLARE/$folder/$version/redux.legacy-esm.min.js"
elif [ "$folder" = "supabase-js" ]; then
url="$UNPKG/@supabase/supabase-js@$version/dist/umd/supabase.js"
# --------------------------------------------------------------------------
else
if [ "$subfile" = "$jfile" ]; then

View File

@ -55,7 +55,7 @@ const MessageResponse = {
const Resource = {
'MAPPING_EXPRESSION': /\.map$/i,
'VERSION_EXPRESSION': /(?:\d{1,2}\.){1,3}\d{1,2}(?:-\d)?|latest/,
'SINGLE_NUMBER_EXPRESSION': /^\D+@?\d{1,2}\D*$/,
'SINGLE_NUMBER_EXPRESSION': /\D+@?\d{1,2}\D*/,
'MATHJAX': /\/\w.*(?:\d{1,2}\.){1,3}\d{1,2}(?:-\d)?\/|\/(mathjax\/)?latest\//,
'TINYMCE': /\/\w.*(?:\d{1,2}\.){1,3}\d{1,2}(?:-\d)?\//,
'VERSION_PLACEHOLDER': '{version}'
@ -148,7 +148,7 @@ const SettingDefaults = {
[Setting.INTERNAL_STATISTICS_DATA]: {},
[Setting.DEFAULT_RANGE_STATISTIC]: 'week',
[Setting.LAST_MAPPING_UPDATE]: '2020-01-01',
[Setting.NEGATE_HTML_FILTER_LIST]: false,
[Setting.NEGATE_HTML_FILTER_LIST]: true,
[Setting.SELECTED_ICON]: 'Default',
[Setting.SHOW_ICON_BADGE]: true,
[Setting.STORAGE_TYPE]: 'local',
@ -173,6 +173,15 @@ const WebRequest = {
'EXTRA_HEADERS': 'extraHeaders'
};
const BlockedRequestMethods = {
'POST': true,
'HEAD': true,
'PUT': true,
'DELETE': true,
'TRACE': true,
'OPTIONS': true,
};
const WebRequestType = {
'MAIN_FRAME': 'main_frame',
'SUB_FRAME': 'sub_frame',
@ -262,7 +271,14 @@ 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\/[a-zA-Z0-9]{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/,
'TWITTER_BOOTSTRAP_ALPHA_BETA': /-(alpha|beta).?\d?/,
'INTERNAL_STATISTICS_DATA': /((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/,
'DOMAIN': /[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,24}/,
'INTERNAL_RESOURCES': /resources\/[0-9a-z.-]+\/((?:\d{1,2}\.){1,3}\d{1,2})?.*\.(css|jsm)/,
'ISO_DATE': /((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/,
'HEX_COLOR': /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/,
'DOCSIFY': /docsify@(?:\d{1,2}\.){0,3}\d{1,2}(?:-\d)?$/,
};
const MaterialIcons = {
@ -409,7 +425,9 @@ const MathJaxFiles = {
const MathJax3Files = {
'es5/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff': true,
'es5/output/chtml/fonts/woff-v2/MathJax_Zero.woff': true,
'es5/tex-chtml.js': true,
'es5/tex-mml-chtml.js': true,
'es5/tex-svg.js': true,
};
/**
@ -428,12 +446,266 @@ const BadResources = {
const LogString = {
'PREFIX': '[ LocalCDN ]',
'FONT_AWESOME': 'Font Awesome is not fully supported by your browser.',
'NOT_SUPPORTED': 'is not fully supported by your browser.',
'GOOGLE_MATERIAL_ICONS': 'Google Material Icons are not fully supported by your browser.',
'YANDEX': 'Workaround. Disable LocalCDN if website and CDN are the same',
'REPLACED_RESOURCE': 'Replaced resource:',
'MISSING_RESOURCE': 'Missing resource:',
'EVIL_RESOURCE_BLOCKED': 'Evil resource blocked:',
'NON_GET_REQUEST_BLOCKED': 'Non-GET-Request blocked',
'IFRAME': 'Possible iframe request:',
};
/**
* https://codeberg.org/nobody/LocalCDN/issues/1560
*/
const GoogleDomains = {
'google.com': true,
'youtube.com': true,
'ytimg.com': true,
'withgoogle.com': true,
'withyoutube.com': true,
'google.ws': true,
'google.vu': true,
'google.vg': true,
'google.tt': true,
'google.to': true,
'google.tn': true,
'google.tm': true,
'google.tl': true,
'google.tk': true,
'google.tg': true,
'google.td': true,
'google.st': true,
'google.sr': true,
'google.so': true,
'google.sn': true,
'google.sm': true,
'google.sk': true,
'google.si': true,
'google.sh': true,
'google.se': true,
'google.sc': true,
'google.rw': true,
'google.ru': true,
'google.rs': true,
'google.ro': true,
'google.pt': true,
'google.ps': true,
'google.pn': true,
'google.pl': true,
'google.nu': true,
'google.nr': true,
'google.no': true,
'google.nl': true,
'google.ne': true,
'google.mw': true,
'google.mv': true,
'google.mu': true,
'google.ms': true,
'google.mn': true,
'google.ml': true,
'google.mk': true,
'google.mg': true,
'google.me': true,
'google.md': true,
'google.lv': true,
'google.lu': true,
'google.lt': true,
'google.lk': true,
'google.li': true,
'google.la': true,
'google.kz': true,
'google.ki': true,
'google.kg': true,
'google.jo': true,
'google.je': true,
'google.it': true,
'google.is': true,
'google.iq': true,
'google.io': true,
'google.im': true,
'google.ie': true,
'google.hu': true,
'google.ht': true,
'google.hr': true,
'google.hn': true,
'google.gy': true,
'google.gr': true,
'google.gp': true,
'google.gm': true,
'google.gl': true,
'google.gg': true,
'google.gf': true,
'google.ge': true,
'google.ga': true,
'google.fr': true,
'google.fm': true,
'google.fi': true,
'google.es': true,
'google.ee': true,
'google.dz': true,
'google.dm': true,
'google.dk': true,
'google.dj': true,
'google.de': true,
'google.cz': true,
'google.cv': true,
'google.com.vn': true,
'google.com.vc': true,
'google.com.uy': true,
'google.com.ua': true,
'google.com.tw': true,
'google.com.tr': true,
'google.com.tj': true,
'google.com.sv': true,
'google.com.sl': true,
'google.com.sg': true,
'google.com.sb': true,
'google.com.sa': true,
'google.com.qa': true,
'google.com.py': true,
'google.com.pr': true,
'google.com.pk': true,
'google.com.ph': true,
'google.com.pg': true,
'google.com.pe': true,
'google.com.pa': true,
'google.com.om': true,
'google.com.np': true,
'google.com.ni': true,
'google.com.ng': true,
'google.com.nf': true,
'google.com.na': true,
'google.com.my': true,
'google.com.mx': true,
'google.com.mt': true,
'google.com.mm': true,
'google.com.ly': true,
'google.com.lc': true,
'google.com.lb': true,
'google.com.kw': true,
'google.com.kh': true,
'google.com.jm': true,
'google.com.hk': true,
'google.com.gt': true,
'google.com.gi': true,
'google.com.gh': true,
'google.com.fj': true,
'google.com.et': true,
'google.com.eg': true,
'google.com.ec': true,
'google.com.do': true,
'google.com.cy': true,
'google.com.cu': true,
'google.com.co': true,
'google.com.bz': true,
'google.com.br': true,
'google.com.bo': true,
'google.com.bn': true,
'google.com.bh': true,
'google.com.bd': true,
'google.com.au': true,
'google.com.ar': true,
'google.com.ai': true,
'google.com.ag': true,
'google.com.af': true,
'google.co.zw': true,
'google.co.zm': true,
'google.co.za': true,
'google.co.vi': true,
'google.co.ve': true,
'google.co.uz': true,
'google.co.uk': true,
'google.co.ug': true,
'google.co.tz': true,
'google.co.th': true,
'google.co.pn': true,
'google.co.nz': true,
'google.co.mz': true,
'google.co.ma': true,
'google.co.ls': true,
'google.co.kr': true,
'google.co.ke': true,
'google.co.jp': true,
'google.co.in': true,
'google.co.il': true,
'google.co.id': true,
'google.co.cr': true,
'google.co.ck': true,
'google.co.bw': true,
'google.co.ao': true,
'google.cn': true,
'google.cm': true,
'google.cl': true,
'google.ci': true,
'google.ch': true,
'google.cg': true,
'google.cf': true,
'google.cd': true,
'google.cc': true,
'google.cat': true,
'google.ca': true,
'google.by': true,
'google.bt': true,
'google.bs': true,
'google.bj': true,
'google.bi': true,
'google.bg': true,
'google.bf': true,
'google.be': true,
'google.ba': true,
'google.az': true,
'google.at': true,
'google.as': true,
'google.am': true,
'google.al': true,
'google.ae': true,
'google.ad': true,
'google.ac': true,
'g.cn': true,
'yt.be': true,
'youtubegaming.com': true,
'youtubeeducation.com': true,
'youtube-nocookie.com': true,
'youtu.be': true,
'igoogle.com': true,
'gooogle.com': true,
'goolge.com': true,
'googlr.com': true,
'googlesyndication.com': true,
'googlesource.com': true,
'googlescholar.com': true,
'googlepagecreator.com': true,
'googlemembers.com': true,
'googlemember.com': true,
'googlemaps.com': true,
'googlemail.com': true,
'googleearth.com': true,
'googlee.com': true,
'googledrive.com': true,
'googlecommerce.com': true,
'googlecode.com': true,
'googlebot.com': true,
'googlearth.com': true,
'googleapps.com': true,
'googleapis.com': true,
'googleanalytics.com': true,
'googleadservices.com': true,
'google.org': true,
'google.net': true,
'google-analytics.com': true,
'googl.com': true,
'googil.com': true,
'googel.com': true,
'goo.gl': true,
'gogole.com': true,
'gogle.com': true,
'gmail.com': true,
'ggoogle.com': true,
'g.co': true,
'android.com': true,
'developer.android.com': true,
};
// Supported charsets for TextDecoder()

View File

@ -21,7 +21,7 @@
* File Guard
*/
var fileGuard = {};
let fileGuard = {};
/**

View File

@ -23,7 +23,7 @@
* Interceptor
*/
var interceptor = {};
let interceptor = {};
/**
@ -31,7 +31,14 @@ var interceptor = {};
*/
interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
let validCandidate, targetDetails, targetDomain, isGoogleFont, isGoogleMaterialIcons, initiatorDomain, isListed;
let validCandidate, targetDetails, targetDomain, isGoogleFont, isGoogleMaterialIcons, initiatorDomain, isListed,
iframe, isGoogleDomain;
iframe = '';
if (tab.url !== requestDetails.originUrl) {
console.log(`${LogString.PREFIX} ${LogString.IFRAME} ${tab.url} -> ${requestDetails.originUrl}`);
iframe = requestDetails.originUrl;
}
if (requestDetails['type'] === WebRequestType.MAIN_FRAME &&
helpers.checkAllowlisted(
@ -45,8 +52,11 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
targetDetails = requestAnalyzer.getLocalTarget(requestDetails, tab.url);
if (targetDetails['result'] === 'blocked') {
let source, resource;
source = helpers.extractDomainFromUrl(tab.url, true);
resource = tab.url;
return {
'redirectUrl': chrome.runtime.getURL('resources/blocked/index.html')
'redirectUrl': chrome.runtime.getURL(`resources/blocked/index.html?source=${source}&resource=${resource}`)
};
}
@ -54,6 +64,15 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
tabIdentifier, targetDetails
};
// Block POST, HEAD, PUT, DELETE, TRACE, OPTIONS
if (BlockedRequestMethods[requestDetails.method]) {
console.warn(`${LogString.PREFIX} ${LogString.NON_GET_REQUEST_BLOCKED}`);
log.append(tab.url, requestDetails.url, LogString.NON_GET_REQUEST_BLOCKED, true, iframe);
return {
'cancel': true
};
}
validCandidate = requestAnalyzer.isValidCandidate(requestDetails, tab);
if (!validCandidate) {
return {
@ -63,7 +82,7 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
if (interceptor._isBadResource(requestDetails.url)) {
console.log(`${LogString.PREFIX} ${LogString.EVIL_RESOURCE_BLOCKED} ${requestDetails.url}`);
log.append(tab.url, requestDetails.url, '-', true);
log.append(tab.url, requestDetails.url, '-', true, iframe);
return {
'cancel': true
};
@ -76,11 +95,21 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
if (BrowserType.FIREFOX && isGoogleFont && !isGoogleMaterialIcons) {
initiatorDomain = helpers.extractDomainFromUrl(tab.url, true);
isListed = helpers.checkAllowlisted(initiatorDomain, interceptor.allowedDomainsGoogleFonts);
isGoogleDomain = helpers.isGoogleDomain(initiatorDomain);
// Check if the website is allowed to load Google Fonts
if (interceptor.blockGoogleFonts === true && isListed === false) {
if (interceptor.blockGoogleFonts === true && isListed === false && isGoogleDomain === false) {
console.log(`${LogString.PREFIX} Google fonts blocked ${requestDetails.url}`);
log.append(tab.url, requestDetails.url, '-', true, iframe);
interceptor._handleMissingCandidate(requestDetails.url, tabIdentifier);
++stateManager.tabs[tabIdentifier].blocked;
return {
'redirectUrl': chrome.runtime.getURL('resources/google-fonts-placeholder.css')
};
} else if (isGoogleDomain === true) {
console.log(`${LogString.PREFIX} Google fonts allowed, because Google Website ${initiatorDomain}`);
return {
'cancel': false
};
} else if (interceptor.blockGoogleFonts === false || isListed === true) {
return {
'cancel': false
@ -96,7 +125,7 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
}
console.log(`${LogString.PREFIX} ${LogString.REPLACED_RESOURCE} ${targetDetails.path}`);
log.append(tab.url, requestDetails.url, targetDetails.path, false);
log.append(tab.url, requestDetails.url, targetDetails.path, false, iframe);
return {
'redirectUrl': chrome.runtime.getURL(targetDetails.path + fileGuard.secret)
@ -109,13 +138,17 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
*/
interceptor._handleMissingCandidate = function (requestUrl, tabIdentifier) {
let requestUrlSegments, injectionCount, missingCount;
let requestUrlSegments, injectionCount, missingCount, blockedCount;
if (stateManager.showIconBadge === true) {
injectionCount = Object.keys(stateManager.tabs[tabIdentifier].injections).length || 0;
missingCount = stateManager.tabs[tabIdentifier].missing || 0;
blockedCount = stateManager.tabs[tabIdentifier].blocked || 0;
injectionCount = injectionCount + missingCount + blockedCount;
if (stateManager.changeBadgeColorMissingResources === true) {
missingCount = stateManager.tabs[tabIdentifier].missing || 0;
if (missingCount > 0 && injectionCount === 0) {
if (injectionCount === 0) {
wrappers.setBadgeText(tabIdentifier, injectionCount);
wrappers.setBadgeColoring(tabIdentifier, BadgeSettingMissingResource.TYPE);
}

View File

@ -23,7 +23,7 @@
* Main
*/
var main = {};
let main = {};
/**

View File

@ -19,7 +19,7 @@
* Manipulate DOM
*/
var manipulateDOM = {};
let manipulateDOM = {};
/**
@ -86,8 +86,8 @@ manipulateDOM._removeCrossOriginAndIntegrityAttr = function (details) {
charsetMatch = htmlHead.match(/<meta.*charset=["']?([^>"'\/]+)["'].*[>\/]/i) || 'utf8';
}
if (EncodingTypes[charsetMatch[1].toLowerCase()] !== undefined) {
charset = charsetMatch[1];
if (EncodingTypes[charsetMatch[1].toLowerCase().trim()] !== undefined) {
charset = charsetMatch[1].trim();
} else {
// If charset is unclear, then use ASCII by default.
// Other charsets are mostly tagged in the header or HTML source code.

View File

@ -23,7 +23,7 @@
* Mappings
*/
var mappings = {};
let mappings = {};
/*
* Date of last update.
@ -64,7 +64,6 @@ mappings.cdn = {
'mootools/{version}/mootools-core': resources.mootools,
'prototype/{version}/prototype.': resources.prototypeJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'swfobject/{version}/swfobject.': resources.swfobject,
'webfont/{version}/webfont.': resources.webfontloader,
'webfont/{version}/webfontloader.js': resources.webfontloader,
'webfont/1/webfont.js': resources.webfontloader
@ -104,10 +103,15 @@ mappings.cdn = {
'angular-ui-bootstrap/{version}/ui-bootstrap-tpls.': resources.angularUiBootstrapTPLS,
'angular-ui-bootstrap/{version}/ui-bootstrap.min.js': resources.angularUiBootstrap,
'angular-ui-router/{version}/angular-ui-router.': resources.angularUiRouter,
'angular-ui-select/{version}/select.': resources.angularJsUiSelect,
'angular-ui-utils/{version}/angular-ui-utils.': resources.angularUiUtils,
'angularjs-slider/{version}/rzslider.': resources.angularJSslider,
'angular.js/{version}/angular.': resources.angular,
'angular.js/{version}/angular-animate.': resources.angularAnimate,
'angular.js/{version}/angular-cookies.': resources.angularCookies,
'angular.js/{version}/angular-loader.': resources.angularLoader,
'angular.js/{version}/angular-resource.': resources.angularResource,
'angular.js/{version}/angular-route.': resources.angularRoute,
'angular.js/{version}/angular-sanitize.': resources.angularSanitize,
'angular.js/{version}/angular-touch.': resources.angularTouch,
'angular-animate/{version}/angular-animate': resources.angularAnimate,
'angular-aria/{version}/angular-aria': resources.angularAria,
'angular-cookies/{version}/angular-cookies': resources.angularCookies,
@ -246,6 +250,10 @@ mappings.cdn = {
'bootstrap-slider/{version}/css/bootstrap-slider.min.css': resources.bootstrapSliderCSS,
'bootstrap-slider/{version}/css/bootstrap-slider.css': resources.bootstrapSliderCSS,
'bootstrap-slider/{version}/bootstrap-slider.min.js': resources.bootstrapSliderJS,
'bootstrap-table/{version}/bootstrap-table.min.js': resources.bootstrapTableJS,
'bootstrap-table/{version}/bootstrap-table.js': resources.bootstrapTableJS,
'bootstrap-table/{version}/bootstrap-table.min.css': resources.bootstrapTableCSS,
'bootstrap-table/{version}/bootstrap-table.css': resources.bootstrapTableCSS,
'bootstrap-toggle/{version}/js/bootstrap-toggle.': resources.bootstrapToggleJS,
'bootstrap-toggle/{version}/js/bootstrap2-toggle.': resources.bootstrap2ToggleJS,
'bootstrap-toggle/{version}/css/bootstrap-toggle.': resources.bootstrapToggleCSS,
@ -261,6 +269,7 @@ mappings.cdn = {
'bootstrap/{version}/bootstrap.js': resources.bootstrapJS,
'bootstrap/{version}/bootstrap.min.css': resources.bootstrapCSS,
'bootstrap/{version}/bootstrap.css': resources.bootstrapCSS,
'bootswatch/{version}/flatly/': resources.bootswatchFlatly,
'bowser/{version}/': resources.bowserJS,
'bower-angular-translate/{version}/angular-translate.': resources.angularTranslate,
'bower-angular-translate-loader-partial/{version}/angular-translate-loader-partial.': resources.angularTranslateLoaderPartial,
@ -287,7 +296,7 @@ mappings.cdn = {
'cookieconsent2/{version}/cookieconsent.css': resources.cookieconsent2CSS,
'corejs-typeahead/{version}/typeahead.bundle.': resources.corejsTypeahead,
'd3/{version}/d3.min.js': resources.d3JS,
'd3-legend/{version}/d3-legend.': resources.d3legend,
'datatables/{version}/': resources.datatables,
'dayjs/{version}/dayjs.': resources.dayjs,
'dexie/{version}/dexie.': resources.dexie,
'docsearch.js/{version}/docsearch.min.js': resources.docsearchJS,
@ -296,8 +305,6 @@ mappings.cdn = {
'docsearch.js/{version}/docsearch.css': resources.docsearchCSS,
'docsify/{version}/docsify.min.js': resources.docsify,
'docsify/{version}/docsify.js': resources.docsify,
'drawer/{version}/js/drawer.min.js': resources.drawerJS,
'drawer/{version}/css/drawer.min.css': resources.drawerCSS,
'dygraph/{version}/dygraph': resources.dygraph,
'element-ui/{version}/': resources.elementUI,
'ext-core/{version}/ext-core.': resources.extCore,
@ -309,7 +316,6 @@ mappings.cdn = {
'fancybox/{version}/jquery.fancybox.css': resources.fancyBoxCSS,
'fastclick/{version}/fastclick.': resources.fastclick,
'feather-icons/{version}/feather.': resources.feather,
'FitText.js/{version}/jquery.fittext.': resources.fitTextJs,
'flickity/{version}/flickity.pkgd.': resources.flickity,
'font-awesome/{version}/css/font-awesome': resources.fontawesome,
'font-awesome/{version}/css/': resources.fontawesome5CSS,
@ -322,6 +328,7 @@ mappings.cdn = {
'foundicons/{version}/foundation-icons.min.css': resources.foundationIconsCSS,
'granim/{version}/granim.': resources.granim,
'gsap/{version}/': resources.gsapBundle,
'handlebars.js/{version}/handlebars.': resources.handlebarsJs,
'highlight.js/{version}/': resources.highlightJS,
'hls.js/{version}/hls.': resources.hlsJS,
'hogan.js/{version}/hogan.': resources.hoganJS,
@ -377,6 +384,7 @@ mappings.cdn = {
'jScrollPane/{version}/script/jquery.jscrollpane.': resources.jScrollPane,
'js-cookie/{version}/js.cookie.min.js': resources.jscookie,
'knockout/{version}/knockout': resources.knockout,
'knockout.mapping/{version}/knockout.mapping.': resources.knockoutMapping,
'lazysizes/{version}/lazysizes.min.js': resources.lazysizes,
'leaflet/{version}/leaflet.js': resources.leafletJS,
'leaflet/{version}/leaflet.css': resources.leafletCSS,
@ -415,6 +423,10 @@ mappings.cdn = {
'moment.js/{version}/moment.min.': resources.moment,
'moment.js/{version}/moment-with-locales.': resources.moment,
'mootools/{version}/mootools-core': resources.mootools,
'nprogress/{version}/nprogress.min.js': resources.nprogressJS,
'nprogress/{version}/nprogress.js': resources.nprogressJS,
'nprogress/{version}/nprogress.min.css': resources.nprogressCSS,
'nprogress/{version}/nprogress.css': resources.nprogressCSS,
'noUiSlider/{version}/nouislider.js': resources.noUiSlider,
'noUiSlider/{version}/nouislider.min.js': resources.noUiSlider,
'nvd3/{version}/nv.d3.min.js': resources.nvd3JS,
@ -458,6 +470,7 @@ mappings.cdn = {
'rickshaw/{version}/rickshaw.min.js': resources.rickshawJS,
'script.js/{version}/script.': resources.scriptJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'ScrollMagic/{version}/': resources.scrollMagic,
'select2/{version}/': resources.select2,
'semantic-ui/{version}/': resources.semanticUi,
'showdown/{version}/showdown.': resources.showdown,
@ -480,13 +493,26 @@ mappings.cdn = {
'sticky-js/{version}/sticky.min.js': resources.stickyJS,
'stickyfill/{version}/stickyfill.': resources.stickyfill,
'socket.io/{version}/socket.io.': resources.socketIO,
'swfobject/{version}/swfobject.': resources.swfobject,
'swagger-ui/{version}/swagger-ui.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui.min.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui-bundle.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui-bundle.min.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui-es-bundle-core.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui-es-bundle-core.min.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui-es-bundle.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui-es-bundle.min.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui-standalone-preset.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui-standalone-preset.min.js': resources.swaggerUiJS,
'swagger-ui/{version}/swagger-ui.css': resources.swaggerUiCSS,
'swagger-ui/{version}/swagger-ui.min.css': resources.swaggerUiCSS,
'Swiper/{version}/css/swiper.': resources.swiperCSS,
'Swiper/{version}/js/swiper.': resources.swiperJS,
'Swiper/{version}/swiper-bundle.min.js': resources.swiperJS,
'Swiper/{version}/swiper-bundle.js': resources.swiperJS,
'Swiper/{version}/swiper-bundle.min.css': resources.swiperCSS,
'Swiper/{version}/swiper-bundle.css': resources.swiperCSS,
'tensorflow/{version}/tf.min.js': resources.tensorflow,
'tensorflow/{version}/tf.js': resources.tensorflow,
'tether/{version}/js/tether.': resources.tetherJS,
'tinymce/{version}/': resources.tinymce,
'tooltipster/{version}/js/jquery.tooltipster.': resources.jQueryTooltipster,
@ -504,14 +530,18 @@ mappings.cdn = {
'twitter-bootstrap/{version}/bootstrap.min.css': resources.bootstrapCSS,
'twitter-bootstrap/{version}/bootstrap.css': resources.bootstrapCSS,
'twix.js/{version}/twix.': resources.twixJS,
'typeahead.js/{version}/typeahead.jquery.min.js': resources.corejsTypeahead,
'underscore.js/{version}/underscore.': resources.underscore,
'underscore.js/{version}/underscore-min.': resources.underscore,
'URI.js/{version}/URI.min.js': resources.uriJS,
'URI.js/{version}/URI.js': resources.uriJS,
'urlive/{version}/jquery.urlive.': resources.jqueryURLive,
'vex-js/{version}/': resources.vexJS,
'video.js/{version}/video.js': resources.videoJS,
'vue/{version}/vue.min.js': resources.vueJs,
'vue-i18n/{version}/vue-i18n.': resources.vueI18N,
'vue-resource/{version}/vue-resource.': resources.vueResource,
'vue-router/{version}/vue-router.': resources.vueRouter,
'vuex/{version}/vuex.min.': resources.vuex,
'waypoints/{version}/noframework.waypoints.': resources.jQueryWaypoints,
'waypoints/{version}/jquery.waypoints.': resources.jQueryWaypoints,
@ -548,7 +578,6 @@ mappings.cdn = {
'angular@{version}/angular.': resources.angular,
'angular@{version}/angular.min.': resources.angular,
'angular-payments@{version}/lib/angular-payments.js': resources.angularPayments,
'angular-stripe-checkout@{version}/angular-stripe-checkout.js': resources.angularStripeCheckout,
'animate.css@{version}/animate.min.css': resources.animateCSS,
'animejs@{version}/lib/anime.': resources.animejs,
'aos@{version}/dist/aos.css': resources.aosCSS,
@ -565,6 +594,7 @@ mappings.cdn = {
'bootstrap@{version}/dist/css/bootstrap.': resources.bootstrapCSS,
'bootstrap-icons@{version}/font/bootstrap-icons.css': resources.bootstrapIcons,
'bootstrap-icons@{version}/font/bootstrap-icons.min.css': resources.bootstrapIcons,
'bootstrap-select@{version}/dist/css/bootstrap-select.': resources.bootstrapSelectCSS,
'bootstrap-select@{version}/dist/js/bootstrap-select.': resources.bootstrapSelectJS,
'bootstrap-table@{version}/dist/bootstrap-table.min.js': resources.bootstrapTableJS,
'bootstrap-table@{version}/dist/bootstrap-table.js': resources.bootstrapTableJS,
@ -602,14 +632,6 @@ mappings.cdn = {
'docsify-themeable@{version}/dist/css/theme-simple-dark.css': resources.docsifyThemeSimpleDark,
'ethjs@{version}/dist/ethjs.': resources.ethJs,
'exif-js@{version}/exif.': resources.exifJS,
'@findify/bundle@{version}/dist/bundle.js': resources.findifyBundle,
'@findify/bundle@{version}/dist/components.js': resources.findifyBundle,
'@findify/bundle@{version}/dist/config.js': resources.findifyBundle,
'@findify/bundle@{version}/dist/initializer.js': resources.findifyBundle,
'@findify/bundle@{version}/dist/polyfill.js': resources.findifyBundle,
'@findify/bundle@{version}/dist/vendors~components~initializer.js': resources.findifyBundle,
'@findify/bundle@{version}/dist/vendors~initializer.js': resources.findifyBundle,
'@findify/bundle@{version}/dist/vendors~sentry.js': resources.findifyBundle,
'flv.js/dist/flv.min.js': resources.flvJS,
'font-awesome@{version}/css/font-awesome.': resources.fontawesome,
'fork-awesome@{version}/css/fork-awesome.': resources.forkawesome,
@ -629,6 +651,9 @@ mappings.cdn = {
'jquery-ui-dist@{version}/jquery-ui.js': resources.jQueryUI,
'jquery-ui-dist@{version}/jquery-ui.min.js': resources.jQueryUI,
'jquery-validation@{version}/dist/jquery.validate.': resources.jqueryValidationPlugin,
'js-cookie@{version}/dist/js.cookie.js': resources.jscookie,
'js-cookie@{version}/dist/js.cookie.min.js': resources.jscookie,
'js-cookie@{version}/src/js.cookie.': resources.jscookie,
'leaflet@{version}/dist/leaflet.js': resources.leafletJS,
'leaflet@{version}/dist/leaflet.css': resources.leafletCSS,
'leaflet-easybutton@{version}/src/easy-button.js': resources.leafletEasyButton,
@ -663,8 +688,22 @@ mappings.cdn = {
'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,
'scrollmagic@{version}/scrollmagic/uncompressed/': resources.scrollMagic,
'scrollmagic@{version}/scrollmagic/minified/': resources.scrollMagic,
'search-insights@{version}/dist/search-insights.': resources.searchInsights,
'select2@{version}/': resources.select2,
'swagger-ui-dist@{version}/swagger-ui.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui.min.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui-bundle.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui-bundle.min.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui-es-bundle-core.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui-es-bundle-core.min.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui-es-bundle.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui-es-bundle.min.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui-standalone-preset.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui-standalone-preset.min.js': resources.swaggerUiJS,
'swagger-ui-dist@{version}/swagger-ui.css': resources.swaggerUiCSS,
'swagger-ui-dist@{version}/swagger-ui.min.css': resources.swaggerUiCSS,
'swiper@{version}/swiper-bundle.css': resources.swiperCSS,
'swiper@{version}/swiper-bundle.min.css': resources.swiperCSS,
'swiper@{version}/swiper-bundle.js': resources.swiperJS,
@ -673,13 +712,15 @@ mappings.cdn = {
'swiper/swiper-bundle.min.css': resources.swiperCSS,
'swiper/swiper-bundle.js': resources.swiperJS,
'swiper/swiper-bundle.min.js': resources.swiperJS,
'swfobject@{version}/index.js': resources.swfobject,
'store-js@{version}/dist/store.legacy.min.js': resources.storeJS,
'scriptaculous-js@{version}/scriptaculous.': resources.scriptaculous,
'slick-carousel@{version}/slick/slick.min.css': resources.slickCarouselCSS,
'slick-carousel@{version}/slick/slick.css': resources.slickCarouselCSS,
'slick-carousel@{version}/slick/slick.min.js': resources.slickCarouselJS,
'slick-carousel@{version}/slick/slick.js': resources.slickCarouselJS,
'@supabase/supabase-js@{version}': resources.supabaseJs,
'@tensorflow/tfjs@{version}/dist/tf.min.js': resources.tensorflow,
'@tensorflow/tfjs@{version}/dist/tf.js': resources.tensorflow,
'underscore@{version}/underscore.': resources.underscore,
'underscore@{version}/underscore-min.': resources.underscore,
'urlize.js/urlize.js': resources.urlize,
@ -690,6 +731,7 @@ mappings.cdn = {
'videojs-seek-buttons/dist/videojs-seek-buttons.min.js': resources.videojsSeekButtonsJS,
'vue-match-media@{version}/dist/index.': resources.vueMatchMedia,
'vue-resource@{version}/dist/vue-resource.': resources.vueResource,
'vue-router@{version}/dist/vue-router.': resources.vueRouter,
'vue@{version}/dist/vue.min.js': resources.vueJs,
'vue@{version}/dist/vue.js': resources.vueJs,
'vuex@{version}/dist/vuex.': resources.vuex,
@ -706,6 +748,10 @@ mappings.cdn = {
'bluebird/{version}/bluebird.': resources.bluebird,
'bootstrap/{version}/css/bootstrap.': resources.bootstrapCSS,
'bootstrap/{version}/js/bootstrap.': resources.bootstrapJS,
'docsearch.js/{version}/docsearch.min.js': resources.docsearchJS,
'docsearch.js/{version}/docsearch.js': resources.docsearchJS,
'docsearch.js/{version}/docsearch.min.css': resources.docsearchCSS,
'docsearch.js/{version}/docsearch.css': resources.docsearchCSS,
'fontawesome/{version}/css/font-awesome.min.css': resources.fontawesome,
'foundation-icons/{version}/foundation-icons.min.css': resources.foundationIconsCSS,
'gh/alpinejs/alpine@v{version}/dist/alpine.': resources.alpinejs,
@ -736,7 +782,6 @@ mappings.cdn = {
'simplemde/{version}/simplemde.css': resources.simplemdeCSS,
'simplemde/{version}/simplemde.min.css': resources.simplemdeCSS,
'snowplow/{version}/sp.': resources.snowplow,
'swfobject/{version}/swfobject.': resources.swfobject,
'underscorejs/{version}/underscore.': resources.underscore,
'underscorejs/{version}/underscore-min.': resources.underscore,
'webfontloader/{version}/webfont': resources.webfontloader
@ -779,7 +824,6 @@ mappings.cdn = {
'momentjs/{version}/moment.min.': resources.moment,
'prototype/{version}/prototype.': resources.prototypeJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'swfobject/{version}/swfobject.': resources.swfobject,
'underscore/{version}/underscore.': resources.underscore,
'underscore/{version}/underscore-min.': resources.underscore
}
@ -800,7 +844,6 @@ mappings.cdn = {
'momentjs/{version}/moment.min.': resources.moment,
'prototype/{version}/prototype.': resources.prototypeJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'swfobject/{version}/swfobject.': resources.swfobject,
'underscore/{version}/underscore.': resources.underscore,
'underscore/{version}/underscore-min.': resources.underscore
}
@ -831,8 +874,6 @@ mappings.cdn = {
'mootools/{version}/mootools-core.': resources.mootools,
'prototype/{version}/prototype.': resources.prototypeJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'swfobject/{version}/swfobject.': resources.swfobject,
'swfobject/{version}/swfobject_src.': resources.swfobject,
'underscore.js/{version}/underscore.': resources.underscore,
'underscore.js/{version}/underscore-min.': resources.underscore,
'webfont/{version}/webfont.': resources.webfontloader,
@ -865,7 +906,6 @@ mappings.cdn = {
'mootools/{version}/mootools-core.': resources.mootools,
'prototype/{version}/prototype.': resources.prototypeJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'swfobject/{version}/swfobject.': resources.swfobject,
'underscore.js/{version}/underscore.': resources.underscore,
'underscore.js/{version}/underscore-min.': resources.underscore,
'webfont/{version}/webfont.': resources.webfontloader,
@ -893,7 +933,6 @@ mappings.cdn = {
'mootools/{version}/mootools-core.': resources.mootools,
'prototype/{version}/prototype.': resources.prototypeJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'swfobject/{version}/swfobject.': resources.swfobject,
'underscore.js/{version}/underscore.': resources.underscore,
'underscore.js/{version}/underscore-min.': resources.underscore,
'webfont/{version}/webfont.': resources.webfontloader,
@ -925,7 +964,6 @@ mappings.cdn = {
'mootools/{version}/mootools-core.': resources.mootools,
'prototype/{version}/prototype.': resources.prototypeJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'swfobject/{version}/swfobject.': resources.swfobject,
'webfont/{version}/webfont.': resources.webfontloader,
'webfont/{version}/webfont_debug.': resources.webfontloader
}
@ -958,7 +996,6 @@ mappings.cdn = {
'mootools/{version}/mootools-core.': resources.mootools,
'prototype/{version}/prototype.': resources.prototypeJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'swfobject/{version}/swfobject.': resources.swfobject,
'twitter-bootstrap/{version}/js/bootstrap.': resources.bootstrapJS,
'twitter-bootstrap/{version}/css/bootstrap.': resources.bootstrapCSS,
'underscore.js/{version}/underscore.': resources.underscore,
@ -1002,7 +1039,6 @@ mappings.cdn = {
'mootools/{version}/mootools.': resources.mootools,
'prototype/{version}/prototype.': resources.prototypeJS,
'scriptaculous/{version}/scriptaculous.': resources.scriptaculous,
'swfobject/{version}/swfobject.': resources.swfobject,
'underscore/{version}/underscore.': resources.underscore,
'underscore/{version}/underscore-min.': resources.underscore,
'webfont/{version}/webfont.': resources.webfontloader,

View File

@ -23,7 +23,7 @@
* Messenger
*/
var messenger = {};
let messenger = {};
/**
@ -41,7 +41,11 @@ messenger._handleMessageReceived = function (message, sender, sendResponse) {
switch (topic) {
case 'tab:fetch-injections':
sendResponse({'value': stateManager.tabs[value].injections});
sendResponse({'value': {
'injections': stateManager.tabs[value].injections,
'blockedCounter': stateManager.tabs[value].blocked,
'missingCounter': stateManager.tabs[value].missing
}});
return MessageResponse.SYNCHRONOUS;
case 'tab:inject':

View File

@ -23,7 +23,7 @@
* Request Analyzer
*/
var requestAnalyzer = {};
let requestAnalyzer = {};
/**
@ -52,9 +52,10 @@ requestAnalyzer.isValidCandidate = function (requestDetails, tabDetails) {
// Font Awesome injections in Chromium deactivated (https://gitlab.com/nobody42/localcdn/-/issues/67)
if (!BrowserType.FIREFOX) {
if (requestDetails.url.includes('font-awesome') || requestDetails.url.includes('fontawesome')) {
console.warn(`${LogString.PREFIX} ${LogString.FONT_AWESOME}`);
log.append(tabDetails.url, requestDetails.url, LogString.FONT_AWESOME, true);
let requestType = requestAnalyzer.chromeSupport(requestDetails.url);
if (requestType !== '') {
console.warn(`${LogString.PREFIX} ${requestType} ${LogString.NOT_SUPPORTED}`);
log.append(tabDetails.url, requestDetails.url, `${requestType} ${LogString.NOT_SUPPORTED}`, true);
return false;
}
}
@ -69,6 +70,20 @@ requestAnalyzer.isValidCandidate = function (requestDetails, tabDetails) {
return requestDetails.method === WebRequest.GET;
};
requestAnalyzer.chromeSupport = function (url) {
let value = '';
if (url.includes('font-awesome')) {
value = 'font-awesome';
} else if (url.includes('fontawesome')) {
value = 'font-awesome';
} else if (url.includes('fork-awesome')) {
value = 'fork-awesome';
}
return value;
};
requestAnalyzer.isGoogleMaterialIcons = function (url) {
return url.includes('Material+Icons') || url.includes('materialicons');
};
@ -145,6 +160,9 @@ requestAnalyzer._findLocalTarget = function (resourceMappings, basePath, channel
let resourcePath, versionNumber, resourcePattern, shorthandResource;
resourcePath = channelPath.replace(basePath, '');
if (resourcePath.startsWith('bootstrap')) {
resourcePath = resourcePath.replace(Regex.TWITTER_BOOTSTRAP_ALPHA_BETA, '');
}
// Evaluate first in case of version 'latest' and numerals in resource
versionNumber = resourcePath.match(Resource.VERSION_EXPRESSION);
@ -238,7 +256,11 @@ requestAnalyzer._getPathOfBundle = function (initiator, channelHost, channelPath
} else if (bundle === 'TinyMCE (Bundle)' && filename !== 'tinymce.min.js') {
filename = requestAnalyzer._handleTinyMCE(channelPath, channelHost, initiator);
} else if (bundle === 'DataTables (Bundle)') {
filename = requestAnalyzer._handleDataTables(filename);
filename = requestAnalyzer._handleUncompressedFiles(filename);
} else if (bundle === 'ScrollMagic (Bundle)' && !filename.endsWith('.min.js')) {
filename = requestAnalyzer._handleUncompressedFiles(filename);
} else if (bundle === 'Font Awesome (Fonts) (Bundle)') {
filename = requestAnalyzer._handleFontawesomeFiles(targetPath, filename);
}
if (filename === false) {
@ -268,7 +290,7 @@ requestAnalyzer._handleMathJax = function (channelPath, channelHost, initiator)
return filename;
};
requestAnalyzer._handleDataTables = function (filename) {
requestAnalyzer._handleUncompressedFiles = 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')) {
@ -287,6 +309,13 @@ requestAnalyzer._handleTinyMCE = function (channelPath, channelHost, initiator)
return filename;
};
requestAnalyzer._handleFontawesomeFiles = function (targetPath, filename) {
if (targetPath === 'resources/font-awesome/4.7.0/fonts/') {
return filename.replace('fontawesome-webfont.woff', 'fontawesome-webfont.woff2');
}
return filename;
};
requestAnalyzer._applyAllowlistedDomains = function () {
storageManager.type.get(Setting.ALLOWLISTED_DOMAINS, function (items) {
requestAnalyzer.allowlistedDomains = items.allowlistedDomains || {};

View File

@ -18,7 +18,7 @@
* Request Sanitizer
*/
var requestSanitizer = {};
let requestSanitizer = {};
/**

View File

@ -23,7 +23,7 @@
* Resources
*/
var resources = {
let resources = {
// Ajax Bootstrap Select
'ajaxBootstrapSelect': {
@ -106,14 +106,6 @@ var resources = {
'angularJSslider': {
'path': 'resources/angularjs-slider/{version}/rzslider.min.jsm'
},
// AngularJS ui-select [Deprecated]
'angularJsUiSelect': {
'path': 'resources/angular-ui-select/{version}/select.min.jsm'
},
// angular-ui-utils [Deprecated]
'angularUiUtils': {
'path': 'resources/angular-ui-utils/{version}/angular-ui-utils.min.jsm'
},
// AngularUI Bootstrap [Deprecated]
'angularUiBootstrapTPLS': {
'path': 'resources/angular-ui-bootstrap/{version}/ui-bootstrap-tpls.min.jsm'
@ -136,10 +128,6 @@ var resources = {
'angularPayments': {
'path': 'resources/zumper-angular-payments/{version}/angular-payments.jsm'
},
// Angular Stripe Checkout [Deprecated]
'angularStripeCheckout': {
'path': 'resources/angular-stripe-checkout/{version}/angular-stripe-checkout.min.jsm'
},
// Angular Translate (Bundle)
'angularTranslate': {
'path': 'resources/angular-translate/{version}/'
@ -301,7 +289,7 @@ var resources = {
},
// Chart.js
'chartJs': {
'path': 'resources/Chart.js/{version}/Chart.bundle.min.jsm'
'path': 'resources/Chart.js/{version}/chart.min.jsm'
},
'chartJsCSS': {
'path': 'resources/Chart.js/{version}/Chart.min.css'
@ -337,10 +325,6 @@ var resources = {
'd3JS': {
'path': 'resources/d3/{version}/d3.min.jsm'
},
// D3 Legend [Deprecated]
'd3legend': {
'path': 'resources/d3-legend/{version}/d3-legend.min.jsm'
},
// datatables
'datatables': {
'path': 'resources/datatables/{version}/'
@ -374,13 +358,6 @@ var resources = {
'docsifyThemeSimpleDark': {
'path': 'resources/docsify-themeable/{version}/theme-simple-dark.css'
},
// Drawer [Deprecated]
'drawerJS': {
'path': 'resources/drawer/{version}/drawer.min.jsm'
},
'drawerCSS': {
'path': 'resources/drawer/{version}/drawer.min.css'
},
// dygraph
'dygraph': {
'path': 'resources/dygraph/{version}/dygraph.min.jsm'
@ -423,14 +400,6 @@ var resources = {
'feather': {
'path': 'resources/feather-icons/{version}/feather.min.jsm'
},
// Finify bundle
'findifyBundle': {
'path': 'resources/findify-bundle/{version}/'
},
// FitText.js [Deprecated]
'fitTextJs': {
'path': 'resources/FitText.js/{version}/jquery.fittext.min.jsm'
},
// flickity
'flickity': {
'path': 'resources/flickity/{version}/flickity.pkgd.min.jsm'
@ -482,6 +451,10 @@ var resources = {
'googleMaterialIcons': {
'path': 'resources/google-material-design-icons/google-material-design-icons.css'
},
// handlebars.js
'handlebarsJs': {
'path': 'resources/handlebars.js/{version}/handlebars.min.jsm'
},
// highlight.js (Bundle)
'highlightJS': {
'path': 'resources/highlight.js/{version}/'
@ -674,7 +647,11 @@ var resources = {
},
// knockout
'knockout': {
'path': 'resources/knockout/{version}/knockout-latest.min.jsm'
'path': 'resources/knockout/{version}/knockout-min.jsm'
},
// knockout.mapping
'knockoutMapping': {
'path': 'resources/knockout.mapping/{version}/knockout.mapping.min.jsm'
},
// lazysizes
'lazysizes': {
@ -804,6 +781,13 @@ var resources = {
'ngxBootstrapDatepicker': {
'path': 'resources/ngx-bootstrap/{version}/datepicker/bs-datepicker.css'
},
// nprogress
'nprogressCSS': {
'path': 'resources/nprogress/{version}/nprogress.min.css'
},
'nprogressJS': {
'path': 'resources/nprogress/{version}/nprogress.min.jsm'
},
// noUiSlider
'noUiSlider': {
'path': 'resources/noUiSlider/{version}/nouislider.min.jsm'
@ -961,6 +945,10 @@ var resources = {
'scriptaculous': {
'path': 'resources/scriptaculous/{version}/scriptaculous.jsm'
},
// ScrollMagic (Bundle)
'scrollMagic': {
'path': 'resources/ScrollMagic/{version}/'
},
// Search Insights
'searchInsights': {
'path': 'resources/search-insights/{version}/search-insights.min.jsm'
@ -1036,9 +1024,16 @@ var resources = {
'storeJS': {
'path': 'resources/store.js/{version}/store.legacy.min.jsm'
},
// SWFObject [Deprecated]
'swfobject': {
'path': 'resources/swfobject/{version}/swfobject.jsm'
// suprabase-js
'supabaseJs': {
'path': 'resources/supabase-js/{version}/supabase.min.jsm'
},
// swagger-ui
'swaggerUiJS': {
'path': 'resources/swagger-ui/{version}/swagger-ui-bundle.min.jsm'
},
'swaggerUiCSS': {
'path': 'resources/swagger-ui/{version}/swagger-ui.min.css'
},
// Swiper
'swiperJS': {
@ -1047,6 +1042,10 @@ var resources = {
'swiperCSS': {
'path': 'resources/Swiper/{version}/css/swiper.min.css'
},
// tensorflow
'tensorflow': {
'path': 'resources/tensorflow/{version}/tf.min.jsm'
},
// Tether JS [Deprecated]
'tetherJS': {
'path': 'resources/tether/{version}/js/tether.min.jsm'
@ -1070,6 +1069,10 @@ var resources = {
'underscore': {
'path': 'resources/underscore.js/{version}/underscore-min.jsm'
},
// URI.js
'uriJS': {
'path': 'resources/URI.js/{version}/URI.min.jsm'
},
// urlize
'urlize': {
'path': 'resources/urlize/{version}/urlize.jsm'
@ -1112,6 +1115,10 @@ var resources = {
'vueResource': {
'path': 'resources/vue-resource/{version}/vue-resource.min.jsm'
},
// vue-router
'vueRouter': {
'path': 'resources/vue-router/{version}/vue-router.global.min.jsm'
},
// vuex
'vuex': {
'path': 'resources/vuex/{version}/vuex.min.jsm'

View File

@ -23,7 +23,7 @@
* Shorthands
*/
var shorthands = {};
let shorthands = {};
shorthands.specialFiles = function (channelHost, channelPath, searchString) {
@ -64,11 +64,11 @@ shorthands.specialFiles = function (channelHost, channelPath, searchString) {
'bundle': ''
};
} else if (channelPath.endsWith(MaterialIcons.DEFAULT)) {
lastVersion = targets.setLastVersion('/google-material-design-icons/');
lastVersion = targets.setLastVersion('/materialicons/');
return {
'source': channelHost,
'versionDelivered': lastVersion,
'path': `resources/google-material-design-icons/${lastVersion}/MaterialIcons.woff2`,
'path': `resources/google-material-design-icons/materialicons/${lastVersion}/MaterialIcons.woff2`,
'bundle': ''
};
} else if (Regex.BOOTSTRAP_DATEPICKER_3.test(channelPath)) {
@ -273,6 +273,30 @@ shorthands.specialFiles = function (channelHost, channelPath, searchString) {
'path': `resources/webcomponentsjs/${lastVersion}/webcomponents-loader.min.jsm`,
'bundle': ''
};
} else if (CompleteURL.startsWith('unpkg.com/aos@next/dist/aos.')) {
let file;
lastVersion = targets.setLastVersion('/aos/latest');
if (channelPath.endsWith('js')) {
file = 'aos.jsm';
} else {
file = 'aos.css';
}
return {
'source': channelHost,
'versionDelivered': lastVersion,
'versionRequested': 'next',
'path': `resources/aos/${lastVersion}/${file}`,
'bundle': ''
};
} else if (Regex.DOCSIFY.test(channelPath)) {
lastVersion = targets.setLastVersion('/docsify/');
return {
'source': channelHost,
'versionDelivered': lastVersion,
'versionRequested': channelPath.split('@')[1],
'path': `resources/docsify/${lastVersion}/docsify.min.jsm`,
'bundle': ''
};
}
return {
'result': false,

View File

@ -23,7 +23,7 @@
* State Manager
*/
var stateManager = {};
let stateManager = {};
/**
@ -31,7 +31,8 @@ var stateManager = {};
*/
stateManager.registerInjection = function (tabIdentifier, injection, url) {
let injectionIdentifier, registeredTab, injectionCount, missingCount, initiatorDomain, htmlFilterIsActive;
let injectionIdentifier, registeredTab, injectionCount, missingCount, blockedCount,
initiatorDomain, htmlFilterIsActive;
if (injection['result'] !== false) {
injectionIdentifier = injection.source + injection.path;
@ -42,8 +43,13 @@ stateManager.registerInjection = function (tabIdentifier, injection, url) {
initiatorDomain = helpers.extractDomainFromUrl(url, true) || Address.EXAMPLE;
htmlFilterIsActive = manipulateDOM.checkHtmlFilterEnabled(initiatorDomain);
injectionCount = Object.keys(registeredTab.injections).length || 0;
missingCount = registeredTab.missing || 0;
if (registeredTab !== undefined) {
injectionCount = Object.keys(registeredTab.injections).length || 0;
missingCount = registeredTab.missing || 0;
blockedCount = registeredTab.blocked || 0;
} else {
return;
}
if (injectionCount > 0) {
chrome.browserAction.setTitle({
@ -52,14 +58,14 @@ stateManager.registerInjection = function (tabIdentifier, injection, url) {
});
}
if (stateManager.showIconBadge === true) {
if (missingCount > 0 && stateManager.changeBadgeColorMissingResources) {
if ((missingCount > 0 || blockedCount > 0) && stateManager.changeBadgeColorMissingResources) {
wrappers.setBadgeColoring(tabIdentifier, BadgeSettingMissingResource.TYPE);
} else if (htmlFilterIsActive) {
wrappers.setBadgeColoring(tabIdentifier, BadgeSettingHTMLFilter.TYPE);
} else {
wrappers.setBadgeColoring(tabIdentifier, BadgeSetting.TYPE);
}
wrappers.setBadgeText(tabIdentifier, injectionCount);
wrappers.setBadgeText(tabIdentifier, (injectionCount + missingCount + blockedCount));
}
if (isNaN(storageManager.amountInjected)) {
storageManager.type.get(Setting.AMOUNT_INJECTED, function (items) {
@ -90,15 +96,19 @@ stateManager.addDomainToAllowlist = function (domain) {
stateManager.removeDomainFromAllowlist = function (domain) {
return new Promise((resolve) => {
let allowlistedDomains, wildcard;
let allowlistedDomains;
allowlistedDomains = requestAnalyzer.allowlistedDomains;
wildcard = helpers.getWildcard(domain);
if (allowlistedDomains[domain]) {
delete allowlistedDomains[domain];
} else {
delete allowlistedDomains[wildcard];
for (const key in allowlistedDomains) {
if (key.startsWith('*.') && domain.endsWith(key.substring(2))) {
delete allowlistedDomains[key];
break;
}
}
}
storageManager.type.set({allowlistedDomains}, resolve);
@ -156,7 +166,8 @@ stateManager._createTab = function (tab) {
stateManager.tabs[tabIdentifier] = {
'injections': {},
'missing': 0
'missing': 0,
'blocked': 0
};
requestFilters = {
@ -205,6 +216,7 @@ stateManager._updateTab = function (details) {
if (stateManager.tabs[tabIdentifier]) {
stateManager.tabs[tabIdentifier].injections = {};
stateManager.tabs[tabIdentifier].missing = 0;
stateManager.tabs[tabIdentifier].blocked = 0;
}
};
@ -284,7 +296,7 @@ stateManager._setIconDisabled = function (tabIdentifier) {
stateManager.requests = {};
stateManager.tabs = {};
stateManager.getInvertOption = false;
stateManager.getInvertOption = true;
stateManager.validHosts = [];
stateManager.selectedIcon = 'Default';
stateManager.internalStatistics = false;
@ -317,8 +329,12 @@ storageManager.type.get([
if (items.selectedIcon === undefined) {
stateManager.selectedIcon = 'Default';
}
if (items.negateHtmlFilterList === undefined) {
stateManager.getInvertOption = true;
} else {
stateManager.getInvertOption = items.negateHtmlFilterList;
}
stateManager.showIconBadge = items.showIconBadge;
stateManager.getInvertOption = items.negateHtmlFilterList;
stateManager.selectedIcon = items.selectedIcon;
stateManager.internalStatistics = items.internalStatistics;
stateManager.hideDonationButton = items.hideDonationButton;

View File

@ -26,7 +26,7 @@ const InvalidFile = 'Invalid file!';
* Storage Manager
*/
var storageManager = {};
let storageManager = {};
/**
@ -44,7 +44,9 @@ storageManager.checkStorageType = function () {
};
storageManager.migrateData = function (target) {
let storageSource, storageDestination;
let storageSource, storageDestination, syncFetch;
syncFetch = false;
if (target === 'local') {
storageSource = chrome.storage.sync;
@ -52,6 +54,11 @@ storageManager.migrateData = function (target) {
} else if (target === 'sync') {
storageSource = chrome.storage.local;
storageDestination = chrome.storage.sync;
} else if (target === 'sync-fetch') {
storageSource = chrome.storage.sync;
storageDestination = chrome.storage.sync;
target = 'sync';
syncFetch = true;
} else {
return;
}
@ -84,6 +91,9 @@ storageManager.migrateData = function (target) {
[Setting.BADGE_HTML_FILTER_BACKGROUND_COLOR]: data.badgeHTMLFilterBackgroundColor,
[Setting.BADGE_HTML_FILTER_TEXT_COLOR]: data.badgeHTMLfilterTextColor
});
if (syncFetch === true) {
chrome.runtime.reload();
}
});
};
@ -110,19 +120,21 @@ storageManager.startImportFilePicker = function () {
};
storageManager.handleImportFilePicker = function () {
return new Promise((resolve) => {
try {
let file = document.getElementById('import-file-picker').files[0];
storageManager._readFile(file)
.then(JSON.parse)
.then(storageManager._validation);
resolve();
let file, reader;
file = document.getElementById('import-file-picker').files[0];
reader = new FileReader();
reader.readAsText(file, 'UTF-8');
reader.onload = (ev) => {
let content = ev.target.result;
try {
storageManager._validation(JSON.parse(content));
} catch (err) {
console.error(`[ LocalCDN ] ${err}`);
alert(err);
}
});
};
};
@ -140,17 +152,6 @@ storageManager._handleStorageChanged = function (type) {
}
};
storageManager._readFile = function (file) {
return new Promise((resolve, reject) => {
let reader = new FileReader();
reader.onload = () => {
resolve(reader.result);
};
reader.onerror = reject;
reader.readAsText(file);
});
};
storageManager._validation = function (content) {
let imported = {};
@ -212,7 +213,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 (((Regex.DOMAIN).test(key) || key === '') && value === true) {
valid[key] = value;
} else {
alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${key}`);
@ -221,12 +222,12 @@ storageManager._validateDomainsAndStatistics = function (type, obj) {
}
} else if (type === 'internalStatisticsData') {
for (const [date, values] of Object.entries(obj)) {
if ((/((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/).test(date)) {
if ((Regex.INTERNAL_STATISTICS_DATA).test(date)) {
for (const [types, category] of Object.entries(values)) {
if (types === 'frameworks') {
for (const [name, counter] of Object.entries(category)) {
// eslint-disable-next-line max-len
if (!(/resources\/[0-9a-z.-]+\/((?:\d{1,2}\.){1,3}\d{1,2})?.*\.(css|jsm)/).test(name) && !storageManager._validateNumbers(counter)) {
if (!(Regex.INTERNAL_RESOURCES).test(name) && !storageManager._validateNumbers(counter)) {
alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${name}`);
throw InvalidFile;
}
@ -234,7 +235,7 @@ storageManager._validateDomainsAndStatistics = function (type, obj) {
} else if (types === 'cdns') {
for (const [name, counter] of Object.entries(category)) {
// eslint-disable-next-line no-useless-escape, max-len
if (!(/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,24}/).test(name) && !storageManager._validateNumbers(counter)) {
if (!(Regex.DOMAIN).test(name) && !storageManager._validateNumbers(counter)) {
alert(`${chrome.i18n.getMessage('dialogImportFailed')}: ${name}`);
throw InvalidFile;
}
@ -258,9 +259,9 @@ storageManager._validateDomainsAndStatistics = function (type, obj) {
};
storageManager._validateStrings = function (value) {
if ((/((2\d)\d{2})-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])/).test(value)) {
if ((Regex.ISO_DATE).test(value)) {
return value;
} else if ((/#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/).test(value)) {
} else if ((Regex.HEX_COLOR).test(value)) {
return value;
} else if (value === 'Default' || value === 'Light' || value === 'Grey') {
return value;

106
icons/popup_check.svg Normal file
View File

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Capa_1"
x="0px"
y="0px"
viewBox="0 0 236.988 236.988"
style="enable-background:new 0 0 236.988 236.988;"
xml:space="preserve"
sodipodi:docname="popup_check.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"><metadata
id="metadata39"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs37" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1021"
id="namedview35"
showgrid="false"
inkscape:zoom="3.4938477"
inkscape:cx="118.494"
inkscape:cy="118.494"
inkscape:window-x="0"
inkscape:window-y="31"
inkscape:window-maximized="1"
inkscape:current-layer="Capa_1" />
<polygon
points="198.098,24.326 87.543,134.881 38.891,86.229 0,125.121 87.543,212.662 236.988,63.217 "
id="polygon2"
style="fill:#f0f0f0;fill-opacity:1" />
<g
id="g4"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g6"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g8"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g10"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g12"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g14"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g16"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g18"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g20"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g22"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g24"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g26"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g28"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g30"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g32"
style="fill:#f0f0f0;fill-opacity:1">
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

107
icons/popup_uncheck.svg Normal file
View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 342.947 342.947"
style="enable-background:new 0 0 342.947 342.947;"
xml:space="preserve"
sodipodi:docname="popup_uncheck.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"><metadata
id="metadata39"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs37" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1021"
id="namedview35"
showgrid="false"
inkscape:zoom="2.4143673"
inkscape:cx="171.4735"
inkscape:cy="206.32001"
inkscape:window-x="0"
inkscape:window-y="31"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<polygon
points="21.213,342.947 171.473,192.686 321.734,342.947 342.947,321.734 192.686,171.473 342.947,21.213 321.734,0 171.473,150.26 21.213,0 0,21.213 150.26,171.473 0,321.734 "
id="polygon2"
style="fill:#f0f0f0;fill-opacity:1;stroke:#f0f0f0;stroke-width:49.7301;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.82087416,-0.0018069,0.0018043,0.82128778,30.514662,31.320972)" />
<g
id="g4"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g6"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g8"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g10"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g12"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g14"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g16"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g18"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g20"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g22"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g24"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g26"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g28"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g30"
style="fill:#f0f0f0;fill-opacity:1">
</g>
<g
id="g32"
style="fill:#f0f0f0;fill-opacity:1">
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,11 +1,15 @@
{
"manifest_version": 2,
"name": "LocalCDN",
"version": "2.6.40",
"version": "2.6.68",
"browser_specific_settings": {
"gecko": {
"id": "{b86e4813-687a-43e6-ab65-0bde4ab75758}",
"strict_min_version": "86.0"
"strict_min_version": "113.0"
},
"gecko_android": {
"id": "{b86e4813-687a-43e6-ab65-0bde4ab75758}",
"strict_min_version": "120.0"
}
},
"author": "nobody",

View File

@ -23,7 +23,7 @@
* Helpers
*/
var helpers = {};
let helpers = {};
/**
@ -175,22 +175,39 @@ helpers.getWildcard = function (initiatorDomain) {
domain = domain.join().replace(/,/g, '.');
return domain;
}
};
helpers.getTopLevelDomain = function (initiatorDomain) {
let domain = initiatorDomain.split('.');
domain[domain.length - 2] = '*';
return `${domain[domain.length - 2]}.${domain[domain.length - 1]}`;
};
helpers.checkAllowlisted = function (domain, list) {
let domainWithoutPrefix, wildcard;
if (!domain) return false;
if (domain === null) {
return false;
const subdomains = helpers.getAllSubdomains(domain);
for (const subdomain of subdomains) {
if (list[subdomain]) return true;
}
return false;
};
helpers.getAllSubdomains = function (domain) {
const parts = domain.split('.').reverse();
const subdomains = [];
let currentSubdomain = '';
for (const part of parts) {
currentSubdomain = part + (currentSubdomain ? `.${currentSubdomain}` : '');
subdomains.push(`*.${currentSubdomain}`);
subdomains.push(currentSubdomain);
}
if (domain.startsWith(Address.WWW_PREFIX)) {
domainWithoutPrefix = domain.slice(Address.WWW_PREFIX.length);
}
wildcard = helpers.getWildcard(domain);
return Boolean(list[domain] || list[domainWithoutPrefix] || list[wildcard] || list[domainWithoutPrefix]);
return subdomains;
};
helpers.extractFilenameFromPath = function (path) {
@ -294,3 +311,14 @@ helpers.compareVersion = function (v1, v2) {
}
return v1.length === v2.length ? true : v1.length < v2.length ? false : true;
};
helpers.isGoogleDomain = function (initiatorDomain) {
let parts = initiatorDomain.split('.');
// remove subdomains if exist
if (parts.length > 2) {
parts.shift();
}
return GoogleDomains[parts.join('.')] || false;
};

View File

@ -19,12 +19,12 @@
* Log
*/
var log = {};
let log = {};
log.append = function (initiator, resource, target, highlight) {
log.append = function (initiator, resource, target, highlight, iframe = '') {
storageManager.type.get(Setting.LOGGING, function (items) {
if (items.enableLogging) {
log.data.push({initiator, resource, target, highlight});
log.data.push({initiator, resource, target, highlight, iframe});
}
});
};

View File

@ -19,7 +19,7 @@
* Updates
*/
var ruleGenerator = {};
let ruleGenerator = {};
/**

View File

@ -20,7 +20,7 @@
* Stats
*/
var stats = {};
let stats = {};
/**

View File

@ -19,7 +19,7 @@
* Targets
*/
var targets = {};
let targets = {};
/**
@ -29,9 +29,7 @@ var targets = {};
targets.determineBundle = function (path) {
path = path.replace('resources', '');
let val = '';
if (path.startsWith('/findify')) {
val = 'Findify';
} else if (path.startsWith('/bootstrap-datepicker')) {
if (path.startsWith('/bootstrap-datepicker')) {
val = 'Bootstrap Datepicker';
} else if (path.startsWith('/jquery.lazy/')) {
val = 'jQuery Lazy';
@ -67,6 +65,8 @@ targets.determineBundle = function (path) {
val = 'vex';
} else if (path.startsWith('/tinymce/')) {
val = 'TinyMCE';
} else if (path.startsWith('/ScrollMagic/')) {
val = 'ScrollMagic';
}
return val === '' ? val : `${val} (Bundle)`;
@ -80,11 +80,12 @@ 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.2';
if (type.startsWith('/algoliasearch/4.')) return '4.23.3';
if (type.startsWith('/alpinejs/2.')) return '2.8.2';
if (type.startsWith('/alpinejs/3.')) return '3.10.5';
if (type.startsWith('/alpinejs/3.')) return '3.14.0';
if (type.startsWith('/anchor-js/3.')) return '3.2.2';
if (type.startsWith('/anchor-js/4.')) return '4.3.1';
if (type.startsWith('/anchor-js/5.')) return '5.0.0';
if (type.startsWith('/angular.js/1.')) {
if (helpers.compareVersion('1.0.8', version)) return '1.0.8'; // <= v1.0.8
if (helpers.compareVersion('1.2.19', version)) return '1.2.19'; // > v1.0.8 to <= v1.2.19
@ -109,8 +110,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/angularjs-toaster/3.')) return '3.0.0';
if (type.startsWith('/angular-bootstrap-colorpicker/3.')) return '3.0.32';
if (type.startsWith('/zumper-angular-payments/1.')) return '1.0.7';
if (type.startsWith('/angular-stripe-checkout@5.')) return '5.1.0';
if (type.startsWith('/angular-translate-loader-partial/2.')) return '2.19.0';
if (type.startsWith('/angular-translate-loader-partial/2.')) return '2.19.1';
if (type.startsWith('/angular-ui-bootstrap/')) {
if (helpers.compareVersion('0.10.0', version)) return '0.10.0'; // <= v0.10.0
if (helpers.compareVersion('0.14.3', version)) return '0.14.3'; // > 0.10.0 <= v0.14.3
@ -119,130 +119,121 @@ targets.setLastVersion = function (type, version) {
}
if (type.startsWith('/angular-ui-router/')) {
if (helpers.compareVersion('0.4.3', version)) return '0.4.3'; // <= 0.4.3
return '1.0.30'; // > 0.4.3
return '1.1.0'; // > 0.4.3
}
if (type.startsWith('/angular-ui-utils/0.')) return '0.1.1';
if (type.startsWith('/angular-ui-select/0.')) return '0.20.0';
if (type.startsWith('/angucomplete-alt/3.')) return '3.0.0';
if (type.startsWith('/animate.css/3.')) return '3.7.2';
if (type.startsWith('/animate.css/4.')) return '4.1.1';
if (type.startsWith('/animejs/3.')) return '3.2.1';
if (type.startsWith('/animejs/3.')) return '3.2.2';
if (type.startsWith('/autocomplete.js/0.')) return '0.38.1';
if (type.startsWith('/autocomplete.js/1.')) return '1.5.4';
if (type.startsWith('/angular-material/1.') || type.startsWith('/angular-material/0.')) return '1.2.5';
if (type.startsWith('/angular-translate/2.')) return '2.19.0';
if (type.startsWith('/aos/2.')) return '2.3.4';
if (type.startsWith('/angular-translate/2.')) return '2.19.1';
if (type.startsWith('/aos/2.') || type.startsWith('/aos/latest')) return '2.3.4';
if (type.startsWith('/appboy-web-sdk/3.')) return '3.5.1';
if (type.startsWith('/asciinema-player/2.')) return '2.6.1';
if (type.startsWith('/axios/0.')) return '0.27.2';
if (type.startsWith('/axios/1.')) return '1.1.3';
if (type.startsWith('/axios/1.')) return '1.7.2';
if (type.startsWith('/backbone.js/0.')) return '0.9.10';
if (type.startsWith('/backbone.js/1.')) return '1.4.1';
if (type.startsWith('/backbone.js/1.')) return '1.6.0';
if (type.startsWith('/baguettebox.js/1.')) return '1.11.1';
if (type.startsWith('/blazy/1.')) return '1.8.2';
if (type.startsWith('/bluebird/3.')) return '3.7.2';
if (type.startsWith('/bodymovin/4.')) return '4.13.0';
if (type.startsWith('/bodymovin/5.')) return '5.9.6';
if (type.startsWith('/bodymovin/5.')) return '5.12.2';
if (type.startsWith('/bootbox.js/4.')) return '4.4.0';
if (type.startsWith('/bootbox.js/5.')) return '5.5.3';
if (type.startsWith('/bootbox.js/6.')) return '6.0.0';
if (type.startsWith('/bootstrap-daterangepicker/2.')) return '2.1.27';
if (type.startsWith('/bootstrap-daterangepicker/3.')) return '3.1';
if (type.startsWith('/bootstrap-datepicker/1.')) return '1.9.0';
if (type.startsWith('/bootstrap-icons/1.')) return '1.10.2';
if (type.startsWith('/bootstrap-datepicker/1.')) return '1.10.0';
if (type.startsWith('/bootstrap-icons/1.')) return '1.11.3';
if (type.startsWith('/bootstrap-multiselect/0.')) return '0.9.16';
if (type.startsWith('/bootstrap-multiselect/1.')) return '1.1.2';
if (type.startsWith('/bootstrap-slider/10.')) return '10.6.2';
if (type.startsWith('/bootstrap-slider/11.')) return '11.0.2';
if (type.startsWith('/bootstrap-select/1.')) return '1.13.18';
if (type.startsWith('/bootstrap-table/1.')) return '1.21.1';
if (type.startsWith('/bootstrap-table/1.')) return '1.22.6';
if (type.startsWith('/bootstrap-toggle/2.')) return '2.2.2';
if (type.startsWith('/bootstrap-vue/2.')) return '2.23.1';
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.2.2';
if (type.startsWith('/bootswatch/5.')) return '5.3.3';
if (type.startsWith('/bowser/')) {
if (version !== 'latest' && helpers.compareVersion('1.9.4', version)) return '1.9.4';
return '2.11.0';
}
if (type.startsWith('/bulma/0.')) return '0.9.4';
if (type.startsWith('/bxslider/4.')) return '4.2.15';
if (type.startsWith('/bulma/0.')) return '1.0.0';
if (type.startsWith('/bulma/1.')) return '1.0.1';
if (type.startsWith('/bxslider/4.')) return '4.2.17';
if (type.startsWith('/Chart.js/2.')) return '2.9.4';
if (type.startsWith('/Chart.js/3.')) return '3.9.1';
if (type.startsWith('/Chart.js/4.')) return '4.0.1';
if (type.startsWith('/Chart.js/4.')) return '4.4.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';
if (type.startsWith('/clipboard.js/2.')) return '2.0.11';
if (type.startsWith('/cookieconsent2/3.')) return '3.1.1';
if (type.startsWith('/corejs-typeahead/1.')) return '1.3.1';
if (type.startsWith('/corejs-typeahead/1.')) return '1.3.4';
if (type.startsWith('/createjs/')) return '1.0.0';
if (type.startsWith('/d3/3.')) return '3.5.17';
if (type.startsWith('/d3/4.')) return '4.13.0';
if (type.startsWith('/d3/5.')) return '5.16.0';
if (type.startsWith('/d3/6.')) return '6.7.0';
if (type.startsWith('/d3/7.')) return '7.6.1';
if (type.startsWith('/d3-legend/2.')) return '2.25.6';
if (type.startsWith('/d3/7.')) return '7.9.0';
if (type.startsWith('/datatables/1.')) return '1.11.0';
if (type.startsWith('/dayjs/1.')) return '1.11.6';
if (type.startsWith('/dexie/3.') || type.startsWith('/dexie/latest')) return '3.2.2';
if (type.startsWith('/dayjs/1.')) return '1.11.11';
if (type.startsWith('/dexie/3.')) return '3.2.6';
if (type.startsWith('/dexie/4.') || type.startsWith('/dexie/latest')) return '4.0.7';
if (type.startsWith('/docsearch.js/2.')) return '2.6.3';
if (type.startsWith('/docsify/4.') || type.startsWith('/docsify/')) return '4.13.0';
if (type.startsWith('/docsify/4.') || type.startsWith('/docsify/')) return '4.13.1';
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';
if (type.startsWith('/element-ui/2.')) return '2.15.12';
if (type.startsWith('/dygraph/2.')) return '2.2.1';
if (type.startsWith('/element-ui/2.')) return '2.15.14';
if (type.startsWith('/embedly-player/0.')) return '0.1.0';
if (type.startsWith('/ethjs')) return '0.4.0';
if (type.startsWith('/exif-js/2.')) return '2.3.0';
if (type.startsWith('/ext-core/3.')) return '3.1.0';
if (type.startsWith('/fastclick/1.')) return '1.0.6';
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.68';
}
if (type.startsWith('/fancybox/2.')) return '2.1.7';
if (type.startsWith('/fancybox/3.')) return '3.5.7';
if (type.startsWith('/feather-icons/4.')) return '4.29.0';
if (type.startsWith('/FitText.js/1.')) return '1.2.0';
if (type.startsWith('/feather-icons/4.')) return '4.29.2';
if (type.startsWith('/flickity/3.')) return '3.0.0';
if (type.startsWith('/flv.js/')) return '1.6.2';
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.2.1';
if (type.startsWith('/font-awesome/6.')) return '6.5.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';
if (type.startsWith('/foundation/6.')) return '6.8.1';
if (type.startsWith('/foundicons/3.')) return '3.0.0';
if (type.startsWith('/granim/2.')) return '2.0.0';
if (type.startsWith('/gsap/1.')) return '1.20.5';
if (type.startsWith('/gsap/2.')) return '2.1.3';
if (type.startsWith('/gsap/3.')) return '3.11.3';
// just for testing ----------------------------------------------
if (type.startsWith('/materialicons/')) return 'v139';
if (type.startsWith('/materialiconsoutlined/')) return 'v108';
if (type.startsWith('/materialiconsround/')) return 'v107';
if (type.startsWith('/materialiconssharp/')) return 'v108';
if (type.startsWith('/materialiconstwotone/')) return 'v111';
// ---------------------------------------------------------------
if (type.startsWith('/highlight.js/7.')) return '9.18.5';
if (type.startsWith('/highlight.js/8.')) return '9.18.5';
if (type.startsWith('/highlight.js/9.')) return '9.18.5';
if (type.startsWith('/highlight.js/10.')) return '10.7.3';
if (type.startsWith('/highlight.js/11.')) return '11.6.0';
if (type.startsWith('/gsap/3.')) return '3.12.5';
if (type.startsWith('/materialicons/')) return 'v142';
if (type.startsWith('/materialiconsoutlined/')) return 'v109';
if (type.startsWith('/materialiconsround/')) return 'v108';
if (type.startsWith('/materialiconssharp/')) return 'v109';
if (type.startsWith('/materialiconstwotone/')) return 'v112';
if (type.startsWith('/handlebars.js/4.')) return '4.7.8';
if (type.startsWith('/highlight.js/7.')) return '11.9.0';
if (type.startsWith('/highlight.js/8.')) return '11.9.0';
if (type.startsWith('/highlight.js/9.')) return '11.9.0';
if (type.startsWith('/highlight.js/10.')) return '11.9.0';
if (type.startsWith('/highlight.js/11.')) return '11.9.0';
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.2.7';
if (type.startsWith('/hls.js/1.')) return '1.5.9';
if (type.startsWith('/hogan.js/')) return '3.0.2';
if (type.startsWith('/instantsearch.css/7.')) return '7.4.5';
if (type.startsWith('/instantsearch.css/8.')) return '8.2.0';
if (type.startsWith('/instantsearch.js/3.')) return '3.7.0';
if (type.startsWith('/instantsearch.js/4.')) return '4.49.1';
if (type.startsWith('/instantsearch.js/4.')) return '4.70.0';
if (type.startsWith('/in-view/0.')) return '0.6.1';
if (type.startsWith('/iScroll/5.')) return '5.2.0';
if (type.startsWith('/izimodal/1.')) return '1.6.1';
@ -259,13 +250,13 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/jquery/3.') || type.startsWith('/jquery/latest')) {
if (helpers.compareVersion('3.2.1', version)) return '3.2.1'; // <= v3.2.1
if (helpers.compareVersion('3.5.1', version)) return '3.5.1'; // <= v3.5.1
return '3.6.1';
return '3.7.1';
}
if (type.startsWith('/jquery.devbridge-autocomplete/1.')) return '1.4.11';
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.13.2'; // >= 1.8.19
return '1.13.3'; // >= 1.8.19
}
if (type.startsWith('/jquery-ajax-unobtrusive/3.')) return '3.2.6';
if (type.startsWith('/jquery.blockUI/2.')) return '2.70';
@ -278,7 +269,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/jquery.lazy/1.')) return '1.7.11';
if (type.startsWith('/jquery.matchHeight/0.')) return '0.7.2';
if (type.startsWith('/jquery-migrate/1.')) return '1.4.1';
if (type.startsWith('/jquery-migrate/3.')) return '3.4.0';
if (type.startsWith('/jquery-migrate/3.')) return '3.4.1';
if (type.startsWith('/jquery-minicolors/2.')) return '2.3.6';
if (type.startsWith('/jquery-mobile/1.')) {
if (helpers.compareVersion('1.3.2', version)) return '1.3.2'; // <= v1.3.2
@ -286,7 +277,7 @@ targets.setLastVersion = function (type, version) {
}
if (type.startsWith('/jquery-mousewheel/3.')) return '3.1.13';
if (type.startsWith('/jScrollPane/2.')) return '2.2.2';
if (type.startsWith('/jquery-validate/1.')) return '1.19.5';
if (type.startsWith('/jquery-validate/1.')) return '1.20.0';
if (type.startsWith('/jeditable.js/1.')) return '1.8.0';
if (type.startsWith('/jeditable.js/2.')) return '2.0.19';
if (type.startsWith('/jquery.cycle2/2.')) return '2.1.6';
@ -302,30 +293,34 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/jasny-bootstrap/3.')) return '3.1.3';
if (type.startsWith('/jasny-bootstrap/4.')) return '4.0.0';
if (type.startsWith('/js-cookie/2.')) return '2.2.1';
if (type.startsWith('/js-cookie/3.')) return '3.0.1';
if (type.startsWith('/knockout/3.')) return '3.5.1';
if (type.startsWith('/js-cookie/3.')) return '3.0.5';
if (type.startsWith('/knockout/3.')) {
if (helpers.compareVersion('3.4.2', version)) return '3.4.2'; // <= v3.4.2
return '3.5.1';
}
if (type.startsWith('/knockout.mapping/2.')) return '2.4.1';
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.')) {
if (helpers.compareVersion('1.7.1', version)) return '1.7.1'; // <= v1.7.1
return '1.9.3';
return '1.9.4';
}
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.14';
if (type.startsWith('/libphonenumber-js/1.')) return '1.11.2';
if (type.startsWith('/libsodium-wrappers/0.')) return '0.5.4';
if (type.startsWith('/lightbox2/2.')) return '2.11.3';
if (type.startsWith('/lightbox2/2.')) return '2.11.4';
if (type.startsWith('/lightcase/2.')) return '2.5.0';
if (type.startsWith('/lightgallery/1.')) return '1.10.0';
if (type.startsWith('/lightgallery/2.')) return '2.7.0';
if (type.startsWith('/lightgallery/2.')) return '2.7.2';
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('/markdown-it/')) return '13.0.2';
if (type.startsWith('/mdbootstrap/4.')) return '4.20.0';
if (type.startsWith('/material-design-icons/2.')) return '2.8.94';
if (type.startsWith('/material-design-icons/3.')) return '3.9.97';
@ -341,24 +336,28 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/mdb-ui-kit/3.')) return '3.11.0';
if (type.startsWith('/mdb-ui-kit/4.')) return '4.4.0';
if (type.startsWith('/mdb-ui-kit/5.')) return '5.0.0';
if (type.startsWith('/mdb-ui-kit/6.')) return '6.0.0';
if (type.startsWith('/mdb-ui-kit/6.')) return '6.4.2';
if (type.startsWith('/mdb-ui-kit/7.')) return '7.3.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';
if (type.startsWith('/moment.js/2.')) {
if (helpers.compareVersion('2.5.1', version)) return '2.5.1'; // <= v2.5.1
return '2.29.4';
return '2.30.1';
}
if (type.startsWith('/mootools/1.')) {
if (helpers.compareVersion('1.4.5', version)) return '1.4.5'; // <= v1.4.5
return '1.6.0';
}
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('/ngx-bootstrap/')) {
// The only resource used from ngx-bootstrap is the CSS file for the datepicker.
// This CSS is unchanged since version 7. So it's not necessary to host it more than once.
if (helpers.compareVersion('6.2.0', version)) return '6.2.0'; // <= v6.2.0
return '12.0.0';
}
if (type.startsWith('/noUiSlider/14.')) return '14.7.0';
if (type.startsWith('/noUiSlider/15.')) return '15.6.1';
if (type.startsWith('/noUiSlider/15.')) return '15.7.2';
if (type.startsWith('/nprogress/0.')) return '0.2.0';
if (type.startsWith('/nvd3/1.')) return '1.8.6';
if (type.startsWith('/object-assign@4.')) return '4.1.1';
if (type.startsWith('/oclazyload/1.')) return '1.1.0';
@ -367,12 +366,12 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/owl-carousel/2.')) return '2.3.4';
if (type.startsWith('/p2p-media-loader-core') || type.startsWith('/p2p-media-loader-hlsjs')) return '0.6.2';
if (type.startsWith('/p5.js/0.')) return '0.10.2';
if (type.startsWith('/p5.js/1.')) return '1.5.0';
if (type.startsWith('/p5.js/1.')) return '1.9.4';
if (type.startsWith('/page.js/1.')) return '1.11.6';
if (type.startsWith('/paginationjs/2.')) return '2.1.5';
if (type.startsWith('/plyr/3.')) return '3.7.3';
if (type.startsWith('/paginationjs/2.')) return '2.6.0';
if (type.startsWith('/plyr/3.')) return '3.7.8';
if (type.startsWith('/popper.js/1.')) return '1.16.1';
if (type.startsWith('/popper.js/2.')) return '2.11.6';
if (type.startsWith('/popper.js/2.')) return '2.11.8';
if (type.startsWith('/prop-types/15.')) return '15.8.1';
if (type.startsWith('/protonet-jquery.inview/1.')) return '1.1.2';
if (type.startsWith('/prototype/1.')) return '1.7.3';
@ -384,44 +383,47 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/raven.js/3.')) return '3.27.2';
if (type.startsWith('/react/16.')) return '16.14.0';
if (type.startsWith('/react/17.')) return '17.0.2';
if (type.startsWith('/react/18.')) return '18.2.0';
if (type.startsWith('/react/18.')) return '18.3.1';
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-dom/18.')) return '18.3.1';
if (type.startsWith('/react-intl/')) {
// NOTE: Parameters swapped. (= anything greater than v5.0.0)
if (helpers.compareVersion(version, '5.0.0')) return '6.2.1'; // >= v5.0.0
if (helpers.compareVersion(version, '5.0.0')) return '6.6.8'; // >= v5.0.0
}
if (type.startsWith('/react-redux/7.')) return '7.2.8';
if (type.startsWith('/react-redux/8.')) return '8.0.5';
if (type.startsWith('/react-redux/8.')) return '8.1.3';
if (type.startsWith('/react-router/5.')) return '5.3.3';
if (type.startsWith('/react-router/6.')) return '6.3.0';
if (type.startsWith('/react-router/6.')) return '6.23.1';
if (type.startsWith('/react-side-effect/')) return '2.1.2';
if (type.startsWith('/react-lifecycles-compat/')) return '3.0.4';
if (type.startsWith('/redux/4.')) return '4.2.0';
if (type.startsWith('/redux/4.')) return '4.2.1';
if (type.startsWith('/redux/5.')) return '5.0.1';
if (type.startsWith('/rickshaw/1.')) return '1.7.1';
if (type.startsWith('/script.js/2.')) return '2.5.9';
if (type.startsWith('/scriptaculous/1.')) return '1.9.0';
if (type.startsWith('/search-insights/1.')) return '1.8.0';
if (type.startsWith('/search-insights/2.')) return '2.2.3';
if (type.startsWith('/ScrollMagic/2.')) return '2.0.8';
if (type.startsWith('/search-insights/1.')) return '1.10.0';
if (type.startsWith('/search-insights/2.')) return '2.14.0';
if (type.startsWith('/select2/3.')) return '3.5.4';
if (type.startsWith('/select2/4.')) return '4.0.13';
if (type.startsWith('/semantic-ui/2.')) return '2.5.0';
if (type.startsWith('/showdown/0.')) return '0.5.1';
if (type.startsWith('/showdown/1.')) return '1.9.1';
if (type.startsWith('/showdown/2.')) return '2.1.0';
if (type.startsWith('/simplebar/')) return '5.3.9';
if (type.startsWith('/simplebar/5.')) return '5.3.9';
if (type.startsWith('/simplebar/6.')) return '6.2.6';
if (type.startsWith('/simplemde/')) return '1.11.2';
if (type.startsWith('/slick-carousel/1.')) {
if (helpers.compareVersion('1.8.1', version)) return '1.8.1'; // <= v1.8.1
return '1.9.0';
}
if (type.startsWith('/slick-lightbox/0.')) return '0.2.12';
if (type.startsWith('/slider-pro/1.')) return '1.6.0';
if (type.startsWith('/slider-pro/1.')) return '1.6.2';
if (type.startsWith('/snowplow/2.')) return '2.18.2';
if (type.startsWith('/socket.io/2.')) return '2.4.0';
if (type.startsWith('/socket.io/3.')) return '3.1.3';
if (type.startsWith('/socket.io/4.')) return '4.5.3';
if (type.startsWith('/socket.io/4.')) return '4.7.5';
if (type.startsWith('/spin.js/2.')) return '2.3.2';
if (type.startsWith('/spin.js/3.')) return '3.1.0';
if (type.startsWith('/spin.js/4.')) return '4.1.1';
@ -429,16 +431,25 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/stickyfill/2.')) return '2.1.0';
if (type.startsWith('/sticky-js/')) return '1.3.0';
if (type.startsWith('/store.js/2.')) return '2.0.12';
if (type.startsWith('/swfobject/2.')) return '2.2';
if (type.startsWith('/supabase-js/2.')) return '2.39.3';
if (type.startsWith('/swagger-ui/4.')) return '4.18.3';
if (type.startsWith('/swagger-ui/5.')) return '5.17.14';
if (type.startsWith('/Swiper/3.')) return '3.4.2';
if (type.startsWith('/Swiper/4.')) return '4.5.1';
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.4.4';
if (type.startsWith('/Swiper/8.')) return '8.4.7';
if (type.startsWith('/Swiper/9.')) return '9.4.1';
if (type.startsWith('/Swiper/10.') || type.startsWith('/Swiper/11.') || type.startsWith('/Swiper/')) return '11.0.5';
if (type.startsWith('/tensorflow/')) {
// NOTE: Parameters swapped. (= anything greater than v2.0.0)
if (helpers.compareVersion(version, '2.0.0')) return '4.19.0'; // >= v2.0.0
}
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.2.0';
if (type.startsWith('/tinymce/6.')) return '7.0.1';
if (type.startsWith('/tinymce/7.')) return '7.1.1';
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';
@ -448,38 +459,51 @@ targets.setLastVersion = function (type, version) {
if (helpers.compareVersion('3.3.7', version)) return '3.3.7'; // <= 3.3.7
return '3.4.1';
}
if (type.startsWith('/twitter-bootstrap/4.')) return '4.6.1';
if (type.startsWith('/twitter-bootstrap/5.')) return '5.2.2';
if (type.startsWith('/twitter-bootstrap/4.')) {
if (helpers.compareVersion('4.1.1', version)) return '4.1.1'; // <= 4.1.1
if (helpers.compareVersion('4.4.1', version)) return '4.4.1'; // <= 4.4.1
return '4.6.1';
}
if (type.startsWith('/twitter-bootstrap/5.')) {
if (helpers.compareVersion('5.1.3', version)) return '5.1.3'; // <= 5.1.3
return '5.3.3';
}
if (type.startsWith('/twix.js/0.')) return '0.3.0';
if (type.startsWith('/twix.js/1.')) return '1.3.0';
if (type.startsWith('/underscore.js/1.')) return '1.13.6';
if (type.startsWith('/URI.js/1.')) return '1.19.11';
if (type.startsWith('/urlive/1.')) return '1.1.1';
if (type.startsWith('/vanilla-lazyload')) return '17.8.3';
if (type.startsWith('/vanilla-lazyload')) return '19.1.3';
if (type.startsWith('/vex-js/3.')) return '3.1.1';
if (type.startsWith('/vex-js/4.')) return '4.1.0';
if (type.startsWith('/videojs-seek-buttons/1.')) return '1.6.0';
if (type.startsWith('/videojs-seek-buttons/2.')) return '2.2.1';
if (type.startsWith('/videojs-seek-buttons/3.')) return '3.0.1';
if (type.startsWith('/videojs-seek-buttons/4.')) return '4.0.3';
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.21.0';
if (helpers.compareVersion('7.21.1', version)) return '7.21.1'; // > 6.13.0 to <= 7.21.1
return '8.14.0';
}
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.45';
if (type.startsWith('/vue/3.')) return '3.4.27';
if (type.startsWith('/vue-i18n/8.')) return '8.27.2';
if (type.startsWith('/vue-i18n/9.')) return '9.2.2';
if (type.startsWith('/vue-i18n/9.')) return '9.13.1';
if (type.startsWith('/vue-match-media/1.')) return '1.0.3';
if (type.startsWith('/vue-resource/1.')) return '1.5.3';
if (type.startsWith('/vue-router/3.')) return '3.6.5';
if (type.startsWith('/vue-router/4.')) return '4.3.2';
if (type.startsWith('/vuex/3.')) return '3.6.2';
if (type.startsWith('/vuex/4.')) return '4.1.0';
if (type.startsWith('/waypoints/4.')) return '4.0.1';
if (type.startsWith('/webcomponentsjs/')) return '2.7.0';
if (type.startsWith('/webcomponentsjs/')) return '2.8.0';
if (type.startsWith('/webfont')) return '1.6.28';
if (type.startsWith('/webrtc-adapter/6.')) return '6.4.8';
if (type.startsWith('/webrtc-adapter/7.')) return '7.7.1';
if (type.startsWith('/webrtc-adapter/8.')) return '8.2.0';
if (type.startsWith('/webrtc-adapter/8.')) return '9.0.1';
if (type.startsWith('/webrtc-adapter/9.')) return '9.0.1';
if (type.startsWith('/wow/1.')) return '1.1.2';
if (version === null) return 'latest';
return '';
@ -491,6 +515,16 @@ targets.determineResourceName = function (filename) {
};
const ListOfFiles = {
'supabase.min.jsm': 'supabase-js',
'handlebars.min.jsm': 'handlebars.js',
'URI.min.jsm': 'URI.js',
'vue-router.global.min.jsm': 'vue-router',
'tf.min.jsm': 'tensorflow',
'nprogress.min.jsm': 'nprogress (JS)',
'nprogress.min.css': 'nprogress (CSS)',
'swagger-ui-bundle.min.jsm': 'Swagger-UI (JS)',
'swagger-ui.min.css': 'Swagger-UI (CSS)',
'knockout.mapping.min.jsm': 'knockout.mapping',
'jquery.colorbox-min.jsm': 'Colorbox',
'rangeslider.min.css': 'rangeslider.js (CSS)',
'rangeslider.min.jsm': 'rangeslider.js (JS)',
@ -574,6 +608,7 @@ const ListOfFiles = {
'dayjs.min.jsm': 'Day.js',
'jquery.validate.unobtrusive.min.jsm': 'jQuery Validate Unobtrusive',
'jquery.sliderPro.min.jsm': 'Slider Pro (JS)',
'knockout-min.jsm': 'Knockout',
'knockout-latest.min.jsm': 'Knockout',
'bootstrap-multiselect.min.jsm': 'Bootstrap Multiselect',
'ajax-bootstrap-select.min.jsm': 'Ajax Bootstrap Select',
@ -678,6 +713,8 @@ const ListOfFiles = {
'slick.min.css': 'slick (CSS)',
'slick-theme.min.css': 'slick (Theme)',
'google-material-design-icons.css': 'Google Material Icons',
'Chart.bundle.min.jsm': 'Chart.js (JS)', // for statistics page
'Chart.bundle.min.css': 'Chart.js (CSS)', // for statistics page
'chart.min.jsm': 'Chart.js (JS)',
'Chart.min.css': 'Chart.js (CSS)',
'bootbox.min.jsm': 'BootboxJS',

View File

@ -22,7 +22,7 @@
* Wrappers
*/
var wrappers = {};
let wrappers = {};
/**

View File

@ -11,18 +11,18 @@
<link rel="stylesheet" type="text/css" href="donate.css">
</head>
<body>
<img src="../images/logo.svg" alt="LocalCDN" class="logo"/>
<img src="../images/logo.svg" alt="" class="logo">
<div class="container">
<h1>Donation Methods</h1>
<div class="notice">
<div class="subtle-hint">
<p>LocalCDN is free and open-source. If you like LocalCDN you can support continued development by making a donation. Any help would be greatly appreciated!</p>
<p><strong>Question:</strong> <em>Why are the donation options only displayed here and no longer on the website?</em><br/><strong>Answer:</strong> I think it is better if your public IP address is rarely listed in any server log files.</p>
<p><strong>Question:</strong> <em>Why are the donation options only displayed here and no longer on the website?</em><br><strong>Answer:</strong> I think it is better if your public IP address is rarely listed in any server log files.</p>
</div>
<div class="subtle-hint div-donations">
<h3>SEPA Bank Transfer</h3>
<p class="mono-block">
<span>IBAN:&nbsp;DE22&nbsp;5003&nbsp;1000&nbsp;1069&nbsp;4660&nbsp;16</span><br/>
<span>IBAN:&nbsp;DE22&nbsp;5003&nbsp;1000&nbsp;1069&nbsp;4660&nbsp;16</span><br>
<span>BIC:&nbsp;&nbsp;TRODDEF1XXX</span>
</p>
</div>
@ -37,8 +37,8 @@
<div class="subtle-hint div-donations">
<h3>Monero</h3>
<p class="mono-block">46j26ggSZNT9rN7VeFYXp2PsKEMyJSSYneBVKXY4xeemdfZfCpNg6tQEXQZpWiTTuGX3SbnDPwuh3167cCoYSrqN72H9jPk</p>
<img src="../images/monero.png" alt="Monero QR code"/>
<br/>
<img src="../images/monero.png" alt="">
<br>
<a href="monero:46j26ggSZNT9rN7VeFYXp2PsKEMyJSSYneBVKXY4xeemdfZfCpNg6tQEXQZpWiTTuGX3SbnDPwuh3167cCoYSrqN72H9jPk?tx_description=LocalCDN">Open in Wallet</a>
</div>
<div class="subtle-hint div-donations">
@ -48,7 +48,7 @@
<a href="https://www.buymeacoffee.com/LocalCDN" target="_blank" rel="nofollow noopener noreferrer">www.buymeacoffee.com/LocalCDN</a>
</p>
<a href="https://www.buymeacoffee.com/LocalCDN" class="no-icon" target="_blank" rel="nofollow noopener noreferrer">
<img src="../images/buymeacoffee.png" alt="Buy Me A Coffee">
<img src="../images/buymeacoffee.png" alt="">
</a>
</div>
<div class="subtle-hint div-donations">
@ -57,17 +57,17 @@
<a href="https://opencollective.com/LocalCDN" target="_blank" rel="nofollow noopener noreferrer">www.opencollective.com/LocalCDN</a>
</p>
<a href="https://www.buymeacoffee.com/LocalCDN" class="no-icon" target="_blank" rel="nofollow noopener noreferrer">
<img src="../images/opencollective.png" alt="Open Collective">
<img src="../images/opencollective.png" alt="">
</a>
</div>
<p>
<div>
<ul>
<li><strong>Why no PayPal?</strong> I hope this question is not serious. 🙂 If it does: PayPal shares the data collected from customers with over 600 other companies.</li>
<li><strong>Why no Patreon?</strong> Have you ever analyzed the website with Webbkoll? The trackers/cookies from Facebook, Twitter and Google integrated there do not harmonise with LocalCDN.</li>
<li><strong>Why no Liberapay?</strong> Liberapay only offers Stripe and PayPal as a payout method. I don't have a PayPal account (and don't want one). The website of Stripe is also full of third party providers.</li>
<li><strong>You know of a donation option that is privacy friendly?</strong> Then send me an e-mail please.</li>
</ul>
</p>
</div>
</div>
</div>
</body>

View File

@ -13,11 +13,11 @@
<script src="help.js"></script>
</head>
<body>
<img src="../images/logo.svg" alt="LocalCDN" class="logo"/>
<img src="../images/logo.svg" alt="" class="logo">
<h1 data-i18n-content="titleHelp">Help</h1>
<section class="notice notice-default hidden" id="notice-locale">
<div class="notice notice-default hidden" id="notice-locale">
<p>Your preferred language is not yet fully supported. Please help out by translating this add-on on <a class="button button-notice button-warning" href="https://hosted.weblate.org/projects/localcdn/localcdn/" target="_blank" rel="noopener noreferrer">Weblate</a>.</p>
</section>
</div>
<div class="notice">
<div class="index">
<ul>
@ -35,18 +35,18 @@
<div id="introduction" class="notice">
<h2 data-i18n-content="helpIntroductionTitle">Introduction</h2>
<p data-i18n-content="helpIntroductionDescription">LocalCDN is a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported frameworks/libraries locally, and injects them into the website. Feel free to use the following testing utility to find out if you are properly protected. For more information read the tutorial or our Wiki pages.</p>
<a href="https://www.localcdn.org/test" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkTestUtility">Testing utility</a><br/>
<a href="https://www.localcdn.org/tutorial" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkTutorial">Tutorial</a><br/>
<a href="https://www.localcdn.org/test" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkTestUtility">Testing utility</a><br>
<a href="https://www.localcdn.org/tutorial" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkTutorial">Tutorial</a><br>
<a href="https://codeberg.org/nobody/LocalCDN/wiki" target="_blank" rel="nofollow noopener noreferrer" data-i18n-content="helpLinkWikiPages">Wiki pages</a>
</div>
<div id="html-filter" class="notice">
<h2 data-i18n-content="helpHtmlFilterTitle">What is "HTML filter"? (Firefox only)</h2>
<p data-i18n-content="helpHtmlFilterDescription">In most cases LocalCDN can easily replace embedded frameworks and improves privacy. In some cases the website may try to prevent this by setting certain options in the HTML source code. LocalCDN reads the HTML source code before it is displayed in the browser and removes these part (red).</p>
<p>
<span data-i18n-content="helpHtmlFilterBefore">The HTML filter removes the red characters from this example:</span><br/>
<code><span class="code-blue">&lt;script&nbsp;src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"</span>&nbsp;<span class="code-red">integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ=="&nbsp;crossorigin="anonymous"</span><span class="code-blue">>&lt;/script></span></code><br/><br/>
<span data-i18n-content="helpHtmlFilterAfter">The result then looks like this:</span><br/>
<code><span class="code-blue">&lt;script&nbsp;src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js">&lt;/script></span></code><br/><br/><br/>
<span data-i18n-content="helpHtmlFilterBefore">The HTML filter removes the red characters from this example:</span><br>
<code><span class="code-blue">&lt;script&nbsp;src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"</span>&nbsp;<span class="code-red">integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ=="&nbsp;crossorigin="anonymous"</span><span class="code-blue">>&lt;/script></span></code><br><br>
<span data-i18n-content="helpHtmlFilterAfter">The result then looks like this:</span><br>
<code><span class="code-blue">&lt;script&nbsp;src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js">&lt;/script></span></code><br><br><br>
</p>
<p><em><span data-i18n-content="helpHtmlFilterWhyTitle">Why is it necessary to remove crossorigin and integrity attributes?</span></em></p>
<p data-i18n-content="helpHtmlFilterCrossorigin">The crossorigin attribute prevents the replacement because the destination does not match the requested one.</p>
@ -71,19 +71,19 @@
</thead>
<tbody>
<tr>
<td><img src="ublock-easy.png" alt="Default"></a></td>
<td><img src="ublock-easy.png" alt=""></td>
<td data-i18n-content="helpRuleGeneratorUblockTableDefaultEasy">Default/Easy</td>
<td data-i18n-content="helpNo">No</td>
<td><a href="https://github.com/gorhill/uBlock/wiki/Blocking-mode#very-easy-mode-details-" rel="nofollow">Link (github.com)</a></td>
</tr>
<tr>
<td><img src="ublock-medium.png" alt="Medium"></a></td>
<td><img src="ublock-medium.png" alt=""></td>
<td data-i18n-content="helpRuleGeneratorUblockTableMedium">Medium</td>
<td data-i18n-content="helpYes">Yes</td>
<td><a href="https://github.com/gorhill/uBlock/wiki/Blocking-mode:-medium-mode" rel="nofollow">Link (github.com)</a></td>
</tr>
<tr>
<td><img src="ublock-hard.png" alt="Hard"></a></td>
<td><img src="ublock-hard.png" alt=""></td>
<td data-i18n-content="helpRuleGeneratorUblockTableHard">Hard</td>
<td data-i18n-content="helpYes">Yes</td>
<td><a href="https://github.com/gorhill/uBlock/wiki/Blocking-mode:-hard-mode" rel="nofollow">Link (github.com)</a></td>
@ -103,19 +103,19 @@
<h2 data-i18n-content="helpStatisticsTitle">What about the statistics? Is anything transferred to any servers?</h2>
<p data-i18n-content="helpStatisticsDescription">Don't panic, nothing will be transmitted. It would be against all my principles. The statistics (JSON format) contains the following information: Date, CDN+counter and framework+counter. That's all. I've an example here:</p>
<div class="statistic-demo">
<code>"2020-08-10": {</code><br/>
<code> "frameworks": {</code><br/>
<code> "resources/jquery/1.12.4/jquery.min.jsm": 5</code><br/>
<code> },</code><br/>
<code> "cdns": {</code><br/>
<code> "ajax.googleapis.com": 5</code><br/>
<code> }</code><br/>
<code>}</code><br/>
<code>"2020-08-10": {</code><br>
<code> "frameworks": {</code><br>
<code> "resources/jquery/1.12.4/jquery.min.jsm": 5</code><br>
<code> },</code><br>
<code> "cdns": {</code><br>
<code> "ajax.googleapis.com": 5</code><br>
<code> }</code><br>
<code>}</code><br>
</div>
<p data-i18n-content="helpStatisticsContent">The statistics contain no information about the browser, operating system, requesting website, IP addresses or any other information. Just date, CDN+counter and framework+counter. It shows you which frameworks are replaced by LocalCDNs how often and which CDNs were requested.</p>
<h3 span data-i18n-content="helpStatisticsTruthTitle">How do I know that's true?</h3>
<h3 data-i18n-content="helpStatisticsTruthTitle">How do I know that's true?</h3>
<p>
<span data-i18n-content="helpStatisticsTruthDescription">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.</span><br/>
<span data-i18n-content="helpStatisticsTruthDescription">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.</span><br>
<a href="https://www.localcdn.org/view-extension-storage.mp4">https://www.localcdn.org/view-extension-storage.mp4</a>
</p>
</div>

View File

@ -19,7 +19,7 @@
* Help
*/
var help = {};
let help = {};
/**

View File

@ -24,6 +24,7 @@ table td:first-child {
td {
padding: 2px 15px;
white-space: pre;
}
textarea {

View File

@ -38,6 +38,12 @@
<tbody>
</tbody>
</table>
<br>
<p>
Legend
<br>
<span>(i) = A website includes this iframe. It's possible that the request is from there.</span>
</p>
</div>
</body>
</html>

View File

@ -19,7 +19,7 @@
* Logging Page
*/
var logging = {};
let logging = {};
logging._onDocumentLoaded = function () {
logging._getLoggingData()
@ -40,7 +40,7 @@ logging._generateTable = function () {
}
for (let i = data.length - 1; i >= 0; i--) {
let tbody, row, cell, content, redirect;
let tbody, row, cell, content, redirect, initiator;
tbody = document.getElementById('logging-content').getElementsByTagName('tbody')[0];
row = tbody.insertRow();
@ -53,8 +53,14 @@ logging._generateTable = function () {
content = document.createTextNode(i + 1);
cell.appendChild(content);
if (Object.values(data[i])[4] === '') {
initiator = Object.values(data[i])[0];
} else {
initiator = `${Object.values(data[i])[0]}\n(i) ${Object.values(data[i])[4]}`;
}
cell = row.insertCell();
content = document.createTextNode(Object.values(data[i])[0]);
content = document.createTextNode(initiator);
cell.appendChild(content);
cell = row.insertCell();

View File

@ -19,7 +19,7 @@
* Options (Advanced)
*/
var optionsAdvanced = {};
let optionsAdvanced = {};
/**
@ -88,6 +88,10 @@ optionsAdvanced.init = function (opt) {
negateHtmlFilterList = options.getOptionElement(Setting.NEGATE_HTML_FILTER_LIST);
negateHtmlFilterList.addEventListener('change', options.onOptionChanged);
negateHtmlFilterList.checked = opt[Setting.NEGATE_HTML_FILTER_LIST];
if (opt[Setting.NEGATE_HTML_FILTER_LIST] === false) {
document.getElementById('html-filter-domains-title-include').style.display = 'block';
document.getElementById('html-filter-domains-title-exclude').style.display = 'none';
}
changeBadgeColorMissingResources = options.getOptionElement(Setting.CHANGE_BADGE_COLOR_MISSING_RESOURCES);
changeBadgeColorMissingResources.addEventListener('change', options.onOptionChanged);

View File

@ -19,7 +19,7 @@
* Options (Basic)
*/
var optionsBasic = {};
let optionsBasic = {};
/**

View File

@ -19,7 +19,7 @@
* Options (Info)
*/
var optionsInfo = {};
let optionsInfo = {};
/**

View File

@ -19,7 +19,7 @@
* Options (Other)
*/
var optionsOther = {};
let optionsOther = {};
/**
@ -34,7 +34,11 @@ optionsOther._renderIconSection = function (opt) {
return;
}
selectedIcon = opt.selectedIcon;
if (opt.selectedIcon === null || opt.selectedIcon === undefined) {
selectedIcon = 'Default';
} else {
selectedIcon = opt.selectedIcon;
}
if (selectedIcon === 'Default') {
document.getElementById('icon-default').checked = true;
@ -111,6 +115,14 @@ optionsOther._onStorageOptionChanged = function ({target}) {
});
if (target.value === 'local') {
storageManager.migrateData('local');
} else {
optionsOther._fetchSyncData();
}
};
optionsOther._fetchSyncData = function () {
if (confirm('Fetch remote data now?')) {
storageManager.migrateData('sync-fetch');
} else {
storageManager.migrateData('sync');
}

View File

@ -177,7 +177,7 @@ body {
padding: 5px 9px;
}
#html-filter-domains-title-exclude {
#html-filter-domains-title-include {
display: none;
}

View File

@ -3,7 +3,7 @@
<head>
<title>Options | LocalCDN</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta charset="utf-8">
<link rel="shortcut icon" href="../images/favicon.ico" type="image/x-icon">
<link rel="icon" href="../images/favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="../../modules/internal/color-picker/color-picker.css">
@ -29,27 +29,27 @@
<script src="options.js"></script>
<div class="btn-group">
<input type="button" id="btn-general-tab" class="option-buttons option-buttons-active" data-option-tab="general-tab" data-i18n-content="btnGeneral" value="General"/>
<input type="button" id="btn-advanced-tab" class="option-buttons" data-option-tab="advanced-tab" data-i18n-content="btnAdvanced" value="Advanced"/>
<input type="button" id="btn-export-import-tab" class="option-buttons" data-option-tab="export-import-tab" data-i18n-content="btnOther" value="Other"/>
<input type="button" id="btn-info-tab" class="option-buttons" data-option-tab="info-tab" data-i18n-content="btnInfo" value="Info"/>
<input type="button" id="btn-general-tab" class="option-buttons option-buttons-active" data-option-tab="general-tab" data-i18n-content="btnGeneral" value="General">
<input type="button" id="btn-advanced-tab" class="option-buttons" data-option-tab="advanced-tab" data-i18n-content="btnAdvanced" value="Advanced">
<input type="button" id="btn-export-import-tab" class="option-buttons" data-option-tab="export-import-tab" data-i18n-content="btnOther" value="Other">
<input type="button" id="btn-info-tab" class="option-buttons" data-option-tab="info-tab" data-i18n-content="btnInfo" value="Info">
</div>
<div id="chromium-banner" class="chromium-banner">Non-Firefox browsers do not support all features of LocalCDN. <a class="no-icon" href="../help/help.html#browser-compatibility">Read more</a></div>
<div id="general-tab" class="tab-content">
<div class="option-group">
<section class="option">
<div class="option">
<div class="title-option">
<label class="b-contain">
<input data-option="showIconBadge" type="checkbox">
<span data-i18n-content="showIconBadgeTitle">Display injection counts on icon</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
</div>
<div class="description-option" data-i18n-content="showIconBadgeDescription">Show the number of injected resources on the extension icon.</div>
</section>
<section class="option">
</div>
<div class="option">
<div class="title-option b-contain">
<span data-i18n-content="updateNotificationTitle">Notification after an update</span>
</div>
@ -60,68 +60,69 @@
<option value="2" data-i18n-content="updateNotificationAlways">Always</option>
</select>
</div>
</section>
<section class="option">
</div>
<div class="option">
<div class="title-option">
<label class="b-contain">
<input data-option="disablePrefetch" type="checkbox">
<span data-i18n-content="disablePrefetchTitle">Disable link prefetching</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
</div>
<div class="description-option" data-i18n-content="disablePrefetchDescription">Prevent disallowed requests from leaking out to delivery networks.</div>
</section>
<section class="option">
</div>
<div class="option">
<div class="title-option">
<label class="b-contain">
<input data-option="stripMetadata" type="checkbox">
<span data-i18n-content="stripMetadataTitle">Strip metadata from allowed requests</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
</div>
<div class="description-option" data-i18n-content="stripMetadataDescription">Erase sensitive data from allowed CDN requests for improved privacy.</div>
</section>
<section class="option">
</div>
<div class="option">
<div class="title-option">
<label class="b-contain">
<input data-option="internalStatistics" type="checkbox">
<span data-i18n-content="internalStatisticsTitle">Internal statistics</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
</div>
<div class="description-option" data-i18n-content="internalStatisticsDescription">No data transmission. It's all local on your device.</div>
</section>
<section class="option">
</div>
<div class="option">
<div class="title-option">
<label class="b-contain">
<input data-option="hideDonationButton" type="checkbox">
<span data-i18n-content="hideDonationButton">Hide donation button</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
</div>
</section>
</div>
</div>
<div class="option-group">
<section class="option">
<div class="option">
<div class="title-option without-checkbox" data-i18n-content="allowlistedDomainsTitle">Deactivate LocalCDN for these domains:</div>
<textarea rows="7" id="allowlistedDomains" class="input-text without-checkbox" data-option="allowlistedDomains" type="text"></textarea>
<textarea rows="7" id="allowlistedDomains" class="input-text without-checkbox" data-option="allowlistedDomains"></textarea>
<div class="description-option without-checkbox">
<span data-i18n-content="allowlistedDomainsDescription">Enter domains to disable LocalCDN there. One domain per line.</span><br><br>
<span class="monoblock">
<img class="checked-unchecked" src="../../icons/checked.svg"/> example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg"/> sub.example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg"/> *.example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://*.example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com/page/example.html
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> sub.example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://*.example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com/page/example.html
</span>
</div>
</section>
</div>
</div>
</div>
<div id="advanced-tab" class="tab-content">
<section class="notice notice-warning hidden" id="notice-block-missing">
<div class="notice notice-warning hidden" id="notice-block-missing">
<div class="notice-head">
<span data-i18n-content="blockMissingTitle">Block requests for missing resources</span>
</div>
@ -133,97 +134,98 @@
Disable
</div>
</div>
</section>
</div>
<div class="option-group">
<section class="option">
<div class="option">
<div class="title-option">
<label class="b-contain">
<input id="blockMissing" data-option="blockMissing" type="checkbox">
<span data-i18n-content="blockMissingTitle">Block requests for missing resources</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
<span class="badge badge-warning" data-i18n-content="advancedLabel">Advanced</span>
</div>
<div class="description-option" data-i18n-content="blockMissingDescription">Cancel intercepted request if the required resource is not locally available.</div>
</section>
<section id="block-google-fonts" class="option">
</div>
<div id="block-google-fonts" class="option">
<div class="title-option">
<label class="b-contain">
<input id="blockGoogleFonts" data-option="blockGoogleFonts" type="checkbox">
<span data-i18n-content="blockGoogleFontsTitle">Block Google Fonts</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
</div>
<div class="description-option" data-i18n-content="blockGoogleFontsDescription">If you use the rules of the rule generator, requests to "fonts.googleapis.com" are allowed to substitute "Google Material Icons" automatically. If you want to block the other requests, enable this option.</div>
<div id="div-domains-allowlist-google-fonts">
<div class="description-option"><textarea rows="7" id="allowedDomainsGoogleFonts" class="input-text without-checkbox" data-option="allowedDomainsGoogleFonts" type="text"></textarea></div>
<div class="description-option"><textarea rows="7" id="allowedDomainsGoogleFonts" class="input-text without-checkbox" data-option="allowedDomainsGoogleFonts"></textarea></div>
<div class="description-option">
<span data-i18n-content="labelDomainsAllowlistGoogleFonts">These domains are allowed to load Google Fonts. One domain per line.</span><br>
<span class="monoblock">
<img class="checked-unchecked" src="../../icons/checked.svg"/> example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg"/> sub.example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg"/> *.example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://*.example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com/page/example.html
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> sub.example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://*.example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com/page/example.html
</span>
</div>
</div>
</section>
<section class="option">
</div>
<div class="option">
<div class="title-option">
<label class="b-contain">
<input id="enableLogging" data-option="enableLogging" type="checkbox">
<span data-i18n-content="loggingTitle">Enable logging</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
</div>
<div class="description-option" data-i18n-content="loggingDescription">You can open the log with the icon in the menu. The log will be deleted when you close the browser or disable logging.</div>
</section>
<section class="option">
</div>
<div class="option">
<div class="title-option">
<label class="b-contain">
<input id="changeBadgeColorMissingResources" data-option="changeBadgeColorMissingResources" type="checkbox">
<span data-i18n-content="changeBadgeColorMissingResourcesTitle">Indicate missing resources on the icon</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
<span class="badge badge-warning" data-i18n-content="betaLabel">Beta</span>
</div>
<div class="description-option" data-i18n-content="changeBadgeColorMissingResourcesDescription">Change the badge color if resources are missing.</div>
</section>
</div>
</div>
<div id="html-filter-div" class="option-group">
<section class="option">
<div class="option">
<div id="html-filter-domains-title-exclude" class="title-option without-checkbox" data-i18n-content="htmlFilterDomainsTitleExclude">Do not apply HTML filter to these domains:</div>
<div id="html-filter-domains-title-include" class="title-option without-checkbox" data-i18n-content="htmlFilterDomainsTitleInclude">Apply HTML filter to these domains:</div>
<textarea rows="7" id="domainsManipulateDOM" class="input-text without-checkbox" data-option="domainsManipulateDOM" type="text"></textarea>
<textarea rows="7" id="domainsManipulateDOM" class="input-text without-checkbox" data-option="domainsManipulateDOM"></textarea>
<div class="description-option without-checkbox">
<span data-i18n-content="htmlFilterDomainsDescription">Enter the domains to be handled or ignored by the HTML filter. One domain per line.</span><br>
<span class="monoblock">
<img class="checked-unchecked" src="../../icons/checked.svg"/> example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg"/> sub.example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg"/> *.example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://*.example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg"/> https://example.com/page/example.html
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> sub.example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.example.com<br>
<img class="checked-unchecked" src="../../icons/checked.svg" alt=""> *.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://*.example.com<br>
<img class="checked-unchecked" src="../../icons/unchecked.svg" alt=""> https://example.com/page/example.html
</span>
</div>
</section>
<section class="option">
</div>
<div class="option">
<div class="title-option">
<label class="b-contain">
<input id="negateHtmlFilterList" data-option="negateHtmlFilterList" type="checkbox">
<span data-i18n-content="negateHtmlFilterListTitle">Invert HTML filter</span>
<div class="b-input"></div>
<span class="b-input"></span>
</label>
<span class="badge badge-warning" data-i18n-content="advancedLabel">Advanced</span>
</div>
<div class="description-option" data-i18n-content="negateHtmlFilterListDescription">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.</div>
</section>
</div>
<a id="negate-html-filter-list-warning" data-i18n-content="negateHtmlFilterListWarning">This function can break websites. Please note the information on the Wiki page.</a>
</div>
<div class="option-group">
<section class="option">
<div class="option">
<div class="title-option without-checkbox">
<a class="no-icon" href="../help/help.html#rule-generator">
<span data-i18n-content="generateRuleSetTitle">Generate rule set</span>
@ -238,75 +240,75 @@
</div>
<div class="ruleset-generator">
<label class="b-contain" for="generate-ublock-rules">uBlock
<input id="generate-ublock-rules" name="rule-sets" data-ruleset="uBlock" type="radio" value="uBlock" autocomplete="off">
<div class="b-input"></div>
<input id="generate-ublock-rules" name="rule-sets" data-ruleset="uBlock" type="radio" value="uBlock">
<span class="b-input"></span>
</label>
</div>
<div class="ruleset-generator">
<label class="b-contain" for="generate-umatrix-rules">uMatrix
<input id="generate-umatrix-rules" name="rule-sets" data-ruleset="uMatrix" type="radio" value="uMatrix" autocomplete="off">
<div class="b-input"></div>
<input id="generate-umatrix-rules" name="rule-sets" data-ruleset="uMatrix" type="radio" value="uMatrix">
<span class="b-input"></span>
</label>
</div>
<div class="ruleset-generator">
<label class="b-contain" for="generate-adguard-rules">AdGuard
<input id="generate-adguard-rules" name="rule-sets" data-ruleset="AdGuard" type="radio" value="AdGuard" autocomplete="off">
<div class="b-input"></div>
<input id="generate-adguard-rules" name="rule-sets" data-ruleset="AdGuard" type="radio" value="AdGuard">
<span class="b-input"></span>
</label>
</div>
<div class="ruleset-generator">
<label class="b-contain" for="generate-noscript-rules">NoScript
<input id="generate-noscript-rules" name="rule-sets" data-ruleset="NoScript" type="radio" value="NoScript" autocomplete="off">
<div class="b-input"></div>
<input id="generate-noscript-rules" name="rule-sets" data-ruleset="NoScript" type="radio" value="NoScript">
<span class="b-input"></span>
</label>
</div>
<textarea rows="12" id="generated-rules" readonly></textarea>
<button id="button-copy-rule-set" value="Copy" class="btns"><span data-i18n-content="copyRuleSet">Copy</span><span id="button-copy-rule-set-icon"></span></button>
</section>
</div>
</div>
</div>
<div id="export-import-tab" class="tab-content">
<div id="icon-style-div" class="option-group">
<section id="section-icon-style" class="option">
<div id="section-icon-style" class="option">
<div class="title-option without-checkbox" data-i18n-content="chooseIconStyle">Choose an icon for this extension</div>
<div class="div-icons-badge-colors">
<div class="div-selected-icon">
<label class="b-contain" for="icon-default">
<img src="../../icons/action/default/icon32-default.png" alt="Default" class="icons">
<img src="../../icons/action/default/icon32-disabled.png" alt="Default" class="icons">
<img src="../../icons/action/default/icon32-default.png" alt="" class="icons">
<img src="../../icons/action/default/icon32-disabled.png" alt="" class="icons">
<input id="icon-default" name="selected-icon" type="radio" data-option="selectedIcon" value="Default">
<div class="b-input"></div>
<span class="b-input"></span>
</label>
<label class="b-contain" for="icon-grey">
<img src="../../icons/action/grey/icon32-default.png" alt="Blue/Grey" class="icons">
<img src="../../icons/action/grey/icon32-disabled.png" alt="Blue/Grey" class="icons">
<img src="../../icons/action/grey/icon32-default.png" alt="" class="icons">
<img src="../../icons/action/grey/icon32-disabled.png" alt="" class="icons">
<input id="icon-grey" name="selected-icon" type="radio" data-option="selectedIcon" value="Grey">
<div class="b-input"></div>
<span class="b-input"></span>
</label>
<label class="b-contain" for="icon-light">
<img src="../../icons/action/light/icon32-default.png" alt="Light" class="icons">
<img src="../../icons/action/light/icon32-disabled.png" alt="Light" class="icons">
<img src="../../icons/action/light/icon32-default.png" alt="" class="icons">
<img src="../../icons/action/light/icon32-disabled.png" alt="" class="icons">
<input id="icon-light" name="selected-icon" type="radio" data-option="selectedIcon" value="Light">
<div class="b-input"></div>
<span class="b-input"></span>
</label>
</div>
<div class="div-badge">
<p class="title-option" data-i18n-content="titleBadgeDefault">Default badge</p>
<div id="badge-preview-top">
<div>
<img id="icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="Default" class="icons">
<img id="icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="" class="icons">
<div id="counter-preview-badge"><span>17</span></div>
</div>
</div>
<div id="badge-preview-bottom">
<div class="colorpicker">
<div id="pre-badged-background-color"></div>
<input id="badged-background-color" data-option="badgeDefaultBackgroundColor" class="input-text" maxlength="7"><img id="restore-background-color" class="img-restore-color" src="../../icons/restore.svg"><br>
<input id="badged-background-color" data-option="badgeDefaultBackgroundColor" class="input-text" maxlength="7"><img id="restore-background-color" class="img-restore-color" src="../../icons/restore.svg" alt=""><br>
</div>
<div id="div-badged-text-color" class="colorpicker">
<div id="pre-badged-text-color"></div>
<input id="badged-text-color" data-option="badgeDefaultTextColor" class="input-text" maxlength="7"><img id="restore-text-color" class="img-restore-color" src="../../icons/restore.svg">
<input id="badged-text-color" data-option="badgeDefaultTextColor" class="input-text" maxlength="7"><img id="restore-text-color" class="img-restore-color" src="../../icons/restore.svg" alt="">
</div>
</div>
</div>
@ -314,18 +316,18 @@
<p class="title-option" data-i18n-content="titleBadgeHTMLFilter">HTML filter badge</p>
<div id="html-badge-preview-top">
<div>
<img id="html-icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="Default" class="icons">
<img id="html-icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="" class="icons">
<div id="html-counter-preview-badge"><span>17</span></div>
</div>
</div>
<div id="html-badge-preview-bottom">
<div class="colorpicker">
<div id="html-pre-badged-background-color"></div>
<input id="html-badged-background-color" data-option="badgeHTMLFilterBackgroundColor" class="input-text" maxlength="7"><img id="html-restore-background-color" class="img-restore-color" src="../../icons/restore.svg"><br>
<input id="html-badged-background-color" data-option="badgeHTMLFilterBackgroundColor" class="input-text" maxlength="7"><img id="html-restore-background-color" class="img-restore-color" src="../../icons/restore.svg" alt=""><br>
</div>
<div id="html-div-badged-text-color" class="colorpicker">
<div id="html-pre-badged-text-color"></div>
<input id="html-badged-text-color" data-option="badgeHTMLfilterTextColor" class="input-text" maxlength="7"><img id="html-restore-text-color" class="img-restore-color" src="../../icons/restore.svg">
<input id="html-badged-text-color" data-option="badgeHTMLfilterTextColor" class="input-text" maxlength="7"><img id="html-restore-text-color" class="img-restore-color" src="../../icons/restore.svg" alt="">
</div>
</div>
</div>
@ -333,82 +335,85 @@
<p class="title-option" data-i18n-content="titleBadgeMissingResource">Missing resource badge</p>
<div id="missing-badge-preview-top">
<div>
<img id="missing-icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="Default" class="icons">
<img id="missing-icon-badge-preview" src="../../icons/action/default/icon38-default.png" alt="" class="icons">
<div id="missing-counter-preview-badge"><span>17</span></div>
</div>
</div>
<div id="missing-badge-preview-bottom">
<div class="colorpicker">
<div id="missing-pre-badged-background-color"></div>
<input id="missing-badged-background-color" data-option="badgeMissingResourceBackgroundColor" class="input-text" maxlength="7"><img id="missing-restore-background-color" class="img-restore-color" src="../../icons/restore.svg"><br>
<input id="missing-badged-background-color" data-option="badgeMissingResourceBackgroundColor" class="input-text" maxlength="7"><img id="missing-restore-background-color" class="img-restore-color" src="../../icons/restore.svg" alt=""><br>
</div>
<div id="missing-div-badged-text-color" class="colorpicker">
<div id="missing-pre-badged-text-color"></div>
<input id="missing-badged-text-color" data-option="badgeMissingResourceTextColor" class="input-text" maxlength="7"><img id="missing-restore-text-color" class="img-restore-color" src="../../icons/restore.svg">
<input id="missing-badged-text-color" data-option="badgeMissingResourceTextColor" class="input-text" maxlength="7"><img id="missing-restore-text-color" class="img-restore-color" src="../../icons/restore.svg" alt="">
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<div class="option-group">
<section class="option">
<div class="option">
<div class="title-option without-checkbox"><span data-i18n-content="headerStorageType">Storage type</span><span id="sync-help" class="options-help-icon"></span></div>
<label class="b-contain storage-type" for="storage-type-local"><span data-i18n-content="labelStorageTypeLocal">Local (recommended)</span>
<input id="storage-type-local" data-option="storageType" name="storage-type" type="radio" value="local">
<div class="b-input"></div>
<span class="b-input"></span>
</label>
<label class="b-contain storage-type" for="storage-type-sync"><span data-i18n-content="labelStorageTypeSync">Sync</span>
<input id="storage-type-sync" data-option="storageType" name="storage-type" type="radio" value="sync">
<div class="b-input"></div>
<span class="b-input"></span>
<span class="badge badge-warning" data-i18n-content="betaLabel">Beta</span>
</label>
</section>
<section class="option">
</div>
<div class="option">
<div class="title-option without-checkbox" data-i18n-content="headerImportExport">Import/Export</div>
<div class="import-export">
<input type="button" id="import-data" class="btns" value="Import Data" data-i18n-content="labelImportData"/>
<input type="button" id="export-data" class="btns" value="Export Data" data-i18n-content="labelExportData"/>
<input type="button" id="import-data" class="btns" value="Import Data" data-i18n-content="labelImportData">
<input type="button" id="export-data" class="btns" value="Export Data" data-i18n-content="labelExportData">
<div class="hidden">
<input id="import-file-picker" type="file" accept="text/plain">
</div>
</div>
</section>
</div>
</div>
</div>
<div id="info-tab" class="tab-content">
<div class="option-group">
<section class="option info">
<div class="option info">
<div>
<input type="button" id="cdn" class="btns"/>
<input type="button" id="framework" class="btns"/>
<input type="button" id="cdn" class="btns" value="cdn">
<input type="button" id="framework" class="btns" value="framework">
</div>
<ul id="unsupported-frameworks">
<li>Font Awesome are not supported by your browser</li>
<li>Google Material Icons are not supported by your browser</li>
</ul>
<textarea rows="12" cols="15" id="generated-list" readonly></textarea>
</section>
</div>
</div>
<div class="option-group">
<section class="option">
<div class="option">
<ul class="option-links">
<li><a id="link-welcome-page" href="../welcome/welcome.html" class="no-icon">Welcome page (In-App)</a></li>
<li><a id="link-changelog" href="../updates/updates.html" class="no-icon">Changelog (In-App)</a></li>
<li><a id="link-donate" href="../donate/donate.html" class="no-icon">Donate (In-App)</a></li>
<li><a id="link-faq" href="../help/help.html" class="no-icon">FAQ (In-App)</a></li>
<li><a id="link-statistic" href="../statistics/statistics.html" class="no-icon"><span data-i18n-content="internalStatisticsTitle">Statistics</span> <span>(In-App)</span></a></li>
<li><a id="link-logging" href="../logging/logging.html" class="no-icon">Logs (In-App)</span></a></li><br>
<li><a id="link-logging" href="../logging/logging.html" class="no-icon">Logs <span>(In-App)</span></a></li>
</ul>
<ul class="option-links">
<li><a id="link-codeberg" href="https://codeberg.org/nobody/LocalCDN" target="_blank" rel="nofollow noopener noreferrer">Source (www.codeberg.org)</a></li>
<li><a id="link-website" href="https://www.localcdn.org" target="_blank" rel="nofollow noopener noreferrer">Website (www.localcdn.org)</a></li>
<li><a id="link-website-test" href="https://www.localcdn.org/test" target="_blank" rel="nofollow noopener noreferrer">Testing Utility (www.localcdn.org/test)</a></li>
<li><a id="link-translate" href="https://hosted.weblate.org/projects/localcdn/localcdn/" target="_blank" rel="nofollow noopener noreferrer">Translate (www.weblate.org)</a></li>
<li><a id="link-translate" href="https://www.localcdn.org/thanks" target="_blank" rel="nofollow noopener noreferrer">Credits (www.localcdn.org)</a></li>
<li><a id="link-thanks" href="https://www.localcdn.org/thanks" target="_blank" rel="nofollow noopener noreferrer">Credits (www.localcdn.org)</a></li>
</ul>
</section>
</div>
</div>
</div>
<section class="notice notice-default hidden" id="notice-locale">
<div class="notice notice-default hidden" id="notice-locale">
<div class="notice-body" dir="ltr">
<div class="notice-message">
Your preferred language is not yet fully supported. Please help out by translating this add-on on Weblate.
@ -417,7 +422,7 @@
Translate
</a>
</div>
</section>
</div>
<p class="footer">LocalCDN v<span id="label-version"></span></p>
</body>
</html>

View File

@ -23,7 +23,7 @@
* Options
*/
var options = {};
let options = {};
/**
@ -36,7 +36,7 @@ options._renderContents = function () {
document.body.setAttribute('dir', options._scriptDirection);
translationComplete = helpers.insertI18nContentIntoDocument(document);
options._determineOptionValues().then(options._determineLocalOptionValues).then(options._renderOptionsPanel);
options._determineLocalOptionValues().then(options._determineOptionValues).then(options._renderOptionsPanel);
if (!translationComplete) {
options._renderLocaleNotice();
@ -152,13 +152,21 @@ options._determineOptionValues = function () {
for (let element of nodeList) {
optionList[element.getAttribute('data-option')] = true;
}
delete optionList.internalStatistics;
optionKeys = Object.keys(optionList);
storageManager.type.get(optionKeys, function (items) {
options._optionValues = items;
resolve();
});
if (options._storageType === 'sync') {
chrome.storage.sync.get(optionKeys, function (items) {
options._optionValues = items;
resolve();
});
} else {
chrome.storage.local.get(optionKeys, function (items) {
options._optionValues = items;
resolve();
});
}
});
};
@ -188,7 +196,7 @@ options._configureLinkPrefetching = function (value) {
};
options._serializeAllowlistedDomains = function (allowlistedDomains) {
if (allowlistedDomains === undefined) {
if (allowlistedDomains === undefined || allowlistedDomains === null) {
return '';
}
@ -278,9 +286,15 @@ options.onOptionChanged = function ({target}) {
break;
}
storageManager.type.set({
[optionKey]: optionValue,
});
if (options._storageType === 'sync' && optionKey !== 'internalStatistics') {
chrome.storage.sync.set({
[optionKey]: optionValue,
});
} else {
chrome.storage.local.set({
[optionKey]: optionValue,
});
}
};
options._onLinkClick = function (url) {

View File

@ -48,7 +48,7 @@ header {
.panel-overflow {
margin-left: 0;
max-height: 300px;
max-height: 285px;
overflow: auto;
padding-left: 0;
}
@ -284,9 +284,8 @@ footer {
}
.counter {
font-size: 36px;
font-size: 26px;
font-weight: 600;
margin-top: 4px;
text-align: center;
}
@ -334,6 +333,10 @@ footer {
width: 100%;
}
.counter-blocked-missing > table {
border-spacing: 0;
}
/**

View File

@ -3,7 +3,7 @@
<head>
<title>Popup | LocalCDN</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8" />
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="popup.css">
<link rel="stylesheet" type="text/css" href="toggle.css">
<link rel="stylesheet" type="text/css" href="../base.css">
@ -16,7 +16,7 @@
<script src="popup.js"></script>
<header>
<div class="heading">
<img class="icon-logo" src="../../icons/icon.svg" alt="Extension Icon">
<img class="icon-logo" src="../../icons/icon.svg" alt="">
<span id="name-label"></span> <sup id="version-label" class="label-version"></sup>
</div>
<div id="donate-button">
@ -24,19 +24,15 @@
<div id="donate-button-svg" class="button-svg" data-link="donate"></div>
</div>
</header>
<section class="content">
<div class="content">
<div id="website-context" class="panel hidden">
<div class="subpanel">
<div id="protection-toggle">
<label class='toggle' for='protection-toggle-switch'>
<input type='checkbox' name='protection-toggle-switch' id='protection-toggle-switch' class="toggle__input">
<span class="toggle__display" hidden>
<svg width='18' height='14' viewBox='0 0 18 14' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--checkmark">
<path d='M6.08471 10.6237L2.29164 6.83059L1 8.11313L6.08471 13.1978L17 2.28255L15.7175 1L6.08471 10.6237Z' fill='currentcolor' stroke='currentcolor' />
</svg>
<svg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--cross">
<path d='M11.167 0L6.5 4.667L1.833 0L0 1.833L4.667 6.5L0 11.167L1.833 13L6.5 8.333L11.167 13L13 11.167L8.333 6.5L13 1.833L11.167 0Z' fill='currentcolor' />
</svg>
<img class="toggle__img" src="../../icons/popup_check.svg" alt="">
<img class="toggle__img" src="../../icons/popup_uncheck.svg" alt="">
</span>
</label>
</div>
@ -49,12 +45,8 @@
<label class='toggle' for='manipulateDOM-toggle-switch'>
<input type='checkbox' name='manipulateDOM-toggle-switch' id='manipulateDOM-toggle-switch' class="toggle__input">
<span class="toggle__display" hidden>
<svg width='18' height='14' viewBox='0 0 18 14' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--checkmark">
<path d='M6.08471 10.6237L2.29164 6.83059L1 8.11313L6.08471 13.1978L17 2.28255L15.7175 1L6.08471 10.6237Z' fill='currentcolor' stroke='currentcolor' />
</svg>
<svg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--cross">
<path d='M11.167 0L6.5 4.667L1.833 0L0 1.833L4.667 6.5L0 11.167L1.833 13L6.5 8.333L11.167 13L13 11.167L8.333 6.5L13 1.833L11.167 0Z' fill='currentcolor' />
</svg>
<img class="toggle__img" src="../../icons/popup_check.svg" alt="">
<img class="toggle__img" src="../../icons/popup_uncheck.svg" alt="">
</span>
</label>
</div>
@ -67,12 +59,8 @@
<label class='toggle' for='google-fonts-toggle-switch'>
<input type='checkbox' name='google-fonts-toggle-switch' id='google-fonts-toggle-switch' class="toggle__input">
<span class="toggle__display" hidden>
<svg width='18' height='14' viewBox='0 0 18 14' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--checkmark">
<path d='M6.08471 10.6237L2.29164 6.83059L1 8.11313L6.08471 13.1978L17 2.28255L15.7175 1L6.08471 10.6237Z' fill='currentcolor' stroke='currentcolor' />
</svg>
<svg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg' aria-hidden="true" focusable="false" class="toggle__icon toggle__icon--cross">
<path d='M11.167 0L6.5 4.667L1.833 0L0 1.833L4.667 6.5L0 11.167L1.833 13L6.5 8.333L11.167 13L13 11.167L8.333 6.5L13 1.833L11.167 0Z' fill='currentcolor' />
</svg>
<img class="toggle__img" src="../../icons/popup_check.svg" alt="">
<img class="toggle__img" src="../../icons/popup_uncheck.svg" alt="">
</span>
</label>
</div>
@ -80,12 +68,27 @@
<span data-i18n-content="blockGoogleFontsTitle">Block Google Fonts</span>
</div>
</div>
<div id="website-context-replaced"></div>
<div id="counter-blocked-missing" class="counter-blocked-missing" hidden>
<table>
<tbody>
<tr>
<td data-i18n-context="counterBlocked">Blocked:</td>
<td id="counter-blocked-number"></td>
</tr>
<tr>
<td data-i18n-context="counterMissing">Missing:</td>
<td id="counter-missing-number"</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="extension-context" class="panel">
<div id="injection-counter" class="counter">0</div>
<div class="description" data-i18n-content="amountInjectedDescription">Amount of local Content Delivery Network resource injections since installation.</div>
</div>
</section>
</div>
<footer>
<div id="testing-utility">
<a id="testing-utility-link" class="link-text" data-i18n-content="websiteBroken" data-link="testing-utility">Website broken?</a>

View File

@ -23,7 +23,7 @@
* Popup
*/
var popup = {};
let popup = {};
/**
@ -90,13 +90,42 @@ popup._renderNonContextualContents = function () {
};
popup._renderContextualContents = function () {
let isVisible = false;
if (popup._domain !== null) {
popup._renderDomainAllowlistPanel();
document.getElementById('testing-utility-link').style.display = 'block';
}
if (Object.keys(popup._resourceInjections).length > 0) {
popup._renderInjectionPanel(popup._resourceInjections);
isVisible = Object.keys(popup._resourceInjections).length > 0 ||
popup._blockedCounter > 0 ||
popup._missingCounter > 0;
if (isVisible) {
let websiteContextElement, injectionOverviewElement;
websiteContextElement = document.getElementById('website-context-replaced');
injectionOverviewElement = document.createElement('ul');
injectionOverviewElement.setAttribute('class', 'list');
for (let source in popup._resourceInjections) {
let injectionGroupHeaderElement, injectionGroupElement, cdn;
cdn = popup._resourceInjections[source];
injectionGroupHeaderElement = popup._createInjectionGroupHeaderElement(source, cdn);
injectionGroupElement = popup._createInjectionGroupElement(source, cdn);
injectionOverviewElement.appendChild(injectionGroupHeaderElement);
injectionOverviewElement.appendChild(injectionGroupElement);
}
injectionOverviewElement.setAttribute('class', 'panel-overflow');
websiteContextElement.append(injectionOverviewElement);
popup._renderBlockedAndMissingElementHeader(popup._blockedCounter, 'blocked');
popup._renderBlockedAndMissingElementHeader(popup._missingCounter, 'missing');
document.getElementById('counter-blocked-missing').style.display = 'block';
}
};
@ -116,7 +145,7 @@ popup._renderDomainAllowlistPanel = function () {
googleFontsToggleElement = document.getElementById('google-fonts-toggle-switch');
if (popup._blockGoogleFonts === false) {
if (popup._blockGoogleFonts === false || helpers.isGoogleDomain(popup._domain) === true) {
document.getElementById('div-google-fonts').hidden = true;
}
@ -160,15 +189,6 @@ popup._renderDomainAllowlistPanel = function () {
websiteContextElement.style.display = 'block';
};
popup._renderInjectionPanel = function (groupedInjections) {
let websiteContextElement, injectionOverviewElement;
websiteContextElement = document.getElementById('website-context');
injectionOverviewElement = popup._createInjectionOverviewElement(groupedInjections);
injectionOverviewElement.setAttribute('class', 'panel-overflow');
websiteContextElement.append(injectionOverviewElement);
};
popup._enableProtection = function () {
let message = {
'topic': 'allowlist:remove-domain',
@ -275,7 +295,9 @@ popup._determineStatusGoogleFonts = function () {
};
chrome.runtime.sendMessage(message, function (response) {
popup._domainGoogleFonts = response.value;
if (response !== undefined) {
popup._domainGoogleFonts = response.value;
}
resolve();
});
});
@ -289,7 +311,10 @@ popup._determineResourceInjections = function () {
};
chrome.runtime.sendMessage(message, function (response) {
let groupedInjections = popup._groupResourceInjections(response.value);
popup._blockedCounter = response.value.blockedCounter;
popup._missingCounter = response.value.missingCounter;
let groupedInjections = popup._groupResourceInjections(response.value.injections);
popup._resourceInjections = groupedInjections;
resolve();
@ -338,25 +363,6 @@ popup._groupResourceInjections = function (injections) {
return groupedInjections;
};
popup._createInjectionOverviewElement = function (groupedInjections) {
let injectionOverviewElement = document.createElement('ul');
injectionOverviewElement.setAttribute('class', 'list');
for (let source in groupedInjections) {
let injectionGroupHeaderElement, injectionGroupElement, cdn;
cdn = groupedInjections[source];
injectionGroupHeaderElement = popup._createInjectionGroupHeaderElement(source, cdn);
injectionGroupElement = popup._createInjectionGroupElement(source, cdn);
injectionOverviewElement.appendChild(injectionGroupHeaderElement);
injectionOverviewElement.appendChild(injectionGroupElement);
}
return injectionOverviewElement;
};
popup._createInjectionGroupHeaderElement = function (source, cdn) {
let injectionGroupHeaderElement, badgeElement, badgeTextNode, cdnNameTextNode;
@ -480,6 +486,13 @@ popup._renderLocaleNotice = function () {
localeNoticeElement.appendChild(nameTextNode);
};
popup._renderBlockedAndMissingElementHeader = function (counter, type) {
let counterElement;
counterElement = document.getElementById(`counter-${type}-number`);
counterElement.textContent = counter;
};
/**
* Event Handlers
@ -619,9 +632,11 @@ popup._onLoggingButtonClicked = function (ev) {
* Initializations
*/
popup.negateHtmlFilterList = false;
popup.negateHtmlFilterList = true;
popup._statisticsStatus = false;
popup._loggingStatus = false;
popup._blockGoogleFonts = true;
popup._blockedCounter = 0;
popup._missingCounter = 0;
document.addEventListener('DOMContentLoaded', popup._onDocumentLoaded);

View File

@ -123,6 +123,10 @@ button.toggle {
color: #f0f0f0;
}
.toggle__img {
width: 12px;
}
*,
::before,
::after {

View File

@ -23,6 +23,7 @@
<option value="week" data-i18n-content="labelPastWeek">Past week</option>
<option value="month" data-i18n-content="labelPastMonth">Past month</option>
<option value="year" data-i18n-content="labelPastYear">Past year</option>
<option value="all" data-i18n-content="labelAll">All</option>
</select>
<div id="btn-delete" class="button" data-i18n-content="labelDelete">Delete</div>
</div>

View File

@ -19,7 +19,7 @@
* Statistic
*/
var statistics = {};
let statistics = {};
/**
@ -127,6 +127,8 @@ statistics._setDateRange = function () {
days = 30;
} else if (type === 'year') {
days = 365;
} else if (type === 'all') {
days = statistics._daysSinceYearOfRelease();
} else {
statistics._dateRange = [new Date().toISOString().slice(0, 10)];
}
@ -238,7 +240,7 @@ statistics._displayNameOfFramework = function (str, type) {
statistics._handlerDateRange = function ({target}) {
let type = target.value;
if (type === 'day' || type === 'week' || type === 'month' || type === 'year') {
if (type === 'day' || type === 'week' || type === 'month' || type === 'year' || type === 'all') {
statistics._dateUnit = type;
statistics._saveDefaultRange(type);
} else if (type === 'delete') {
@ -270,6 +272,14 @@ statistics._registerListener = function () {
});
};
statistics._daysSinceYearOfRelease = function () {
let timeDifference, millisecondsPerDay;
timeDifference = new Date() - new Date('2020-01-01');
millisecondsPerDay = 24 * 60 * 60 * 1000;
return Math.floor(timeDifference / millisecondsPerDay);
};
/**
* Initializations

View File

@ -16,7 +16,7 @@
<script src="updates.js"></script>
</head>
<body>
<img src="../images/logo.svg" alt="LocalCDN" class="logo"/>
<img src="../images/logo.svg" alt="" class="logo">
<div class="container">
<h1>Release notes</h1>
<div class="notice">
@ -27,28 +27,27 @@
<div class="release-notes-area">
<p>Updated</p>
<ul>
<li>mdb-ui-kit v6.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1193">#1193</a>)</li>
<li>react-redux v8.0.4 -> v8.0.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1195">#1195</a>)</li>
<li>instantsearch.js v4.49.0 -> v4.49.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1196">#1196</a>)</li>
<li>hls.js v1.2.4 -> v1.2.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1197">#1197</a>)</li>
<li>vue v3.2.41 -> v3.2.45 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1198">#1198</a>)</li>
<li>bootstrap-icons v1.9.1 -> v1.10.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1199">#1199</a>)</li>
<li>findify-bundle v7.1.63 -> v7.1.68 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1202">#1202</a>)</li>
<li>font-awesome v6.2.0 -> v6.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1203">#1203</a>)</li>
<li>Chart.js v4.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1204">#1204</a>)</li>
<li>search-insights v2.2.1 -> v2.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1205">#1205</a>)</li>
<li>element-ui v2.15.10 -> v2.15.12 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1206">#1206</a>)</li>
<li>plyr v3.7.2 -> v3.7.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1207">#1207</a>)</li>
<li>leaflet v1.9.2 -> v1.9.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1208">#1208</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>MathJax: latest.js v2.7.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1194">#1194</a>)</li>
<li>angular.js v1.0.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1200">#1200</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>cdn.jsdelivr.net -> select2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1201">#1201</a>)</li>
<li>alpinejs v3.13.10 -> v3.14.0</li>
<li>axios v1.6.8 -> v1.7.2</li>
<li>bootstrap-table v1.22.5 -> v1.22.6</li>
<li>bulma v1.0.0 -> v1.0.1</li>
<li>bxslider v4.2.15 -> v4.2.17</li>
<li>dexie v4.0.4 -> v4.0.7</li>
<li>hls.js v1.5.8 -> v1.5.9</li>
<li>instantsearch.css v8.1.0 -> v8.2.0</li>
<li>instantsearch.js v4.68.0 -> v4.70.0</li>
<li>libphonenumber-js v1.10.62 -> v1.11.2</li>
<li>mdb-ui-kit v7.2.0 -> v7.3.0</li>
<li>noUiSlider v15.7.1 -> v15.7.2</li>
<li>p5.js v1.9.3 -> v1.9.4</li>
<li>react-intl v6.6.6 -> v6.6.8</li>
<li>react-router v6.23.0 -> v6.23.1</li>
<li>search-insights v2.13.0 -> v2.14.0</li>
<li>simplebar v6.2.5 -> v6.2.6</li>
<li>swagger-ui v5.17.3 -> v5.17.14</li>
<li>tinymce v7.0.1 -> v7.1.1</li>
<li>video.js v8.13.0 -> v8.14.0</li>
<li>vue v3.4.26 -> v3.4.27</li>
</ul>
</div>
<div id="generator-section">
@ -57,36 +56,773 @@
</div>
<div class="ruleset-generator">
<label class="b-contain" for="generate-ublock-rules">uBlock
<input id="generate-ublock-rules" name="rule-sets" data-ruleset="uBlock" type="radio" value="uBlock" autocomplete="off">
<div class="b-input"></div>
<input id="generate-ublock-rules" name="rule-sets" data-ruleset="uBlock" type="radio" value="uBlock">
<span class="b-input"></span>
</label>
</div>
<div class="ruleset-generator">
<label class="b-contain" for="generate-umatrix-rules">uMatrix
<input id="generate-umatrix-rules" name="rule-sets" data-ruleset="uMatrix" type="radio" value="uMatrix" autocomplete="off">
<div class="b-input"></div>
<input id="generate-umatrix-rules" name="rule-sets" data-ruleset="uMatrix" type="radio" value="uMatrix">
<span class="b-input"></span>
</label>
</div>
<div class="ruleset-generator">
<label class="b-contain" for="generate-adguard-rules">AdGuard
<input id="generate-adguard-rules" name="rule-sets" data-ruleset="AdGuard" type="radio" value="AdGuard" autocomplete="off">
<div class="b-input"></div>
<input id="generate-adguard-rules" name="rule-sets" data-ruleset="AdGuard" type="radio" value="AdGuard">
<span class="b-input"></span>
</label>
</div>
<div class="ruleset-generator">
<label class="b-contain" for="generate-noscript-rules">NoScript
<input id="generate-noscript-rules" name="rule-sets" data-ruleset="NoScript" type="radio" value="NoScript" autocomplete="off">
<div class="b-input"></div>
<input id="generate-noscript-rules" name="rule-sets" data-ruleset="NoScript" type="radio" value="NoScript">
<span class="b-input"></span>
</label>
</div>
<div>
<textarea rows="12" cols="15" id="generated-rules" readonly></textarea>
<input id="button-copy-rule-set" type="button" value="Copy">
</div>
<hr/>
<hr>
</div>
<div id="history"><span id="history-indicator">+</span> Previous Versions</div>
<div id="history-release-notes">
<p class='release-date'>2023-05-06 (v2.6.67)</p>
<p>Updated</p>
<ul>
<li>alpinejs v3.13.8 -> v3.13.10</li>
<li>bootstrap-table v1.22.4 -> v1.22.5</li>
<li>dayjs v1.11.10 -> v1.11.11</li>
<li>feather-icons v4.29.1 -> v4.29.2</li>
<li>instantsearch.js v4.66.1 -> v4.68.0</li>
<li>jqueryui v1.13.2 -> v1.13.3</li>
<li>libphonenumber-js v1.10.60 -> v1.10.62</li>
<li>p5.js v1.9.2 -> v1.9.3</li>
<li>react v18.2.0 -> v18.3.1</li>
<li>react-dom v18.2.0 -> v18.3.1</li>
<li>react-intl v6.6.5 -> v6.6.6</li>
<li>react-router v6.22.3 -> v6.23.0</li>
<li>swagger-ui v5.15.1 -> v5.17.3</li>
<li>tensorflow v4.17.0 -> v4.19.0</li>
<li>video.js v8.11.8 -> v8.13.0</li>
<li>vue v3.4.21 -> v3.4.26</li>
<li>vue-i18n v9.12.0 -> v9.13.1</li>
<li>vue-router v4.3.0 -> v4.3.2</li>
</ul>
<p>Added</p>
<ul>
<li>twitter-bootstrap v5.1.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1624">#1624</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Wildcard support extended in all lists (<a href="https://codeberg.org/nobody/LocalCDN/issues/1622">#1622</a>)</li>
<li>Extend statistics over the whole time range (<a href="https://codeberg.org/nobody/LocalCDN/issues/1626">#1626</a>)</li>
</ul>
<p>Fixed</p>
<ul>
<li>Welcome Page autoclose if check "Allow this extension to run in Private Windows" (<a href="https://codeberg.org/nobody/LocalCDN/issues/1625">#1625</a>)</li>
</ul>
<p class='release-date'>2023-04-13 (v2.6.66)</p>
<p>Updated</p>
<ul>
<li>tinymce v6.8.3 -> v7.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/fbd89e2d82c04df4591b7c0a67c8260251326574">fbd89e2d82</a>)</li>
<li>bulma v0.9.4 -> v1.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/225905ca68112ff1fc8a81c89a631480d062d42d">225905ca68</a>)</li>
<li>vanilla-lazyload v17.8.8 -> v19.1.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/5b24cdc41228ab6a478a572638e65b808aea4d7b">5b24cdc412</a>)</li>
<li>materialicons v141 -> v142 (<a href="https://codeberg.org/nobody/LocalCDN/commit/4e841ab63717633465f73d7afc880b93c5bbff57">4e841ab637</a>)</li>
<li>react-intl v6.6.2 -> v6.6.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/7aeb64677349de976244fc041d295219abd30a32">7aeb646773</a>)</li>
<li>font-awesome v6.5.1 -> v6.5.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/6b684648a94add0c3cd9aab66886bd38ec9cc312">6b684648a9</a>)</li>
<li>alpinejs v3.13.7 -> v3.13.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8fa3d016a16c87d93da3ab10583c31b979354b87">8fa3d016a1</a>)</li>
<li>swagger-ui v5.12.0 -> v5.15.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/3d658a279456a89e325b93ca15eac9b19d1fbc37">3d658a2794</a>)</li>
<li>p5.js v1.9.1 -> v1.9.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/b5fc4e089e33e7438ddf2bbd26253400057271d2">b5fc4e089e</a>)</li>
<li>hls.js v1.5.7 -> v1.5.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/d5e06b9b10767b185162c90ab3300b4a485fc74a">d5e06b9b10</a>)</li>
<li>bootstrap-table v1.22.3 -> v1.22.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/870b08ba367975f88898ffc77983ab2e6785d6bc">870b08ba36</a>)</li>
<li>dexie v3.2.6 -> v4.0.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/34cb76848d2a5e924863811b514f73fbd97a70c4">34cb76848d</a>)</li>
<li>vue-i18n v9.10.2 -> v9.12.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8cddef7544b81dd6120d8720eeccafbe693fe95c">8cddef7544</a>)</li>
<li>webrtc-adapter v8.2.3 -> v9.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e2bd8ce3fac43d93a996adb7bd67f417e0e48792">e2bd8ce3fa</a>)</li>
<li>instantsearch.js v4.66.0 -> v4.66.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ab082579dcec2ea633ccfc335177919dc7933abb">ab082579dc</a>)</li>
<li>libphonenumber-js v1.10.58 -> v1.10.60 (<a href="https://codeberg.org/nobody/LocalCDN/commit/3dcc7025e37ce011300bd1c26b0459c41d5b038f">3dcc7025e3</a>)</li>
<li>algoliasearch v4.22.1 -> v4.23.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ace529316c88ba48d0ea5b3c9f00d44518c6f56d">ace529316c</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>highlight.js v7.x, v8.x, v9.x, v10.x -> v11.x (<a href="https://codeberg.org/nobody/LocalCDN/commit/4d38d04e17bbf2f44a1c986b790bfe4b1bdade20">4d38d04e17</a>)</li>
</ul>
<p>Removed</p>
<ul>
<li>FitText.js (<a href="https://codeberg.org/nobody/LocalCDN/commit/cc9dacbde6c1221eba09806b401a3313aba5bd7d">cc9dacbde6</a>)</li>
<li>angular-ui-select (<a href="https://codeberg.org/nobody/LocalCDN/commit/4e8cd7127f6704881ce7943a1690a10b69693c7c">4e8cd7127f</a>)</li>
<li>angular-ui-utils (<a href="https://codeberg.org/nobody/LocalCDN/commit/71f358392c6183a281fc7dc129cecabb914c8e0a">71f358392c</a>)</li>
<li>angular-stripe-checkout (<a href="https://codeberg.org/nobody/LocalCDN/commit/1211a9c43a39326152669d83ec36d819cc21fb50">1211a9c43a</a>)</li>
<li>d3-legend (<a href="https://codeberg.org/nobody/LocalCDN/commit/fb5a3f779b86b493dd71f0ba6899f2b9f17ac4f3">fb5a3f779b</a>)</li>
<li>drawer (<a href="https://codeberg.org/nobody/LocalCDN/commit/5df53e2ea2266130a76931aa30e46d73e22c6f5b">5df53e2ea2</a>)</li>
</ul>
<p class='release-date'>2023-03-17 (v2.6.65)</p>
<p>Updated</p>
<ul>
<li>d3 v7.8.5 -> v7.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/9096750ba29d9d103e1cdced53b394d718099d55">9096750ba2</a>)</li>
<li>axios v1.6.7 -> v1.6.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/76a887af6175959e15c2b3582f813e29c07198fd">76a887af61</a>)</li>
<li>socket.io v4.7.4 -> v4.7.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/1be054976b61d2c0ff25a296b4179746b9b43f33">1be054976b</a>)</li>
<li>react-router v6.22.2 -> v6.22.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/cf2cae09e4cca7a30be8295a51405a60fc0806e8">cf2cae09e4</a>)</li>
<li>video.js v8.11.5 -> v8.11.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/b98d1fd75368e2eca39f6674654c271594284f64">b98d1fd753</a>)</li>
<li>alpinejs v3.13.5 -> v3.13.7 (<a href="https://codeberg.org/nobody/LocalCDN/commit/5efa34e9327cc27c1b867fde651b80e44d3f66e6">5efa34e932</a>)</li>
<li>swagger-ui v5.11.8 -> v5.12.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/773beb1697b68d4a23c84ce84cc91d2e0c983f47">773beb1697</a>)</li>
<li>mdb-ui-kit v7.1.0 -> v7.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e3ba1c8c32acb03f3c585e53ffbc0f154c3ef8db">e3ba1c8c32</a>)</li>
<li>p5.js v1.9.0 -> v1.9.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/9fd72962886333d710635f2af0fbbfb7ccee4ffd">9fd7296288</a>)</li>
<li>vue-i18n v9.9.1 -> v9.10.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/008db469fe79f9324b17c82f418c9e48614783bf">008db469fe</a>)</li>
<li>libphonenumber-js v1.10.57 -> v1.10.58 (<a href="https://codeberg.org/nobody/LocalCDN/commit/74dea23e1d8791f58b3c32da1835412afe03e39e">74dea23e1d</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Support wildcard TLD in all lists (<a href="https://codeberg.org/nobody/LocalCDN/issues/1622">#1622</a>)</li>
<li>Fixed incorrect description in the settings (<a href="https://codeberg.org/nobody/LocalCDN/issues/1622">#1622</a>)</li>
</ul>
<p>Fixed</p>
<ul>
<li>docsify themes (<a href="https://codeberg.org/nobody/LocalCDN/issues/1623">#1623</a>)</li>
</ul>
<p class='release-date'>2023-02-29 (v2.6.64)</p>
<p>Updated</p>
<ul>
<li>vue v3.4.15 -> v3.4.21 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e277722b22601b954d30033b187a53f066972962">e277722b22</a>)</li>
<li>tinymce v6.8.2 -> v6.8.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/c637d1b56e3cfe485cb035952960af80384b3b9e">c637d1b56e</a>)</li>
<li>twitter-bootstrap v5.3.2 -> v5.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/47afb3e6144fea91d8edd603bbae36d7e4849d6a">47afb3e614</a>)</li>
<li>react-router v6.22.0 -> v6.22.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/f99b07a6fd124913874778aaadb3ff246da7148f">f99b07a6fd</a>)</li>
<li>video.js v8.11.1 -> v8.11.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/093f9253e809f423dbb3b0e8eb9d9224d2b5c3e1">093f9253e8</a>)</li>
<li>backbone.js v1.5.0 -> v1.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e38e56a473de4fac28a1338e2ba6fce7774ee5c7">e38e56a473</a>)</li>
<li>swagger-ui v5.11.2 -> v5.11.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e2ff54ce1812eabfd2c28f2083d9a033cd28b4e1">e2ff54ce18</a>)</li>
<li>vue-router v4.2.5 -> v4.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/06c9f62631043ffd767fbc857f81ace0da80e4c1">06c9f62631</a>)</li>
<li>hls.js v1.5.3 -> v1.5.7 (<a href="https://codeberg.org/nobody/LocalCDN/commit/35b8e794034f303b3239a39201d89e6c44c9d7ac">35b8e79403</a>)</li>
<li>bootstrap-table v1.22.2 -> v1.22.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/353dde8cff797ef1a453661f894b33dd0ccea670">353dde8cff</a>)</li>
<li>dexie v3.2.4 -> v3.2.6 (<a href="https://codeberg.org/nobody/LocalCDN/commit/c4cb8b2b6b4938c40eccc6ad6118524b568b6acd">c4cb8b2b6b</a>)</li>
<li>instantsearch.js v4.64.2 -> v4.66.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/21dbfe807e137ed203ce2f5666e87d7699351f83">21dbfe807e</a>)</li>
<li>libphonenumber-js v1.10.55 -> v1.10.57 (<a href="https://codeberg.org/nobody/LocalCDN/commit/6a76aa6cf1d369949537b9e61bdf6cf798c50121">6a76aa6cf1</a>)</li>
<li>vanilla-lazyload v17.8.5 -> v17.8.8 (<a href="https://codeberg.org/nobody/LocalCDN/commit/eec43134f84bf8f40ac443f68a9202573a9bc247">eec43134f8</a>)</li>
<li>bootswatch v5.3.2 -> v5.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/856a849ebb17b64af6b0a4e173610ae4920e30cc">856a849ebb</a>)</li>
</ul>
<p class='release-date'>2023-02-04 (v2.6.63)</p>
<p>Updated</p>
<ul>
<li>materialicons v140 -> v141 (<a href="https://codeberg.org/nobody/LocalCDN/commit/6123be7478548b985cad5f28e1c25a1f191238be">6123be7478</a>)</li>
<li>gsap v3.12.4 -> v3.12.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/062a90bbdb8d0b8f25473fad4fe9305b89c7616f">062a90bbdb</a>)</li>
<li>react-intl v6.5.5 -> v6.6.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/057c9465ebc3a3db6414105c54e934bec999410f">057c9465eb</a>)</li>
<li>angular-translate v2.19.0 -> v2.19.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8a58c9ca79e37be8f2128ce4740d8a55f795faeb">8a58c9ca79</a>)</li>
<li>angular-translate-loader-partial v2.19.0 -> v2.19.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e906cdcd591da91bbd580536307378b13577e44a">e906cdcd59</a>)</li>
<li>vue v3.4.9 -> v3.4.15 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e420da12433938427fb75655c1adef8ce63ed7cf">e420da1243</a>)</li>
<li>axios v1.6.5 -> v1.6.7 (<a href="https://codeberg.org/nobody/LocalCDN/commit/afb82f6ebc49163b14b92839e88673cdea45da8c">afb82f6ebc</a>)</li>
<li>react-router v6.21.1 -> v6.22.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/f2be418a43fa42330759d80fbac67e78a4705428">f2be418a43</a>)</li>
<li>video.js v8.9.0 -> v8.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/bab22c90f292b7e4edaf6b3986109b7a48534f65">bab22c90f2</a>)</li>
<li>alpinejs v3.13.3 -> v3.13.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/a73b3dbd14735e20a5392226a82b8100f99d6736">a73b3dbd14</a>)</li>
<li>swagger-ui v5.11.0 -> v5.11.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/c8cc450ce88bef045a1b2493b5086d9927e9fd31">c8cc450ce8</a>)</li>
<li>tensorflow v4.16.0 -> v4.17.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ed51d96de8832f7ec80db1583d277c28c91b9716">ed51d96de8</a>)</li>
<li>hls.js v1.5.1 -> v1.5.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/1cd7e033fe402ed9d5b8be4cabc0d099ac4793c5">1cd7e033fe</a>)</li>
<li>vue-i18n v9.9.0 -> v9.9.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/986ce46187308b3db73f428ad82fe4dca366d43a">986ce46187</a>)</li>
<li>instantsearch.js v4.63.0 -> v4.64.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/a059ea04bd0d51b2cd21109af115033d391ea988">a059ea04bd</a>)</li>
<li>libphonenumber-js v1.10.53 -> v1.10.55 (<a href="https://codeberg.org/nobody/LocalCDN/commit/88be389f55e0f5f0f7f42d73bba75118d3e0606f">88be389f55</a>)</li>
<li>corejs-typeahead v1.3.3 -> v1.3.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/1ee357539007d3f7d6ee1801296570ab270b8b2f">1ee3575390</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>supabase-js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1619">#1619</a>)</li>
</ul>
<p>Remove</p>
<ul>
<li>SWFObject (<a href="https://codeberg.org/nobody/LocalCDN/commit/2f9bdcd6c09446a9f9ac6c56d0337da804ca6ffc">2f9bdcd6c0</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>docsify -> cdn.jsdelivr.net (<a href="https://codeberg.org/nobody/LocalCDN/issues/1616">#1616</a>)</li>
<li>Font Awesome v4.7.0 woff -> woff2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1617">#1617</a>)</li>
</ul>
<p class='release-date'>2023-01-13 (v2.6.62)</p>
<p>Updated</p>
<ul>
<li>vue v3.3.13 -> v3.4.9 (<a href="https://codeberg.org/nobody/LocalCDN/commit/881b142f279f98bf3fb44a6e1728e8964bfd5bd6">881b142f27</a>)</li>
<li>axios v1.6.3 -> v1.6.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/de1450dec75d39aa0eacbd894c6cea9ff8ebb81b">de1450dec7</a>)</li>
<li>socket.io v4.7.2 -> v4.7.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8d18fd35bac8db4c88b66307397865f0d754977e">8d18fd35ba</a>)</li>
<li>moment.js v2.30.0 -> v2.30.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/bad9334a5b6fde879053d54cd3efe6804abbcb6f">bad9334a5b</a>)</li>
<li>video.js v8.8.0 -> v8.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/c6583298f6a7475c89ff833b108cbc7b40911628">c6583298f6</a>)</li>
<li>swagger-ui v5.10.5 -> v5.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/945e841986ace53c6d00b5275e2a1b34dfe3d434">945e841986</a>)</li>
<li>tensorflow v4.15.0 -> v4.16.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/cb9783a10962dce6a331fdb307b895c3907a87fb">cb9783a109</a>)</li>
<li>hls.js v1.4.14 -> v1.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/4f8892857313d3d5f8dc0cfe6e593b9f70eb3289">4f88928573</a>)</li>
<li>bootstrap-table v1.22.1 -> v1.22.2 (<a href="https://codeberg.org/nobody/LocalCDN/commit/8bd3e388362ee56a8ee3ef305437f7e3aeff4193">8bd3e38836</a>)</li>
<li>vue-i18n v9.8.0 -> v9.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/01c9d7780500b7d09982fea46f7e1d6562500d4d">01c9d77805</a>)</li>
<li>bootstrap-icons v1.11.2 -> v1.11.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/a8c01e1308dff2363b0d19591d4303de49d41d88">a8c01e1308</a>)</li>
<li>algoliasearch v4.22.0 -> v4.22.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/5678f07e273576d41063cb4dc3d373acbcd59de1">5678f07e27</a>)</li>
</ul>
<p class='release-date'>2023-12-29 (v2.6.61)</p>
<p>Updated</p>
<ul>
<li>vue v3.3.11 -> v3.3.13 (<a href="https://codeberg.org/nobody/LocalCDN/commit/3a346eeba8cfd524722d578b3c80db6f313f39bd">3a346eeba8</a>)</li>
<li>axios v1.6.2 -> v1.6.3 (<a href="https://codeberg.org/nobody/LocalCDN/commit/cbb8f629fc85924d01fe0ac63a51748c5b780e44">cbb8f629fc</a>)</li>
<li>redux v5.0.0 -> v5.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/d0712af389b3856e64c3d9088b267322262ac486">d0712af389</a>)</li>
<li>react-router v6.20.1 -> v6.21.1 (<a href="https://codeberg.org/nobody/LocalCDN/commit/65dce2b6ee65c10aaef4da5bb262f83d016dc818">65dce2b6ee</a>)</li>
<li>moment.js v2.29.4 -> v2.30.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/e66966d8eb9d87a51e1c00c3dcadddf9a5e486b0">e66966d8eb</a>)</li>
<li>video.js v8.7.0 -> v8.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/eebd7895bcade4a18cf938a7f89f2530709af239">eebd7895bc</a>)</li>
<li>swagger-ui v5.10.3 -> v5.10.5 (<a href="https://codeberg.org/nobody/LocalCDN/commit/920adb917a1e9e008fc724486fe28c6d2998aaa8">920adb917a</a>)</li>
<li>tensorflow v4.14.0 -> v4.15.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/a42c8b360ab6cea91da9b62ce3ce78ffd392213d">a42c8b360a</a>)</li>
<li>gsap v3.12.3 -> v3.12.4 (<a href="https://codeberg.org/nobody/LocalCDN/commit/f5fe905889e4dee81ea7ac14ed2b62b9b228a5f8">f5fe905889</a>)</li>
<li>hls.js v1.4.13 -> v1.4.14 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ba026ff85f839686d600984f7d93448ec1d22434">ba026ff85f</a>)</li>
<li>instantsearch.js v4.62.0 -> v4.63.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ee0626a234185bfde6ce73349562e64725deb601">ee0626a234</a>)</li>
<li>libphonenumber-js v1.10.51 -> v1.10.53 (<a href="https://codeberg.org/nobody/LocalCDN/commit/1d5ec6cae0b566ea394b13a72f3a9a8bef6908d0">1d5ec6cae0</a>)</li>
<li>algoliasearch v4.21.0 -> v4.22.0 (<a href="https://codeberg.org/nobody/LocalCDN/commit/ce32d63913aeb5d66663034de7c3bb307a36b831">ce32d63913</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Extend the Google Service check and also include subdomains (<a href="https://codeberg.org/nobody/LocalCDN/issues/1560">#1560</a>)</li>
</ul>
<p class='release-date'>2023-12-12 (v2.6.60)</p>
<p>Updated</p>
<ul>
<li>vue v3.3.8 -> v3.3.11 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1591">#1591</a>)</li>
<li>gsap v3.12.2 -> v3.12.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1592">#1592</a>)</li>
<li>font-awesome v6.4.2 -> v6.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1593">#1593</a>)</li>
<li>tinymce v6.7.3 -> v6.8.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1594">#1594</a>)</li>
<li>react-router v6.19.0 -> v6.20.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1595">#1595</a>)</li>
<li>animejs v3.2.1 -> v3.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1596">#1596</a>)</li>
<li>Swiper v11.0.4 -> v11.0.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1597">#1597</a>)</li>
<li>alpinejs v3.13.2 -> v3.13.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1598">#1598</a>)</li>
<li>swagger-ui v5.10.0 -> v5.10.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1599">#1599</a>)</li>
<li>p5.js v1.8.0 -> v1.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1600">#1600</a>)</li>
<li>tensorflow v4.13.0 -> v4.14.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1601">#1601</a>)</li>
<li>vue-i18n v9.7.0 -> v9.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1602">#1602</a>)</li>
<li>bootstrap-icons v1.11.1 -> v1.11.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1603">#1603</a>)</li>
<li>libphonenumber-js v1.10.49 -> v1.10.51 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1604">#1604</a>)</li>
<li>Chart.js v4.4.0 -> v4.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1605">#1605</a>)</li>
<li>video.js v8.6.1 -> v8.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1606">#1606</a>)</li>
<li>hls.js v1.4.12 -> v1.4.13 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1607">#1607</a>)</li>
<li>instantsearch.js v4.60.0 -> v4.62.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1608">#1608</a>)</li>
<li>mdb-ui-kit v7.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1609">#1609</a>)</li>
<li>redux v5.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1610">#1610</a>)</li>
<li>search-insights v2.11.0 -> v2.13.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1611">#1611</a>)</li>
<li>ngx-bootstrap v11.0.2 -> v12.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1612">#1612</a>)</li>
<li>algoliasearch v4.20.0 -> v4.21.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1613">#1613</a>)</li>
</ul>
<p class='release-date'>2023-11-19 (v2.6.59)</p>
<p>Updated</p>
<ul>
<li>react-intl v6.5.1 -> v6.5.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1579">#1579</a>)</li>
<li>search-insights v2.9.0 -> v2.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1580">#1580</a>)</li>
<li>vue v3.3.7 -> v3.3.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1581">#1581</a>)</li>
<li>axios v1.6.0 -> v1.6.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1582">#1582</a>)</li>
<li>react-router v6.17.0 -> v6.19.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1583">#1583</a>)</li>
<li>Swiper v11.0.3 -> v11.0.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1584">#1584</a>)</li>
<li>swagger-ui v5.9.1 -> v5.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1585">#1585</a>)</li>
<li>tensorflow v4.12.0 -> v4.13.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1586">#1586</a>)</li>
<li>tinymce v6.7.2 -> v6.7.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1587">#1587</a>)</li>
<li>vue-i18n v9.6.1 -> v9.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1588">#1588</a>)</li>
<li>instantsearch.js v4.59.0 -> v4.60.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1589">#1589</a>)</li>
</ul>
<p class='release-date'>2023-10-28 (v2.6.58)</p>
<p>Updated</p>
<ul>
<li>tinymce v6.7.0 -> v6.7.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1562">#1562</a>)</li>
<li>react-intl v6.4.7 -> v6.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1563">#1563</a>)</li>
<li>search-insights v2.8.3 -> v2.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1564">#1564</a>)</li>
<li>vanilla-lazyload v17.8.4 -> v17.8.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1565">#1565</a>)</li>
<li>alpinejs v3.13.1 -> v3.13.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1566">#1566</a>)</li>
<li>axios v1.5.1 -> v1.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1567">#1567</a>)</li>
<li>react-router v6.16.0 -> v6.17.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1568">#1568</a>)</li>
<li>Swiper v10.3.1 -> v11.0.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1569">#1569</a>)</li>
<li>video.js v8.6.0 -> v8.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1570">#1570</a>)</li>
<li>vue v3.3.4 -> v3.3.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1571">#1571</a>)</li>
<li>swagger-ui v5.9.0 -> v5.9.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1572">#1572</a>)</li>
<li>p5.js v1.7.0 -> v1.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1573">#1573</a>)</li>
<li>tensorflow v4.11.0 -> v4.12.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1574">#1574</a>)</li>
<li>vue-i18n v9.5.0 -> v9.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1575">#1575</a>)</li>
<li>instantsearch.js v4.58.0 -> v4.59.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1576">#1576</a>)</li>
<li>libphonenumber-js v1.10.47 -> v1.10.49 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1577">#1577</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Allow Google fonts for Google services by default and permanently (<a href="https://codeberg.org/nobody/LocalCDN/issues/1560">#1560</a>)</li>
<li>Firefox Sync (<a href="https://codeberg.org/nobody/LocalCDN/issues/1510">#1510</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>bootswatch -> cdnjs.cloudflare.com (<a href="https://codeberg.org/nobody/LocalCDN/issues/1561">#1561</a>)</li>
<li>datatables -> cdnjs.cloudflare.com (<a href="https://codeberg.org/nobody/LocalCDN/issues/1561">#1561</a>)</li>
<li>bootstrap-select -> cdn.jsdelivr.net (<a href="https://codeberg.org/nobody/LocalCDN/issues/1561">#1561</a>)</li>
<li>js-cookie -> cdn.jsdelivr.net (<a href="https://codeberg.org/nobody/LocalCDN/issues/1561">#1561</a>)</li>
</ul>
<p class='release-date'>2023-10-12 (v2.6.57)</p>
<p>Updated</p>
<ul>
<li>highlight.js v11.8.0 -> v11.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1546">#1546</a>)</li>
<li>search-insights v2.8.2 -> v2.8.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1547">#1547</a>)</li>
<li>axios v1.5.0 -> v1.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1548">#1548</a>)</li>
<li>Swiper v10.3.0 -> v10.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1549">#1549</a>)</li>
<li>video.js v8.5.3 -> v8.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1550">#1550</a>)</li>
<li>alpinejs v3.13.0 -> v3.13.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1551">#1551</a>)</li>
<li>swagger-ui v5.7.2 -> v5.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1552">#1552</a>)</li>
<li>mdb-ui-kit v6.4.1 -> v6.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1553">#1553</a>)</li>
<li>react-redux v8.1.2 -> v8.1.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1554">#1554</a>)</li>
<li>markdown-it v13.0.1 -> v13.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1555">#1555</a>)</li>
<li>jquery-validate v1.19.5 -> v1.20.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1556">#1556</a>)</li>
<li>vue-i18n v9.4.1 -> v9.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1557">#1557</a>)</li>
<li>instantsearch.js v4.57.0 -> v4.58.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1558">#1558</a>)</li>
<li>libphonenumber-js v1.10.44 -> v1.10.47 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1559">#1559</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Update manifest.json to prepare Firefox for Android support and new signing method by Mozilla (<a href="https://codeberg.org/nobody/LocalCDN/issues/136">#136</a>)</li>
</ul>
<p class='release-date'>2023-09-23 (v2.6.56)</p>
<p>Updated</p>
<ul>
<li>search-insights v2.8.1 -> v2.8.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1528">#1528</a>)</li>
<li>react-intl v6.4.4 -> v6.4.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1529">#1529</a>)</li>
<li>swagger-ui v5.4.2 -> v5.7.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1530">#1530</a>)</li>
<li>hls.js v1.4.10 -> v1.4.12 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1531">#1531</a>)</li>
<li>vue-i18n v9.2.2 -> v9.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1532">#1532</a>)</li>
<li>instantsearch.js v4.56.9 -> v4.57.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1533">#1533</a>)</li>
<li>algoliasearch v4.19.1 -> v4.20.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1534">#1534</a>)</li>
<li>twitter-bootstrap v5.3.1 -> v5.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1536">#1536</a>)</li>
<li>react-router v6.15.0 -> v6.16.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1537">#1537</a>)</li>
<li>tensorflow v4.10.0 -> v4.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1538">#1538</a>)</li>
<li>bootstrap-icons v1.10.5 -> v1.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1539">#1539</a>)</li>
<li>dayjs v1.11.9 -> v1.11.10 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1540">#1540</a>)</li>
<li>bootswatch v5.3.1 -> v5.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1541">#1541</a>)</li>
<li>lightgallery v2.7.1 -> v2.7.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1542">#1542</a>)</li>
<li>instantsearch.css v8.0.0 -> v8.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1543">#1543</a>)</li>
<li>Swiper v10.2.0 -> v10.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1544">#1544</a>)</li>
<li>vue-router v4.2.4 -> v4.2.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1545">#1545</a>)</li>
</ul>
<p>Fixed</p>
<ul>
<li>HTML filter trim spaces in character set detection (<a href="https://codeberg.org/nobody/LocalCDN/issues/1526">#1526</a>)</li>
</ul>
<p class='release-date'>2023-09-03 (v2.6.55)</p>
<p>Updated</p>
<ul>
<li>Chart.js v4.3.3 -> v4.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1511">#1511</a>)</li>
<li>element-ui v2.15.13 -> v2.15.14 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1512">#1512</a>)</li>
<li>react-router v6.14.2 -> v6.15.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1513">#1513</a>)</li>
<li>Swiper v10.1.0 -> v10.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1514">#1514</a>)</li>
<li>video.js v8.5.1 -> v8.5.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1515">#1515</a>)</li>
<li>foundation v6.7.5 -> v6.8.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1516">#1516</a>)</li>
<li>alpinejs v3.12.3 -> v3.13.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1517">#1517</a>)</li>
<li>swagger-ui v5.3.1 -> v5.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1518">#1518</a>)</li>
<li>feather-icons v4.29.0 -> v4.29.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1519">#1519</a>)</li>
<li>tinymce v6.6.1 -> v6.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1520">#1520</a>)</li>
<li>instantsearch.js v4.56.8 -> v4.56.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1521">#1521</a>)</li>
<li>libphonenumber-js v1.10.39 -> v1.10.44 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1522">#1522</a>)</li>
<li>axios v1.4.0 -> v1.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1523">#1523</a>)</li>
<li>jquery v3.7.0 -> v3.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1524">#1524</a>)</li>
<li>search-insights v2.7.0 -> v2.8.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1525">#1525</a>)</li>
</ul>
<p class='release-date'>2023-08-08 (v2.6.54)</p>
<p>Updated</p>
<ul>
<li>twitter-bootstrap v5.3.0 -> v5.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1489">#1489</a>)</li>
<li>Chart.js v4.3.0 -> v4.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1490">#1490</a>)</li>
<li>react-router v6.14.1 -> v6.14.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1491">#1491</a>)</li>
<li>video.js v8.5.0 -> v8.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1492">#1492</a>)</li>
<li>Swiper v10.0.4 -> v10.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1493">#1493</a>)</li>
<li>backbone.js v1.4.1 -> v1.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1494">#1494</a>)</li>
<li>swagger-ui v5.1.1 -> v5.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1495">#1495</a>)</li>
<li>mdb-ui-kit v6.4.0 -> v6.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1496">#1496</a>)</li>
<li>react-redux v8.1.1 -> v8.1.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1497">#1497</a>)</li>
<li>tensorflow v4.8.0 -> v4.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1498">#1498</a>)</li>
<li>handlebars.js v4.7.7 -> v4.7.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1499">#1499</a>)</li>
<li>bootswatch v5.3.0 -> v5.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1500">#1500</a>)</li>
<li>hls.js v1.4.9 -> v1.4.10 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1501">#1501</a>)</li>
<li>instantsearch.js v4.56.5 -> v4.56.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1502">#1502</a>)</li>
<li>libphonenumber-js v1.10.37 -> v1.10.39 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1503">#1503</a>)</li>
<li>algoliasearch v4.18.0 -> v4.19.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1504">#1504</a>)</li>
<li>font-awesome v6.4.0 -> v6.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1505">#1505</a>)</li>
<li>socket.io v4.7.1 -> v4.7.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1506">#1506</a>)</li>
<li>tinymce v6.6.0 -> v6.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1507">#1507</a>)</li>
</ul>
<p class='release-date'>2023-07-16 (v2.6.53)</p>
<p>Updated</p>
<ul>
<li>gsap v3.12.1 -> v3.12.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1467">#1467</a>)</li>
<li>socket.io v4.7.0 -> v4.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1468">#1468</a>)</li>
<li>hls.js v1.4.6 -> v1.4.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1469">#1469</a>)</li>
<li>libphonenumber-js v1.10.36 -> v1.10.37 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1470">#1470</a>)</li>
<li>react-router v6.14.0 -> v6.14.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1473">#1473</a>)</li>
<li>dayjs v1.11.8 -> v1.11.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1474">#1474</a>)</li>
<li>alpinejs v3.12.2 -> v3.12.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1475">#1475</a>)</li>
<li>vue-router v4.2.2 -> v4.2.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1476">#1476</a>)</li>
<li>bootstrap-table v1.22.0 -> v1.22.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1477">#1477</a>)</li>
<li>instantsearch.js v4.56.3 -> v4.56.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1478">#1478</a>)</li>
<li>p5.js v1.6.0 -> v1.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1482">#1482</a>)</li>
<li>search-insights v2.6.0 -> v2.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1483">#1483</a>)</li>
<li>ngx-bootstrap v10.3.0 -> v11.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1484">#1484</a>)</li>
<li>swagger-ui v5.1.0 -> v5.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1485">#1485</a>)</li>
<li>tinymce v6.5.1 -> v6.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1486">#1486</a>)</li>
<li>vanilla-lazyload v17.8.3 -> v17.8.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1487">#1487</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>handlebars.js v4.7.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1472">#1472</a>)</li>
<li>Swiper v10.0.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1479">#1479</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Handling and logging of blocked and missing resources (<a href="https://codeberg.org/nobody/LocalCDN/issues/1481">#1481</a>)</li>
</ul>
<p class='release-date'>2023-06-25 (v2.6.52)</p>
<p>Updated</p>
<ul>
<li>twitter-bootstrap v5.2.3 -> v5.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1439">#1439</a>)</li>
<li>tinymce v6.4.2 -> v6.5.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1440">#1440</a>)</li>
<li>gsap v3.11.5 -> v3.12.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1441">#1441</a>)</li>
<li>d3 v7.8.4 -> v7.8.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1442">#1442</a>)</li>
<li>socket.io v4.6.1 -> v4.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1443">#1443</a>)</li>
<li>react-router v6.11.2 -> v6.14.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1444">#1444</a>)</li>
<li>dayjs v1.11.7 -> v1.11.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1445">#1445</a>)</li>
<li>video.js v8.3.0 -> v8.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1446">#1446</a>)</li>
<li>Swiper v9.3.2 -> v9.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1447">#1447</a>)</li>
<li>bodymovin v5.11.0 -> v5.12.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1448">#1448</a>)</li>
<li>alpinejs v3.12.1 -> v3.12.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1449">#1449</a>)</li>
<li>mdb-ui-kit v6.3.1 -> v6.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1450">#1450</a>)</li>
<li>react-redux v8.0.5 -> v8.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1451">#1451</a>)</li>
<li>vue-router v4.2.1 -> v4.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1452">#1452</a>)</li>
<li>tensorflow v4.6.0 -> v4.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1453">#1453</a>)</li>
<li>bootswatch v5.2.3 -> v5.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1454">#1454</a>)</li>
<li>hls.js v1.4.4 -> v1.4.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1455">#1455</a>)</li>
<li>bootstrap-table v1.21.4 -> v1.22.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1456">#1456</a>)</li>
<li>dexie v3.2.3 -> v3.2.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1457">#1457</a>)</li>
<li>instantsearch.js v4.56.0 -> v4.56.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1458">#1458</a>)</li>
<li>libphonenumber-js v1.10.30 -> v1.10.36 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1459">#1459</a>)</li>
<li>algoliasearch v4.17.1 -> v4.18.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1460">#1460</a>)</li>
<li>corejs-typeahead v1.3.1 -> v1.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1461">#1461</a>)</li>
<li>noUiSlider v15.7.0 -> v15.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1462">#1462</a>)</li>
<li>react-intl v6.4.2 -> v6.4.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1463">#1463</a>)</li>
<li>webrtc-adapter v8.2.2 -> v8.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1464">#1464</a>)</li>
<li>docsify v4.13.0 -> v4.13.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1466">#1466</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>swagger-ui v5.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1465">#1465</a>)</li>
</ul>
<p class='release-date'>2023-05-27 (v2.6.51)</p>
<p>Updated</p>
<ul>
<li>bootstrap-datepicker v1.9.0 -> v1.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1422">#1422</a>)</li>
<li>vue v3.2.47 -> v3.3.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1423">#1423</a>)</li>
<li>jquery v3.6.4 -> v3.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1424">#1424</a>)</li>
<li>react-router v6.11.1 -> v6.11.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1425">#1425</a>)</li>
<li>leaflet v1.9.3 -> v1.9.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1426">#1426</a>)</li>
<li>Swiper v9.2.4 -> v9.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1427">#1427</a>)</li>
<li>alpinejs v3.12.0 -> v3.12.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1428">#1428</a>)</li>
<li>mdb-ui-kit v6.2.0 -> v6.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1429">#1429</a>)</li>
<li>vue-router v4.1.6 -> v4.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1430">#1430</a>)</li>
<li>tensorflow v4.4.0 -> v4.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1431">#1431</a>)</li>
<li>hls.js v1.4.0 -> v1.4.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1432">#1432</a>)</li>
<li>instantsearch.js v4.55.0 -> v4.56.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1433">#1433</a>)</li>
<li>libphonenumber-js v1.10.28 -> v1.10.30 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1434">#1434</a>)</li>
<li>videojs-seek-buttons v4.0.2 -> v4.0.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1435">#1435</a>)</li>
<li>popper.js v2.11.7 -> v2.11.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1437">#1437</a>)</li>
<li>algoliasearch v4.17.0 -> v4.17.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1438">#1438</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>cdnjs -> typeahead.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1415">#1415</a>)</li>
<li>cdnjs -> bootstrap-table (<a href="https://codeberg.org/nobody/LocalCDN/issues/1415">#1415</a>)</li>
<li>jsdelivr.net -> docsearch.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1416">#1416</a>)</li>
</ul>
<p class='release-date'>2023-05-04 (v2.6.50)</p>
<p>Updated</p>
<ul>
<li>search-insights v2.4.0 -> v2.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1398">#1398</a>)</li>
<li>tinymce v6.4.1 -> v6.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1399">#1399</a>)</li>
<li>react-intl v6.3.2 -> v6.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1400">#1400</a>)</li>
<li>axios v1.3.5 -> v1.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1401">#1401</a>)</li>
<li>Swiper v9.2.0 -> v9.2.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1402">#1402</a>)</li>
<li>bodymovin v5.10.2 -> v5.11.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1403">#1403</a>)</li>
<li>swagger-ui v4.18.2 -> v4.18.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1404">#1404</a>)</li>
<li>js-cookie v3.0.1 -> v3.0.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1405">#1405</a>)</li>
<li>angular-ui-router v1.0.30 -> v1.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1406">#1406</a>)</li>
<li>hls.js v1.3.5 -> v1.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1407">#1407</a>)</li>
<li>bootstrap-icons v1.10.4 -> v1.10.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1408">#1408</a>)</li>
<li>simplebar v6.2.4 -> v6.2.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1409">#1409</a>)</li>
<li>instantsearch.js v4.54.0 -> v4.55.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1410">#1410</a>)</li>
<li>libphonenumber-js v1.10.26 -> v1.10.28 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1411">#1411</a>)</li>
<li>highlight.js v11.7.0 -> v11.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1412">#1412</a>)</li>
<li>Chart.js v4.2.1 -> v4.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1413">#1413</a>)</li>
<li>react-router v6.10.0 -> v6.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1414">#1414</a>)</li>
</ul>
<p class='release-date'>2023-04-09 (v2.6.49)</p>
<p>Updated</p>
<ul>
<li>search-insights v2.3.0 -> v2.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1374">#1374</a>)</li>
<li>search-insights v1.9.0 -> v1.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1375">#1375</a>)</li>
<li>react-intl v6.3.0 -> v6.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1376">#1376</a>)</li>
<li>tinymce v6.4.0 -> v6.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1377">#1377</a>)</li>
<li>Google Material Icons Round v107 -> v108 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1378">#1378</a>)</li>
<li>d3 v7.8.2 -> v7.8.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1379">#1379</a>)</li>
<li>font-awesome v6.3.0 -> v6.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1380">#1380</a>)</li>
<li>react-router v6.9.0 -> v6.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1381">#1381</a>)</li>
<li>Swiper v9.1.1 -> v9.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1382">#1382</a>)</li>
<li>popper.js v2.11.6 -> v2.11.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1383">#1383</a>)</li>
<li>swagger-ui v4.18.1 -> v4.18.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1384">#1384</a>)</li>
<li>plyr v3.7.7 -> v3.7.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1385">#1385</a>)</li>
<li>bootstrap-table v1.21.3 -> v1.21.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1386">#1386</a>)</li>
<li>algoliasearch v4.15.0 -> v4.17.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1387">#1387</a>)</li>
<li>simplebar v6.2.1 -> v6.2.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1388">#1388</a>)</li>
<li>webcomponentsjs v2.7.0 -> v2.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1389">#1389</a>)</li>
<li>instantsearch.js v4.52.0 -> v4.54.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1390">#1390</a>)</li>
<li>axios v1.3.4 -> v1.3.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1391">#1391</a>)</li>
<li>video.js v8.2.1 -> v8.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1392">#1392</a>)</li>
<li>tensorflow v4.3.0 -> v4.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1393">#1393</a>)</li>
<li>bootstrap-icons v1.10.3 -> v1.10.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1394">#1394</a>)</li>
<li>libphonenumber-js v1.10.24 -> v1.10.26 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1395">#1395</a>)</li>
</ul>
<p class='release-date'>2023-03-18 (v2.6.48)</p>
<p>Updates</p>
<ul>
<li>react-intl v6.2.8 -> v6.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1344">#1344</a>)</li>
<li>axios v1.3.3 -> v1.3.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1345">#1345</a>)</li>
<li>socket.io v4.6.0 -> v4.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1346">#1346</a>)</li>
<li>video.js v8.0.4 -> v8.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1347">#1347</a>)</li>
<li>swagger-ui v4.15.5 -> v4.18.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1348">#1348</a>)</li>
<li>p5.js v1.5.0 -> v1.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1349">#1349</a>)</li>
<li>tinymce v6.3.1 -> v6.4.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1350">#1350</a>)</li>
<li>lightbox2 v2.11.3 -> v2.11.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1351">#1351</a>)</li>
<li>webrtc-adapter v8.2.0 -> v8.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1352">#1352</a>)</li>
<li>instantsearch.js v4.51.0 -> v4.52.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1353">#1353</a>)</li>
<li>jquery-migrate v3.4.0 -> v3.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1354">#1354</a>)</li>
<li>react-router v6.8.1 -> v6.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1357">#1357</a>)</li>
<li>Swiper v9.0.5 -> v9.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1358">#1358</a>)</li>
<li>mdb-ui-kit v6.1.0 -> v6.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1359">#1359</a>)</li>
<li>hls.js v1.3.3 -> v1.3.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1360">#1360</a>)</li>
<li>bootstrap-table v1.21.2 -> v1.21.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1361">#1361</a>)</li>
<li>libphonenumber-js v1.10.20 -> v1.10.24 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1362">#1362</a>)</li>
<li>algoliasearch v4.14.3 -> v4.15.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1363">#1363</a>)</li>
<li>Google Material Icons (<a href="https://codeberg.org/nobody/LocalCDN/issues/1365">#1365</a>)</li>
<li>jquery v3.6.3 -> v3.6.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1366">#1366</a>)</li>
<li>alpinejs v3.11.1 -> v3.12.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1367">#1367</a>)</li>
<li>plyr v3.7.3 -> v3.7.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1368">#1368</a>)</li>
<li>paginationjs v2.5.0 -> v2.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1370">#1370</a>)</li>
<li>tensorflow v4.2.0 -> v4.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1371">#1371</a>)</li>
<li>gsap v3.11.4 -> v3.11.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1372">#1372</a>)</li>
</ul>
<p class='release-date'>2023-02-19 (v2.6.47)</p>
<p>Updated</p>
<ul>
<li>noUiSlider v15.6.1 -> v15.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1324">#1324</a>)</li>
<li>react-intl v6.2.7 -> v6.2.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1325">#1325</a>)</li>
<li>font-awesome v6.2.1 -> v6.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1326">#1326</a>)</li>
<li>Chart.js v4.2.0 -> v4.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1327">#1327</a>)</li>
<li>socket.io v4.5.4 -> v4.6.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1328">#1328</a>)</li>
<li>react-router v6.8.0 -> v6.8.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1329">#1329</a>)</li>
<li>Swiper v9.0.2 -> v9.0.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1330">#1330</a>)</li>
<li>hls.js v1.3.2 -> v1.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1331">#1331</a>)</li>
<li>instantsearch.js v4.50.2 -> v4.51.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1332">#1332</a>)</li>
<li>simplebar v6.2.0 -> v6.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1334">#1334</a>)</li>
<li>element-ui v2.15.12 -> v2.15.13 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1336">#1336</a>)</li>
<li>axios v1.3.2 -> v1.3.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1337">#1337</a>)</li>
<li>libphonenumber-js v1.10.19 -> v1.10.20 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1338">#1338</a>)</li>
<li>dygraph v2.2.0 -> v2.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1339">#1339</a>)</li>
<li>search-insights v2.2.3 -> v2.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1340">#1340</a>)</li>
<li>search-insights v1.8.0 -> v1.9.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1341">#1341</a>)</li>
<li>ngx-bootstrap v10.2.1 -> v10.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1342">#1342</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>MathJax v3 tex-svg.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1333">#1333</a>)</li>
</ul>
<p class='release-date'>2023-02-05 (v2.6.46)</p>
<p>Updated</p>
<ul>
<li>bodymovin v5.10.1 -> v5.10.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1305">#1305</a>)</li>
<li>dexie v3.2.2 -> v3.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1306">#1306</a>)</li>
<li>axios v1.2.3 -> v1.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1310">#1310</a>)</li>
<li>instantsearch.js v4.49.4 -> v4.50.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1311">#1311</a>)</li>
<li>dygraph v2.1.2 -> v2.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1312">#1312</a>)</li>
<li>react-intl v6.2.5 -> v6.2.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1313">#1313</a>)</li>
<li>react-router v6.7.0 -> v6.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1314">#1314</a>)</li>
<li>redux v4.2.0 -> v4.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1315">#1315</a>)</li>
<li>Swiper v8.4.6 -> v8.4.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1316">#1316</a>)</li>
<li>hls.js v1.3.1 -> v1.3.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1317">#1317</a>)</li>
<li>libphonenumber-js v1.10.18 -> v1.10.19 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1318">#1318</a>)</li>
<li>vue v3.2.45 -> v3.2.47 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1320">#1320</a>)</li>
<li>video.js v8.0.3 -> v8.0.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1321">#1321</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>Swiper v9.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1319">#1319</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>cdnjs.com -> Some angular modules (<a href="https://codeberg.org/nobody/LocalCDN/issues/1307">#1307</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>More information about blocked resources (<a href="https://codeberg.org/nobody/LocalCDN/issues/1309">#1309</a>)</li>
</ul>
<p class='release-date'>2023-01-21 (v2.6.45)</p>
<p>Updated</p>
<ul>
<li>ngx-bootstrap v10.2.0 -> v10.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1285">#1285</a>)</li>
<li>Chart.js v4.1.1 -> v4.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1286">#1286</a>)</li>
<li>video.js v8.0.2 -> v8.0.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1287">#1287</a>)</li>
<li>libphonenumber-js v1.10.15 -> v1.10.18 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1288">#1288</a>)</li>
<li>react-router v6.6.1 -> v6.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1289">#1289</a>)</li>
<li>instantsearch.js v4.49.3 -> v4.49.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1290">#1290</a>)</li>
<li>d3 v7.8.0 -> v7.8.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1291">#1291</a>)</li>
<li>lightgallery v2.7.0 -> v2.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1292">#1292</a>)</li>
<li>hls.js v1.2.9 -> v1.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1293">#1293</a>)</li>
<li>axios v1.2.2 -> v1.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1297">#1297</a>)</li>
<li>videojs-seek-buttons v4.0.1 -> v4.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1299">#1299</a>)</li>
<li>Swiper v8.4.5 -> v8.4.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1300">#1300</a>)</li>
<li>alpinejs v3.10.5 -> v3.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1301">#1301</a>)</li>
<li>slider-pro v1.6.1 -> v1.6.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1303">#1303</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>twitter-bootstrap v4.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1284">#1284</a>)</li>
<li>simplebar v6.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1298">#1298</a>)</li>
<li>anchor-js v5.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1304">#1304</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>Direct call of Google Material Icons (<a href="https://codeberg.org/nobody/LocalCDN/issues/1295">#1295</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Allow Fork-Awesome in Chromium (<a href="https://codeberg.org/nobody/LocalCDN/issues/1296">#1296</a>)</li>
<li>SimpleLog extended for iframes (<a href="https://codeberg.org/nobody/LocalCDN/issues/1302">#1302</a>)</li>
</ul>
<p class='release-date'>2023-01-05 (v2.6.44)</p>
<p>Updated</p>
<ul>
<li>bootswatch v5.2.2 -> v5.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1250">#1250</a>)</li>
<li>bootstrap-table v1.21.1 -> v1.21.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1251">#1251</a>)</li>
<li>paginationjs v2.4.1 -> v2.5.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1252">#1252</a>)</li>
<li>findify-bundle v7.1.77 -> v7.1.80 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1253">#1253</a>)</li>
<li>jquery v3.6.1 -> v3.6.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1256">#1256</a>)</li>
<li>ngx-bootstrap v10.0.0 -> v10.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1257">#1257</a>)</li>
<li>instantsearch.js v4.49.1 -> v4.49.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1260">#1260</a>)</li>
<li>dygraph v2.1.0 -> v2.1.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1261">#1261</a>)</li>
<li>slider-pro v1.6.0 -> v1.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1262">#1262</a>)</li>
<li>Chart.js v4.0.1 -> v4.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1263">#1263</a>)</li>
<li>react-router v6.4.5 -> v6.6.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1266">#1266</a>)</li>
<li>algoliasearch v4.14.2 -> v4.14.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1267">#1267</a>)</li>
<li>d3 v7.7.0 -> v7.8.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1268">#1268</a>)</li>
<li>axios v1.2.1 -> v1.2.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1269">#1269</a>)</li>
<li>gsap v3.11.3 -> v3.11.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1270">#1270</a>)</li>
<li>bootstrap-icons v1.10.2 -> v1.10.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1273">#1273</a>)</li>
<li>bodymovin v5.10.0 -> v5.10.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1276">#1276</a>)</li>
<li>mdb-ui-kit v6.0.1 -> v6.1.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1279">#1279</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>nprogress v0.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1254">#1254</a>)</li>
<li>tensorflow v4.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1264">#1264</a>)</li>
<li>ScrollMagic (Bundle) v2.0.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1277">#1277</a>)</li>
<li>vue-router v3.6.5 & v4.1.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1278">#1278</a>)</li>
<li>twitter-bootstrap v4.1.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1280">#1280</a>)</li>
<li>instantsearch.css v8.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1281">#1281</a>)</li>
<li>URI.js v1.19.11 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1282">#1282</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>HTML filter active by default (<a href="https://codeberg.org/nobody/LocalCDN/issues/1249">#1249</a>)</li>
<li>Bootstrap: Redirect alpha and beta versions to the stable version (<a href="https://codeberg.org/nobody/LocalCDN/issues/1265">#1265</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>unpkg.com/cdn.jsdelivr.net -> aos@next (<a href="https://codeberg.org/nobody/LocalCDN/issues/1272">#1272</a>)</li>
</ul>
<p>Fixed</p>
<ul>
<li>Filename Chart.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1275">#1275</a>)</li>
</ul>
<p>Removed</p>
<ul>
<li>findify (<a href="https://codeberg.org/nobody/LocalCDN/issues/1283">#1283</a>)</li>
</ul>
<p class='release-date'>2022-12-10 (v2.6.43)</p>
<p>Updated</p>
<ul>
<li>axios v1.2.0 -> v1.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1238">#1238</a>)</li>
<li>tinymce v6.3.0 -> v6.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1239">#1239</a>)</li>
<li>paginationjs v2.3.0 -> v2.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1240">#1240</a>)</li>
<li>findify-bundle v7.1.75 -> v7.1.77 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1241">#1241</a>)</li>
<li>react-router v6.4.4 -> v6.4.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1242">#1242</a>)</li>
<li>dayjs v1.11.6 -> v1.11.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1243">#1243</a>)</li>
<li>hls.js v1.2.8 -> v1.2.9 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1244">#1244</a>)</li>
<li>libphonenumber-js v1.10.14 -> v1.10.15 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1247">#1247</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>ngx-bootstrap v10.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1245">#1245</a>)</li>
<li>swagger-ui v4.15.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1246">#1246</a>)</li>
</ul>
<p>Fixed</p>
<ul>
<li>Sync: settings are not saved locally (<a href="https://codeberg.org/nobody/LocalCDN/issues/1236">#1236</a>)</li>
</ul>
<p class='release-date'>2022-12-04 (v2.6.42)</p>
<p>Fixed</p>
<ul>
<li>Settings import function (<a href="https://codeberg.org/nobody/LocalCDN/issues/1234">#1234</a>)</li>
</ul>
<p class='release-date'>2022-12-04 (v2.6.41)</p>
<p>Updated</p>
<ul>
<li>twitter-bootstrap v5.2.2 -> v5.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1211">#1211</a>)</li>
<li>axios v1.1.3 -> v1.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1212">#1212</a>)</li>
<li>socket.io v4.5.3 -> v4.5.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1213">#1213</a>)</li>
<li>video.js v7.21.0 -> v7.21.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1214">#1214</a>)</li>
<li>Swiper v8.4.4 -> v8.4.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1215">#1215</a>)</li>
<li>mdb-ui-kit v6.0.0 -> v6.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1216">#1216</a>)</li>
<li>videojs-seek-buttons v4.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1218">#1218</a>)</li>
<li>video.js v8.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1219">#1219</a>)</li>
<li>tinymce v6.2.0 -> v6.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1220">#1220</a>)</li>
<li>findify-bundle v7.1.68 -> v7.1.75 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1221">#1221</a>)</li>
<li>highlight.js v11.6.0 -> v11.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1222">#1222</a>)</li>
<li>bootbox.js v6.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1224">#1224</a>)</li>
<li>bodymovin v5.9.6 -> v5.10.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1225">#1225</a>)</li>
<li>react-intl v6.2.1 -> v6.2.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1227">#1227</a>)</li>
<li>hls.js v1.2.7 -> v1.2.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1228">#1228</a>)</li>
<li>react-router v6.3.0 -> v6.4.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1231">#1231</a>)</li>
<li>paginationjs v2.1.5 -> v2.3.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1232">#1232</a>)</li>
<li>d3 v7.6.1 -> v7.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1235">#1235</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>knockout v3.4.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1210">#1210</a>)</li>
<li>knockout.mapping v2.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1210">#1210</a>)</li>
<li>MathJax v3 tex-chtml.js (<a href="https://codeberg.org/nobody/LocalCDN/issues/1229">#1229</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Block all non GET requests to CDN (<a href="https://codeberg.org/nobody/LocalCDN/issues/1226">#1226</a>)</li>
<li>Settings import function improved (<a href="https://codeberg.org/nobody/LocalCDN/issues/1234">#1234</a>)</li>
</ul>
<p>Fixed</p>
<ul>
<li>Synchronize settings (<a href="https://codeberg.org/nobody/LocalCDN/issues/1223">#1223</a>)</li>
</ul>
<p class='release-date'>2022-11-19 (v2.6.40)</p>
<p>Updated</p>
<ul>
<li>mdb-ui-kit v6.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1193">#1193</a>)</li>
<li>react-redux v8.0.4 -> v8.0.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1195">#1195</a>)</li>
<li>instantsearch.js v4.49.0 -> v4.49.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1196">#1196</a>)</li>
<li>hls.js v1.2.4 -> v1.2.7 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1197">#1197</a>)</li>
<li>vue v3.2.41 -> v3.2.45 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1198">#1198</a>)</li>
<li>bootstrap-icons v1.9.1 -> v1.10.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1199">#1199</a>)</li>
<li>findify-bundle v7.1.63 -> v7.1.68 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1202">#1202</a>)</li>
<li>font-awesome v6.2.0 -> v6.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1203">#1203</a>)</li>
<li>Chart.js v4.0.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1204">#1204</a>)</li>
<li>search-insights v2.2.1 -> v2.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1205">#1205</a>)</li>
<li>element-ui v2.15.10 -> v2.15.12 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1206">#1206</a>)</li>
<li>plyr v3.7.2 -> v3.7.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1207">#1207</a>)</li>
<li>leaflet v1.9.2 -> v1.9.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1208">#1208</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>MathJax: latest.js v2.7.5 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1194">#1194</a>)</li>
<li>angular.js v1.0.8 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1200">#1200</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>cdn.jsdelivr.net -> select2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1201">#1201</a>)</li>
</ul>
<p class='release-date'>2022-10-29 (v2.6.39)</p>
<p>Updated</p>
<ul>
@ -1269,7 +2005,6 @@
<li>Updated: instantsearch.js v4.16.1 -> v4.18.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/330">#330</a>)</li>
<li>Updated: lazysizes v5.3.0 -> v5.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/331">#331</a>)</li>
</ul>
</p>
<p class='release-date'>2021-03-15 (v2.6.3)</p>
<ul>
<li>Fixed: Check status code in HTML filter (<a href="https://codeberg.org/nobody/LocalCDN/issues/277">#277</a>)</li>
@ -1318,8 +2053,6 @@
</ul>
</li>
</ul>
</p>
<p class='release-date'>2021-02-20 (v2.6.2)</p>
<ul>
<li>Rejected by Mozilla</li>

View File

@ -20,7 +20,7 @@
* Updates
*/
var updates = {};
let updates = {};
/**

Some files were not shown because too many files have changed in this diff Show More