diff --git a/AUTHORS b/AUTHORS index 74d42f84..78ff6db8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,9 +1,9 @@ - 1216 ArthurHoaro - 456 nodiscc + 1221 ArthurHoaro + 518 nodiscc 405 VirtualTam 56 Sébastien Sauvage - 27 dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - 19 Keith Carangelo + 31 Keith Carangelo + 28 dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 16 Luce Carević 15 Florian Eula 14 Emilien Klein @@ -11,21 +11,18 @@ 9 Lucas Cimon 9 Willi Eggeling 8 Christophe HENRY - 6 Immánuel Fodor - 6 YFdyh000 - 6 kalvn + 7 kalvn 6 B. van Berkum 6 Immánuel Fodor 6 YFdyh000 - 6 kalvn 6 llune 5 Mark Schmitz 5 Sébastien NOBILI 4 Alexandre Alapetite - 4 yude 4 David Sferruzza 4 yude 3 Agurato + 3 Andreas Waschinski <25221082+waschinski@users.noreply.github.com> 3 Christoph Stoettner 3 Olivier 3 Teromene @@ -43,24 +40,18 @@ 2 Miloš Jovanović 2 Neros 2 Qwerty + 2 Robert Riebisch <15858666+bttrx@users.noreply.github.com> 2 Sebastien Wains 2 Stephen Muth 2 Timo Van Neerden 2 flow.gunso 2 julienCXX - 2 Knah Tsaeb 2 philipp-r 2 pips 2 prog-it 2 trailjeep - 1 leyrer - 1 locness3 <37651007+locness3@users.noreply.github.com> - 1 owen bell <66233223+xfnw@users.noreply.github.com> - 1 philipp - 1 rfolo9li <50079896+rfolo9li@users.noreply.github.com> - 1 sprak3000 - 1 yudejp - 1 Rajat Hans + 1 7Ds7 <7Ds7@users.noreply.github.com> + 1 Adrien Oliva 1 Adrien le Maire 1 Ajabep 1 Alexis J @@ -85,6 +76,7 @@ 1 Franck Kerbiriou 1 Gary Marigliano 1 Hazhar Galeh <78073762+hazhargaleh@users.noreply.github.com> + 1 Henschi 1 Hg 1 Jens Kubieziel 1 Jonathan Amiez @@ -97,11 +89,14 @@ 1 Loïc Carr 1 Mark Gerarts 1 Marsup + 1 Martin Puppe + 1 Mickaël Schoentgen 1 Nicolas Friedli 1 Nicolas Le Gaillart 1 Paul van den Burg 1 Rajat Hans 1 Sbgodin + 1 Thibaud CANALE 1 ToM 1 TsT 1 agentcobra @@ -119,5 +114,6 @@ 1 owen bell <66233223+xfnw@users.noreply.github.com> 1 philipp 1 rfolo9li <50079896+rfolo9li@users.noreply.github.com> + 1 sokai 1 sprak3000 1 yudejp diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a4a675e..d1fbab17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,66 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## [v0.13.0](https://github.com/shaarli/Shaarli/releases/tag/v0.12.3) - 2023-11-22 +------------------------ + +## [v0.14.0](https://github.com/shaarli/Shaarli/releases/tag/v0.14.0) - UNRELEASED + +### Added + +* doc: add third party plugins clickcounter and targetblank by @waschinski in https://github.com/shaarli/Shaarli/pull/2063 +* doc: add shaarli-offen plugin to Community & related software by @waschinski in https://github.com/shaarli/Shaarli/pull/2064 +* doc: add Shaanti browser extension to Community & related software by @7Ds7 in https://github.com/shaarli/Shaarli/pull/2078 +* doc: add image-upload plugin to Community & related software by @bttrx in https://github.com/shaarli/Shaarli/pull/2097 +* doc: add shaarli2bluesky plugin to Community & related software by @bttrx in https://github.com/shaarli/Shaarli/pull/2097 +* doc: server configuration: allow accessing and caching SVG assets by @nodiscc in https://github.com/shaarli/Shaarli/pull/2074 +* doc: usage: document "Sticky" mode by @kalvn in https://github.com/shaarli/Shaarli/pull/2111 +* doc: troubleshooting: add solution for `Allowed memory size of xxx bytes exhausted` by @nodiscc in https://github.com/shaarli/Shaarli/pull/2083 +* doc: usage: add opensearch/browser search engine integration instructions by @nodiscc in https://github.com/shaarli/Shaarli/pull/2096 +* doc: troubleshooting: list more cases in which title retrieval fails by @nodiscc in https://github.com/shaarli/Shaarli/pull/2060 + +### Changed + +* frontend: improve QR code CSP compliance by @thican in https://github.com/shaarli/Shaarli/pull/2103 +* docker: update base alpine linux docker image to v3.19.4 by @nodiscc in https://github.com/shaarli/Shaarli/pull/2051, https://github.com/shaarli/Shaarli/pull/2054, https://github.com/shaarli/Shaarli/pull/2067, https://github.com/shaarli/Shaarli/pull/2088 +* github actions: don't attempt to push docker image from forks by @nodiscc in https://github.com/shaarli/Shaarli/pull/2043 +* doc: changelog: minor style tweaks/standardization/spacing by @nodiscc in https://github.com/shaarli/Shaarli/pull/2106 +* github actions: run daily trivy security scans on release docker image, composer/yarn dependencies by @nodiscc in https://github.com/shaarli/Shaarli/pull/2047 + +### Fixed + +* PHP 8.x intl incompatibility: failback C locale with en_US by @ArthurHoaro in https://github.com/shaarli/Shaarli/pull/2044 +* fix description retrieval when page charset is not UTF-8 by @sokai in https://github.com/shaarli/Shaarli/pull/1992 +* fix metadata fetching for YouTube URLs by @puppe in https://github.com/shaarli/Shaarli/pull/2069 +* fix wrong date format when language is not english (Alpine icu package split) by @henschi in https://github.com/shaarli/Shaarli/pull/2102 +* doc: fix typos in special data example by @bttrx in https://github.com/shaarli/Shaarli/pull/2098 +* doc: fix broken link to 3rd party plugins by @BoboTiG in https://github.com/shaarli/Shaarli/pull/2059 +* ensure tags are unique when renaming by @kcaran in https://github.com/shaarli/Shaarli/pull/2086 +* doc: fix link to v0.13.0 release by @nodiscc in https://github.com/shaarli/Shaarli/pull/2107 +* tools: update trivy security scanner to v0.56.2 by @nodiscc in https://github.com/shaarli/Shaarli/pull/2070, https://github.com/shaarli/Shaarli/pull/2072, https://github.com/shaarli/Shaarli/pull/2089, https://github.com/shaarli/Shaarli/pull/2100 + +### Removed + +* remove `updates.check_updates_branch` setting by @ArthurHoaro in https://github.com/shaarli/Shaarli/pull/1971 +* doc: Remove remaining references to `stable` branch by @ArthurHoaro in https://github.com/shaarli/Shaarli/pull/2042 +* doc: contributing: IRC no longer available @nodiscc in https://github.com/shaarli/Shaarli/pull/2082 +* doc: community and related software: remove urlextern plugin (archived project) by @nodiscc in https://github.com/shaarli/Shaarli/pull/2077 + +### Security + +* frontend: update vulnerable npm dependencies (`npm audit fix`) by @kcaran in https://github.com/shaarli/Shaarli/pull/2087, @nodiscc in https://github.com/shaarli/Shaarli/pull/2056, https://github.com/shaarli/Shaarli/pull/2101 + +**Full Changelog**: https://github.com/shaarli/Shaarli/compare/v0.13.0...v0.14.0 + +------------------------ + +## [v0.13.0](https://github.com/shaarli/Shaarli/releases/tag/v0.13.0) - 2023-11-22 > Major changes: > - Security: Fix XSS vulnerability in tag search > - Drop support for PHP 7.1, 7.2 and 7.3 ### Added + * Docker build: add ARM64 platform and bump Github action version by @ArthurHoaro in https://github.com/shaarli/Shaarli/pull/1965 * github actions: build OCI images that contain both amd64 and armv7 by @nodiscc in https://github.com/shaarli/Shaarli/pull/1962 * Expose tags_separator config through /info API by @amadeous in https://github.com/shaarli/Shaarli/pull/1997 @@ -21,6 +74,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). * doc: troubleshooting: automatic title retrieval fails when it is set by javascript by @nodiscc in https://github.com/shaarli/Shaarli/pull/2037 ### Changed + * doc: update release procedure (merge the latest release to the release branch) + use the release branch for latest release version detection by @nodiscc in https://github.com/shaarli/Shaarli/pull/1960 * Update german translation by @bschwede in https://github.com/shaarli/Shaarli/pull/1969 * Update Server-configuration.md by @reinboldg in https://github.com/shaarli/Shaarli/pull/1973 @@ -32,6 +86,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). * replace mkdocs with sphinx/myst-parser for HTML documentation generation, documentation improvements by @nodiscc in https://github.com/shaarli/Shaarli/pull/2025 ### Fixed + * Makefile: Use GNU tar if available by @ArthurHoaro in https://github.com/shaarli/Shaarli/pull/1957 * Support: ignore disk_free_space if the function is unavailable by @ArthurHoaro in https://github.com/shaarli/Shaarli/pull/1970 * Documentation: fix broken link to 3rd party plugins by @ArthurHoaro in https://github.com/shaarli/Shaarli/pull/1975 @@ -39,13 +94,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/). * doc: fix mkdocs build warnings/relative links by @nodiscc in https://github.com/shaarli/Shaarli/pull/2015 * correct usage of hyphens in all occurences of 'super fast, database-free' by @nodiscc in https://github.com/shaarli/Shaarli/pull/2003 - ### Removed + * Drop support for PHP 7.1, 7.2 and 7.3 by @ArthurHoaro in https://github.com/shaarli/Shaarli/pull/1958 * doc: themes: remove unmaintained themes by @nodiscc in https://github.com/shaarli/Shaarli/pull/2030 * doc: remove bountysource badge by @nodiscc in https://github.com/shaarli/Shaarli/pull/2035 ### Security + * Fix XSS vulnerability in tag search by @ArthurHoaro in https://github.com/shaarli/Shaarli/pull/2039 * tools: run trivy vulnerability scanner on the 'latest' docker image by @nodiscc in https://github.com/shaarli/Shaarli/pull/1980 * github actions: fix value of TRIVY_TARGET_DOCKER_IMAGE by @nodiscc in https://github.com/shaarli/Shaarli/pull/1989 @@ -55,6 +111,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). **Full Changelog**: https://github.com/shaarli/Shaarli/compare/v0.12.2...v0.12.3 +------------------------ + ## [v0.12.2](https://github.com/shaarli/Shaarli/releases/tag/v0.12.2) - 2023-03-18 > Docker: use `ghcr.io/shaarli/shaarli` as Docker image instead of `shaarli/shaarli`. @@ -153,6 +211,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - remove the markdown plugin from the plugins list - remove duplicate "general" key in example config.php.json +------------------------ + ## [v0.12.1](https://github.com/shaarli/Shaarli/releases/tag/v0.12.1) - 2020-11-12 > nginx ([#1628](https://github.com/shaarli/Shaarli/pull/1628)) and Apache ([#1630](https://github.com/shaarli/Shaarli/pull/1630)) configurations have been reviewed. It is recommended that you @@ -160,6 +220,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). > Users using official Docker image will receive updated configuration automatically. ### Added + - Bulk creation of bookmarks - Server administration tool page (and install page requirements) - Support any tag separator, not just whitespaces @@ -175,6 +236,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Add strict types for bookmarks management ### Changed + - Improve regex and performances to extract HTML metadata (title, description, etc.) - Support using Shaarli without URL rewriting (prefix URL with `/index.php/`) - Improve the "Manage tags" tools page @@ -189,6 +251,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Apply PSR-12 on code base, and add CI check using PHPCS ### Fixed + - Compatiliby issue on login with PHP 7.1 - Japanese translations update - Redirect to referrer after bookmark deletion @@ -199,13 +262,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Docker-compose: fix SSL certificate + add parameter for Docker tag ### Removed + - `config.json.php` new lines in prefix/suffix to prevent issues with Windows PHP +------------------------ + ## [v0.12.0](https://github.com/shaarli/Shaarli/releases/tag/v0.12.0) - 2020-10-13 **Save you `data/` folder before updating!** ### Added + - Thumbnailer: add soundcloud.com to list of common media domains - Markdown rendering is now integrated into Shaarli core - Add autofocus on tag cloud filter input @@ -227,6 +294,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - REST API: compatibility with ionos Apache's headers ### Changed + - Introduce Bookmark object and Service layer - Save bookmark as objects in the datastore - Handle bookmark as objects across the whole codebase (except templates and plugins) @@ -240,6 +308,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Default theme: Make tag cloud/list views buttons more obvious ### Fixed + - Undefined index: thumbnail in daily page - Undefined index: thumbnail on OpenGraph headers - Undefined index: updated on linklist @@ -265,24 +334,31 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - docker-compose.yml: pin traefik image to 1.7-alpine ### Removed + - Markdown plugin - Docs: - emojione & twemoji removed - Makefile: remove static_analysis_summary from all: target - doc/Makefile: remove references to composer update +------------------------ + ## [v0.11.1](https://github.com/shaarli/Shaarli/releases/tag/v0.11.1) - 2019-08-03 Release to fix broken Docker build on the latest version. ### Fixed + - Fixed Docker build - Fixed a few documentation broken links - Fixed broken label in configuration page ### Added + - More accessibility improvements +------------------------ + ## [v0.11.0](https://github.com/shaarli/Shaarli/releases/tag/v0.11.0) - 2019-07-27 **Shaarli no longer officially support PHP 5.6 and PHP 7.0 as they've reached end of life.** @@ -290,6 +366,7 @@ Release to fix broken Docker build on the latest version. **Shaarli classes now use namespace, third party plugins need to update.** ### Added + - Add optional PHP extension to composer suggestions. - composer: enforce PHP security advisories - phpDocumentor configuration and make target @@ -302,6 +379,7 @@ Release to fix broken Docker build on the latest version. - Plugin to override default template colors ### Changed + - Shaarli now uses namespaces for its classes. - Rewrite IP ban management - Default template: slightly lighten visited link color @@ -310,6 +388,7 @@ Release to fix broken Docker build on the latest version. - Daily - display the current day instead of the previous one ### Fixed + - Do not check the IP address with session protection disabled - API: update test regexes to comply with PCRE2 - Optimize and cleanup imports @@ -325,17 +404,26 @@ Release to fix broken Docker build on the latest version. - Persist sticky status on bookmark update ### Removed + - Doxygen configuration - redirector setting - QRCode link to an external service +------------------------ + ## [v0.10.4](https://github.com/shaarli/Shaarli/releases/tag/v0.10.4) - 2019-04-16 + ### Fixed + - Fix thumbnails disabling if PHP GD is not installed - Fix a warning if links sticky status isn't set +------------------------ + ## [v0.10.3](https://github.com/shaarli/Shaarli/releases/tag/v0.10.3) - 2019-02-23 + ### Added + - Add OpenGraph metadata tags on permalink page - Add CORS headers to REST API reponses - Add a button to toggle checkboxes of displayed links @@ -345,6 +433,7 @@ Release to fix broken Docker build on the latest version. - Add a button to set links as sticky ### Changed + - Update French translation - Refactor the documentation homepage - Bump netscape-bookmark-parser @@ -353,6 +442,7 @@ Release to fix broken Docker build on the latest version. - Cleanup and refactor lint tooling ### Fixed + - Fix input size for dropdown search form - Fix history for bulk link deletion - Fix thumbnail requests @@ -361,14 +451,19 @@ Release to fix broken Docker build on the latest version. - Fix lint errors and improve PSR-1 and PSR-2 compliance ### Removed + - Remove Firefox Share documentation +------------------------ + ## [v0.10.2](https://github.com/shaarli/Shaarli/releases/tag/v0.10.2) - 2018-08-11 ### Fixed - Docker build +------------------------ + ## [v0.10.1](https://github.com/shaarli/Shaarli/releases/tag/v0.10.1) - 2018-08-11 ### Changed @@ -389,10 +484,14 @@ Release to fix broken Docker build on the latest version. - Firefox Social API shaare has been removed +------------------------ + ## [v0.10.0](https://github.com/shaarli/Shaarli/releases/tag/v0.10.0) - 2018-07-28 + **PHP 5.5 compatibility has been dropped.** Shaarli now requires at least PHP 5.6. ### Added + - Add a filter to display public links only - Add PHP 7.2 support - Add German translation @@ -408,6 +507,7 @@ Release to fix broken Docker build on the latest version. - Provide a Docker Compose example ### Changed + - Use web-thumbnailer to retrieve thumbnails (see #687) - Use a specific page title in all pages - Daily: run hooks before creating the columns @@ -427,11 +527,13 @@ Release to fix broken Docker build on the latest version. - Docker: expose a volume for the thumbnail cache ### Removed + - Drop support for PHP 5.5 - Remove vendored front-end libraries - Remove environment specific .gitignore entries ### Fixed + - Ignore the case while checking DOCTYPE during the file import - Fix removal of on=... attributes from html generated from Markdown - httpd: always forward the 'Authorization' header @@ -443,33 +545,48 @@ Release to fix broken Docker build on the latest version. - fix and simplify Dockerfile for armhf ### Security + - Update `.htaccess` to prevent accessing Git metadata when using a Git-based installation +------------------------ ## [v0.9.7](https://github.com/shaarli/Shaarli/releases/tag/v0.9.7) - 2018-06-20 + ### Changed + - Build the Docker images from the local Git sources +------------------------ ## [v0.9.6](https://github.com/shaarli/Shaarli/releases/tag/v0.9.6) - 2018-03-25 + ### Changed + - htaccess: prevent accessing resources not managed by SCM - htaccess: always forward the 'Authorization' HTTP header +------------------------ ## [v0.9.5](https://github.com/shaarli/Shaarli/releases/tag/v0.9.5) - 2018-02-02 + ### Fixed + - Fix a warning happening when `php-intl` is not installed on the system - Fix warnings happening when updating from legacy SebSauvage version +------------------------ + ## [v0.9.4](https://github.com/shaarli/Shaarli/releases/tag/v0.9.4) - 2018-01-30 + ### Added + - Enable translations: Shaarli is now also available in French. Other language translations are welcome! - Add EditorConfig configuration - Add favicons for mobile devices - Add Alpine Linux arm32v7 Dockerfiles (master, latest) ### Changed + - Do not write bookmark edition history during file imports (performance) - Migrate Docker images (master, latest) to Alpine Linux - Improve unitary tests and code coverage @@ -481,41 +598,51 @@ Release to fix broken Docker build on the latest version. - Improve page title retrieval performances ### Removed + - Remove redirector setting from Configure page ### Fixed + - Fix broken links in the documentation - Enable access to `data/user.css` (Apache 2.2 & 2.4) - Don't URL encode description links if parameter `redirector.encode_url` is set to false - Fix an issue preventing the Save button to appear for plugin parameters +------------------------ ## [v0.9.3](https://github.com/shaarli/Shaarli/releases/tag/v0.9.3) - 2018-01-04 + **XSS vulnerability fixed. Please update.** ## Security + - Fix an XSS (cross-site-scripting) vulnerability in `index.php` - [CVE-2018-5249](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5249) +------------------------ ## [v0.9.2](https://github.com/shaarli/Shaarli/releases/tag/v0.9.2) - 2017-10-07 **Major security issue fixed. Please update.** ### Added + - Tag search now supports wildcards `*` - New setting `privacy.force_login` which can be used with `privacy.hide_public_links` to redirect anonymous users to the login page. - New setting `general.default_note_title` used to override default `Note:` title prefix for notes. - Add a version hash for asset loading to prevent browser's cache issue ### Changed + - The "Remember me" checkbox is unchecked by default - The default value of the "Remember me" checkbox can be configured under `data/config.json.php` ### Removed + - Remove obsolete PHP magic quote support ### Fixed + - Generates a permalink URL if the URL is set to blank - Replace links to the old GitHub wiki with ReadTheDocs URIs - Use single quotes in the note bookmarklet @@ -536,6 +663,7 @@ Release to fix broken Docker build on the latest version. - Fixed reflected XSS vulnerability introduced in v0.9.1, discovered by @chb9 ([CVE-2017-15215](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15215)). +------------------------ ## [v0.9.1](https://github.com/shaarli/Shaarli/releases/tag/v0.9.1) - 2017-08-23 @@ -544,6 +672,7 @@ The documentation has been migrated to ReadTheDocs: - edits are submitted as pull requests ### Added + - Allow bulk link deletion - Display subtags in the tag cloud - Add an endpoint to refresh the token @@ -553,6 +682,7 @@ The documentation has been migrated to ReadTheDocs: - Add creation date when editing a link ### Changed + - Documentation: - Generate static HTML documentation with [mkdocs](http://www.mkdocs.org/) - Host documentation on [ReadTheDocs](http://www.mkdocs.org/) @@ -571,6 +701,7 @@ The documentation has been migrated to ReadTheDocs: - Set Travis environment to `precise` until the new `trusty` environment is ready ### Removed + - Remove dead Pubsubhubbub code - Disable the GitHub wiki (see changed/documentation) - Remove Docker `dev` image and resources @@ -578,6 +709,7 @@ The documentation has been migrated to ReadTheDocs: - Remove the bottom "Sort by" menu in `tag.list.html` ### Fixed + - Fix file existence check for `user.css` - Limit selection to 2k characters when using the bookmarklet - Fix JS error `uncaught type error` @@ -586,8 +718,10 @@ The documentation has been migrated to ReadTheDocs: - Make sure that the tag exists before altering/removing it ### Security + - Add a whitelist for protocols for URLs +------------------------ ## [v0.9.0](https://github.com/shaarli/Shaarli/releases/tag/v0.9.0) - 2017-05-07 @@ -599,6 +733,7 @@ configuration to enable URL rewriting, see: **WARNING**: Shaarli now requires PHP 5.5+. ### Added + - REST API v1 - [Slim](https://www.slimframework.com/) framework - [JSON Web Token](https://jwt.io/introduction/) (JWT) authentication @@ -620,6 +755,7 @@ configuration to enable URL rewriting, see: - History mechanism which logs link addition/modification/deletion ### Changed + - Docker: enable nginx URL rewriting for the REST API - Theming: - Move `user.css` to the `data` folder @@ -644,10 +780,12 @@ configuration to enable URL rewriting, see: ### Removed + - PHP < 5.5 compatibility - ReadItYourself plugin ### Fixed + - Ignore generated release tarballs - Hide default port when behind a reverse proxy - Fix a typo in the Markdown plugin description @@ -663,47 +801,72 @@ configuration to enable URL rewriting, see: - Keep tags after login redirection ### Security + - Markdown plugin: escape HTML entities by default +------------------------ ## [v0.8.7](https://github.com/shaarli/Shaarli/releases/tag/v0.8.7) - 2018-06-20 + ### Changed + - Build the Docker image from the local Git sources ### Removed + - Disable PHP 5.3 Travis build (unsupported) +------------------------ ## [v0.8.6](https://github.com/shaarli/Shaarli/releases/tag/v0.8.6) - 2018-02-19 + ### Changed + - Run version check tests against the 'stable' branch +------------------------ ## [v0.8.5](https://github.com/shaarli/Shaarli/releases/tag/v0.8.5) - 2018-01-04 + **XSS vulnerability fixed. Please update.** ## Security + - Fix an XSS (cross-site-scripting) vulnerability in `index.php` - [CVE-2018-5249](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5249) +------------------------ + ## [v0.8.4](https://github.com/shaarli/Shaarli/releases/tag/v0.8.4) - 2017-03-04 + ### Security + - Markdown plugin: escape HTML entities by default +------------------------ + ## [v0.8.3](https://github.com/shaarli/Shaarli/releases/tag/v0.8.3) - 2017-01-20 + ### Fixed + - PHP 7.1 compatibility: add ConfigManager parameter to anti-bruteforce function call in login template. +------------------------ + ## [v0.8.2](https://github.com/shaarli/Shaarli/releases/tag/v0.8.2) - 2016-12-15 + ### Fixed - Editing a link created before the new ID system would change its permalink. +------------------------ + ## [v0.8.1](https://github.com/shaarli/Shaarli/releases/tag/v0.8.1) - 2016-12-12 > Note: this version will create an automatic backup of your database if anything goes wrong. ### Added + - Add CHANGELOG.md to track the whole project's history - Enable Composer cache for Travis builds - Save the last edition date for shaares and use it in Atom/RSS feeds @@ -715,6 +878,7 @@ configuration to enable URL rewriting, see: - Meta tag to *not* send the referrer to external resources. ### Changed + - Link ID complete refactoring: - Links now have a numeric ID instead of dates - Short URLs are now created once and can't change over time (previous URL are kept) @@ -732,6 +896,7 @@ configuration to enable URL rewriting, see: - Docker: explicitly set the maximum file upload size to 10 MiB ### Fixed + - Fix the server `` value in Atom/RSS feeds - Plugins: - Tools: only display parameter description when it exists @@ -745,21 +910,26 @@ configuration to enable URL rewriting, see: - ATOM feed: remove new line between content tag and data ### Security + - Allow whitelisting trusted IPs, else continue banning clients upon login failure +------------------------ ## [v0.8.0](https://github.com/shaarli/Shaarli/releases/tag/v0.8.0) - 2016-10-12 + Shaarli now uses [Composer](https://getcomposer.org/) to handle its dependencies. Please use our release archives, or follow the [installation documentation](https://github.com/shaarli/Shaarli/wiki/Download-and-Installation). ### Added + - Composer is required to resolve Shaarli's PHP dependencies - Shaarli now supports `#hashtags` - Firefox social share now uses selected text as a description - Plugin parameters can have a description in each plugin's `.meta` file ### Changed + - Configuration is now stored as a JSON file - Previous configuration format will be automatically updated (PHP -> JSON) - Shaarli now defaults to cURL to fetch shaare titles @@ -769,27 +939,38 @@ Please use our release archives, or follow the - Rewrite bookmark import using a generic Netscape parser ### Removed + - Shaarli no longer references Delicious in its description ### Deprecated + - Shaarli configuration is not held as PHP globals anymore ### Fixed + - Ignore case for tags in autocompletion and cloud tag - Avoid generating empty tags - Fix a Dockerfile syntax error ### Security + - Fixed a bug preventing to change password - XSRF token now generated each time a page is rendered +------------------------ ## [v0.7.1](https://github.com/shaarli/Shaarli/releases/tag/v0.7.1) - 2017-03-08 + ### Security + - Markdown plugin: escape HTML entities by default +------------------------ + ## [v0.7.0](https://github.com/shaarli/Shaarli/releases/tag/v0.7.0) - 2016-05-14 + ### Added + - Adds an option to encode redirector URL parameter - Atom/RSS feeds now support Markdown formatting, and plugins in general - Markdown: use the tag `.nomarkdown` to avoid markdown processing @@ -797,6 +978,7 @@ Please use our release archives, or follow the - Show a private links counter ### Changed + - Allow to use the bookmarklet in Firefox reader view (URL clean up) - Improve tagcloud font size - Improve title retrieving @@ -805,9 +987,11 @@ Please use our release archives, or follow the - Refactor Atom/RSS feed generation ### Removed + - Remove delicious from Shaarli description ### Fixed + - Fix bad login redirections causing a 404 in a few cases - Fix tagcloud font-size with French locale - Don't display empty tags in tag search @@ -816,21 +1000,28 @@ Please use our release archives, or follow the - Fix a bug preventing to import notes in browsers from bookmarks export - Don't redirect to ?post if ?addlink is reached while logged out +------------------------ ## [v0.6.5](https://github.com/shaarli/Shaarli/releases/tag/v0.6.5) - 2016-03-02 + ### Fixed + - Fixes a regression generating an unnecessary warning (language in HTTP request) - Fixes a bug where going through multiple reverse proxy could generate malformed URL - Markdown: Fixes a bug where empty description blocks were displayed +------------------------ ## [v0.6.4](https://github.com/shaarli/Shaarli/releases/tag/v0.6.4) - 2016-02-28 + ### Added + - Add an updater class to automate user data upgrades - Plugin admin page: adds a label for checkboxes and improve name display - Plugin Wallabag: API version can be specified in plugin admin page ### Changed + - Better tag cloud sorting, including special chars (`a > E > é > z`) - Autolocale now sets all locale categories, not just time - Use PHP's DateTime object instead of custom functions @@ -847,17 +1038,22 @@ Please use our release archives, or follow the - tags starting with a dot `.` will be hidden unless the user is logged in ### Fixed + - Fix Markdown plugin escape issues (code/quote blocks, etc.) - Link description aren't trimmed anymore to allow markdown format at the beginning of a shaare - Fixes plugin admin redirection page on error ### Security + - Fix a bug where non initialized variables were causing a warning - Fix a bug where saving a link after edit could cause a 404 error +------------------------ ## [v0.6.3](https://github.com/shaarli/Shaarli/releases/tag/v0.6.3) - 2016-01-31 + ### Added + - Plugins administration page - Markdown plugin added for shaares description - Docker: Dockerfile is now in the main git repository and improved @@ -865,6 +1061,7 @@ Please use our release archives, or follow the - Travis: include file permission checks ### Changed + - Auto retrieve of title know works with websites (HTTPS, follow redirections, etc.) - 404 page is now handled in a template - Date in log files updated to work with fail2ban @@ -873,47 +1070,62 @@ Please use our release archives, or follow the - Logging function refactoring ### Fixed + - Fix a bug where renaming a tag was causing a 404 - Fix a bug allowing to search blank terms - Fix a bug preventing to remove a tag with special chars when searching +------------------------ ## [v0.6.2](https://github.com/shaarli/Shaarli/releases/tag/v0.6.2) - 2015-12-23 + ### Changed + - Plugins: new footer hook - Plugins: improve QR code - Cleanup templates ### Fixed + - Plugins: use the actual link URL to generate QR codes - Templates: missing/erroneous page titles - Templates: missing variables resulting in PHP errors ### Security + - Fix invalid file permissions (remove executable bit) +------------------------ ## [v0.6.1](https://github.com/shaarli/Shaarli/releases/tag/v0.6.1) - 2015-12-01 + ### Added + - Add OpenSearch support - Add a Doxygen makefile target - Tools: add fine-grained file/directory permission checks (installation) ### Changed + - Tools: check the 'stable' branch for new versions (updates) - Cleanup: introduce an `ApplicationUtils` class ### Removed + - Cleanup: remove `json_encode()` function (built-in since PHP 5.2) ### Fixed + - Auto-complete more than one tag - Bookmarklet: support titles containing quotes - URL encode links when setting a redirector +------------------------ ## [v0.6.0](https://github.com/shaarli/Shaarli/releases/tag/v0.6.0) - 2015-11-18 + ### Added + - Introduce a plugin system - Add a demo_plugin - Add plugins: @@ -925,18 +1137,24 @@ Please use our release archives, or follow the - wallabag ### Changed + - Coding style ### Fixed + - Adding a new link now returns the correct anchor in the URL - Set default file permissions +------------------------ ## [v0.5.4](https://github.com/shaarli/Shaarli/releases/tag/v0.5.4) - 2015-09-15 + ### Added + - HTTPS: support being served behing an SSL-enabled proxy ### Changed + - HTTP/Server utilities: refactor & add test coverage - Project & documentation: - improve/rewrite `README.md` @@ -944,57 +1162,79 @@ Please use our release archives, or follow the - update `index.php` header ### Fixed + - PHP session IDs: handle hash algorithms and bits per char representations +------------------------ ## [v0.5.3](https://github.com/shaarli/Shaarli/releases/tag/v0.5.3) - 2015-09-02 + ### Fixed + - Fix a bug that could prevent user to login +------------------------ ## [0.5.3](https://github.com/shaarli/Shaarli/releases/tag/0.5.3) - 2015-09-02 + This release has been YANKED as it points to a tag that does not follow our naming convention. Please use `v0.5.3` instead ### Fixed + - Allow uppercase letters in PHP sessionid format +------------------------ ## [v0.5.2](https://github.com/shaarli/Shaarli/releases/tag/v0.5.2) - 2015-08-31 + ### Added + - Add PHP 7 to Travis platforms ### Changed + - Also extract HTTPS page metadata (title) ### Fixed + - Fix regression preventing to load LinkDB info when adding an existing link ### Security + - Fix Full Path Disclosure upon cookie forgery +------------------------ ## [v0.5.1](https://github.com/shaarli/Shaarli/releases/tag/v0.5.1) - 2015-08-17 + ### Added + - Add a link to the shaarli/shaarli DockerHub repository ### Changed + - Update local documentation - Improve timezone detection at installation - Improve feed cache handling - Improve URL cleanup for new links ### Fixed + - Fix 404 after editing a link while being logged out +------------------------ ## [v0.5.0](https://github.com/shaarli/Shaarli/releases/tag/v0.5.0) - 2015-07-31 + ### Added + - Add Firefox Social API - Start code refactoring: - add unit test coverage - add Travis integration ### Changed + - Search/Filter by tag fieds can now be accessed quickly with the `Tab` key - Update documentation - Remove duplicate tags in links @@ -1004,6 +1244,7 @@ This release has been YANKED as it points to a tag that does not follow our nami - refactor Config, LinkDB, TimeZone, Utils ### Fixed + - Fix locale handling - Fix note URLs - Fix page redirections @@ -1012,17 +1253,24 @@ This release has been YANKED as it points to a tag that does not follow our nami - Restore compatibility with PHP 5.3 ### Security + - Fix links not being hidden when `HIDE_PUBLIC_LINKS` is set +------------------------ ## [v0.0.45beta](https://github.com/shaarli/Shaarli/releases/tag/v0.0.45beta) - 2015-03-16 + ### Fixed + - Fix improperly displayed Unicode character - Fix incorrect font size for "Add link" input field +------------------------ ## [v0.0.44beta](https://github.com/shaarli/Shaarli/releases/tag/v0.0.44beta) - 2015-03-15 + ### Added + - Add a Makefile to run static code checkers - Add local documentation (help link in page footer) - Use awesomplete library for autocompletion @@ -1030,6 +1278,7 @@ This release has been YANKED as it points to a tag that does not follow our nami - New 'Add Note' bookmarklet to immediatly open a note (text post) compose window ### Changed + - Theme improvements and cleanup (menu, search fields, icons, linklist...) - Allow 'javascript:' links sharing (bookmarklets) - Make update check optional @@ -1038,20 +1287,26 @@ This release has been YANKED as it points to a tag that does not follow our nami - Code cleanup ### Removed + - Remove jQuery ### Security + - Don't disclose version to visitors (shaarli-version.txt) +------------------------ ## [v0.0.43beta](https://github.com/shaarli/Shaarli/releases/tag/v0.0.43beta) - 2015-02-20 + ### Added + - Title button link URL is now configurable - RainTPL's TMP and TPL directories path are now configurable - Displayed URLs for each link are now clickable links - Show links timestamps in Daily view ### Changed + - Automatically prepend "Note:" to title of self-posts (posts not pointing to an URL) - Make ATOM toolbar button optional (`SHOW_ATOM` configuration variable) - Optional archive.org links for each Shaarli link (`ARCHIVE_ORG` option) @@ -1062,6 +1317,7 @@ This release has been YANKED as it points to a tag that does not follow our nami - Updates to README and footer ### Fixed + - Fix problems when running Shaarli behind a reverse proxy (invalid RSS feed URL) - Update check now checks against the community fork version - Include `cache/`, `data/`, `pagecache/` and `tmp/` directories in the repository @@ -1075,12 +1331,16 @@ This release has been YANKED as it points to a tag that does not follow our nami - Search now works with Unicode characters ### Security + - Do not leak server's PHP version and Shaarli's full path on errors - Prevent Shaarli from sending a lot of duplicate cookies +------------------------ ## [v0.0.42beta](https://github.com/shaarli/Shaarli/releases/tag/v0.0.42beta) - 2014-07-27 + ### Added + - Add QRCode Javascript library - Allow importing bookmarks with the same timestamp (hack) - Allow putting a description in the bookmarklet URL @@ -1088,6 +1348,7 @@ This release has been YANKED as it points to a tag that does not follow our nami - Highlight search results ### Changed + - Improve 'Stay signed in' behaviour - Improve `smallHash()` - Refactor QRCode generation @@ -1095,20 +1356,26 @@ This release has been YANKED as it points to a tag that does not follow our nami - Update CSS ### Removed + - Remove jQuery from almost all pages ### Fixed + - Fix overlapping tags - Fix field foxus in the bookmarklet - Fix error message when `data/` is not writable - Fix HTML generation ### Security + - Fix XSS flaw +------------------------ ## [v0.0.41beta](https://github.com/shaarli/Shaarli/releases/tag/v0.0.41beta) - 2013-03-08 + ### Added + - Add HTTPS to the allowed protocols - Add support for magnet links in link descriptions - Allow creating new links as private by default @@ -1117,10 +1384,12 @@ This release has been YANKED as it points to a tag that does not follow our nami - Check session support before installation ### Changed + - Improve token security - RSS feed: allow inverting links/permalinks ### Fixed + - Fix display issues during installation - Fix popup redirection after login failure - Fix RSS formatting for Thunderbird @@ -1128,41 +1397,54 @@ This release has been YANKED as it points to a tag that does not follow our nami - Fix cache purge ### Security + - Fix login issue with WebKit browsers +------------------------ ## [v0.0.40beta](https://github.com/shaarli/Shaarli/releases/tag/v0.0.40beta) - 2013-02-26 + Initial release on GitHub. +------------------------ ## [v0.0.40beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2012-08-24 + ### Added + - Flickr thumbnail now also support albums, galleries and users - Add a configuration option to disable session cookie protection Check this if your get disconnected often or your IP address changes often ### Removed + - Removed the xml comment in cached RSS/ATOM feed (although W3C-compliant, this may cause problems in some feed readers) ### Fixed + - A bug in the RSS cache would present old items as new in some cases - A small bug (non-initialized variable) in page cache cleaning - Proper "Nothing found" message when search returns no results - No more 404 error when searching with empty input - Flickr thumbnails are back (Flickr has made some changes to their domains) +------------------------ + ## [v0.0.39beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2012-08-10 + ### Added - A cache for RSS feed, ATOM feed and Daily RSS feed, because these URLs are massively hammered. Cache is automatically purged whenever the database is changed. This will reduce server load. I may add cache to other pages later. ### Changed + - No more global `$LINKSDB` (Yuk) - Background color was removed when hovering a link ### Fixed + - Small bug corrected in config screen on timezones - Calling a non-existing permalink now returns a crude 404 error instead of 200 (OK) This is done on purpose @@ -1174,21 +1456,29 @@ Initial release on GitHub. (Yes, now it works on free.fr hosting) - Added `dialog=1` in bookmarklet code for some browsers +------------------------ ## [v0.0.38beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2012-02-06 + ### Added + - Automatic creation of the `tmp` directory with proper rights (for RainTPL) - When you click the key to see only private links, it turns yellow ### Changed + - The "Daily" page now automatically skips empty days. ### Fixed + - Corrected the tag encoding (there was a bug when selecting a second tag which contains accented characters) +------------------------ ## [v0.0.37beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2012-02-01 + ### Added + - Basic CSS for mobiles, which makes Shaarli //much// more usable on mobile devices - Picture wall no more instantly kills your browser. Now it uses [lazy image loading](http://www.appelsiini.net/projects/lazyload); @@ -1201,26 +1491,37 @@ Initial release on GitHub. RSS feed provides the last 7 days (only non-empty days are returned). - In link list, added an icon to see only private links. Click to toggle (only private / all) +------------------------ ## [v0.0.36beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2012-01-25 + ### Added + - Shaarli licence in COPYING ### Changed + - Display adjustments in "Daily" page ### Fixed + - Improper text color in install form - Error in QRCode url (missing '?') +------------------------ ## [v0.0.35beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2012-01-25 + ### Fixed + - Corrected a bug introduced in 0.0.34 which would improperly preprend data to URLs +------------------------ ## [v0.0.34beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2012-01-25 + ### Added + - There is now a QR-Code of each permalink to easily open a link on your smartphone - Protocols `file:` and `apt:` are now also converted to clickable links (patch by Francis Chavanon) - Thumbnail support for http://xkcd.com/ (patch by Emilien Klein) @@ -1233,18 +1534,23 @@ Initial release on GitHub. RSS feed, CSS for mobile and printing...) ### Changed + - Upgraded bundled versions of jQuery (1.7.1) and jQuery UI (1.8.17) - Upgraded bundled version of RainTPL (2.7) - Changed HTTPS detection code ### Fixed + - In link edition, you can now click the word "Private" to check the box - Clicking a tag would not work properly if the tag contained special characters (like +) - Added proper jQuery licence (shame on me) +------------------------ ## [v0.0.33beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2012-01-17 + ### Added + - Shaarli packaged to ease Linux distributions integration As a simple user, you do not need to cope with these versions Future releases of Shaarli will also be customized and published in these directories @@ -1261,18 +1567,24 @@ Initial release on GitHub. otherwise the .tar.gz will be corrupted ### Fixed + - ATOM feed validates again ### Security + - XSS vulnerability patched (thanks to Stanislas D.!) +------------------------ ## [v0.0.32beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2011-12-16 + ### Added + - Better check on URL parameters (patch by gege2061) - Add `max-height` and `overflow:auto` attributes so that content can be scrolled if too large ### Changed + - HTML generation moved to RainTPL templates (in the `tpl/` directory) - Better detection of HTTPS (patch by gege2061) - In RSS/ATOM feeds, the GUID is now the permalink instead of the final URL (patch by gege2061) @@ -1281,18 +1593,23 @@ Initial release on GitHub. Thus you can use Shaarli as a personal pastebin (for posting source code, for example). ### Removed + - Page time generation was removed ### Fixed + - Tab order changed in login screen - Permalinks now work even if additional parameters have been added (e.g. `/?E8Yj2Q&utm_source=blablabla...`) - user.css is included only if the file is present (This prevents a useless CSS include which makes a harmless but useless 404 error.) +------------------------ ## [v0.0.31beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2011-11-29 + ### Added + - Support for TED Talks (ted.com/talks) thumbnails (patch by Emilien K.) - partial [patch](http://www.idleman.fr/blog/?p=508) by Idleman: Better design consistency, icon on private links. In-page popup was not included because it causes problem on some websites - Support for bookmark files without ADD_DATE attributes @@ -1303,32 +1620,44 @@ Initial release on GitHub. Please note that Shaarli CSS are not stable and may completely change on each version ### Changed + - Edit and Delete buttons in link list were replaced with icons. (patch by Jerrywham) ### Fixed + - Better error handling in thumbnail generation (patch by Emilien K.) - The top menu is no longer displayed in bookmarklet popup - Bookmark which have the exact same date/time are now correctly imported. Most remaining import problems should be solved now - Comment in Shaarli export moved to beginning of file to prevent clash with last link description +------------------------ ## [v0.0.30beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2011-11-18 + ### Added + - Add a small `delete` button in link list (after the `edit` button) ### Fixed + - Moved the call to PubSubHub +------------------------ ## [v0.0.29beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2011-11-18 + ### Fixed + - Corrected a bug introduced in v0.0.28beta (there was an error if you use the bookmarklet and you're not logged in) +------------------------ ## [v0.0.28beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2011-11-17 + ### Added + - Thumbnail support for youtu.be URLs (YouTube short url service) - PubSubHub protocol support (from http://aldarone.fr/les-flux-rss-shaarli-et-pubsubhubbub/). Warning: This was not tested. You need to set your hub url in @@ -1338,6 +1667,7 @@ Initial release on GitHub. respective specifications) ### Changed + - New Shaarli theme and logo by Idle (http://www.idleman.fr/blog/?p=469) - In picture wall, pictures point to Shaarli permalink instead of final URL. This way, users can read the description. @@ -1347,30 +1677,39 @@ Initial release on GitHub. name collision with some PHP extensions ### Fixed + - Thumbnails removed for imgur.com/a/ URLs (Thumbnails are not available for albums on imgur) - Shaarli now correctly only tries to get thumbnails for vimeo video URLs - Fix a bug in imgur.com URLs handling that would cause some thumbnails not to appear - The search engine would not return a result if the word to search was the first in description - Extracted title is now correct if the page has two `title` html tags +------------------------ ## [v0.0.27beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2011-10-18 + ### Added - Add a picture wall, which can be filtered too: it will use the same filters (tags,text search) as current page when clicked. +------------------------ ## [v0.0.26beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2011-10-17 + ### Changed - Made permalink more visible (smallHash) ### Fixed + - Removed extras space in description when URLs are converted to clickable links - Thumbnail for subreddit imgur urls (/r/...) were corrected (thanks to Accent Grave) +------------------------ ## [v0.0.25beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2011-10-13 + ### Added + - Better CSS for printing (thanks to jerrywham suggestion) - Allow using a redirector or anonymizing proxy for links (such as `http://anonym.to/?` to mask you `HTTP_REFERER`). @@ -1384,6 +1723,7 @@ Initial release on GitHub. Other services will still have a thumbnail (youtube,imgur.com,dailymotion,imageshack.us) ### Changed + - Now thumbnails generated by Shaarli are croped to a height of 120 pixels - YouTube thumbnails now use `default.jpg` instead of `2.jpg` (This is usually more pertinent) - Configuration options (such as `HIDE_TIMESTAMPS`, `ENABLE_THUMBNAILS`, etc.) @@ -1395,12 +1735,16 @@ Initial release on GitHub. - A few CSS tweaks (thanks to maethor for suggestion) ### Fixed + - Shaarli now supports newlines in titles (thanks to dixy) - The link to the RSS feed in page header was not correct +------------------------ ## [v0.0.24beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Allow posting an entry without a link. (You can use Shaarli as a kind of "personal twitter") - Each Shaarli entry now has a short link (just click on the date of a link). Now you can send a link that points to a single entry in your Shaarli @@ -1409,23 +1753,30 @@ Initial release on GitHub. (as long as the images are less than 4 Mb and take less than 30 seconds to download) ### Fixed + - Now thumbnails also work for imgur gallery links (/gallery/...) (Thanks to Accent Grave for the correction) - Removed useless debugging information in log - The filter in RSS/ATOM feed now works again properly (it was broken in 0.0.17beta) +------------------------ ## [v0.0.23beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Added thumbnail support for imageshack.us ### Changed + - Now you can clic the sentence "Stay signed in" to tick the checkbox (patch by Emilien) - In tag editing, comma (,) are now automatically converted to spaces - In tag editing, autocomplete no longuer suggests a tag you have already entered in the same line +------------------------ ## [v0.0.22beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added - Support for thumbnails for flickr.com - Allow staying signed in: @@ -1433,6 +1784,7 @@ Initial release on GitHub. This is available through a checkbox in the login screen. ### Changed + - Some hosts (flickr, vimeo) are slow as hell for the thumbnails, or require an extra HTTP request. For these hosts the thumbnail generation has been deported outside the generation @@ -1440,37 +1792,49 @@ Initial release on GitHub. For these slow services, the thumbnails are also cached. ### Fixed + - Title was not properly passed if you had to login when using the bookmarklet (patch by shenshei) +------------------------ ## [v0.0.21beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Thumbnails for some services Currently supports: YouTube.com, dailymotion.com, vimeo.com (slow!) and imgur.com. Thumbnails are enabled by default, but you can turn them off (set `define('ENABLE_THUMBNAILS',true);` to `false`). ### Changed + - Removed the focus on the searchbox (this is cumbersome when you want to browse pages and scroll with the keyboard) +------------------------ ## [v0.0.20beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Fixed + - RSS feed is now served as `application/rss+xml` instead of `application/xhtml+xml` (which was causing problem in //RSS Lounge//) - ATOM feed is now served as `application/atom+xml` instead of `application/xhtml+xml` +------------------------ ## [v0.0.19beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added - ATOM feed ### Fixed - Patch by Emilien to remove the update notification after the update +------------------------ ## [v0.0.18beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added - You can now configure the title of your page - New screen to configure title and timezone @@ -1481,9 +1845,12 @@ Initial release on GitHub. ### Fixed - New lines now appear correctly in the RSS feed descriptions. +------------------------ ## [v0.0.17beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Change password screen added (based on a patch by killruana) - Autocomplete in the tag search form - You can rename or delete a tag in all links @@ -1492,12 +1859,16 @@ Initial release on GitHub. as the page you were viewing ### Changed + - CSS adjustments by jerrywham - Minor corrections +------------------------ ## [v0.0.16beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Upgrade notification: If a new version of Shaarli is available, you will be notified by a discreet message in top-right corner. @@ -1506,52 +1877,69 @@ Initial release on GitHub. - Preliminary tag cloud (ugly for the moment, I need to find something better) ### Changed + - Replaced `preg_match()` with `version_compare()` to check PHP version - Includes a patch by Emilien K. to mask dates if user is not logged in. The option can be activated by changing `define('HIDE_TIMESTAMPS',false);` to `true` +------------------------ ## [v0.0.15beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - New in import: Option to overwrite existing links when importing - On free.fr, automatic creation of the `/sessions` directory ### Changed + - CSS Stylesheet is now an external file (shaarli.css). This reduces page size and eases customization. ### Removed + - Removed some parameters in URL added by some feed proxies (`#xtor=RSS-...`) ### Fixed + - Bug corrected: Prevented loop on login screen upon successful login after a failed login - Bug corrected in import: HTML entities were not properly decoded. If you imported your Delicious/Diigo bookmarks, your should import them again and use the 'overwrite' option of the import feature. +------------------------ ## [v0.0.14beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - You no longer need to disable `magic_quotes` on your host. Shaarli will cope with this option beeing activated. +------------------------ ## [v0.0.13beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Import: New option to import html bookmark file as private links - Import: Importing a bookmark file will not overwrite existing links anymore - Export: New options to export only public or private links ### Changed + - In tag autocomplete, tags are presented in use order (most used tags first, instead of alphabetical order) - RSS Feed can now be filtered by tags or fulltext search. Just add to the feed url: - `&searchtags=minecraft+video` for tag filtering - `&searchterm=portal` for fulltext search to the feed url +------------------------ ## [v0.0.12beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Add a check that the config file was properly created (in case Shaarli does not have the write rights in its folder) - Open Shaarli: there is an option to open your Shaarli to anyone. @@ -1560,34 +1948,49 @@ Initial release on GitHub. Note: No anti-spam for the moment. You are warned! - Autocomplete for tags +------------------------ ## [v0.0.11beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Add a check and a warning for some hosts which still have `magic_quotes` activated +------------------------ ## [v0.0.10beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Get rid of `"` in titles +------------------------ ## [v0.0.9beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Added + - Now works on hosts `free.fr` and `1and1` - Now works with PHP 5.1 - PHP version is now checked and an error message is displayed if version is not correct ### Fixed + - No more error messages if the browser does not send `HTTP_REFERER` - No more error messages if the host has disabled http protocol in PHP config (eg. 1and1) +------------------------ ## [v0.0.8beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) + ### Changed + - In RSS feed, GUID content replaced with the URL of the link, because some stupid RSS reader (like Google Reader) use `` as a link instead of using `` +------------------------ ## [v0.0.7beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) - 2011-09-16 + First public release by Sebsauvage, see original article: [Adieu Delicious, Diigo et StumbleUpon. Salut Shaarli !](http://sebsauvage.net/rhaa/index.php?2011/09/16/09/29/58-adieu-delicious-diigo-et-stumbleupon-salut-shaarli-) (FR) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 03564fd2..8acf1bbe 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,8 +13,8 @@ Check the [milestones](https://github.com/shaarli/Shaarli/milestones) to see wha * The issues list should preferably contain **only tasks that can be actioned immediately**. Anyone should be able to open the issues list, pick one and start working on it immediately. * If you have a clear idea of a **feature you expect, or have a specific bug/defect to report**, [search the issues list, both open and closed](https://github.com/shaarli/Shaarli/issues?q=is%3Aissue) to check if it has been discussed, and comment on the appropriate issue. If you can't find one, please open a [new issue](https://github.com/shaarli/Shaarli/issues/new) - * **General discussions** fit in #44 so that we don't follow a slope where users and contributors have to track 90 "maybe" items in the bug tracker. Separate issues about clear, separate steps can be opened after discussion. - * You can also join instant discussion at https://gitter.im/shaarli/Shaarli, or via IRC as described [here](https://github.com/shaarli/Shaarli/issues/44#issuecomment-77745105) + * The **[general discussion](https://github.com/shaarli/Shaarli/issues/308)** issue can be used for general announcements or project-related discussion. + * You can also join instant discussion at https://gitter.im/shaarli/Shaarli. ### Documentation diff --git a/README.md b/README.md index 618172c4..8dc5fc51 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ _Do you want to share the links you discover?_ _Shaarli is a minimalist link sharing service that you can install on your own server._ _It is designed to be personal (single-user), fast and handy._ -[![](https://img.shields.io/badge/stable-v0.12.2-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.11.1) -[![](https://img.shields.io/badge/latest-v0.13.0-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.12.2) +[![](https://img.shields.io/badge/release-v0.13.0-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.13.0) [![](https://img.shields.io/badge/master-v0.13.x-blue.svg)](https://github.com/shaarli/Shaarli) [![](https://github.com/shaarli/Shaarli/actions/workflows/ci.yml/badge.svg)](https://github.com/shaarli/Shaarli/actions) +[![](https://github.com/shaarli/Shaarli/actions/workflows/trivy-release.yml/badge.svg)](https://github.com/shaarli/Shaarli/actions) [![Join the chat at https://gitter.im/shaarli/Shaarli](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/shaarli/Shaarli) [![Docker repository](https://img.shields.io/docker/pulls/shaarli/shaarli.svg)](https://github.com/shaarli/Shaarli/pkgs/container/shaarli) diff --git a/application/Utils.php b/application/Utils.php index 48d47415..4d284ccb 100644 --- a/application/Utils.php +++ b/application/Utils.php @@ -322,7 +322,7 @@ function format_date($date, $time = true, $intl = true) return $date->format($format); } $formatter = new IntlDateFormatter( - setlocale(LC_TIME, 0), + get_locale(LC_TIME), IntlDateFormatter::LONG, $time ? IntlDateFormatter::LONG : IntlDateFormatter::NONE ); @@ -503,3 +503,23 @@ function exception2text(Throwable $e): string { return $e->getMessage() . PHP_EOL . $e->getFile() . $e->getLine() . PHP_EOL . $e->getTraceAsString(); } + +/** + * Get the current locale, overrides 'C' locale which is no longer compatible with PHP-intl + * + * @param int $category Category of the locale (LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_ALL) + * + * @return string|false The locale, or false if not found. + * + * @see https://github.com/php/php-src/issues/12561 + */ +function get_locale(int $category = LC_CTYPE) +{ + $locale = setlocale($category, 0); + + if ($locale === 'C' || startsWith($locale, 'C.')) { + $locale = 'en_US.utf8'; // failback + } + + return $locale; +} diff --git a/application/api/controllers/Info.php b/application/api/controllers/Info.php index ae7db93e..1cacfb42 100644 --- a/application/api/controllers/Info.php +++ b/application/api/controllers/Info.php @@ -35,6 +35,7 @@ class Info extends ApiController 'timezone' => $this->conf->get('general.timezone', 'UTC'), 'enabled_plugins' => $this->conf->get('general.enabled_plugins', []), 'default_private_links' => $this->conf->get('privacy.default_private_links', false), + 'tags_separator' => $this->conf->get('general.tags_separator', ' '), ], ]; diff --git a/application/bookmark/Bookmark.php b/application/bookmark/Bookmark.php index 56751e15..6a83bef0 100644 --- a/application/bookmark/Bookmark.php +++ b/application/bookmark/Bookmark.php @@ -505,7 +505,7 @@ class Bookmark } /** - * Rename a tag in tags list. + * Rename a tag in tags list. If the new tag already exists, merge them * * @param string $fromTag * @param string $toTag @@ -513,7 +513,11 @@ class Bookmark public function renameTag(string $fromTag, string $toTag): void { if (($pos = array_search($fromTag, $this->tags ?? [])) !== false) { - $this->tags[$pos] = trim($toTag); + if (in_array($toTag, $this->tags ?? []) !== false) { + $this->deleteTag($fromTag); + } else { + $this->tags[$pos] = trim($toTag); + } } } diff --git a/application/config/ConfigManager.php b/application/config/ConfigManager.php index 717a038f..b98a746f 100644 --- a/application/config/ConfigManager.php +++ b/application/config/ConfigManager.php @@ -372,7 +372,6 @@ class ConfigManager $this->setEmpty('general.tags_separator', ' '); $this->setEmpty('updates.check_updates', true); - $this->setEmpty('updates.check_updates_branch', 'latest'); $this->setEmpty('updates.check_updates_interval', 86400); $this->setEmpty('feed.rss_permalinks', true); diff --git a/application/front/controller/admin/ServerController.php b/application/front/controller/admin/ServerController.php index 9be5ea77..8978b976 100644 --- a/application/front/controller/admin/ServerController.php +++ b/application/front/controller/admin/ServerController.php @@ -36,7 +36,7 @@ class ServerController extends ShaarliAdminController } $currentVersion = ApplicationUtils::getVersion('./shaarli_version.php'); - $currentVersion = $currentVersion === 'dev' ? $currentVersion : 'v' . $currentVersion; + $currentVersion = ApplicationUtils::isDevVersion($currentVersion) ? $currentVersion : 'v' . $currentVersion; $phpEol = new \DateTimeImmutable(ApplicationUtils::getPhpEol(PHP_VERSION)); $permissions = array_merge( diff --git a/application/front/controller/visitor/FeedController.php b/application/front/controller/visitor/FeedController.php index edc7ef43..5f9ea1c0 100644 --- a/application/front/controller/visitor/FeedController.php +++ b/application/front/controller/visitor/FeedController.php @@ -38,7 +38,7 @@ class FeedController extends ShaarliVisitorController } // Generate data. - $this->container->feedBuilder->setLocale(strtolower(setlocale(LC_COLLATE, 0))); + $this->container->feedBuilder->setLocale(strtolower(get_locale(LC_COLLATE))); $this->container->feedBuilder->setHideDates($this->container->conf->get('privacy.hide_timestamps', false)); $this->container->feedBuilder->setUsePermalinks( null !== $request->getParam('permalinks') || !$this->container->conf->get('feed.rss_permalinks') diff --git a/application/helper/ApplicationUtils.php b/application/helper/ApplicationUtils.php index d875f2b8..6d13fa19 100644 --- a/application/helper/ApplicationUtils.php +++ b/application/helper/ApplicationUtils.php @@ -19,7 +19,7 @@ class ApplicationUtils public static $GITHUB_URL = 'https://github.com/shaarli/Shaarli'; public static $GIT_RAW_URL = 'https://raw.githubusercontent.com/shaarli/Shaarli'; - public static $GIT_BRANCHES = ['latest', 'stable']; + public static $RELEASE_BRANCH = 'release'; private static $VERSION_START_TAG = ''; @@ -89,7 +89,6 @@ class ApplicationUtils * @param int $checkInterval the minimum interval between update checks (in seconds * @param bool $enableCheck whether to check for new versions * @param bool $isLoggedIn whether the user is logged in - * @param string $branch check update for the given branch * * @throws Exception an invalid branch has been set for update checks * @@ -100,13 +99,12 @@ class ApplicationUtils $updateFile, $checkInterval, $enableCheck, - $isLoggedIn, - $branch = 'stable' + $isLoggedIn ) { // Do not check versions for visitors // Do not check if the user doesn't want to // Do not check with dev version - if (!$isLoggedIn || empty($enableCheck) || $currentVersion === 'dev') { + if (!$isLoggedIn || empty($enableCheck) || self::isDevVersion($currentVersion)) { return false; } @@ -120,16 +118,10 @@ class ApplicationUtils return false; } - if (!in_array($branch, self::$GIT_BRANCHES)) { - throw new Exception( - 'Invalid branch selected for updates: "' . $branch . '"' - ); - } - // Late Static Binding allows overriding within tests // See http://php.net/manual/en/language.oop5.late-static-bindings.php $latestVersion = static::getVersion( - self::$GIT_RAW_URL . '/' . $branch . '/' . self::$VERSION_FILE + self::$GIT_RAW_URL . '/' . self::$RELEASE_BRANCH . '/' . self::$VERSION_FILE ); if (!$latestVersion) { @@ -189,11 +181,11 @@ class ApplicationUtils // Check script and template directories are readable foreach ( [ - 'application', - 'inc', - 'plugins', - $rainTplDir, - $rainTplDir . '/' . $conf->get('resource.theme'), + 'application', + 'inc', + 'plugins', + $rainTplDir, + $rainTplDir . '/' . $conf->get('resource.theme'), ] as $path ) { if (!is_readable(realpath($path))) { @@ -208,10 +200,10 @@ class ApplicationUtils ]; } else { $folders = [ - $conf->get('resource.thumbnails_cache'), - $conf->get('resource.data_dir'), - $conf->get('resource.page_cache'), - $conf->get('resource.raintpl_tmp'), + $conf->get('resource.thumbnails_cache'), + $conf->get('resource.data_dir'), + $conf->get('resource.page_cache'), + $conf->get('resource.raintpl_tmp'), ]; } @@ -231,12 +223,12 @@ class ApplicationUtils // Check configuration files are readable and writable foreach ( [ - $conf->getConfigFileExt(), - $conf->get('resource.datastore'), - $conf->get('resource.ban_file'), - $conf->get('resource.log'), - $conf->get('resource.update_check'), - ] as $path + $conf->getConfigFileExt(), + $conf->get('resource.datastore'), + $conf->get('resource.ban_file'), + $conf->get('resource.log'), + $conf->get('resource.update_check'), + ] as $path ) { if (!is_string($path) || !is_file(realpath($path))) { # the file may not exist yet @@ -334,4 +326,11 @@ class ApplicationUtils '8.2' => '2025-12-08', ][$matches[1]] ?? (new \DateTime('+2 year'))->format('Y-m-d'); } + + public static function isDevVersion(string $version): bool + { + return strpos($version, 'dev') !== false + || preg_match('/[a-f0-9]{7}/', $version) === 1 + ; + } } diff --git a/application/http/HttpUtils.php b/application/http/HttpUtils.php index 4bde1d5b..c6904f49 100644 --- a/application/http/HttpUtils.php +++ b/application/http/HttpUtils.php @@ -52,10 +52,10 @@ function get_http_response( } $userAgent = - 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:45.0)' - . ' Gecko/20100101 Firefox/45.0'; + 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:115.0)' + . ' Gecko/20100101 Firefox/115.0'; $acceptLanguage = - substr(setlocale(LC_COLLATE, 0), 0, 2) . ',en-US;q=0.7,en;q=0.3'; + substr(get_locale(LC_COLLATE), 0, 2) . ',en-US;q=0.7,en;q=0.3'; $maxRedirs = 3; if (!function_exists('curl_init')) { diff --git a/application/http/MetadataRetriever.php b/application/http/MetadataRetriever.php index cfc72583..86441660 100644 --- a/application/http/MetadataRetriever.php +++ b/application/http/MetadataRetriever.php @@ -59,6 +59,12 @@ class MetadataRetriever if (!empty($title) && strtolower($charset) !== 'utf-8') { $title = mb_convert_encoding($title, 'utf-8', $charset); } + if (!empty($description) && strtolower($charset) !== 'utf-8') { + $description = mb_convert_encoding($description, 'utf-8', $charset); + } + if (!empty($tags) && strtolower($charset) !== 'utf-8') { + $tags = mb_convert_encoding($tags, 'utf-8', $charset); + } return array_map([$this, 'cleanMetadata'], [ 'title' => $title, diff --git a/application/legacy/LegacyLinkDB.php b/application/legacy/LegacyLinkDB.php index 1ab4b9d7..af1e6cba 100644 --- a/application/legacy/LegacyLinkDB.php +++ b/application/legacy/LegacyLinkDB.php @@ -1,591 +1,3 @@ -<<<<<<< HEAD -link offset) - private $urls; - - /** - * @var array List of all bookmarks IDS mapped with their array offset. - * Map: id->offset. - */ - protected $ids; - - // List of offset keys (for the Iterator interface implementation) - private $keys; - - // Position in the $this->keys array (for the Iterator interface) - private $position; - - // Is the user logged in? (used to filter private bookmarks) - private $loggedIn; - - // Hide public bookmarks - private $hidePublicLinks; - - /** - * Creates a new LinkDB - * - * Checks if the datastore exists; else, attempts to create a dummy one. - * - * @param string $datastore datastore file path. - * @param boolean $isLoggedIn is the user logged in? - * @param boolean $hidePublicLinks if true all bookmarks are private. - */ - public function __construct( - $datastore, - $isLoggedIn, - $hidePublicLinks - ) { - - $this->datastore = $datastore; - $this->loggedIn = $isLoggedIn; - $this->hidePublicLinks = $hidePublicLinks; - $this->check(); - $this->read(); - } - - /** - * Countable - Counts elements of an object - */ - public function count(): int - { - return count($this->links); - } - - /** - * ArrayAccess - Assigns a value to the specified offset - */ - public function offsetSet($offset, $value): void - { - // TODO: use exceptions instead of "die" - if (!$this->loggedIn) { - die(t('You are not authorized to add a link.')); - } - if (!isset($value['id']) || empty($value['url'])) { - die(t('Internal Error: A link should always have an id and URL.')); - } - if (($offset !== null && !is_int($offset)) || !is_int($value['id'])) { - die(t('You must specify an integer as a key.')); - } - if ($offset !== null && $offset !== $value['id']) { - die(t('Array offset and link ID must be equal.')); - } - - // If the link exists, we reuse the real offset, otherwise new entry - $existing = $this->getLinkOffset($offset); - if ($existing !== null) { - $offset = $existing; - } else { - $offset = count($this->links); - } - $this->links[$offset] = $value; - $this->urls[$value['url']] = $offset; - $this->ids[$value['id']] = $offset; - } - - /** - * ArrayAccess - Whether or not an offset exists - */ - public function offsetExists($offset): bool - { - return array_key_exists($this->getLinkOffset($offset), $this->links); - } - - /** - * ArrayAccess - Unsets an offset - */ - public function offsetUnset($offset): void - { - if (!$this->loggedIn) { - // TODO: raise an exception - die('You are not authorized to delete a link.'); - } - $realOffset = $this->getLinkOffset($offset); - $url = $this->links[$realOffset]['url']; - unset($this->urls[$url]); - unset($this->ids[$realOffset]); - unset($this->links[$realOffset]); - } - - /** - * ArrayAccess - Returns the value at specified offset - */ - public function offsetGet($offset): ?array - { - $realOffset = $this->getLinkOffset($offset); - return isset($this->links[$realOffset]) ? $this->links[$realOffset] : null; - } - - /** - * Iterator - Returns the current element - */ - public function current(): array - { - return $this[$this->keys[$this->position]]; - } - - /** - * Iterator - Returns the key of the current element - * - * @return int|string - */ - #[\ReturnTypeWillChange] - public function key() - { - return $this->keys[$this->position]; - } - - /** - * Iterator - Moves forward to next element - */ - public function next(): void - { - ++$this->position; - } - - /** - * Iterator - Rewinds the Iterator to the first element - * - * Entries are sorted by date (latest first) - */ - public function rewind(): void - { - $this->keys = array_keys($this->ids); - $this->position = 0; - } - - /** - * Iterator - Checks if current position is valid - */ - public function valid(): bool - { - return isset($this->keys[$this->position]); - } - - /** - * Checks if the DB directory and file exist - * - * If no DB file is found, creates a dummy DB. - */ - private function check() - { - if (file_exists($this->datastore)) { - return; - } - - // Create a dummy database for example - $this->links = []; - $link = [ - 'id' => 1, - 'title' => t('The personal, minimalist, super-fast, database free, bookmarking service'), - 'url' => 'https://shaarli.readthedocs.io', - 'description' => t( - 'Welcome to Shaarli! This is your first public bookmark. ' - . 'To edit or delete me, you must first login. - -To learn how to use Shaarli, consult the link "Documentation" at the bottom of this page. - -You use the community supported version of the original Shaarli project, by Sebastien Sauvage.' - ), - 'private' => 0, - 'created' => new DateTime(), - 'tags' => 'opensource software', - 'sticky' => false, - ]; - $link['shorturl'] = link_small_hash($link['created'], $link['id']); - $this->links[1] = $link; - - $link = [ - 'id' => 0, - 'title' => t('My secret stuff... - Pastebin.com'), - 'url' => 'http://sebsauvage.net/paste/?8434b27936c09649#bR7XsXhoTiLcqCpQbmOpBi3rq2zzQUC5hBI7ZT1O3x8=', - 'description' => t('Shhhh! I\'m a private link only YOU can see. You can delete me too.'), - 'private' => 1, - 'created' => new DateTime('1 minute ago'), - 'tags' => 'secretstuff', - 'sticky' => false, - ]; - $link['shorturl'] = link_small_hash($link['created'], $link['id']); - $this->links[0] = $link; - - // Write database to disk - $this->write(); - } - - /** - * Reads database from disk to memory - */ - private function read() - { - // Public bookmarks are hidden and user not logged in => nothing to show - if ($this->hidePublicLinks && !$this->loggedIn) { - $this->links = []; - return; - } - - $this->urls = []; - $this->ids = []; - $this->links = FileUtils::readFlatDB($this->datastore, []); - - $toremove = []; - foreach ($this->links as $key => &$link) { - if (!$this->loggedIn && $link['private'] != 0) { - // Transition for not upgraded databases. - unset($this->links[$key]); - continue; - } - - // Sanitize data fields. - sanitizeLink($link); - - // Remove private tags if the user is not logged in. - if (!$this->loggedIn) { - $link['tags'] = preg_replace('/(^|\s+)\.[^($|\s)]+\s*/', ' ', $link['tags']); - } - - $link['real_url'] = $link['url']; - - $link['sticky'] = isset($link['sticky']) ? $link['sticky'] : false; - - // To be able to load bookmarks before running the update, and prepare the update - if (!isset($link['created'])) { - $link['id'] = $link['linkdate']; - $link['created'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['linkdate']); - if (!empty($link['updated'])) { - $link['updated'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['updated']); - } - $link['shorturl'] = smallHash($link['linkdate']); - } - - $this->urls[$link['url']] = $key; - $this->ids[$link['id']] = $key; - } - } - - /** - * Saves the database from memory to disk - * - * @throws IOException the datastore is not writable - */ - private function write() - { - $this->reorder(); - FileUtils::writeFlatDB($this->datastore, $this->links); - } - - /** - * Saves the database from memory to disk - * - * @param string $pageCacheDir page cache directory - */ - public function save($pageCacheDir) - { - if (!$this->loggedIn) { - // TODO: raise an Exception instead - die('You are not authorized to change the database.'); - } - - $this->write(); - - $pageCacheManager = new PageCacheManager($pageCacheDir, $this->loggedIn); - $pageCacheManager->invalidateCaches(); - } - - /** - * Returns the link for a given URL, or False if it does not exist. - * - * @param string $url URL to search for - * - * @return mixed the existing link if it exists, else 'false' - */ - public function getLinkFromUrl($url) - { - if (isset($this->urls[$url])) { - return $this->links[$this->urls[$url]]; - } - return false; - } - - /** - * Returns the shaare corresponding to a smallHash. - * - * @param string $request QUERY_STRING server parameter. - * - * @return array $filtered array containing permalink data. - * - * @throws BookmarkNotFoundException if the smallhash is malformed or doesn't match any link. - */ - public function filterHash($request) - { - $request = substr($request, 0, 6); - $linkFilter = new LegacyLinkFilter($this->links); - return $linkFilter->filter(LegacyLinkFilter::$FILTER_HASH, $request); - } - - /** - * Returns the list of articles for a given day. - * - * @param string $request day to filter. Format: YYYYMMDD. - * - * @return array list of shaare found. - */ - public function filterDay($request) - { - $linkFilter = new LegacyLinkFilter($this->links); - return $linkFilter->filter(LegacyLinkFilter::$FILTER_DAY, $request); - } - - /** - * Filter bookmarks according to search parameters. - * - * @param array $filterRequest Search request content. Supported keys: - * - searchtags: list of tags - * - searchterm: term search - * @param bool $casesensitive Optional: Perform case sensitive filter - * @param string $visibility return only all/private/public bookmarks - * @param bool $untaggedonly return only untagged bookmarks - * - * @return array filtered bookmarks, all bookmarks if no suitable filter was provided. - */ - public function filterSearch( - $filterRequest = [], - $casesensitive = false, - $visibility = 'all', - $untaggedonly = false - ) { - - // Filter link database according to parameters. - $searchtags = isset($filterRequest['searchtags']) ? escape($filterRequest['searchtags']) : ''; - $searchterm = isset($filterRequest['searchterm']) ? escape($filterRequest['searchterm']) : ''; - - // Search tags + fullsearch - blank string parameter will return all bookmarks. - $type = LegacyLinkFilter::$FILTER_TAG | LegacyLinkFilter::$FILTER_TEXT; // == "vuotext" - $request = [$searchtags, $searchterm]; - - $linkFilter = new LegacyLinkFilter($this); - return $linkFilter->filter($type, $request, $casesensitive, $visibility, $untaggedonly); - } - - /** - * Returns the list tags appearing in the bookmarks with the given tags - * - * @param array $filteringTags tags selecting the bookmarks to consider - * @param string $visibility process only all/private/public bookmarks - * - * @return array tag => linksCount - */ - public function linksCountPerTag($filteringTags = [], $visibility = 'all') - { - $links = $this->filterSearch(['searchtags' => $filteringTags], false, $visibility); - $tags = []; - $caseMapping = []; - foreach ($links as $link) { - foreach (preg_split('/\s+/', $link['tags'], 0, PREG_SPLIT_NO_EMPTY) as $tag) { - if (empty($tag)) { - continue; - } - // The first case found will be displayed. - if (!isset($caseMapping[strtolower($tag)])) { - $caseMapping[strtolower($tag)] = $tag; - $tags[$caseMapping[strtolower($tag)]] = 0; - } - $tags[$caseMapping[strtolower($tag)]]++; - } - } - - /* - * Formerly used arsort(), which doesn't define the sort behaviour for equal values. - * Also, this function doesn't produce the same result between PHP 5.6 and 7. - * - * So we now use array_multisort() to sort tags by DESC occurrences, - * then ASC alphabetically for equal values. - * - * @see https://github.com/shaarli/Shaarli/issues/1142 - */ - $keys = array_keys($tags); - $tmpTags = array_combine($keys, $keys); - array_multisort($tags, SORT_DESC, $tmpTags, SORT_ASC, $tags); - return $tags; - } - - /** - * Rename or delete a tag across all bookmarks. - * - * @param string $from Tag to rename - * @param string $to New tag. If none is provided, the from tag will be deleted - * - * @return array|bool List of altered bookmarks or false on error - */ - public function renameTag($from, $to) - { - if (empty($from)) { - return false; - } - $delete = empty($to); - // True for case-sensitive tag search. - $linksToAlter = $this->filterSearch(['searchtags' => $from], true); - foreach ($linksToAlter as $key => &$value) { - $tags = preg_split('/\s+/', trim($value['tags'])); - if (($pos = array_search($from, $tags)) !== false) { - if ($delete) { - unset($tags[$pos]); // Remove tag. - } else { - $tags[$pos] = trim($to); - } - $value['tags'] = trim(implode(' ', array_unique($tags))); - $this[$value['id']] = $value; - } - } - - return $linksToAlter; - } - - /** - * Returns the list of days containing articles (oldest first) - * Output: An array containing days (in format YYYYMMDD). - */ - public function days() - { - $linkDays = []; - foreach ($this->links as $link) { - $linkDays[$link['created']->format('Ymd')] = 0; - } - $linkDays = array_keys($linkDays); - sort($linkDays); - - return $linkDays; - } - - /** - * Reorder bookmarks by creation date (newest first). - * - * Also update the urls and ids mapping arrays. - * - * @param string $order ASC|DESC - */ - public function reorder($order = 'DESC') - { - $order = $order === 'ASC' ? -1 : 1; - // Reorder array by dates. - usort($this->links, function ($a, $b) use ($order) { - if (isset($a['sticky']) && isset($b['sticky']) && $a['sticky'] !== $b['sticky']) { - return $a['sticky'] ? -1 : 1; - } - if ($a['created'] == $b['created']) { - return $a['id'] < $b['id'] ? 1 * $order : -1 * $order; - } - return $a['created'] < $b['created'] ? 1 * $order : -1 * $order; - }); - - $this->urls = []; - $this->ids = []; - foreach ($this->links as $key => $link) { - $this->urls[$link['url']] = $key; - $this->ids[$link['id']] = $key; - } - } - - /** - * Return the next key for link creation. - * E.g. If the last ID is 597, the next will be 598. - * - * @return int next ID. - */ - public function getNextId() - { - if (!empty($this->ids)) { - return max(array_keys($this->ids)) + 1; - } - return 0; - } - - /** - * Returns a link offset in bookmarks array from its unique ID. - * - * @param int $id Persistent ID of a link. - * - * @return int Real offset in local array, or null if doesn't exist. - */ - protected function getLinkOffset($id) - { - if (isset($this->ids[$id])) { - return $this->ids[$id]; - } - return null; - } -} -||||||| d7dead56 -======= >>>>>>> github/v0.13:application/legacy/LegacyLinkDB.php if (!isset($link['created'])) { $link['id'] = $link['linkdate']; $link['created'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['linkdate']); @@ -1179,4 +583,3 @@ You use the community supported version of the original Shaarli project, by Seba return null; } } ->>>>>>> github/v0.13 diff --git a/application/render/PageBuilder.php b/application/render/PageBuilder.php index bf0ae326..3f9e550c 100644 --- a/application/render/PageBuilder.php +++ b/application/render/PageBuilder.php @@ -103,8 +103,7 @@ class PageBuilder $this->conf->get('resource.update_check'), $this->conf->get('updates.check_updates_interval'), $this->conf->get('updates.check_updates'), - $this->isLoggedIn, - $this->conf->get('updates.check_updates_branch') + $this->isLoggedIn ); $this->tpl->assign('newVersion', escape($version)); $this->tpl->assign('versionError', ''); diff --git a/application/updater/Updater.php b/application/updater/Updater.php index 11b6c051..a9ea6562 100644 --- a/application/updater/Updater.php +++ b/application/updater/Updater.php @@ -172,6 +172,15 @@ class Updater return true; } + public function updateMethodRemoveSettingRemoteBranch(): bool + { + if ($this->conf->exists('updates.check_updates_branch')) { + $this->conf->remove('updates.check_updates_branch', true, true); + } + + return true; + } + public function setBasePath(string $basePath): self { $this->basePath = $basePath; diff --git a/assets/default/scss/shaarli.scss b/assets/default/scss/shaarli.scss index 51ddff23..76e767de 100644 --- a/assets/default/scss/shaarli.scss +++ b/assets/default/scss/shaarli.scss @@ -19,8 +19,8 @@ $orange: #f89406; $blue: #0b5ea6; $background-color: #d0d0d0; $background-linklist-info: #ddd; -$light-shadow: rgba(255, 255, 255, .078); -$dark-shadow: rgba(0, 0, 0, .298); +$light-shadow: rgba(255, 255, 255, 7.8%); +$dark-shadow: rgba(0, 0, 0, 29.8%); $warning-text: #97600d; $form-input-border: #d8d8d8; $form-input-background: #eee; @@ -66,7 +66,7 @@ pre { } @font-face { - font-family: 'Roboto'; + font-family: Roboto; font-weight: 400; font-style: normal; src: @@ -76,7 +76,7 @@ pre { } @font-face { - font-family: 'Roboto'; + font-family: Roboto; font-weight: 700; font-style: normal; src: @@ -187,6 +187,7 @@ body, z-index: 999; background: var(--main-color); width: 100%; + // Hack to transition with auto height: http://stackoverflow.com/a/8331169/1484919 max-height: 45px; overflow: hidden; @@ -320,7 +321,7 @@ body, input { &[type='text'] { - border: medium none currentColor; + border: medium none currentcolor; border-radius: 2px; box-shadow: 0 1px 0 $light-shadow, 0 1px 1px $dark-shadow inset; background: $almost-white; @@ -329,7 +330,7 @@ body, height: 30px; color: $dark-grey; - &::-webkit-input-placeholder { + &::placeholder { color: $light-grey; } } @@ -392,7 +393,7 @@ body, } %subheader-form-input { - border: medium none currentColor; + border: medium none currentcolor; border-radius: 2px; box-shadow: 0 1px 0 $light-shadow, 0 1px 4px $dark-shadow inset; background: $almost-white; @@ -416,7 +417,7 @@ body, &[type='password'] { @extend %subheader-form-input; - &::-webkit-input-placeholder { + &::placeholder { color: $dark-grey; } } @@ -472,7 +473,7 @@ body, width: 200px; // because chrome - &::-webkit-input-placeholder { + &::placeholder { color: $light-grey; } } @@ -518,7 +519,7 @@ body, input { &[type='text'] { - border: medium none currentColor; + border: medium none currentcolor; border-radius: 2px; box-shadow: 0 1px 0 $light-shadow, 0 1px 1px $dark-shadow inset; background: $almost-white; @@ -527,13 +528,13 @@ body, height: 30px; color: $dark-grey; - &::-webkit-input-placeholder { + &::placeholder { color: $light-grey; } } &[type='submit'] { - border: medium none currentColor; + border: medium none currentcolor; border-radius: 2px; background: $almost-white; padding: 0 10px; @@ -637,7 +638,7 @@ body, @extend %linksperpage-button; margin: 0; - border: medium none currentColor; + border: medium none currentcolor; background: $almost-white; padding: 4px 5px 3px 8px; height: 20px; @@ -995,7 +996,7 @@ body, &[type='text'] { @extend %page-form-input; - &::-webkit-input-placeholder { + &::placeholder { color: $light-grey; } } @@ -1003,7 +1004,7 @@ body, &[type='password'] { @extend %page-form-input; - &::-webkit-input-placeholder { + &::placeholder { color: $light-grey; } } @@ -1530,9 +1531,6 @@ form { .b-lazy { transition: opacity 500ms ease-in-out; opacity: 0; - -webkit-transition: opacity 500ms ease-in-out; - -moz-transition: opacity 500ms ease-in-out; - -o-transition: opacity 500ms ease-in-out; min-width: 1px; min-height: 1px; @@ -1624,11 +1622,6 @@ form { } } -// Fix empty bookmarklet name in Firefox -.pure-button { - -moz-user-select: auto; -} - .tag-sort { margin-top: 30px; text-align: center; @@ -1790,7 +1783,7 @@ input[name='save_edit_batch'] { &::after { content: ""; flex-grow: 1; - background: rgba(0, 0, 0, 0.35); + background: rgba(0, 0, 0, 35%); height: 1px; font-size: 0; line-height: 0; @@ -1811,7 +1804,7 @@ input[name='save_edit_batch'] { height: 100%; width: 100%; z-index: 998; - background-color: rgba(0, 0, 0, .75); + background-color: rgba(0, 0, 0, 75%); color: #fff; .screen-center { diff --git a/composer.lock b/composer.lock index cc3235a3..1aaa4d77 100644 --- a/composer.lock +++ b/composer.lock @@ -157,16 +157,16 @@ }, { "name": "gettext/gettext", - "version": "v4.8.12", + "version": "v4.8.8", "source": { "type": "git", "url": "https://github.com/php-gettext/Gettext.git", - "reference": "11af89ee6c087db3cf09ce2111a150bca5c46e12" + "reference": "302a00aa9d6762c92c884d879c15d3ed05d6a37d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/11af89ee6c087db3cf09ce2111a150bca5c46e12", - "reference": "11af89ee6c087db3cf09ce2111a150bca5c46e12", + "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/302a00aa9d6762c92c884d879c15d3ed05d6a37d", + "reference": "302a00aa9d6762c92c884d879c15d3ed05d6a37d", "shasum": "" }, "require": { @@ -218,7 +218,7 @@ "support": { "email": "oom@oscarotero.com", "issues": "https://github.com/oscarotero/Gettext/issues", - "source": "https://github.com/php-gettext/Gettext/tree/v4.8.12" + "source": "https://github.com/php-gettext/Gettext/tree/v4.8.8" }, "funding": [ { @@ -234,7 +234,7 @@ "type": "patreon" } ], - "time": "2024-05-18T10:25:07+00:00" + "time": "2022-12-08T11:59:50+00:00" }, { "name": "gettext/languages", @@ -665,25 +665,25 @@ }, { "name": "psr/http-message", - "version": "1.1", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -712,9 +712,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/1.1" + "source": "https://github.com/php-fig/http-message/tree/master" }, - "time": "2023-04-04T09:50:52+00:00" + "time": "2016-08-06T14:39:51+00:00" }, { "name": "psr/log", @@ -886,16 +886,16 @@ }, { "name": "slim/slim", - "version": "3.12.5", + "version": "3.12.4", "source": { "type": "git", "url": "https://github.com/slimphp/Slim.git", - "reference": "565632b2d9b64ecedf89546edbbf4f3648089f0c" + "reference": "ce3cb65a06325fc9fe3d0223f2ae23113a767304" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slimphp/Slim/zipball/565632b2d9b64ecedf89546edbbf4f3648089f0c", - "reference": "565632b2d9b64ecedf89546edbbf4f3648089f0c", + "url": "https://api.github.com/repos/slimphp/Slim/zipball/ce3cb65a06325fc9fe3d0223f2ae23113a767304", + "reference": "ce3cb65a06325fc9fe3d0223f2ae23113a767304", "shasum": "" }, "require": { @@ -957,7 +957,7 @@ ], "support": { "issues": "https://github.com/slimphp/Slim/issues", - "source": "https://github.com/slimphp/Slim/tree/3.12.5" + "source": "https://github.com/slimphp/Slim/tree/3.12.4" }, "funding": [ { @@ -969,7 +969,7 @@ "type": "tidelift" } ], - "time": "2023-07-23T04:32:51+00:00" + "time": "2021-10-02T19:38:22+00:00" } ], "packages-dev": [ @@ -1045,16 +1045,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { @@ -1062,12 +1062,11 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -1093,7 +1092,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -1101,31 +1100,29 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "nikic/php-parser", - "version": "v5.0.2", + "version": "v4.15.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", "shasum": "" }, "require": { - "ext-ctype": "*", - "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.4" + "php": ">=7.0" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -1133,7 +1130,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "4.9-dev" } }, "autoload": { @@ -1157,27 +1154,26 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" }, - "time": "2024-03-05T20:51:40+00:00" + "time": "2023-03-05T19:49:14+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.4", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "54750ef60c58e43759730615a392c31c80e23176" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", - "reference": "54750ef60c58e43759730615a392c31c80e23176", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { "ext-dom": "*", - "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -1218,15 +1214,9 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.4" + "source": "https://github.com/phar-io/manifest/tree/2.0.3" }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:33:53+00:00" + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", @@ -1281,23 +1271,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.31", + "version": "9.2.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965" + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.15", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -1346,8 +1336,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" }, "funding": [ { @@ -1355,7 +1344,7 @@ "type": "github" } ], - "time": "2024-03-02T06:37:42+00:00" + "time": "2023-03-06T12:58:08+00:00" }, { "name": "phpunit/php-file-iterator", @@ -1541,16 +1530,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.19", + "version": "9.6.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8" + "reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8", - "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/86e761949019ae83f49240b2f2123fb5ab3b2fc5", + "reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5", "shasum": "" }, "require": { @@ -1565,7 +1554,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", + "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -1623,8 +1612,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.5" }, "funding": [ { @@ -1640,7 +1628,7 @@ "type": "tidelift" } ], - "time": "2024-04-05T04:35:58+00:00" + "time": "2023-03-09T06:34:10+00:00" }, { "name": "roave/security-advisories", @@ -1648,74 +1636,53 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "5b38ec8e0b7fdca1e7b95173a15d3cac3a482d1f" + "reference": "ad434708152844968e15adf8eb3f4a2d7066242e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/5b38ec8e0b7fdca1e7b95173a15d3cac3a482d1f", - "reference": "5b38ec8e0b7fdca1e7b95173a15d3cac3a482d1f", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/ad434708152844968e15adf8eb3f4a2d7066242e", + "reference": "ad434708152844968e15adf8eb3f4a2d7066242e", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", - "admidio/admidio": "<4.2.13", + "admidio/admidio": "<4.1.9", "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", - "aheinze/cockpit": "<2.2", - "aimeos/ai-client-html": ">=2020.04.1,<2020.10.27|>=2021.04.1,<2021.10.21|>=2022.04.1,<2022.10.12|>=2023.04.1,<2023.10.14|>=2024.04.1,<2024.04.4", - "aimeos/aimeos-core": "<2024.04.7", - "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5", - "airesvsg/acf-to-rest-api": "<=3.1", + "aheinze/cockpit": "<=2.2.1", "akaunting/akaunting": "<2.1.13", "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53", "alextselegidis/easyappointments": "<1.5", "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", - "amphp/http": "<=1.7.2|>=2,<=2.1", + "amphp/http": "<1.0.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", "andreapollastri/cipi": "<=3.1.15", - "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5", - "apache-solr-for-typo3/solr": "<2.8.3", "apereo/phpcas": "<1.6", "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6|>=2.6,<2.7.10|>=3,<3.0.12|>=3.1,<3.1.3", - "appwrite/server-ce": "<=1.2.1", + "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2", "arc/web": "<3", "area17/twill": "<1.2.5|>=2,<2.5.3", - "artesaos/seotools": "<0.17.2", - "asymmetricrypt/asymmetricrypt": "<9.9.99", - "athlon1600/php-proxy": "<=5.1", - "athlon1600/php-proxy-app": "<=3", - "austintoddj/canvas": "<=3.4.2", - "automad/automad": "<=1.10.9", - "automattic/jetpack": "<9.8", + "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", + "automad/automad": "<1.8", "awesome-support/awesome-support": "<=6.0.7", - "aws/aws-sdk-php": "<3.288.1", - "azuracast/azuracast": "<0.18.3", - "backdrop/backdrop": "<1.24.2", - "backpack/crud": "<3.4.9", - "bacula-web/bacula-web": "<8.0.0.0-RC2-dev", + "aws/aws-sdk-php": ">=3,<3.2.1", + "backdrop/backdrop": "<=1.23", "badaso/core": "<2.7", - "bagisto/bagisto": "<2.1", + "bagisto/bagisto": "<0.1.5", "barrelstrength/sprout-base-email": "<1.2.7", "barrelstrength/sprout-forms": "<3.9", "barryvdh/laravel-translation-manager": "<0.6.2", "barzahlen/barzahlen-php": "<2.0.1", - "baserproject/basercms": "<5.0.9", + "baserproject/basercms": "<4.7.2", "bassjobsen/bootstrap-3-typeahead": ">4.0.2", - "bbpress/bbpress": "<2.6.5", - "bcosca/fatfree": "<3.7.2", - "bedita/bedita": "<4", - "bigfork/silverstripe-form-capture": ">=3,<3.1.1", - "billz/raspap-webgui": "<2.9.5", + "billz/raspap-webgui": "<=2.6.6", "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", - "blueimp/jquery-file-upload": "==6.4.4", "bmarshall511/wordpress_zero_spam": "<5.2.13", "bolt/bolt": "<3.7.2", "bolt/core": "<=4.2", - "born05/craft-twofactorauthentication": "<3.3.4", "bottelet/flarepoint": "<2.2.1", - "bref/bref": "<2.1.17", "brightlocal/phpwhois": "<=4.2.5", "brotkrueml/codehighlight": "<2.7", "brotkrueml/schema": "<1.13.1|>=2,<2.5.1", @@ -1724,510 +1691,368 @@ "bugsnag/bugsnag-laravel": ">=2,<2.0.2", "bytefury/crater": "<6.0.2", "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", + "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10|= 1.3.7|>=4.1,<4.1.4", "cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", "cardgate/magento2": "<2.0.33", - "cardgate/woocommerce": "<=3.1.15", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", - "cart2quote/module-quotation-encoded": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", "catfan/medoo": "<1.7.5", - "causal/oidc": "<2.1", - "cecil/cecil": "<7.47.1", - "centreon/centreon": "<22.10.15", + "centreon/centreon": "<22.10-beta.1", "cesnet/simplesamlphp-module-proxystatistics": "<3.1", - "chriskacerguis/codeigniter-restserver": "<=2.7.1", - "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", - "ckeditor/ckeditor": "<4.24", - "cockpit-hq/cockpit": "<2.7|==2.7", + "cockpit-hq/cockpit": "<2.4.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", - "codeigniter/framework": "<3.1.9", - "codeigniter4/framework": "<4.4.7", - "codeigniter4/shield": "<1.0.0.0-beta8", + "codeigniter/framework": "<=3.0.6", + "codeigniter4/framework": "<4.2.11", + "codeigniter4/shield": "<1-beta.4|= 1.0.0-beta", "codiad/codiad": "<=2.8.4", - "composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7", - "concrete5/concrete5": "<9.2.8", + "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", + "concrete5/concrete5": "<=9.1.3|>= 9.0.0RC1, < 9.1.3", "concrete5/core": "<8.5.8|>=9,<9.1", "contao-components/mediaelement": ">=2.14.2,<2.21.1", - "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4", - "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4", - "contao/core": "<3.5.39", - "contao/core-bundle": "<4.13.40|>=5,<5.3.4", - "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8", + "contao/contao": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|>=4.13,<4.13.3", + "contao/core": ">=2,<3.5.39", + "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|>=4.13,<4.13.3|= 4.10.0", + "contao/listing-bundle": ">=4,<4.4.8", "contao/managed-edition": "<=1.5", - "corveda/phpsandbox": "<1.3.5", - "cosenary/instagram": "<=2.3", - "craftcms/cms": "<4.6.2", - "croogo/croogo": "<4", + "craftcms/cms": "<3.7.64|>= 4.0.0-RC1, < 4.3.7|>= 4.0.0-RC1, < 4.2.1", + "croogo/croogo": "<3.0.7", "cuyz/valinor": "<0.12", "czproject/git-php": "<4.0.3", - "dapphp/securimage": "<3.6.6", "darylldoyle/safe-svg": "<1.9.10", "datadog/dd-trace": ">=0.30,<0.30.2", - "datatables/datatables": "<1.10.10", "david-garcia/phpwhois": "<=4.3.1", "dbrisinajumi/d2files": "<1", - "dcat/laravel-admin": "<=2.1.3.0-beta", "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3", - "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4", - "desperado/xml-bundle": "<=0.1.7", - "devgroup/dotplant": "<2020.09.14-dev", - "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2", - "doctrine/annotations": "<1.2.7", + "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", + "directmailteam/direct-mail": "<5.2.4", + "doctrine/annotations": ">=1,<1.2.7", "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", - "doctrine/common": "<2.4.3|>=2.5,<2.5.1", + "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4", "doctrine/doctrine-bundle": "<1.5.2", - "doctrine/doctrine-module": "<0.7.2", - "doctrine/mongodb-odm": "<1.0.2", - "doctrine/mongodb-odm-bundle": "<3.0.1", - "doctrine/orm": ">=1,<1.2.4|>=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<19.0.2", - "dompdf/dompdf": "<2.0.4", - "doublethreedigital/guest-entries": "<3.1.2", - "drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.1.8|>=10.2,<10.2.2", - "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", - "duncanmcclean/guest-entries": "<3.1.2", + "doctrine/doctrine-module": "<=0.7.1", + "doctrine/mongodb-odm": ">=1,<1.0.2", + "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", + "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", + "dolibarr/dolibarr": "<16|>=16.0.1,<16.0.3|= 12.0.5|>= 3.3.beta1, < 13.0.2", + "dompdf/dompdf": "<2.0.2|= 2.0.2", + "drupal/core": ">=7,<7.91|>=8,<9.3.19|>=9.4,<9.4.3", + "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", "dweeves/magmi": "<=0.7.24", - "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2", "ecodev/newsletter": "<=4", "ectouch/ectouch": "<=2.7.2", - "egroupware/egroupware": "<16.1.20170922", - "elefant/cms": "<2.0.7", + "elefant/cms": "<1.3.13", "elgg/elgg": "<3.3.24|>=4,<4.0.5", - "elijaa/phpmemcacheadmin": "<=1.3", "encore/laravel-admin": "<=1.8.19", "endroid/qr-code-bundle": "<3.4.2", - "enhavo/enhavo-app": "<=0.13.1", "enshrined/svg-sanitize": "<0.15", "erusev/parsedown": "<1.7.2", "ether/logs": "<3.0.4", - "evolutioncms/evolution": "<=3.2.3", "exceedone/exment": "<4.4.3|>=5,<5.0.3", - "exceedone/laravel-admin": "<2.2.3|==3", - "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev", + "exceedone/laravel-admin": "= 3.0.0|<2.2.3", + "ezsystems/demobundle": ">=5.4,<5.4.6.1", "ezsystems/ez-support-tools": ">=2.2,<2.2.3", - "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", - "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", + "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1", + "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1", "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26", "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", - "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", - "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.35", + "ezsystems/ezplatform-graphql": ">=1-rc.1,<1.0.13|>=2-beta.1,<2.3.12", + "ezsystems/ezplatform-kernel": "<1.2.5.1|>=1.3,<1.3.26", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", - "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev", - "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15", + "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7", "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31", - "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1", + "ezsystems/ezpublish-kernel": "<6.13.8.2|>=7,<7.5.30", + "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.3.5.1", "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", - "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15", + "ezsystems/repository-forms": ">=2.3,<2.3.2.1|>=2.5,<2.5.15", "ezyang/htmlpurifier": "<4.1.1", "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2", - "facturascripts/facturascripts": "<=2022.08", - "fastly/magento2": "<1.2.26", + "facturascripts/facturascripts": "<=2022.8", "feehi/cms": "<=2.1.1", "feehi/feehicms": "<=2.1.1", "fenom/fenom": "<=2.12.1", "filegator/filegator": "<7.8", - "filp/whoops": "<2.1.13", - "fineuploader/php-traditional-server": "<=1.2.2", "firebase/php-jwt": "<6", "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6", - "flarum/core": "<1.8.5", - "flarum/flarum": "<0.1.0.0-beta8", - "flarum/framework": "<1.8.5", + "flarum/core": "<1.7", "flarum/mentions": "<1.6.3", - "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", - "flarum/tags": "<=0.1.0.0-beta13", - "floriangaerber/magnesium": "<0.3.1", + "flarum/sticky": ">=0.1-beta.14,<=0.1-beta.15", + "flarum/tags": "<=0.1-beta.13", "fluidtypo3/vhs": "<5.1.1", - "fof/byobu": ">=0.3.0.0-beta2,<1.1.7", + "fof/byobu": ">=0.3-beta.2,<1.1.7", "fof/upload": "<1.2.3", - "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1", "fooman/tcpdf": "<6.2.22", "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", - "francoisjacquet/rosariosis": "<=11.5.1", + "francoisjacquet/rosariosis": "<10.8.2", "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2", "friendsofsymfony/oauth2-php": "<1.3", "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", - "friendsofsymfony/user-bundle": ">=1,<1.3.5", - "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5", - "friendsofsymfony1/symfony1": ">=1.1,<1.15.19", + "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", - "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", - "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3", - "froxlor/froxlor": "<2.1.9", - "frozennode/administrator": "<=5.0.12", + "froala/wysiwyg-editor": "<3.2.7", + "froxlor/froxlor": "<2.0.13", "fuel/core": "<1.8.1", - "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3", + "funadmin/funadmin": "<=3.2", "gaoming13/wechat-php-sdk": "<=1.10.2", "genix/cms": "<=1.1.11", - "getformwork/formwork": "<1.13.1|==2.0.0.0-beta1", - "getgrav/grav": "<1.7.46", - "getkirby/cms": "<4.1.1", - "getkirby/kirby": "<=2.5.12", + "getgrav/grav": "<1.7.34", + "getkirby/cms": "= 3.8.0|<3.5.8.2|>=3.6,<3.6.6.2|>=3.7,<3.7.5.1", "getkirby/panel": "<2.5.14", "getkirby/starterkit": "<=3.7.0.2", - "gilacms/gila": "<=1.15.4", - "gleez/cms": "<=1.3|==2", + "gilacms/gila": "<=1.11.4", "globalpayments/php-sdk": "<2", - "gogentooss/samlbase": "<1.2.7", "google/protobuf": "<3.15", "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", "gree/jose": "<2.2.1", "gregwar/rst": "<1.0.3", - "grumpydictator/firefly-iii": "<6.1.17", - "gugoan/economizzer": "<=0.9.0.0-beta1", + "grumpydictator/firefly-iii": "<5.8", "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5", - "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5", - "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2", + "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "harvesthq/chosen": "<1.8.7", - "helloxz/imgurl": "<=2.31", - "hhxsv5/laravel-s": "<3.7.36", + "helloxz/imgurl": "= 2.31|<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", "himiklab/yii2-jqgrid-widget": "<1.0.8", "hjue/justwriting": "<=1", "hov/jobfair": "<1.0.13|>=2,<2.0.2", - "httpsoft/http-message": "<1.0.12", "hyn/multi-tenant": ">=5.6,<5.7.2", "ibexa/admin-ui": ">=4.2,<4.2.3", - "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2", + "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3", "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", "ibexa/post-install": "<=1.0.4", - "ibexa/solr": ">=4.5,<4.5.4", - "ibexa/user": ">=4,<4.4.3", "icecoder/icecoder": "<=8.1", "idno/known": "<=1.3.1", - "ilicmiljan/secure-props": ">=1.2,<1.2.2", - "illuminate/auth": "<5.5.10", - "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<6.18.31|>=7,<7.22.4", + "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", + "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "imdbphp/imdbphp": "<=5.1.1", - "impresscms/impresscms": "<=1.4.5", - "impresspages/impresspages": "<=1.0.12", - "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.3", - "in2code/ipandlanguageredirect": "<5.1.2", + "impresscms/impresscms": "<=1.4.3", + "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.1", "in2code/lux": "<17.6.1|>=18,<24.0.2", "innologi/typo3-appointments": "<2.0.6", - "intelliants/subrion": "<4.2.2", - "inter-mediator/inter-mediator": "==5.5", + "intelliants/subrion": "<=4.2.1", "islandora/islandora": ">=2,<2.4.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", "james-heinrich/getid3": "<1.9.21", - "james-heinrich/phpthumb": "<1.7.12", "jasig/phpcas": "<1.3.3", - "jcbrand/converse.js": "<3.3.3", - "johnbillion/wp-crontrol": "<1.16.2", - "joomla/application": "<1.0.13", "joomla/archive": "<1.1.12|>=2,<2.0.1", "joomla/filesystem": "<1.6.2|>=2,<2.0.1", "joomla/filter": "<1.4.4|>=2,<2.0.1", - "joomla/framework": "<1.5.7|>=2.5.4,<=3.8.12", "joomla/input": ">=2,<2.0.2", - "joomla/joomla-cms": ">=2.5,<3.9.12", "joomla/session": "<1.3.1", "joyqi/hyper-down": "<=2.4.27", "jsdecena/laracom": "<2.0.9", "jsmitty12/phpwhois": "<5.1", - "juzaweb/cms": "<=3.4", "kazist/phpwhois": "<=4.2.6", "kelvinmo/simplexrd": "<3.1.1", "kevinpapst/kimai2": "<1.16.7", - "khodakhah/nodcms": "<=3", - "kimai/kimai": "<2.16", - "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", + "kimai/kimai": "<1.1", + "kitodo/presentation": "<3.1.2", "klaviyo/magento2-extension": ">=1,<3", - "knplabs/knp-snappy": "<=1.4.2", - "kohana/core": "<3.3.3", + "knplabs/knp-snappy": "<=1.4.1", "krayin/laravel-crm": "<1.2.2", "kreait/firebase-php": ">=3.2,<3.8.1", - "kumbiaphp/kumbiapp": "<=1.1.1", "la-haute-societe/tcpdf": "<6.2.22", - "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2", + "laminas/laminas-diactoros": "<2.11.1", "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", "laminas/laminas-http": "<2.14.2", "laravel/fortify": "<1.11.1", - "laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75", - "laravel/laravel": ">=5.4,<5.4.22", - "laravel/socialite": ">=1,<2.0.10", + "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", - "lavalite/cms": "<=9|==10.1", + "lavalite/cms": "<=5.8", "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5", "league/commonmark": "<0.18.3", "league/flysystem": "<1.1.4|>=2,<2.1.1", - "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "libreform/libreform": ">=2,<=2.0.8", - "librenms/librenms": "<2017.08.18", + "librenms/librenms": "<22.10", "liftkit/database": "<2.13.2", - "lightsaml/lightsaml": "<1.3.5", "limesurvey/limesurvey": "<3.27.19", "livehelperchat/livehelperchat": "<=3.91", - "livewire/livewire": ">2.2.4,<2.2.6|>=3.3.5,<3.4.9", + "livewire/livewire": ">2.2.4,<2.2.6", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", "luyadev/yii-helpers": "<1.2.1", - "magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch8|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch6|==2.4.7", - "magento/core": "<=1.9.4.5", - "magento/magento1ce": "<1.9.4.3-dev", - "magento/magento1ee": ">=1,<1.14.4.3-dev", - "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2.0-patch2", - "magneto/core": "<1.9.4.4-dev", + "magento/community-edition": ">=2,<2.2.10|>=2.3,<2.3.3", + "magento/magento1ce": "<1.9.4.3", + "magento/magento1ee": ">=1,<1.14.4.3", + "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2-p.2", "maikuolan/phpmussel": ">=1,<1.6", - "mainwp/mainwp": "<=4.4.3.3", - "mantisbt/mantisbt": "<2.26.2", + "mantisbt/mantisbt": "<=2.25.5", "marcwillmann/turn": "<0.3.3", "matyhtf/framework": "<3.0.6", - "mautic/core": "<4.4.12|>=5.0.0.0-alpha,<5.0.4", - "mdanter/ecc": "<2", - "mediawiki/core": "<1.36.2", + "mautic/core": "<4.3|= 2.13.1", + "mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35", "mediawiki/matomo": "<2.4.3", - "mediawiki/semantic-media-wiki": "<4.0.2", "melisplatform/melis-asset-manager": "<5.0.1", "melisplatform/melis-cms": "<5.0.1", "melisplatform/melis-front": "<5.0.1", "mezzio/mezzio-swoole": "<3.7|>=4,<4.3", "mgallegos/laravel-jqgrid": "<=1.3", - "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2,<2.0.1", - "microsoft/microsoft-graph-beta": "<2.0.1", - "microsoft/microsoft-graph-core": "<2.0.2", - "microweber/microweber": "<=2.0.4", - "mikehaertl/php-shellcommand": "<1.6.1", + "microweber/microweber": "<=1.3.2", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", "mobiledetect/mobiledetectlib": "<2.8.32", - "modx/revolution": "<=2.8.3.0-patch", + "modx/revolution": "<= 2.8.3-pl|<2.8", "mojo42/jirafeau": "<4.4", - "mongodb/mongodb": ">=1,<1.9.2", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<4.3.5|>=4.4.0.0-beta,<4.4.1", - "mos/cimage": "<0.7.19", - "movim/moxl": ">=0.8,<=0.10", - "movingbytes/social-network": "<=1.2.1", - "mpdf/mpdf": "<=7.1.7", - "munkireport/comment": "<4.1", - "munkireport/managedinstalls": "<2.6", - "munkireport/munki_facts": "<1.5", - "munkireport/munkireport": ">=2.5.3,<5.6.3", - "munkireport/reportdata": "<3.5", - "munkireport/softwareupdate": "<1.6", + "moodle/moodle": "<4.0.6|= 3.11|>=4.1-beta,<4.1.1", "mustache/mustache": ">=2,<2.14.1", "namshi/jose": "<2.2", "neoan3-apps/template": "<1.1.1", - "neorazorx/facturascripts": "<2022.04", + "neorazorx/facturascripts": "<2022.4", "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3", - "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9", - "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", - "neos/swiftmailer": "<5.4.5", + "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.9.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", + "neos/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15", "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", - "nilsteampassnet/teampass": "<3.0.10", - "nonfiction/nterchange": "<4.1.1", + "nilsteampassnet/teampass": "<3.0.0.23", "notrinos/notrinos-erp": "<=0.7", "noumo/easyii": "<=0.9", - "novaksolutions/infusionsoft-php-sdk": "<1", - "nukeviet/nukeviet": "<4.5.02", - "nyholm/psr7": "<1.6.1", + "nukeviet/nukeviet": "<4.5.2", "nystudio107/craft-seomatic": "<3.4.12", - "nzedb/nzedb": "<0.8", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", "october/backend": "<1.1.2", - "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1", - "october/october": "<=3.4.4", + "october/cms": "= 1.1.1|= 1.0.471|= 1.0.469|>=1.0.319,<1.0.469", + "october/october": ">=1.0.319,<1.0.466|>=2.1,<2.1.12", "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.2", - "omeka/omeka-s": "<4.0.3", + "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.0.66", "onelogin/php-saml": "<2.10.4", - "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5", + "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", "open-web-analytics/open-web-analytics": "<1.7.4", - "opencart/opencart": "<=3.0.3.7|>=4,<4.0.2.3-dev", + "opencart/opencart": "<=3.0.3.7", "openid/php-openid": "<2.3", - "openmage/magento-lts": "<20.5", - "opensolutions/vimbadmin": "<=3.0.15", - "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2", - "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5", - "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1", - "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1", + "openmage/magento-lts": "<19.4.22|>=20,<20.0.19", + "orchid/platform": ">=9,<9.4.4", + "oro/commerce": ">=4.1,<5.0.6", "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7", - "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", - "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3", - "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3", - "oxid-esales/oxideshop-ce": "<4.5", - "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1", + "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<4.2.8", "packbackbooks/lti-1-3-php-library": "<5", "padraic/humbug_get_contents": "<1.1.2", - "pagarme/pagarme-php": "<3", + "pagarme/pagarme-php": ">=0,<3", "pagekit/pagekit": "<=1.0.18", - "paragonie/ecc": "<2.0.1", "paragonie/random_compat": "<2", - "passbolt/passbolt_api": "<4.6.2", - "paypal/adaptivepayments-sdk-php": "<=3.9.2", - "paypal/invoice-sdk-php": "<=3.9", + "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", - "paypal/permissions-sdk-php": "<=3.9.1", "pear/archive_tar": "<1.4.14", - "pear/auth": "<1.2.4", "pear/crypt_gpg": "<1.6.7", - "pear/pear": "<=1.10.1", "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", "personnummer/personnummer": "<3.0.2", "phanan/koel": "<5.1.4", - "phenx/php-svg-lib": "<0.5.2", - "php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5", "php-mod/curl": "<2.3.2", - "phpbb/phpbb": "<3.2.10|>=3.3,<3.3.1", - "phpems/phpems": ">=6,<=6.1.3", "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", "phpmyadmin/phpmyadmin": "<5.2.1", - "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5", - "phpoffice/common": "<0.2.9", + "phpmyfaq/phpmyfaq": "<=3.1.7", "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", - "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36", - "phpservermon/phpservermon": "<3.6", - "phpsysinfo/phpsysinfo": "<3.4.3", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.19", + "phpservermon/phpservermon": "<=3.5.2", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", "phpxmlrpc/phpxmlrpc": "<4.9.2", - "pi/pi": "<=2.5", - "pimcore/admin-ui-classic-bundle": "<=1.4.2", - "pimcore/customer-management-framework-bundle": "<4.0.6", "pimcore/data-hub": "<1.2.4", - "pimcore/demo": "<10.3", - "pimcore/ecommerce-framework-bundle": "<1.0.10", - "pimcore/perspective-editor": "<1.5.1", - "pimcore/pimcore": "<11.2.4", - "pixelfed/pixelfed": "<0.11.11", - "plotly/plotly.js": "<2.25.2", + "pimcore/pimcore": "<11", + "pixelfed/pixelfed": "<=0.11.4", "pocketmine/bedrock-protocol": "<8.0.2", - "pocketmine/pocketmine-mp": "<5.11.2", - "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1", + "pocketmine/pocketmine-mp": "<4.12.5|>= 4.0.0-BETA5, < 4.4.2", "pressbooks/pressbooks": "<5.18", "prestashop/autoupgrade": ">=4,<4.10.1", - "prestashop/blockreassurance": "<=5.1.3", "prestashop/blockwishlist": ">=2,<2.1.1", "prestashop/contactform": ">=1.0.1,<4.3", "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": "<8.1.6", + "prestashop/prestashop": "<8.0.1", "prestashop/productcomments": "<5.0.2", "prestashop/ps_emailsubscription": "<2.6.1", "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", "privatebin/privatebin": "<1.4", - "processwire/processwire": "<=3.0.210", - "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7", + "processwire/processwire": "<=3.0.200", + "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<1.11.6", - "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2", + "pterodactyl/panel": "<1.7", "ptrofimov/beanstalk_console": "<1.7.14", - "pubnub/pubnub": "<6.1", "pusher/pusher-php-server": "<2.2.1", - "pwweb/laravel-core": "<=0.3.6.0-beta", + "pwweb/laravel-core": "<=0.3.6-beta", "pyrocms/pyrocms": "<=3.9.1", - "qcubed/qcubed": "<=3.1.1", - "quickapps/cms": "<=2.0.0.0-beta2", - "rainlab/blog-plugin": "<1.4.1", "rainlab/debugbar-plugin": "<3.1", - "rainlab/user-plugin": "<=1.4.5", "rankmath/seo-by-rank-math": "<=1.0.95", - "rap2hpoutre/laravel-log-viewer": "<0.13", - "react/http": ">=0.7,<1.9", - "really-simple-plugins/complianz-gdpr": "<6.4.2", - "redaxo/source": "<=5.15.1", - "remdex/livehelperchat": "<4.29", - "reportico-web/reportico": "<=8.1", - "rhukster/dom-sanitizer": "<1.0.7", + "react/http": ">=0.7,<1.7", + "remdex/livehelperchat": "<3.99", "rmccue/requests": ">=1.6,<1.8", - "robrichards/xmlseclibs": ">=1,<3.0.4", + "robrichards/xmlseclibs": "<3.0.4", "roots/soil": "<4.1", "rudloff/alltube": "<3.0.3", "s-cart/core": "<6.9", "s-cart/s-cart": "<6.9", "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", - "sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9", - "scheb/two-factor-bundle": "<3.26|>=4,<4.11", + "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", + "scheb/two-factor-bundle": ">=0,<3.26|>=4,<4.11", "sensiolabs/connect": "<4.2.3", "serluck/phpwhois": "<=4.2.6", - "sfroemken/url_redirect": "<=1.2.1", - "sheng/yiicms": "<=1.2", - "shopware/core": "<6.5.8.8-dev|>=6.6.0.0-RC1-dev,<6.6.1", - "shopware/platform": "<6.5.8.8-dev|>=6.6.0.0-RC1-dev,<6.6.1", + "shopware/core": "<=6.4.18", + "shopware/platform": "<=6.4.18", "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<6.2.3", - "shopware/storefront": "<=6.4.8.1|>=6.5.8,<6.5.8.7-dev", + "shopware/shopware": "<=5.7.14", + "shopware/storefront": "<=6.4.8.1", "shopxo/shopxo": "<2.2.6", "showdoc/showdoc": "<2.10.4", - "silverstripe-australia/advancedreports": ">=1,<=2", - "silverstripe/admin": "<1.13.19|>=2,<2.1.8", + "silverstripe/admin": ">=1,<1.11.3", "silverstripe/assets": ">=1,<1.11.1", "silverstripe/cms": "<4.11.3", - "silverstripe/comments": ">=1.3,<3.1.1", + "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.13.39|>=5,<5.1.11", - "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3", + "silverstripe/framework": "<4.11.14", + "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|>=4.1.1,<4.1.2|>=4.2.2,<4.2.3|= 4.0.0-alpha1", "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1", - "silverstripe/recipe-cms": ">=4.5,<4.5.3", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", - "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4|>=2.1,<2.1.2", + "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", "silverstripe/subsites": ">=2,<2.6.1", "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", - "silverstripe/userforms": "<3|>=5,<5.4.2", + "silverstripe/userforms": "<3", "silverstripe/versioned-admin": ">=1,<1.11.1", "simple-updates/phpwhois": "<=1", - "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4|==5.0.0.0-alpha12", + "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4", "simplesamlphp/simplesamlphp": "<1.18.6", "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", "simplesamlphp/simplesamlphp-module-openid": "<1", "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9", - "simplesamlphp/xml-security": "==1.6.11", "simplito/elliptic-php": "<1.0.6", - "sitegeist/fluid-components": "<3.5", - "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3", - "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1", "slim/slim": "<2.6", - "slub/slub-events": "<3.0.3", - "smarty/smarty": "<4.5.3|>=5,<5.1.1", - "snipe/snipe-it": "<6.4.2", + "smarty/smarty": "<3.1.47|>=4,<4.2.1", + "snipe/snipe-it": "<=6.0.14|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", "spatie/browsershot": "<3.57.4", - "spatie/image-optimizer": "<1.7.3", - "spipu/html2pdf": "<5.2.8", - "spoon/library": "<1.4.1", + "spipu/html2pdf": "<5.2.4", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<22.02.3", - "statamic/cms": "<4.46|>=5.3,<5.6.2", - "stormpath/sdk": "<9.9.99", - "studio-42/elfinder": "<2.1.62", - "subhh/libconnect": "<7.0.8|>=8,<8.1", + "ssddanbrown/bookstack": "<22.2.3", + "statamic/cms": "<3.2.39|>=3.3,<3.3.2", + "stormpath/sdk": ">=0,<9.9.99", + "studio-42/elfinder": "<2.1.59", + "subrion/cms": "<=4.2.1", "sukohi/surpass": "<1", - "sulu/form-bundle": ">=2,<2.5.3", - "sulu/sulu": "<1.6.44|>=2,<2.4.17|>=2.5,<2.5.13", + "sulu/sulu": "= 2.4.0-RC1|<1.6.44|>=2,<2.2.18|>=2.3,<2.3.8", "sumocoders/framework-user-bundle": "<1.4", - "superbig/craft-audit": "<3.0.2", "swag/paypal": "<5.4.4", - "swiftmailer/swiftmailer": "<6.2.5", - "swiftyedit/swiftyedit": "<1.2", + "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", "sylius/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1", - "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", - "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2|>=1.12.0.0-alpha1,<1.12.16|>=1.13.0.0-alpha1,<1.13.1", - "symbiote/silverstripe-multivaluefield": ">=3,<3.1", + "sylius/resource-bundle": "<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", + "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", "symbiote/silverstripe-seed": "<6.0.3", "symbiote/silverstripe-versionedfiles": "<=2.0.3", @@ -2236,7 +2061,7 @@ "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14", "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", @@ -2252,113 +2077,78 @@ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", - "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2|>=5.4,<5.4.31|>=6,<6.3.8", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2", "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8", + "symfony/symfony": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", "symfony/translation": ">=2,<2.0.17", - "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8", - "symfony/ux-autocomplete": "<2.11.2", "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", - "symfony/webhook": ">=6.3,<6.3.8", - "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7|>=2.2.0.0-beta1,<2.2.0.0-beta2", - "symphonycms/symphony-2": "<2.6.4", - "t3/dce": "<0.11.5|>=2.2,<2.6.2", + "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "t3/dce": ">=2.2,<2.6.2", "t3g/svg-sanitizer": "<1.0.3", - "t3s/content-consent": "<1.0.3|>=2,<2.0.2", "tastyigniter/tastyigniter": "<3.3", - "tcg/voyager": "<=1.4", - "tecnickcom/tcpdf": "<=6.7.4", + "tecnickcom/tcpdf": "<6.2.22", "terminal42/contao-tablelookupwizard": "<3.3.5", "thelia/backoffice-default-template": ">=2.1,<2.1.2", - "thelia/thelia": ">=2.1,<2.1.3", + "thelia/thelia": ">=2.1-beta.1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", - "thinkcmf/thinkcmf": "<6.0.8", - "thorsten/phpmyfaq": "<3.2.2", - "tikiwiki/tiki-manager": "<=17.1", - "timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1", - "tinymce/tinymce": "<7.2", + "thinkcmf/thinkcmf": "<=5.1.7", + "thorsten/phpmyfaq": "<3.1.11", + "tinymce/tinymce": "<5.10.7|>=6,<6.3.1", "tinymighty/wiki-seo": "<1.2.2", - "titon/framework": "<9.9.99", - "tobiasbg/tablepress": "<=2.0.0.0-RC1", - "topthink/framework": "<6.0.17|>=6.1,<6.1.5|>=8,<8.0.4", + "titon/framework": ">=0,<9.9.99", + "tobiasbg/tablepress": "<= 2.0-RC1", + "topthink/framework": "<6.0.14", "topthink/think": "<=6.1.1", "topthink/thinkphp": "<=3.2.3", - "torrentpier/torrentpier": "<=2.4.1", - "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2", - "tribalsystems/zenario": "<9.5.60602", + "tribalsystems/zenario": "<=9.3.57595", "truckersmp/phpwhois": "<=4.3.1", "ttskch/pagination-service-provider": "<1", "twig/twig": "<1.44.7|>=2,<2.15.3|>=3,<3.4.3", - "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", - "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", - "typo3/cms-core": "<=8.7.56|>=9,<=9.5.47|>=10,<=10.4.44|>=11,<=11.5.36|>=12,<=12.4.14|>=13,<=13.1", - "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1", - "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1", + "typo3/cms": "<2.0.5|>=3,<3.0.3|>=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", + "typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/cms-core": "<8.7.51|>=9,<9.5.40|>=10,<10.4.36|>=11,<11.5.23|>=12,<12.2", "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", - "typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5", - "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8", - "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30", "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", - "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3", + "typo3/html-sanitizer": ">=1,<1.5|>=2,<2.1.1", "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", "ua-parser/uap-php": "<3.8", - "uasoft-indonesia/badaso": "<=2.9.7", - "unisharp/laravel-filemanager": "<2.6.4", + "unisharp/laravel-filemanager": "<=2.5.1", "userfrosting/userfrosting": ">=0.3.1,<4.6.3", "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", - "uvdesk/community-skeleton": "<=1.1.1", - "uvdesk/core-framework": "<=1.1.1", + "uvdesk/community-skeleton": "<1.1", "vanilla/safecurl": "<0.9.2", - "verbb/comments": "<1.5.5", - "verbb/formie": "<2.1.6", - "verbb/image-resizer": "<2.0.9", - "verbb/knock-knock": "<1.2.8", - "verot/class.upload.php": "<=2.1.6", - "villagedefrance/opencart-overclocked": "<=1.11.1", + "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", "vova07/yii2-fileapi-widget": "<0.1.9", "vrana/adminer": "<4.8.1", - "vufind/vufind": ">=2,<9.1.1", - "waldhacker/hcaptcha": "<2.1.2", "wallabag/tcpdf": "<6.2.22", - "wallabag/wallabag": "<2.6.7", + "wallabag/wallabag": "<2.5.4", "wanglelecc/laracms": "<=1.0.3", "web-auth/webauthn-framework": ">=3.3,<3.3.4", - "web-feet/coastercms": "==5.5", "webbuilders-group/silverstripe-kapost-bridge": "<0.4", "webcoast/deferred-image-processing": "<1.0.2", - "webklex/laravel-imap": "<5.3", - "webklex/php-imap": "<5.3", "webpa/webpa": "<3.1.2", - "wikibase/wikibase": "<=1.39.3", "wikimedia/parsoid": "<0.12.2", "willdurand/js-translation-bundle": "<2.1.1", - "winter/wn-backend-module": "<1.2.4", - "winter/wn-dusk-plugin": "<2.1", - "winter/wn-system-module": "<1.2.4", - "wintercms/winter": "<=1.2.3", - "woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3", - "wp-cli/wp-cli": ">=0.12,<2.5", - "wp-graphql/wp-graphql": "<=1.14.5", - "wp-premium/gravityforms": "<2.4.21", + "wintercms/winter": "<1.0.475|>=1.1,<1.1.10|>=1.2,<1.2.1", + "woocommerce/woocommerce": "<6.6", + "wp-cli/wp-cli": "<2.5", + "wp-graphql/wp-graphql": "<0.3.5", "wpanel/wpanel4-cms": "<=4.3.1", "wpcloud/wp-stateless": "<3.2", - "wpglobus/wpglobus": "<=1.9.6", - "wwbn/avideo": "<14.3", + "wwbn/avideo": "<12.4", "xataface/xataface": "<3", "xpressengine/xpressengine": "<3.0.15", - "yab/quarx": "<2.4.5", "yeswiki/yeswiki": "<4.1", "yetiforce/yetiforce-crm": "<=6.4", "yidashi/yii2cmf": "<=2", "yii2mod/yii2-cms": "<1.9.2", - "yiisoft/yii": "<1.1.29", - "yiisoft/yii2": "<2.0.50", - "yiisoft/yii2-authclient": "<2.2.15", + "yiisoft/yii": "<1.1.27", + "yiisoft/yii2": "<2.0.38", "yiisoft/yii2-bootstrap": "<2.0.4", "yiisoft/yii2-dev": "<2.0.43", "yiisoft/yii2-elasticsearch": "<2.0.5", @@ -2368,13 +2158,11 @@ "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6", "yoast-seo-for-typo3/yoast_seo": "<7.2.3", "yourls/yourls": "<=1.8.2", - "yuan1994/tpadmin": "<=1.3.12", - "zencart/zencart": "<=1.5.7.0-beta", "zendesk/zendesk_api_client_php": "<2.2.11", "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", - "zendframework/zend-db": "<2.2.10|>=2.3,<2.3.5", + "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", "zendframework/zend-diactoros": "<1.8.4", "zendframework/zend-feed": "<2.10.3", @@ -2382,30 +2170,21 @@ "zendframework/zend-http": "<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", - "zendframework/zend-mail": "<2.4.11|>=2.5,<2.7.2", + "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-session": ">=2,<2.2.9|>=2.3,<2.3.4", + "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4", "zendframework/zend-validator": ">=2.3,<2.3.6", "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zendframework": "<=3", "zendframework/zendframework1": "<1.12.20", - "zendframework/zendopenid": "<2.0.2", - "zendframework/zendrest": "<2.0.2", - "zendframework/zendservice-amazon": "<2.0.3", - "zendframework/zendservice-api": "<1", - "zendframework/zendservice-audioscrobbler": "<2.0.2", - "zendframework/zendservice-nirvanix": "<2.0.2", - "zendframework/zendservice-slideshare": "<2.0.2", - "zendframework/zendservice-technorati": "<2.0.2", - "zendframework/zendservice-windowsazure": "<2.0.2", + "zendframework/zendopenid": ">=2,<2.0.2", "zendframework/zendxml": ">=1,<1.0.1", - "zenstruck/collection": "<0.2.1", "zetacomponents/mail": "<1.8.2", "zf-commons/zfc-user": "<1.2.2", "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", "zfr/zfr-oauth2-server-module": "<0.1.2", - "zoujingli/thinkadmin": "<=6.1.53" + "zoujingli/thinkadmin": "<6.0.22" }, "type": "metapackage", "notification-url": "https://packagist.org/downloads/", @@ -2442,20 +2221,20 @@ "type": "tidelift" } ], - "time": "2024-06-19T16:05:03+00:00" + "time": "2023-03-17T19:03:58+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.2", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", "shasum": "" }, "require": { @@ -2490,7 +2269,7 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" }, "funding": [ { @@ -2498,7 +2277,7 @@ "type": "github" } ], - "time": "2024-03-02T06:27:43+00:00" + "time": "2020-09-28T06:08:49+00:00" }, { "name": "sebastian/code-unit", @@ -2687,20 +2466,20 @@ }, { "name": "sebastian/complexity", - "version": "2.0.3", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.7", "php": ">=7.3" }, "require-dev": { @@ -2732,7 +2511,7 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" }, "funding": [ { @@ -2740,20 +2519,20 @@ "type": "github" } ], - "time": "2023-12-22T06:19:30+00:00" + "time": "2020-10-26T15:52:27+00:00" }, { "name": "sebastian/diff", - "version": "4.0.6", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { @@ -2798,7 +2577,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" }, "funding": [ { @@ -2806,7 +2585,7 @@ "type": "github" } ], - "time": "2024-03-02T06:30:58+00:00" + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", @@ -2873,16 +2652,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.6", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { @@ -2938,7 +2717,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -2946,20 +2725,20 @@ "type": "github" } ], - "time": "2024-03-02T06:33:00+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.7", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { @@ -3002,7 +2781,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -3010,24 +2789,24 @@ "type": "github" } ], - "time": "2024-03-02T06:35:11+00:00" + "time": "2022-02-14T08:28:10+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.4", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.6", "php": ">=7.3" }, "require-dev": { @@ -3059,7 +2838,7 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" }, "funding": [ { @@ -3067,7 +2846,7 @@ "type": "github" } ], - "time": "2023-12-22T06:20:34+00:00" + "time": "2020-11-28T06:42:11+00:00" }, { "name": "sebastian/object-enumerator", @@ -3246,16 +3025,16 @@ }, { "name": "sebastian/resource-operations", - "version": "3.0.4", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { @@ -3267,7 +3046,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -3288,7 +3067,8 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" }, "funding": [ { @@ -3296,7 +3076,7 @@ "type": "github" } ], - "time": "2024-03-14T16:00:52+00:00" + "time": "2020-09-28T06:45:17+00:00" }, { "name": "sebastian/type", @@ -3409,16 +3189,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.10.1", + "version": "3.7.2", "source": { "type": "git", - "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/8f90f7a53ce271935282967f53d0894f8f1ff877", - "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", "shasum": "" }, "require": { @@ -3428,11 +3208,11 @@ "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, "bin": [ - "bin/phpcbf", - "bin/phpcs" + "bin/phpcs", + "bin/phpcbf" ], "type": "library", "extra": { @@ -3447,58 +3227,35 @@ "authors": [ { "name": "Greg Sherwood", - "role": "Former lead" - }, - { - "name": "Juliette Reinders Folmer", - "role": "Current lead" - }, - { - "name": "Contributors", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + "role": "lead" } ], "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ "phpcs", "standards", "static analysis" ], "support": { - "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", - "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", - "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", - "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "funding": [ - { - "url": "https://github.com/PHPCSStandards", - "type": "github" - }, - { - "url": "https://github.com/jrfnl", - "type": "github" - }, - { - "url": "https://opencollective.com/php_codesniffer", - "type": "open_collective" - } - ], - "time": "2024-05-22T21:24:41+00:00" + "time": "2023-02-22T23:07:41+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { @@ -3527,7 +3284,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" }, "funding": [ { @@ -3535,7 +3292,7 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2021-07-28T10:34:58+00:00" } ], "aliases": [], @@ -3555,5 +3312,5 @@ "platform-overrides": { "php": "7.4.33" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } diff --git a/doc/md/dev/images/poedit-1.jpg b/doc/md/dev/images/poedit-1.jpg new file mode 100644 index 00000000..673ae6d6 Binary files /dev/null and b/doc/md/dev/images/poedit-1.jpg differ diff --git a/doc/md/images/07-installation.jpg b/doc/md/images/07-installation.jpg new file mode 100644 index 00000000..42cc9f10 Binary files /dev/null and b/doc/md/images/07-installation.jpg differ diff --git a/doc/md/images/doc-logo.png b/doc/md/images/doc-logo.png new file mode 100644 index 00000000..3da7ba57 Binary files /dev/null and b/doc/md/images/doc-logo.png differ diff --git a/doc/md/images/doc-logo.svg b/doc/md/images/doc-logo.svg new file mode 100644 index 00000000..37fc6658 --- /dev/null +++ b/doc/md/images/doc-logo.svg @@ -0,0 +1,522 @@ + + + Shaarli Logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Shaarli Logo + + + http://blog.idleman.fr/ + + + 2012-08-29 22:36:01+02:00 + + + http://sebsauvage.net/ + + + + + Shaarli + Logo + + + + + http://thatguynamedandy.com/, +http://mro.name/me + + + + http://sebsauvage.net/files/shaarli_logo.zip + http://sebsauvage.net/wiki/doku.php?id=php:shaarli:discussion#comment_09a1e91bc0abc7db6d186a6abf429877 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/md/images/edit_icon.png b/doc/md/images/edit_icon.png new file mode 100644 index 00000000..16c440c8 Binary files /dev/null and b/doc/md/images/edit_icon.png differ diff --git a/doc/md/images/icon.png b/doc/md/images/icon.png new file mode 100644 index 00000000..530d7469 Binary files /dev/null and b/doc/md/images/icon.png differ diff --git a/doc/md/images/logo.png b/doc/md/images/logo.png new file mode 100644 index 00000000..f8b0c94f Binary files /dev/null and b/doc/md/images/logo.png differ diff --git a/doc/md/images/rss-filter-1.png b/doc/md/images/rss-filter-1.png new file mode 100644 index 00000000..0cf1591c Binary files /dev/null and b/doc/md/images/rss-filter-1.png differ diff --git a/doc/md/images/rss-filter-2.png b/doc/md/images/rss-filter-2.png new file mode 100644 index 00000000..5a40755a Binary files /dev/null and b/doc/md/images/rss-filter-2.png differ diff --git a/index.php b/index.php index 2a0246b7..cd517045 100644 --- a/index.php +++ b/index.php @@ -81,7 +81,7 @@ if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { autoLocale($_SERVER['HTTP_ACCEPT_LANGUAGE']); } -new Languages(setlocale(LC_MESSAGES, 0), $conf); +new Languages(get_locale(LC_MESSAGES), $conf); $conf->setEmpty('general.timezone', date_default_timezone_get()); $conf->setEmpty('general.title', t('Shared bookmarks on ') . escape(index_url($_SERVER))); diff --git a/package.json b/package.json index e4576b43..ac9d055e 100644 --- a/package.json +++ b/package.json @@ -4,32 +4,37 @@ "author": "The Shaarli Community", "license": "SEE LICENSE IN COPYING", "dependencies": { - "awesomplete": "^1.1.2", + "awesomplete": "^1.1.5", "blazy": "^1.8.2", - "fork-awesome": "^1.1.7", + "fork-awesome": "^1.2.0", "he": "^1.2.0", "pure-extras": "^1.0.0", - "purecss": "^1.0.0" + "purecss": "^3.0.0" }, "devDependencies": { - "@babel/core": "^7.11.6", - "@babel/preset-env": "^7.11.5", - "babel-loader": "^8.1.0", - "css-loader": "^7.1.2", - "eslint": "^7.9.0", - "eslint-config-airbnb-base": "^14.2.0", - "eslint-plugin-import": "^2.22.0", - "file-loader": "^1.1.6", - "mini-css-extract-plugin": "^0.11.2", - "sass": "^1.26.11", - "sass-loader": "^10.0.2", - "stylelint": "^16.6.1", - "stylelint-config-standard": "^20.0.0", - "stylelint-scss": "^6.3.2", - "terser-webpack-plugin": "^4.2.2", - "webpack": "^5.92.1", + "@babel/core": "^7.24.5", + "@babel/preset-env": "^7.24.5", + "babel-loader": "^9.1.3", + "css-loader": "^7.1.1", + "eslint": "^8.57.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-plugin-import": "^2.29.1", + "file-loader": "^6.2.0", + "glob": "^10.3.15", + "micromatch": "^4.0.8", + "mini-css-extract-plugin": "^2.9.0", + "sass": "^1.77.2", + "sass-loader": "^14.2.1", + "stylelint": "^16.5.0", + "stylelint-config-standard": "^36.0.0", + "stylelint-config-standard-scss": "^13.1.0", + "terser-webpack-plugin": "^5.3.10", + "webpack": "^5.94.0", "webpack-cli": "^5.1.4" }, + "resolutions": { + "string-width": "4.2.3" + }, "scripts": { "build": "webpack", "watch": "webpack --watch" diff --git a/plugins/qrcode/qrcode.html b/plugins/qrcode/qrcode.html index a21f7932..77839717 100644 --- a/plugins/qrcode/qrcode.html +++ b/plugins/qrcode/qrcode.html @@ -1,5 +1,3 @@
- - QRCode - + QRCode
diff --git a/plugins/qrcode/shaarli-qrcode.js b/plugins/qrcode/shaarli-qrcode.js index 3316d6f6..0976564c 100644 --- a/plugins/qrcode/shaarli-qrcode.js +++ b/plugins/qrcode/shaarli-qrcode.js @@ -51,7 +51,11 @@ function showQrCode(caller,loading) element.id = 'permalinkQrcode'; // Make QR-Code div commit sepuku when clicked: - if ( element.attachEvent ){ + if (element.addEventListener) { + element.addEventListener('click', function() { + this.parentNode.removeChild(this); + }); + } else if (element.attachEvent) { element.attachEvent('onclick', 'this.parentNode.removeChild(this);' ); } else { @@ -89,3 +93,18 @@ function removeQrcode() } return false; } + +// Create "click" event listeners for QR-Code display action +function setQrCodeClickEvent() +{ + const qrcode_collec = document.getElementsByClassName("qrcode"); + + Array.from(qrcode_collec).forEach(function(element) { + element.addEventListener('click', function() { + showQrCode(this); + return false; + }); + }); +} + +setQrCodeClickEvent(); diff --git a/shaarli_version.php b/shaarli_version.php index 06d1f041..99fe2e55 100644 --- a/shaarli_version.php +++ b/shaarli_version.php @@ -1 +1 @@ - + diff --git a/tpl/default/page.header.html b/tpl/default/page.header.html index 85114b70..c8ecbc52 100644 --- a/tpl/default/page.header.html +++ b/tpl/default/page.header.html @@ -117,24 +117,63 @@ -
-
- + + {$addDelete=['add', 'delete']} + {loop="$addDelete"} + + {/loop} + {/if} + {if="!$is_logged_in"}