Przeglądaj źródła

Merge branch 'edge' into dependabot/github_actions/github-actions-1bb795a278

Alexandre Alapetite 6 godzin temu
rodzic
commit
029055ccf5

+ 1 - 1
.editorconfig

@@ -1,4 +1,4 @@
-# http://EditorConfig.org
+# https://editorconfig.org/
 
 [*]
 charset = utf-8

+ 1 - 2
.github/workflows/tests.yml

@@ -17,7 +17,7 @@ jobs:
 
   tests:
     name: tests
-    # https://github.com/actions/virtual-environments
+    # https://github.com/actions/runner-images
     runs-on: ubuntu-26.04
 
     steps:
@@ -105,7 +105,6 @@ jobs:
       run: GOBIN=${PWD}/bin/ go install mvdan.cc/sh/v3/cmd/shfmt@v3.8.0
 
     - name: Check shell script syntax
-      # shellcheck is pre-installed https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md
       run: ./tests/shellchecks.sh
 
     - name: Install hadolint

+ 9 - 1
.lycheeignore

@@ -7,7 +7,6 @@
 # URLs used in source code / tests
 ^http://www\.blogger\.com/feeds/1/posts
 ^https://www\.blogger\.com/feeds/1/posts
-^http://a\.bc/
 ^https://web\.archive\.org/save/~LINK~
 ^https://www\.facebook\.com/sharer\.php\?u=~LINK~&t=~TITLE~
 ^https://archive\.ph/submit/\?url=~LINK~
@@ -17,6 +16,10 @@
 ^https://www\.journalduhacker\.net/stories/new\?url=~LINK~&title=~TITLE~
 ^https://www\.linkedin\.com/shareArticle\?url=~LINK~&title=~TITLE~&source=FreshRSS
 ^https://www\.xing\.com/spi/shares/new\?url=~LINK
+^http://a\.bc/
+^http://rss-bridge\.lan/
+^https://198\.51\.100\.7/
+^https://198\.51\.100\.7:8443/
 
 # URLs that likely exist, but will be published in the future
 ^https://github\.com/FreshRSS/FreshRSS/security/advisories/.*
@@ -42,13 +45,18 @@
 ^https://alternativeto\.net/
 ^https://www\.patreon\.com/
 ^https://www\.reddit\.com/
+^https://fiat-tux\.fr/
 
 # Works normally in the browser, but not in lychee
 ^https://www\.vsta\.org/andy/
 ^https://gnusocial\.rocks/
 ^https://friendi\.ca/
 
+# TODO: Temporarily broken
+^https://install-app\.yunohost\.org/\?app=freshrss
+
 # TODO: Dead?
 ^https://template\.run\.claw\.cloud/\?openapp=system-fastdeploy%3FtemplateName%3Dfreshrss
 ^https://amaury\.carrade\.eu/
 ^https://www\.pimsnel\.com/
+^https://fsf\.org/

+ 6 - 6
CREDITS.md

@@ -19,7 +19,7 @@ People are sorted by name so please keep this order.
 * [Aidi Stan](https://github.com/aidistan): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:aidistan), [Web](https://aidistan.site/)
 * [akine](https://github.com/akine): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:akine)
 * [ale-rt](https://github.com/ale-rt): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ale-rt)
-* [Alejandro Borrego](https://github.com/abp002): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:abp002), [Web](https://abp002.github.io/)
+* [Alejandro Borrego](https://github.com/abp002): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:abp002), [Web](https://alejandroborrego.dev/)
 * [Alexander Steinhöfer](https://github.com/lx-s): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:lx-s), [Web](https://lx-s.de/)
 * [Alexandre Alapetite](https://github.com/Alkarex): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Alkarex), [Web](https://alexandre.alapetite.fr/)
 * [Alexis Degrugillier](https://github.com/aledeg): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:aledeg)
@@ -44,7 +44,7 @@ People are sorted by name so please keep this order.
 * [Axel Leroy](https://github.com/axeleroy): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:axeleroy), [Web](https://axel.leroy.sh/)
 * [azlux](https://github.com/azlux): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:azlux), [Web](https://azlux.fr/)
 * [Balázs Keresztury](https://github.com/belidzs/): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:belidzs), [Web](https://www.keresztury.com/)
-* [Bartłomiej Dmitruk](https://github.com/hackerman70000): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hackerman70000), [Web](https://www.bartek-dmitruk.com/)
+* [Bartłomiej Dmitruk](https://github.com/hackerman70000): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hackerman70000), [Web](https://www.bartekdmitruk.com/)
 * [Bartosz Taudul](https://github.com/wolfpld): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:wolfpld), [Web](https://wolf.nereid.pl/)
 * [beerisgood](https://github.com/beerisgood): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:beerisgood)
 * [Ben Passmore](https://github.com/passbe): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:passbe), [Web](https://passbe.com/)
@@ -174,7 +174,7 @@ People are sorted by name so please keep this order.
 * [Jules Bertholet](https://github.com/Jules-Bertholet): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Jules-Bertholet)
 * [Julien Herr](https://github.com/juherr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:juherr), [Web](https://juherr.dev/)
 * [Julien Reichardt](https://github.com/j8r): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:j8r)
-* [Julien-Pierre Avérous](https://github.com/javerous): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:javerous), [Web](https://www.sourcemac.com/)
+* [Julien-Pierre Avérous](https://github.com/javerous): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:javerous), [Web](https://www.sourcemac.fr/)
 * [junkfood](https://github.com/JunkFood02): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:JunkFood02)
 * [Justin Tracey](https://github.com/jtracey): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jtracey), [Web](https://unsuspicious.click)
 * [Kachelkaiser](https://github.com/Kachelkaiser): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Kachelkaiser)
@@ -223,13 +223,13 @@ People are sorted by name so please keep this order.
 * [matthew-neavling](https://github.com/matthew-neavling): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:matthew-neavling)
 * [Maurice Schleußinger](https://github.com/maurice-schleussinger): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:maurice-schleussinger)
 * [Max Oberrauch](https://github.com/Juice-de-Orange): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Juice-de-Orange)
-* [May Meow](https://github.com/MayMeow): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:MayMeow), [Web](https://maymeow.com)
+* [May Meow](https://github.com/MayMeow): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:MayMeow), [Web](https://www.maymeow.com)
 * [McFev](https://github.com/McFev): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:McFev)
 * [Mejans](https://github.com/Mejans): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Mejans)
 * [Melvyn Laïly](https://github.com/yaurthek): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:yaurthek), [Web](https://x2a.yt/)
 * [Michael Meier](https://github.com/mmeier86): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mmeier86)
 * [Michael Thomas](https://github.com/nanos): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nanos), [Web](https://michael.thms.uk)
-* [Michael Wagner](https://github.com/michi-onl): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:michi-onl), [Web](https://about.michi.onl/)
+* [Michael Wagner](https://github.com/michi-onl): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:michi-onl), [Web](https://michi.onl/)
 * [Miguel Sánchez](https://github.com/msdlr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:msdlr)
 * [Miika Launiainen](https://gitlab.com/miicat): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:miicat), [Web](https://miicat.eu/)
 * [Mike Vanbuskirk](https://github.com/codevbus): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:codevbus) [Web](https://mikevanbuskirk.io/)
@@ -300,7 +300,7 @@ People are sorted by name so please keep this order.
 * [Raineer](https://github.com/Raineer): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Raineer)
 * [Ramazan Sancar](https://github.com/ramazansancar): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ramazansancar), [Web](https://www.ramazansancar.com.tr/)
 * [Ramón Cutanda](https://github.com/rcutanda): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rcutanda)
-* [Rasmus Larsen](https://github.com/rlrs): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rlrs), [Web](https://rlrs.github.io/)
+* [Rasmus Larsen](https://github.com/rlrs): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rlrs), [Web](https://rlrs.dk/)
 * [raspo](https://github.com/raspo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:raspo), [Web](https://raspo.dev/)
 * [rdmitr](https://github.com/rdmitr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rdmitr)
 * [Rebecca Scott](https://github.com/becdetat): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:becdetat), [Web](https://becdetat.com)

+ 1 - 1
Docker/README.md

@@ -446,7 +446,7 @@ docker compose down --remove-orphans --volumes
 ## Run in production
 
 For production, it is a good idea to use a reverse proxy on your host server, providing HTTPS.
-A dedicated solution such as [Træfik](https://traefik.io/traefik/) is recommended
+A dedicated solution such as [Træfik](https://traefik.io/traefik) is recommended
 (or see [alternative options below](#alternative-reverse-proxy-configurations)).
 
 You must first chose a domain (DNS) or sub-domain, e.g. `freshrss.example.net`, and set it in your `.env` file:

+ 1 - 1
README.fr.md

@@ -64,7 +64,7 @@ FreshRSS n’est fourni avec aucune garantie.
 	* Fonctionne même sur un Raspberry Pi 1 avec des temps de réponse < 1s (testé sur 150 flux, 22k articles)
 * Serveur Web Apache2.4+ (recommandé), ou nginx, lighttpd (non testé sur les autres)
 * PHP 8.1+
-	* Extensions requises : [cURL](https://www.php.net/curl), [DOM](https://www.php.net/dom), [JSON](https://www.php.net/json), [XML](https://www.php.net/xml), [session](https://www.php.net/session), [ctype](https://www.php.net/ctype)
+	* Extensions requises : [cURL](https://www.php.net/curl), [DOM](https://www.php.net/dom), [JSON](https://www.php.net/json), [XML](https://www.php.net/xml), [session](https://www.php.net/features.sessions), [ctype](https://www.php.net/ctype)
 	* Extensions recommandées : [PDO_SQLite](https://www.php.net/pdo-sqlite) (pour l’export/import), [GMP](https://www.php.net/gmp) (pour accès API sur plateformes < 64 bits), [IDN](https://www.php.net/intl.idn) (pour les noms de domaines internationalisés), [mbstring](https://www.php.net/mbstring) (pour le texte Unicode), [iconv](https://www.php.net/iconv) (pour conversion d’encodages), [ZIP](https://www.php.net/zip) (pour import/export), [zlib](https://www.php.net/zlib) (pour les flux compressés)
 	* Extension pour base de données : [PDO_PGSQL](https://www.php.net/pdo-pgsql) ou [PDO_SQLite](https://www.php.net/pdo-sqlite) ou [PDO_MySQL](https://www.php.net/pdo-mysql)
 * PostgreSQL 10+ ou SQLite ou MariaDB 10.6+ ou MySQL 8.0+

+ 2 - 2
README.md

@@ -87,7 +87,7 @@ and the [list of releases](https://github.com/FreshRSS/FreshRSS/releases).
 | | | |
 |-|-|-|
 | [<img src="https://www.docker.com/app/uploads/2022/03/horizontal-logo-monochromatic-white.png" width="160" alt="Docker" />](./Docker/) | [<img src="https://install-app.yunohost.org/install-with-yunohost.png" width="160" alt="YunoHost" />](https://install-app.yunohost.org/?app=freshrss) | [<img src="https://elest.io/images/logos/deploy-to-elestio-btn.png" width="160" alt="Elestio" />](https://elest.io/open-source/freshrss) |
-| [<img src="https://cloudron.io/img/button.svg" width="160" alt="Cloudron" />](https://cloudron.io/button.html?app=org.freshrss.cloudronapp) | [<img src="https://www.pikapods.com/static/run-button-34.svg" width="160" alt="PikaPods" />](https://www.pikapods.com/pods?run=freshrss) | [<img src="https://zeabur.com/button.svg" width="160" alt="Zeabur" />](https://zeabur.com/templates/MD4TRW) |
+| [<img src="https://www.cloudron.io/img/button.svg" width="160" alt="Cloudron" />](https://www.cloudron.io/button.html?app=org.freshrss.cloudronapp) | [<img src="https://www.pikapods.com/static/run-button-34.svg" width="160" alt="PikaPods" />](https://www.pikapods.com/pods?run=freshrss) | [<img src="https://zeabur.com/button.svg" width="160" alt="Zeabur" />](https://zeabur.com/templates/MD4TRW) |
 | [<img src="https://raw.githubusercontent.com/ClawCloud/Run-Template/refs/heads/main/Run-on-ClawCloud.svg" width="160" alt="ClawCloud" />](https://template.run.claw.cloud/?openapp=system-fastdeploy%3FtemplateName%3Dfreshrss) | [<img src="https://assets.hostinger.com/vps/deploy.svg" width="160" alt="Hostinger" />](https://www.hostinger.com/docker-hosting?compose_url=https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/freshrss/docker-compose.yml) | |
 
 For more cloud hosting options, see the [list of cloud providers](https://freshrss.org/cloud-providers.html) or [Chatons](https://www.chatons.org/search/by-service?field_software_target_id=269) (a directory of ethical hosting providers).
@@ -199,7 +199,7 @@ and [Fever API](https://freshrss.github.io/FreshRSS/en/developers/06_Fever_API.h
 | [lire](https://lireapp.com/)                                                          | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ?            | ?        | ?                             | ?                  | ?         | ?     | ?       | ?           |
 | [Unread](https://www.goldenhillsoftware.com/unread/)                            | iOS         | –                                                            | ✓✓                   | Fever            | ✓            | ?        | ?                             | ?                  | ✓         | –     | –       | –           |
 | [Fiery Feeds](https://voidstern.net/fiery-feeds)         | iOS         | –                                                            | ✓✓                   | Fever            | ?            | ?        | ?                             | ?                  | ?         | –     | –       | –           |
-| [Netnewswire](https://ranchero.com/netnewswire/)                                      | iOS, macOS  | [✓](https://github.com/Ranchero-Software/NetNewsWire)        | Work in progress       | GReader          | ✓            | ?        | ?                             | ?                  | ✓         | –     | –       | ✓           |
+| [Netnewswire](https://netnewswire.com/)                                      | iOS, macOS  | [✓](https://github.com/Ranchero-Software/NetNewsWire)        | Work in progress       | GReader          | ✓            | ?        | ?                             | ?                  | ✓         | –     | –       | ✓           |
 
 # Included libraries
 

+ 20 - 20
composer.lock

@@ -244,11 +244,11 @@
         },
         {
             "name": "phpstan/phpstan",
-            "version": "2.2.16",
+            "version": "2.3.2",
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/46a6d9060e5a7763adfcc21ebcb8b504ebdbcb92",
-                "reference": "46a6d9060e5a7763adfcc21ebcb8b504ebdbcb92",
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/18bc23a0682f08591529377d271b5c4dfe9ed1dd",
+                "reference": "18bc23a0682f08591529377d271b5c4dfe9ed1dd",
                 "shasum": ""
             },
             "require": {
@@ -304,7 +304,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2026-09-25T09:31:51+00:00"
+            "time": "2026-10-24T11:36:00+00:00"
         },
         {
             "name": "phpstan/phpstan-deprecation-rules",
@@ -359,22 +359,22 @@
         },
         {
             "name": "phpstan/phpstan-phpunit",
-            "version": "2.0.19",
+            "version": "2.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpstan/phpstan-phpunit.git",
-                "reference": "33a190a5e8e69fd18308443a80d4f43f42d43604"
+                "reference": "8d16b8478e523a47f8c02e83bce8981b5b5a3b03"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/33a190a5e8e69fd18308443a80d4f43f42d43604",
-                "reference": "33a190a5e8e69fd18308443a80d4f43f42d43604",
+                "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/8d16b8478e523a47f8c02e83bce8981b5b5a3b03",
+                "reference": "8d16b8478e523a47f8c02e83bce8981b5b5a3b03",
                 "shasum": ""
             },
             "require": {
                 "phar-io/version": "^3.2",
                 "php": "^7.4 || ^8.0",
-                "phpstan/phpstan": "^2.2.6"
+                "phpstan/phpstan": "^2.3.0"
             },
             "conflict": {
                 "phpunit/phpunit": "<7.0"
@@ -411,27 +411,27 @@
             ],
             "support": {
                 "issues": "https://github.com/phpstan/phpstan-phpunit/issues",
-                "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.0.19"
+                "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.1.1"
             },
-            "time": "2026-09-26T17:07:06+00:00"
+            "time": "2026-10-06T18:12:32+00:00"
         },
         {
             "name": "phpstan/phpstan-strict-rules",
-            "version": "2.0.12",
+            "version": "2.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpstan/phpstan-strict-rules.git",
-                "reference": "2bc5ae19ae965663b62ac907ee6342c3903ec93b"
+                "reference": "24ec51589f896f048d0d36de373d993b5cf71786"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/2bc5ae19ae965663b62ac907ee6342c3903ec93b",
-                "reference": "2bc5ae19ae965663b62ac907ee6342c3903ec93b",
+                "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/24ec51589f896f048d0d36de373d993b5cf71786",
+                "reference": "24ec51589f896f048d0d36de373d993b5cf71786",
                 "shasum": ""
             },
             "require": {
                 "php": "^7.4 || ^8.0",
-                "phpstan/phpstan": "^2.1.52"
+                "phpstan/phpstan": "^2.3"
             },
             "require-dev": {
                 "php-parallel-lint/php-parallel-lint": "^1.2",
@@ -463,9 +463,9 @@
             ],
             "support": {
                 "issues": "https://github.com/phpstan/phpstan-strict-rules/issues",
-                "source": "https://github.com/phpstan/phpstan-strict-rules/tree/2.0.12"
+                "source": "https://github.com/phpstan/phpstan-strict-rules/tree/2.1.0"
             },
-            "time": "2026-07-19T07:24:06+00:00"
+            "time": "2026-10-01T21:30:37+00:00"
         },
         {
             "name": "phpunit/php-code-coverage",
@@ -1971,7 +1971,7 @@
     ],
     "aliases": [],
     "minimum-stability": "stable",
-    "stability-flags": [],
+    "stability-flags": {},
     "prefer-stable": false,
     "prefer-lowest": false,
     "platform": {
@@ -2006,5 +2006,5 @@
     "platform-overrides": {
         "php": "8.1"
     },
-    "plugin-api-version": "2.6.0"
+    "plugin-api-version": "2.9.0"
 }

+ 20 - 21
docs/Gemfile.lock

@@ -90,7 +90,7 @@ GEM
       coffee-script-source (~> 1.12)
     jekyll-commonmark (1.4.0)
       commonmarker (~> 0.22)
-    jekyll-default-layout (0.2.0)
+    jekyll-default-layout (0.2.1)
       jekyll (>= 3.0, < 5.0)
     jekyll-gist (1.5.0)
       octokit (~> 4.2)
@@ -98,16 +98,15 @@ GEM
       jekyll (>= 3.4, < 5.0)
       octokit (>= 4, < 7, != 4.4.0)
     jekyll-i18n_tags (1.0.0)
-    jekyll-optional-front-matter (0.3.3)
+    jekyll-optional-front-matter (0.3.4)
       jekyll (>= 3.0, < 5.0)
-    jekyll-readme-index (0.4.0)
+    jekyll-readme-index (0.5.1)
       jekyll (>= 3.0, < 5.0)
-      kramdown-parser-gfm (~> 1.1)
-    jekyll-relative-links (0.8.0)
+    jekyll-relative-links (0.9.1)
       jekyll (>= 3.3, < 5.0)
     jekyll-sass-converter (3.1.0)
       sass-embedded (~> 1.75)
-    jekyll-titles-from-headings (0.5.4)
+    jekyll-titles-from-headings (0.5.7)
       jekyll (>= 3.3, < 5.0)
     jekyll-watch (2.2.1)
       listen (~> 3.0)
@@ -138,36 +137,36 @@ GEM
     rexml (3.4.4)
     rouge (4.7.0)
     safe_yaml (1.0.5)
-    sass-embedded (1.105.1)
+    sass-embedded (1.106.1)
       google-protobuf (~> 4.31)
       rake (~> 13.3)
-    sass-embedded (1.105.1-aarch64-linux-android)
+    sass-embedded (1.106.1-aarch64-linux-android)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-aarch64-linux-gnu)
+    sass-embedded (1.106.1-aarch64-linux-gnu)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-aarch64-linux-musl)
+    sass-embedded (1.106.1-aarch64-linux-musl)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-arm-linux-androideabi)
+    sass-embedded (1.106.1-arm-linux-androideabi)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-arm-linux-gnueabihf)
+    sass-embedded (1.106.1-arm-linux-gnueabihf)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-arm-linux-musleabihf)
+    sass-embedded (1.106.1-arm-linux-musleabihf)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-arm64-darwin)
+    sass-embedded (1.106.1-arm64-darwin)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-riscv64-linux-android)
+    sass-embedded (1.106.1-riscv64-linux-android)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-riscv64-linux-gnu)
+    sass-embedded (1.106.1-riscv64-linux-gnu)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-riscv64-linux-musl)
+    sass-embedded (1.106.1-riscv64-linux-musl)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-x86_64-darwin)
+    sass-embedded (1.106.1-x86_64-darwin)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-x86_64-linux-android)
+    sass-embedded (1.106.1-x86_64-linux-android)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-x86_64-linux-gnu)
+    sass-embedded (1.106.1-x86_64-linux-gnu)
       google-protobuf (~> 4.31)
-    sass-embedded (1.105.1-x86_64-linux-musl)
+    sass-embedded (1.106.1-x86_64-linux-musl)
       google-protobuf (~> 4.31)
     sawyer (0.9.3)
       addressable (>= 2.3.5)

+ 1 - 1
docs/en/admins/08_FeedUpdates.md

@@ -24,7 +24,7 @@ docker run ... \
 
 ## Cron as a trigger
 
-You’ll need to check the Cron documentation for your specific distribution ([Debian/Ubuntu](https://help.ubuntu.com/community/CronHowto), [Red Hat/Fedora/CentOS](https://fedoraproject.org/wiki/Administration_Guide_Draft/Cron), [Slackware](https://docs.slackware.com/slackbook:process_control#cron), [Gentoo](https://wiki.gentoo.org/wiki/Cron), [Arch Linux](https://wiki.archlinux.org/title/Cron) …) to make sure you set the Cron job correctly.
+You’ll need to check the Cron documentation for your specific distribution ([Debian/Ubuntu](https://ubuntu.com/server/docs/how-to/backups/back-up-using-shell-scripts/#run-with-cron), [Red Hat/Fedora/CentOS](https://fedoraproject.org/wiki/Administration_Guide_Draft/Cron), [Slackware](https://docs.slackware.com/slackbook:process_control#cron), [Gentoo](https://wiki.gentoo.org/wiki/Cron), [Arch Linux](https://wiki.archlinux.org/title/Cron) …) to make sure you set the Cron job correctly.
 
 It’s advisable that you run the Cron job as your Web server user (often `www-data`).
 

+ 1 - 1
docs/en/admins/18_Pocket-ID.md

@@ -3,7 +3,7 @@
 **[Pocket ID](https://github.com/pocket-id/pocket-id)** is a simple OIDC provider that allows users to authenticate with their passkeys to your services.
 (See [FreshRSS’ OpenID Connect documentation](16_OpenID-Connect.md)).
 
-You can find more information in the [Pocket ID documentation](https://pocket-id.org/docs).
+You can find more information in the [Pocket ID documentation](https://pocket-id.org/docs/introduction).
 
 ## 1. Create OAuth2/OpenID Provider
 

+ 1 - 1
docs/en/users/08_sharing_services.md

@@ -29,7 +29,7 @@ FreshRSS has the option to share links with a bunch of services.
 | Nextcloud Bookmarks | Selfhosted bookmark app for Nextcloud                | [Website](https://apps.nextcloud.com/apps/bookmarks) | |
 | Omnivore          | A complete, open source read-it-later solution for people who love to read. | [Website](https://omnivore.app/) | |
 | Pinboard          | Social Bookmarking for Introverts                    | [Website](https://pinboard.in/) | |
-| Pinterest         | Is an image sharing and social media service designed to enable saving and discovery of information| [Website](https://pinterest.com/), [Wikipedia](https://en.wikipedia.org/wiki/Pinterest) | |
+| Pinterest         | Is an image sharing and social media service designed to enable saving and discovery of information| [Website](https://www.pinterest.com/), [Wikipedia](https://en.wikipedia.org/wiki/Pinterest) | |
 | Raindrop.io       | All-in-one bookmark manager                          | [Website](https://raindrop.io/)| |
 | Reddit            | A network of communities where people can dive into their interests, hobbies and passions| [Website](https://www.reddit.com/), [Wikipedia](https://en.wikipedia.org/wiki/Reddit)| |
 | Shaarli           | Self-hosted minimalist bookmark manager and link sharing service | [Website](https://shaarli.readthedocs.io/) | |

+ 21 - 21
package-lock.json

@@ -9,14 +9,14 @@
 			"devDependencies": {
 				"@eslint/js": "^10.0.1",
 				"@stylistic/stylelint-plugin": "^5.3.1",
-				"eslint": "^10.11.0",
-				"globals": "^17.12.0",
+				"eslint": "^10.13.0",
+				"globals": "^17.13.0",
 				"markdownlint-cli2": "^0.23.3",
-				"neostandard": "^0.14.0-next.1",
+				"neostandard": "^0.14.1",
 				"rtlcss": "^4.3.0",
-				"stylelint": "^17.15.0",
+				"stylelint": "^17.16.0",
 				"stylelint-config-recommended": "^18.0.0",
-				"stylelint-order": "^8.1.1",
+				"stylelint-order": "^8.1.2",
 				"svgo": "^4.1.0"
 			},
 			"engines": {
@@ -1484,9 +1484,9 @@
 			}
 		},
 		"node_modules/eslint": {
-			"version": "10.11.0",
-			"resolved": "https://registry.npmjs.org/eslint/-/eslint-10.11.0.tgz",
-			"integrity": "sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==",
+			"version": "10.13.0",
+			"resolved": "https://registry.npmjs.org/eslint/-/eslint-10.13.0.tgz",
+			"integrity": "sha512-UohDjD4zSzEwhf58M3O7vc/ycc8O1I7dNlhtD0WxE8Px8EHNJKtUwzBqrzeGhisRuv2ag4sAYswszCJRgKXYUg==",
 			"dev": true,
 			"license": "MIT",
 			"workspaces": [
@@ -1973,9 +1973,9 @@
 			}
 		},
 		"node_modules/globals": {
-			"version": "17.12.0",
-			"resolved": "https://registry.npmjs.org/globals/-/globals-17.12.0.tgz",
-			"integrity": "sha512-cezEd/DTyyht9cvSSURyygXPfy04GtWO/5e6ZPvH7fCtjKz9PYOmuawphw1Ctd1f6C+5JypXfGD7ahNMXvevBA==",
+			"version": "17.13.0",
+			"resolved": "https://registry.npmjs.org/globals/-/globals-17.13.0.tgz",
+			"integrity": "sha512-RwMTC61u7hrG3ZJMkZQOK4JLJrKS8QtoTii63EmWvFXHqycY9FObBJQCbsLxSO8kjKhWE5kV1GC+Vb1g3RI0Zg==",
 			"dev": true,
 			"license": "MIT",
 			"engines": {
@@ -3183,9 +3183,9 @@
 			"license": "MIT"
 		},
 		"node_modules/neostandard": {
-			"version": "0.14.0-next.1",
-			"resolved": "https://registry.npmjs.org/neostandard/-/neostandard-0.14.0-next.1.tgz",
-			"integrity": "sha512-3RhU6fyvgOS+NnKylWjdkeSqQjUtfWRg9tVjaPGBZ6paEtOSGf/HU7WCjG/Kk6WPzuzDwXTAo7rLh34A6OCSGw==",
+			"version": "0.14.1",
+			"resolved": "https://registry.npmjs.org/neostandard/-/neostandard-0.14.1.tgz",
+			"integrity": "sha512-cEGi7ADMWJRTcdsZeDXCyA1ZeJLQPBq6HP9z9CE1ysu+CJOKYt59ADG0BT6ETonuF6xNXZbMiNc8S8prYys4aQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -3884,9 +3884,9 @@
 			"license": "ISC"
 		},
 		"node_modules/stylelint": {
-			"version": "17.15.0",
-			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.15.0.tgz",
-			"integrity": "sha512-mWIkesYQvQjf4Kvdeu9ns0IL8/K/wtjaGxPqsPd6DlLZvaQxGysJsocxUDrBcyHQ5VleAk4uSMat4yMrVED7PA==",
+			"version": "17.16.0",
+			"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.16.0.tgz",
+			"integrity": "sha512-ejlWnbJ13x1GU32+zZXa6sYQJsKKkwSdv2B4rAdO3OWdEmvhSJKcXi5pOphQYSzyaj1kXpuGJr7pcMBNfDIuPw==",
 			"dev": true,
 			"funding": [
 				{
@@ -3967,13 +3967,13 @@
 			}
 		},
 		"node_modules/stylelint-order": {
-			"version": "8.1.1",
-			"resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-8.1.1.tgz",
-			"integrity": "sha512-LqsEB6VggJuu5v10RtkrQsBObcdwBE7GuAOlwfc/LR3VL/w8UqKX2BOLIjhyGt0Gne/njo7gRNGiJAKhfmPMNw==",
+			"version": "8.1.2",
+			"resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-8.1.2.tgz",
+			"integrity": "sha512-A+bxnIMVmzkWr6KlIwHnjQqTWBXPlIixoJa962BpK1N5bkhq3lXhKHjs4fY8ecooktjd3B3TtRiqoLSj+MfbxQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"postcss": "^8.5.8",
+				"postcss": "^8.5.28",
 				"postcss-sorting": "^10.0.0"
 			},
 			"engines": {

+ 5 - 5
package.json

@@ -37,14 +37,14 @@
 	"devDependencies": {
 		"@eslint/js": "^10.0.1",
 		"@stylistic/stylelint-plugin": "^5.3.1",
-		"eslint": "^10.11.0",
-		"globals": "^17.12.0",
+		"eslint": "^10.13.0",
+		"globals": "^17.13.0",
 		"markdownlint-cli2": "^0.23.3",
-		"neostandard": "^0.14.0-next.1",
+		"neostandard": "^0.14.1",
 		"rtlcss": "^4.3.0",
-		"stylelint": "^17.15.0",
+		"stylelint": "^17.16.0",
 		"stylelint-config-recommended": "^18.0.0",
-		"stylelint-order": "^8.1.1",
+		"stylelint-order": "^8.1.2",
 		"svgo": "^4.1.0"
 	},
 	"rtlcssConfig": {